2 # - cosmetics (sort in %%files and %%install)
6 %bcond_without lmsd # without lmsd daemon
7 %bcond_with lmsd_debug # with lmsd debugging
11 Summary: LAN Managment System
12 Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
14 Version: %{lmsver}.%{lmssubver}
17 Group: Networking/Utilities
18 Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5: 484a02ea6e8d493b7906ea8246492b64
22 Source3: %{name}.sysconfig
23 Patch0: %{name}-PLD.patch
24 Patch1: %{name}-amd64.patch
25 Patch2: %{name}-smarty.patch
26 Patch3: %{name}-sqlqueryfix.patch
27 Patch4: %{name}-language.php.patch
28 URL: http://www.lms.org.pl/
31 %{?with_lmsd:BuildRequires: libgadu-devel}
32 %{?with_lmsd:BuildRequires: mysql-devel}
33 BuildRequires: net-snmp-devel
34 %{?with_lmsd:BuildRequires: postgresql-devel}
35 BuildRequires: rpm-pythonprov
36 BuildRequires: rpmbuild(macros) >= 1.461
38 %{?with_lmsd:Requires(post,preun): /sbin/chkconfig}
39 Requires: Smarty >= 2.6.18-2
42 Requires: php(mbstring)
47 Requires: webserver(access)
48 Requires: webserver(alias)
49 Requires: webserver(php)
50 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52 %define _sysconfdir /etc/%{name}
53 %define _lmsdir %{_datadir}/%{name}
54 %define _lmsvar /var/lib/%{name}
55 %define _smartyplugindir %{php_data_dir}/Smarty/plugins
56 %define _webapps /etc/webapps
57 %define _webapp %{name}
60 This is a package of applications in PHP and Perl for managing LANs.
61 It's using MySQL or PostgreSQL. The main goal is to get the best
62 service of users at provider's level. The main features in LMS are:
63 - database of users (name, surname, address, telephone number,
65 - database of computers (IP, MAC);
66 - easy-ridden financial system and funds of network;
67 - different subscriptions;
68 - sending warnings to users;
69 - many levels of access for LMS administrators;
70 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
71 openbsd packet filter configuration files/scripts;
72 - autogenerating almost any kind of config file using templates.
74 %description -l pl.UTF-8
75 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
76 aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
77 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
78 opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
79 uzyskanie jakości usług oraz obsługi użytkowników na poziomie
80 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
82 - baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
84 - baza danych komputerów (adres IP, adres MAC);
85 - prowadzenie prostego rachunku operacji finansowych oraz stanu
87 - różne taryfy abonamentowe;
88 - wysyłanie pocztą elektroniczną upomnień do użytkowników;
89 - automatyczne naliczanie opłat miesięcznych;
90 - różne poziomy dostępu do funkcji LMS dla administratorów;
91 - generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
92 dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
93 - generowanie praktycznie każdego pliku konfiguracyjnego na podstawie
94 danych w bazie przy użyciu prostych szablonów.
97 Summary: LAN Managment System - scripts
98 Summary(pl.UTF-8): LAN Managment System - skrypty
99 Group: Networking/Utilities
100 Requires: perl-Config-IniFiles
102 Requires: perl-Net-SMTP-Server
105 This package contains scripts to integrate LMS with your system,
106 monthly billing, notify users about their debts and cutting off
107 customers. Also you can build probably any kind of config file using
110 %description scripts -l pl.UTF-8
111 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
112 comiesięcznych opłat, powiadamiania użytkowników o ich zadłużeniu oraz
113 ich automagicznego odłączania. Możesz także zbudować prawdopodobnie
114 każdy typ pliku konfiguracyjnego przy użyciu lms-mgc.
117 Summary: LAN Managment System - sqlpanel module
118 Summary(pl.UTF-8): LAN Managment System - moduł sqlpanel
119 Group: Networking/Utilities
120 Requires: %{name} = %{version}-%{release}
122 %description sqlpanel
123 SQL-panel module allows you to execute SQL queries and directly modify
126 %description sqlpanel -l pl.UTF-8
127 Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
128 danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
129 tabeli. Ponadto podawany jest czas wykonania zapytania.
132 Summary: LAN Managment System - simple user interface
133 Summary(pl.UTF-8): LAN Managment System - prosty interfejs użytkownika
134 Group: Networking/Utilities
135 Requires: %{name} = %{version}-%{release}
138 Simple user interface.
140 %description user -l pl.UTF-8
141 Prosty interfejs użytkownika.
144 Summary: LAN Managment System - LMS system backend
145 Summary(pl.UTF-8): LAN Managment System - backend systemu LMS
146 Group: Networking/Utilities
147 Requires(post,preun): /sbin/chkconfig
152 A program to manage the server by creating configuration files based
153 upon LMS database and restarting selected services.
155 %description lmsd -l pl.UTF-8
156 Program zarządzający serwerem poprzez tworzenie plików
157 konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
161 Summary: LAN Managment System - Userpanel
162 Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika
163 Group: Networking/Utilities
164 Requires: %{name} = %{version}-%{release}
166 %description userpanel
167 Userpanel is automated virtual customer service, based on LMS and
168 using its core features. It enables customers (or it's intended to) to
169 do review their payments, change their personal details or computer
170 properties, modify subscriptions, submit problems, track their
171 requests on Helpdesk and print invoices. It means, it makes a closer
172 contact with their ISP.
174 %description userpanel -l pl.UTF-8
175 Userpanel jest opartą na szkielecie LMS (i ściśle z LMS
176 współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie
177 umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich
178 danych osobowych, edycję właściwości swoich komputerów, zmianę taryf,
179 zgłaszanie błędów oraz awarii do Helpdesku, wydruk faktur oraz
185 %if "%{_lib}" == "lib64"
194 lib/Smarty/plugins/block.t.php \
195 lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
196 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
200 # cleanup backups after patching
201 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
208 ./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
211 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
214 ./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
217 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
224 rm -rf $RPM_BUILD_ROOT
225 install -d $RPM_BUILD_ROOT%{_sbindir} \
226 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
227 $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
228 $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
229 $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
230 $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
231 $RPM_BUILD_ROOT%{_smartyplugindir}
233 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
234 install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
235 install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
236 install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
237 install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
238 install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
239 install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
240 install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
241 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
242 cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
243 install bin/* $RPM_BUILD_ROOT%{_sbindir}
244 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
246 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
248 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
249 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
250 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
253 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
254 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
257 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
261 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
262 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
263 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
264 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
265 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
266 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
267 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
271 install -d $RPM_BUILD_ROOT%{_lmsdir}/userpanel
272 install -d $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules
273 install -d $RPM_BUILD_ROOT%{_lmsvar}/userpanel/templates_c
275 cp -R {userpanel/lib,userpanel/modules,userpanel/templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel
276 cp -R {userpanel/index.php,userpanel/style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
277 ln -s %{_lmsdir}/www/userpanel/style $RPM_BUILD_ROOT%{_lmsdir}/userpanel
278 ln -s %{_lmsvar}/userpanel/templates_c $RPM_BUILD_ROOT%{_lmsdir}/userpanel
280 for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
281 MODULE=$(basename $MODULE)
282 mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
283 ln -s %{_lmsdir}/userpanel/modules/$MODULE/style \
284 $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
288 rm -rf $RPM_BUILD_ROOT
291 /sbin/chkconfig --add lmsd
292 %service lmsd restart "lmsd daemon"
295 if [ "$1" = "0" ]; then
297 /sbin/chkconfig --del lmsd
300 %triggerin -- apache1 < 1.3.37-3, apache1-base
301 %webapp_register apache %{_webapp}
303 %triggerun -- apache1 < 1.3.37-3, apache1-base
304 %webapp_unregister apache %{_webapp}
306 %triggerin -- apache < 2.2.0, apache-base
307 %webapp_register httpd %{_webapp}
309 %triggerun -- apache < 2.2.0, apache-base
310 %webapp_unregister httpd %{_webapp}
313 %defattr(644,root,root,755)
314 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
316 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
317 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
318 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
319 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
320 %{_smartyplugindir}/*
323 %attr(770,root,http) %{_lmsvar}/backups
324 %attr(770,root,http) %{_lmsvar}/templates_c
325 %attr(770,root,http) %{_lmsvar}/documents
329 %exclude %{_lmsdir}/www/user
330 %exclude %{_lmsdir}/www/userpanel
333 %exclude %{_lmsdir}/modules/sql.php
335 %dir %{_lmsdir}/sample
336 %{_lmsdir}/sample/crontab-entry
337 %{_lmsdir}/sample/lms-mgc-netx-sample.ini
338 %{_lmsdir}/sample/lms-mgc.ini
339 %{_lmsdir}/sample/lms.apache.conf
340 %{_lmsdir}/sample/lms.ini
341 %{_lmsdir}/sample/mailtemplate.txt
342 %{_lmsdir}/sample/mailtemplate_en.txt
343 %{_lmsdir}/sample/radius-sql.conf
344 %{_lmsdir}/sample/rc.lmsd
345 %{_lmsdir}/sample/rc.reminder_1st
346 %{_lmsdir}/sample/smstemplate.txt
347 %{_lmsdir}/sample/tekst_1.txt
348 %{_lmsdir}/sample/test.txt
349 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
352 %exclude %{_lmsdir}/templates/sql.html
353 %exclude %{_lmsdir}/templates/sqlprint.html
356 %defattr(644,root,root,755)
357 %attr(755,root,root) %{_sbindir}/*
360 %defattr(644,root,root,755)
361 %{_lmsdir}/modules/sql.php
362 %{_lmsdir}/templates/sql.html
363 %{_lmsdir}/templates/sqlprint.html
366 %defattr(644,root,root,755)
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_sbindir}/lmsd-*
374 %attr(755,root,root) %{_libdir}/lms/*.so
375 %attr(754,root,root) /etc/rc.d/init.d/lmsd
376 # XXX: dir shared with base
378 %dir %{_sysconfdir}/modules
379 %{_sysconfdir}/modules/*
380 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
384 %defattr(644,root,root,755)
385 %dir %{_lmsdir}/userpanel
386 %{_lmsdir}/userpanel/lib
387 %{_lmsdir}/userpanel/modules
388 %{_lmsdir}/userpanel/templates
389 %{_lmsdir}/userpanel/templates_c
390 %{_lmsdir}/userpanel/style
391 %dir %{_lmsdir}/www/userpanel
392 %{_lmsdir}/www/userpanel/style
393 %{_lmsdir}/www/userpanel/index.php
394 %dir %{_lmsvar}/userpanel
395 %{_lmsvar}/userpanel/templates_c