2 # - package documents/templates/default
3 # - cosmetics (sort in %%files and %%install)
4 # - consider contrib and samples (re)packaging
7 %bcond_without lmsd # without lmsd daemon
8 %bcond_with lmsd_debug # with lmsd debugging
12 Summary: LAN Managment System
13 Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
15 Version: %{lmsver}.%{lmssubver}
18 Group: Networking/Utilities
19 Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
20 # Source0-md5: 294899358ae2585a4030580d79a06ee8
23 Source3: %{name}.sysconfig
24 Patch0: %{name}-PLD.patch
25 Patch1: %{name}-amd64.patch
26 Patch2: %{name}-smarty.patch
27 URL: http://www.lms.org.pl/
30 %{?with_lmsd:BuildRequires: libgadu-devel}
31 %{?with_lmsd:BuildRequires: mysql-devel}
32 BuildRequires: net-snmp-devel
33 %{?with_lmsd:BuildRequires: postgresql-devel >= 8.2}
34 BuildRequires: rpm-pythonprov
35 BuildRequires: rpmbuild(macros) >= 1.461
37 %{?with_lmsd:Requires(post,preun): /sbin/chkconfig}
38 Requires: Smarty >= 2.6.18-2
41 Requires: php(mbstring)
46 Requires: webserver(access)
47 Requires: webserver(alias)
48 Requires: webserver(php)
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _sysconfdir /etc/%{name}
52 %define _webapps /etc/webapps
53 %define _webapp %{name}
54 %define _smartyplugindir %{php_data_dir}/Smarty/plugins
55 %define _lmsdir %{_datadir}/%{name}
56 %define _lmsvar /var/lib/%{name}
59 This is a package of applications in PHP and Perl for managing LANs.
60 It's using MySQL or PostgreSQL. The main goal is to get the best
61 service of users at provider's level. The main features in LMS are:
62 - database of users (name, surname, address, telephone number,
64 - database of computers (IP, MAC),
65 - easy-ridden financial system and funds of network,
66 - different subscriptions,
67 - sending warnings to users,
68 - many levels of access for LMS administrators,
69 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
70 openbsd packet filter configuration files/scripts,
71 - autogenerating almost any kind of config file using templates.
73 %description -l pl.UTF-8
74 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
75 aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
76 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
77 opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
78 uzyskanie jakości usług oraz obsługi użytkowników na poziomie
79 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
81 - baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
83 - baza danych komputerów (adres IP, adres MAC),
84 - prowadzenie prostego rachunku operacji finansowych oraz stanu
86 - różne taryfy abonamentowe,
87 - wysyłanie pocztą elektroniczną upomnień do użytkowników,
88 - automatyczne naliczanie opłat miesięcznych,
89 - różne poziomy dostępu do funkcji LMS dla administratorów,
90 - generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
91 dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers,
92 - generowanie praktycznie każdego pliku konfiguracyjnego na podstawie
93 danych w bazie przy użyciu prostych szablonów.
96 Summary: LAN Managment System - scripts
97 Summary(pl.UTF-8): LAN Managment System - skrypty
98 Group: Networking/Utilities
99 Requires: perl-Config-IniFiles
101 Requires: perl-Net-SMTP-Server
104 This package contains scripts to integrate LMS with your system,
105 monthly billing, notify users about their debts and cutting off
106 customers. Also you can build probably any kind of config file using
109 %description scripts -l pl.UTF-8
110 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
111 comiesięcznych opłat, powiadamiania użytkowników o ich zadłużeniu oraz
112 ich automagicznego odłączania. Możesz także zbudować prawdopodobnie
113 każdy typ pliku konfiguracyjnego przy użyciu lms-mgc.
116 Summary: LAN Managment System - sqlpanel module
117 Summary(pl.UTF-8): LAN Managment System - moduł sqlpanel
118 Group: Networking/Utilities
119 Requires: %{name} = %{version}-%{release}
121 %description sqlpanel
122 SQL-panel module allows you to execute SQL queries and directly modify
125 %description sqlpanel -l pl.UTF-8
126 Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
127 danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
128 tabeli. Ponadto podawany jest czas wykonania zapytania.
131 Summary: LAN Managment System - simple user interface
132 Summary(pl.UTF-8): LAN Managment System - prosty interfejs użytkownika
133 Group: Networking/Utilities
134 Requires: %{name} = %{version}-%{release}
137 Simple user interface.
139 %description user -l pl.UTF-8
140 Prosty interfejs użytkownika.
143 Summary: LAN Managment System - LMS system backend
144 Summary(pl.UTF-8): LAN Managment System - backend systemu LMS
145 Group: Networking/Utilities
146 Requires(post,preun): /sbin/chkconfig
151 A program to manage the server by creating configuration files based
152 upon LMS database and restarting selected services.
154 %description lmsd -l pl.UTF-8
155 Program zarządzający serwerem poprzez tworzenie plików
156 konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
160 Summary: LAN Managment System - Userpanel
161 Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika
162 Group: Networking/Utilities
163 Requires: %{name} = %{version}-%{release}
165 %description userpanel
166 Userpanel is automated virtual customer service, based on LMS and
167 using its core features. It enables customers (or it's intended to) to
168 do review their payments, change their personal details or computer
169 properties, modify subscriptions, submit problems, track their
170 requests on Helpdesk and print invoices. It means, it makes a closer
171 contact with their ISP.
173 %description userpanel -l pl.UTF-8
174 Userpanel jest opartą na szkielecie LMS (i ściśle z LMS
175 współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie
176 umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich
177 danych osobowych, edycję właściwości swoich komputerów, zmianę taryf,
178 zgłaszanie błędów oraz awarii do Helpdesku, wydruk faktur oraz
184 %if "%{_lib}" == "lib64"
191 lib/Smarty/plugins/block.t.php \
192 lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
193 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
195 %{__rm} -r lib/Smarty
197 # cleanup backups after patching
198 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 %{__rm}
204 ./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
207 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
210 ./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
213 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
216 CFLAGS="%{rpmcflags}" %{__make} -j1 -C modules/parser \
223 rm -rf $RPM_BUILD_ROOT
224 install -d $RPM_BUILD_ROOT{%{_sbindir},%{_libdir}/%{name},%{_webapps}/%{_webapp}} \
225 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,lms/modules} \
226 $RPM_BUILD_ROOT%{_smartyplugindir} \
227 $RPM_BUILD_ROOT%{_lmsdir}/{lms,userpanel,www/{doc,user,userpanel/modules}} \
228 $RPM_BUILD_ROOT%{_lmsvar}/{backups,documents,templates_c,userpanel/templates_c}
230 cp -a *.php img $RPM_BUILD_ROOT%{_lmsdir}/www
231 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
232 cp -a contrib lib modules sample templates $RPM_BUILD_ROOT%{_lmsdir}
233 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
234 cp -a bin/* $RPM_BUILD_ROOT%{_sbindir}
236 %{__mv} $RPM_BUILD_ROOT{%{_lmsdir}/sample/%{name}.ini,%{_sysconfdir}}
238 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
239 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
242 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/sql*.php,modules}
243 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/*.html,templates}
246 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/customer/*,www/user}
250 install daemon/lmsd-*sql $RPM_BUILD_ROOT%{_sbindir}
251 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
252 for module in dns ggnotify notify; do
253 cp -a daemon/modules/$module/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/$module
255 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
256 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
260 cp -a userpanel/{lib,modules,templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel
261 cp -a userpanel/{index.php,style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
262 ln -s %{_lmsdir}/www/userpanel/style $RPM_BUILD_ROOT%{_lmsdir}/userpanel
263 ln -s %{_lmsvar}/userpanel/templates_c $RPM_BUILD_ROOT%{_lmsdir}/userpanel
265 for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
266 MODULE=$(basename $MODULE)
267 mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
268 ln -s %{_lmsdir}/userpanel/modules/$MODULE/style \
269 $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
273 rm -rf $RPM_BUILD_ROOT
276 /sbin/chkconfig --add lmsd
277 %service lmsd restart "lmsd daemon"
280 if [ "$1" = "0" ]; then
282 /sbin/chkconfig --del lmsd
285 %triggerin -- apache1 < 1.3.37-3, apache1-base
286 %webapp_register apache %{_webapp}
288 %triggerun -- apache1 < 1.3.37-3, apache1-base
289 %webapp_unregister apache %{_webapp}
291 %triggerin -- apache < 2.2.0, apache-base
292 %webapp_register httpd %{_webapp}
294 %triggerun -- apache < 2.2.0, apache-base
295 %webapp_unregister httpd %{_webapp}
298 %defattr(644,root,root,755)
299 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
301 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
302 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
303 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
304 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
305 %{_smartyplugindir}/*.php
308 %attr(770,root,http) %{_lmsvar}/backups
309 %attr(770,root,http) %{_lmsvar}/documents
310 %attr(770,root,http) %{_lmsvar}/templates_c
315 %exclude %{_lmsdir}/modules/sql.php
316 %exclude %{_lmsdir}/modules/sqllang.php
318 %exclude %{_lmsdir}/templates/sql.html
319 %exclude %{_lmsdir}/templates/sqlprint.html
321 %exclude %{_lmsdir}/www/user
322 %exclude %{_lmsdir}/www/userpanel
324 %dir %{_lmsdir}/sample
325 %{_lmsdir}/sample/crontab-entry
326 %{_lmsdir}/sample/lms-mgc*.ini
327 %{_lmsdir}/sample/*.conf
328 %{_lmsdir}/sample/*.txt
329 %{_lmsdir}/sample/rc.lmsd
330 %{_lmsdir}/sample/rc.reminder_1st
331 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
334 %defattr(644,root,root,755)
335 %attr(755,root,root) %{_sbindir}/lms-*
336 %attr(755,root,root) %{_sbindir}/lmsd-*sql
339 %defattr(644,root,root,755)
340 %{_lmsdir}/modules/sql.php
341 %{_lmsdir}/modules/sqllang.php
342 %{_lmsdir}/templates/sql.html
343 %{_lmsdir}/templates/sqlprint.html
346 %defattr(644,root,root,755)
351 %defattr(644,root,root,755)
352 %attr(755,root,root) %{_sbindir}/lmsd-*
354 %attr(755,root,root) %{_libdir}/lms/*.so
355 %attr(754,root,root) /etc/rc.d/init.d/lmsd
356 # XXX: dir shared with base
358 %dir %{_sysconfdir}/modules
359 %{_sysconfdir}/modules/*
360 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
364 %defattr(644,root,root,755)
365 %dir %{_lmsdir}/userpanel
366 %{_lmsdir}/userpanel/lib
367 %{_lmsdir}/userpanel/modules
368 %{_lmsdir}/userpanel/templates
369 %{_lmsdir}/userpanel/templates_c
370 %{_lmsdir}/userpanel/style
371 %dir %{_lmsdir}/www/userpanel
372 %{_lmsdir}/www/userpanel/style
373 %{_lmsdir}/www/userpanel/index.php
374 %dir %{_lmsvar}/userpanel
375 %attr(770,root,http) %{_lmsvar}/userpanel/templates_c