2 # - test build on amd64 and check /usr/lib64 patch
3 # - cosmetics (sort in %%files and %%install)
7 %bcond_without lmsd # without lmsd daemon
11 Summary: LAN Managment System
12 Summary(pl): System Zarz±dzania Sieci± Lokaln±
14 Version: %{lmsver}.%{lmssubver}
17 Group: Networking/Utilities
18 Source0: http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5: afa0680e112dc14c4fbb41d9ec2eedee
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
38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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}
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,
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.
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
69 - baza danych u¿ytkowników (imiê, nazwisko, adres, numer telefonu,
71 - baza danych komputerów (adres IP, adres MAC);
72 - prowadzenie prostego rachunku operacji finansowych oraz stanu
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.
84 Summary: LAN Managment System - scripts
85 Summary(pl): LAN Managment System - skrypty
86 Group: Networking/Utilities
87 Requires: perl-Config-IniFiles
89 Requires: perl-Net-SMTP-Server
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
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.
104 Summary: LAN Managment System - sqlpanel module
105 Summary(pl): LAN Managment System - modu³ sqlpanel
106 Group: Networking/Utilities
107 Requires: %{name} = %{version}-%{release}
109 %description sqlpanel
110 SQL-panel module allows you to execute SQL queries and directly modify
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.
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}
125 Simple user interface.
127 %description user -l pl
128 Prosty interfejs u¿ytkownika.
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
139 A program to manage the server by creating configuration files based
140 upon LMS database and restarting selected services.
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
150 %if "%{_lib}" == "lib64"
159 ./configure --with-mysql
162 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
165 ./configure --with-pgsql
168 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
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}
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}
188 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
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
195 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
196 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
199 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
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}
213 rm -rf $RPM_BUILD_ROOT
216 /sbin/chkconfig --add lmsd
217 %service lmsd restart "lmsd daemon"
220 if [ "$1" = "0" ]; then
222 /sbin/chkconfig --del lmsd
225 %triggerin -- apache1
226 %webapp_register apache %{_webapp}
228 %triggerun -- apache1
229 %webapp_unregister apache %{_webapp}
231 %triggerin -- apache < 2.2.0, apache-base
232 %webapp_register httpd %{_webapp}
234 %triggerun -- apache < 2.2.0, apache-base
235 %webapp_unregister httpd %{_webapp}
237 %triggerpostun -- %{name} <= 1.0.4
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"
243 %triggerpostun -- %{name} <= 1.2.0
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"
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
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
261 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
262 /usr/sbin/webapp register httpd %{_webapp}
263 %service -q httpd reload
266 %defattr(644,root,root,755)
267 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
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
275 %attr(770,root,http) %{_lmsvar}/backups
276 %attr(770,root,http) %{_lmsvar}/templates_c
277 %attr(770,root,http) %{_lmsvar}/documents
281 %exclude %{_lmsdir}/www/user
284 %exclude %{_lmsdir}/modules/sql.php
287 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
289 %exclude %{_lmsdir}/templates/sql.html
290 %exclude %{_lmsdir}/templates/sqlprint.html
293 %defattr(644,root,root,755)
294 %attr(755,root,root) %{_sbindir}/*
297 %defattr(644,root,root,755)
298 %{_lmsdir}/modules/sql.php
299 %{_lmsdir}/templates/sql.html
300 %{_lmsdir}/templates/sqlprint.html
303 %defattr(644,root,root,755)
308 %defattr(644,root,root,755)
309 %attr(755,root,root) %{_sbindir}/lmsd-*
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
315 %dir %{_sysconfdir}/modules
316 %{_sysconfdir}/modules/*
317 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}