]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- missing dir in -lmsd, -scripts no longer own /usr/sbin
[packages/lms.git] / lms.spec
1 # TODO
2 # - test build on amd64 and check /usr/lib64 patch
3 # - cosmetics (sort in %%files and %%install)
4 # - contrib split
5 #
6 # Conditional build:
7 %bcond_without  lmsd            # without lmsd daemon
8 #
9 %define         lmsver          1.8
10 %define         lmssubver       0
11 Summary:        LAN Managment System
12 Summary(pl):    System Zarz±dzania Sieci± Lokaln±
13 Name:           lms
14 Version:        %{lmsver}.%{lmssubver}
15 Release:        1
16 License:        GPL v2
17 Group:          Networking/Utilities
18 Source0:        http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5:  afa0680e112dc14c4fbb41d9ec2eedee
20 Source1:        %{name}.conf
21 Source2:        %{name}.init
22 Source3:        %{name}.sysconfig
23 Patch0:         %{name}-PLD.patch
24 Patch1:         %{name}-amd64.patch
25 URL:            http://lms.rulez.pl/
26 %{?with_lmsd:BuildRequires:     libgadu-devel}
27 %{?with_lmsd:BuildRequires:     mysql-devel}
28 %{?with_lmsd:BuildRequires:     postgresql-devel}
29 BuildRequires:  rpmbuild(macros) >= 1.268
30 %{?with_lmsd:Requires(post,preun):      /sbin/chkconfig}
31 Requires:       Smarty >= 2.6.10-4
32 Requires:       php
33 Requires:       php-gd
34 Requires:       php-iconv
35 Requires:       php-pcre
36 Requires:       php-posix
37 Requires:       webapps
38 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
39
40 %define         _sysconfdir     /etc/%{name}
41 %define         _lmsdir         %{_datadir}/%{name}
42 %define         _lmsvar         /var/lib/%{name}
43 %define         _webapps        /etc/webapps
44 %define         _webapp         %{name}
45
46 %description
47 This is a package of applications in PHP and Perl for managing LANs.
48 It's using MySQL or PostgreSQL. The main goal is to get the best
49 service of users at provider's level. The main features in LMS are:
50 - database of users (name, surname, address, telephone number,
51   commentary);
52 - database of computers (IP, MAC);
53 - easy-ridden financial system and funds of network;
54 - different subscriptions;
55 - sending warnings to users;
56 - many levels of access for LMS administrators;
57 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
58   openbsd packet filter configuration files/scripts;
59 - autogenerating almost any kind of config file using templates.
60
61 %description -l pl
62 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
63 aplikacji w PHP i Perlu, u³atwiaj±cych zarz±dzanie sieciami
64 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
65 opartych o bazê danych MySQL lub PostgreSQL. G³ówne za³o¿enia to
66 uzyskanie jako¶ci us³ug oraz obs³ugi u¿ytkowników na poziomie
67 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
68 to:
69 - baza danych u¿ytkowników (imiê, nazwisko, adres, numer telefonu,
70   uwagi);
71 - baza danych komputerów (adres IP, adres MAC);
72 - prowadzenie prostego rachunku operacji finansowych oraz stanu
73   funduszów sieci;
74 - ró¿ne taryfy abonamentowe;
75 - wysy³anie poczt± elektroniczn± upomnieñ do u¿ytkowników;
76 - automatyczne naliczanie op³at miesiêcznych;
77 - ró¿ne poziomy dostêpu do funkcji LMS dla administratorów;
78 - generowanie regu³ i plików konfiguracyjnych dla ipchains, iptables,
79   dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
80 - generowanie praktycznie ka¿dego pliku konfiguracyjnego na podstawie
81   danych w bazie przy u¿yciu prostych szablonów.
82
83 %package scripts
84 Summary:        LAN Managment System - scripts
85 Summary(pl):    LAN Managment System - skrypty
86 Group:          Networking/Utilities
87 Requires:       perl-Config-IniFiles
88 Requires:       perl-DBI
89 Requires:       perl-Net-SMTP-Server
90
91 %description scripts
92 This package contains scripts to integrate LMS with your system,
93 monthly billing, notify users about their debts and cutting off
94 customers. Also you can build probably any kind of config file using
95 lms-mgc.
96
97 %description scripts -l pl
98 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
99 comiesiêcznych op³at, powiadamiania u¿ytkowników o ich zad³u¿eniu oraz
100 ich automagicznego od³±czania. Mo¿esz tak¿e zbudowaæ prawdopodobnie
101 ka¿dy typ pliku konfiguracyjnego przy u¿yciu lms-mgc.
102
103 %package sqlpanel
104 Summary:        LAN Managment System - sqlpanel module
105 Summary(pl):    LAN Managment System - modu³ sqlpanel
106 Group:          Networking/Utilities
107 Requires:       %{name} = %{version}-%{release}
108
109 %description sqlpanel
110 SQL-panel module allows you to execute SQL queries and directly modify
111 data.
112
113 %description sqlpanel -l pl
114 Modu³ 'SQL - panel' daje mo¿liwo¶æ bezpo¶redniego dostêpu do bazy
115 danych poprzez zadawanie zapytañ SQL. Wyniki wy¶wietlane s± w formie
116 tabeli. Ponadto podawany jest czas wykonania zapytania.
117
118 %package user
119 Summary:        LAN Managment System - simple user interface
120 Summary(pl):    LAN Managment System - prosty interfejs u¿ytkownika
121 Group:          Networking/Utilities
122 Requires:       %{name} = %{version}-%{release}
123
124 %description user
125 Simple user interface.
126
127 %description user -l pl
128 Prosty interfejs u¿ytkownika.
129
130 %package lmsd
131 Summary:        LAN Managment System - LMS system backend
132 Summary(pl):    LAN Managment System - backend systemu LMS
133 Group:          Networking/Utilities
134 Requires(post,preun):   /sbin/chkconfig
135 Requires:       rc-scripts
136 Obsoletes:      lms-almsd
137
138 %description lmsd
139 A program to manage the server by creating configuration files based
140 upon LMS database and restarting selected services.
141
142 %description lmsd -l pl
143 Program zarz±dzaj±cy serwerem poprzez tworzenie plików
144 konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
145 wybranych us³ug.
146
147 %prep
148 %setup -q -n %{name}
149 %patch0 -p1
150 %if "%{_lib}" == "lib64"
151 %patch1 -p1
152 %endif
153
154 %build
155 %if %{with lmsd}
156
157 cd daemon
158
159 ./configure --with-mysql
160 %{__make} \
161         CC='%{__cc}' \
162         CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
163 mv lmsd lmsd-mysql
164
165 ./configure --with-pgsql
166 %{__make} lmsd \
167         CC='%{__cc}' \
168         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
169 mv lmsd lmsd-pgsql
170
171 cd ..
172 %endif
173
174 %install
175 rm -rf $RPM_BUILD_ROOT
176 install -d $RPM_BUILD_ROOT%{_sbindir} \
177            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
178            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
179            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
180            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user}
181
182 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
183 install img/* $RPM_BUILD_ROOT%{_lmsdir}/www/img
184 cp -r doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
185 cp -r lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
186 install bin/* $RPM_BUILD_ROOT%{_sbindir}
187
188 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
189
190 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
191 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
192 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
193
194 # sqlpanel
195 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
196 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
197
198 # user
199 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
200
201 # daemon
202 %if %{with lmsd}
203 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
204 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
205 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
206 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
207 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
208 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
209 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
210 %endif
211
212 %clean
213 rm -rf $RPM_BUILD_ROOT
214
215 %post lmsd
216 /sbin/chkconfig --add lmsd
217 %service lmsd restart "lmsd daemon"
218
219 %preun lmsd
220 if [ "$1" = "0" ]; then
221         %service lmsd stop
222         /sbin/chkconfig --del lmsd
223 fi
224
225 %triggerin -- apache1
226 %webapp_register apache %{_webapp}
227
228 %triggerun -- apache1
229 %webapp_unregister apache %{_webapp}
230
231 %triggerin -- apache < 2.2.0, apache-base
232 %webapp_register httpd %{_webapp}
233
234 %triggerun -- apache < 2.2.0, apache-base
235 %webapp_unregister httpd %{_webapp}
236
237 %triggerpostun -- %{name} <= 1.0.4
238 echo "WARNING!!!"
239 echo "_READ_ and upgrade LMS database:"
240 echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
241 echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
242
243 %triggerpostun -- %{name} <= 1.2.0
244 echo "BEWARE:"
245 echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team"
246 echo "You are advised to upgrade it manually"
247 echo
248
249 %triggerpostun -- %{name} < 1.6.6-1.4
250 # nuke very-old config location (this mostly for Ra)
251 if [ -f /etc/httpd/httpd.conf ]; then
252         sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
253 fi
254
255 # migrate from httpd (apache2) config dir
256 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
257         cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
258         mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
259 fi
260
261 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
262 /usr/sbin/webapp register httpd %{_webapp}
263 %service -q httpd reload
264
265 %files
266 %defattr(644,root,root,755)
267 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
268 %dir %{_sysconfdir}
269 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
270 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
271 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
272 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
273 #
274 %dir %{_lmsvar}
275 %attr(770,root,http) %{_lmsvar}/backups
276 %attr(770,root,http) %{_lmsvar}/templates_c
277 %attr(770,root,http) %{_lmsvar}/documents
278 #
279 %dir %{_lmsdir}
280 %{_lmsdir}/www
281 %exclude %{_lmsdir}/www/user
282 %{_lmsdir}/lib
283 %{_lmsdir}/modules
284 %exclude %{_lmsdir}/modules/sql.php
285 %{_lmsdir}/contrib
286 %{_lmsdir}/sample
287 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
288 %{_lmsdir}/templates
289 %exclude %{_lmsdir}/templates/sql.html
290 %exclude %{_lmsdir}/templates/sqlprint.html
291
292 %files scripts
293 %defattr(644,root,root,755)
294 %attr(755,root,root) %{_sbindir}/*
295
296 %files sqlpanel
297 %defattr(644,root,root,755)
298 %{_lmsdir}/modules/sql.php
299 %{_lmsdir}/templates/sql.html
300 %{_lmsdir}/templates/sqlprint.html
301
302 %files user
303 %defattr(644,root,root,755)
304 %{_lmsdir}/www/user
305
306 %if %{with lmsd}
307 %files lmsd
308 %defattr(644,root,root,755)
309 %attr(755,root,root) %{_sbindir}/lmsd-*
310 %dir %{_libdir}/lms
311 %attr(755,root,root) %{_libdir}/lms/*.so
312 %attr(754,root,root) /etc/rc.d/init.d/lmsd
313 # XXX: dir shared with base
314 %dir %{_sysconfdir}
315 %dir %{_sysconfdir}/modules
316 %{_sysconfdir}/modules/*
317 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
318 %endif
This page took 0.073761 seconds and 4 git commands to generate.