]> git.pld-linux.org Git - packages/lms.git/blame_incremental - lms.spec
- updated to 1.11.13
[packages/lms.git] / lms.spec
... / ...
CommitLineData
1# TODO
2# - cosmetics (sort in %%files and %%install)
3# - contrib split
4#
5# Conditional build:
6%bcond_without lmsd # without lmsd daemon
7%bcond_with lmsd_debug # with lmsd debugging
8
9%define lmsver 1.11
10%define lmssubver 13
11Summary: LAN Managment System
12Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
13Name: lms
14Version: %{lmsver}.%{lmssubver}
15Release: 1
16License: GPL v2
17Group: Networking/Utilities
18Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19# Source0-md5: 294899358ae2585a4030580d79a06ee8
20Source1: %{name}.conf
21Source2: %{name}.init
22Source3: %{name}.sysconfig
23Patch0: %{name}-PLD.patch
24Patch1: %{name}-amd64.patch
25Patch2: %{name}-smarty.patch
26URL: http://www.lms.org.pl/
27BuildRequires: bison
28BuildRequires: flex
29%{?with_lmsd:BuildRequires: libgadu-devel}
30%{?with_lmsd:BuildRequires: mysql-devel}
31BuildRequires: net-snmp-devel
32%{?with_lmsd:BuildRequires: postgresql-devel >= 8.2}
33BuildRequires: rpm-pythonprov
34BuildRequires: rpmbuild(macros) >= 1.461
35BuildRequires: yacc
36%{?with_lmsd:Requires(post,preun): /sbin/chkconfig}
37Requires: Smarty >= 2.6.18-2
38Requires: php(gd)
39Requires: php(iconv)
40Requires: php(mbstring)
41Requires: php(mysql)
42Requires: php(pcre)
43Requires: php(posix)
44Requires: webapps
45Requires: webserver(access)
46Requires: webserver(alias)
47Requires: webserver(php)
48BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
50%define _sysconfdir /etc/%{name}
51%define _lmsdir %{_datadir}/%{name}
52%define _lmsvar /var/lib/%{name}
53%define _smartyplugindir %{php_data_dir}/Smarty/plugins
54%define _webapps /etc/webapps
55%define _webapp %{name}
56
57%description
58This is a package of applications in PHP and Perl for managing LANs.
59It's using MySQL or PostgreSQL. The main goal is to get the best
60service of users at provider's level. The main features in LMS are:
61- database of users (name, surname, address, telephone number,
62 commentary);
63- database of computers (IP, MAC);
64- easy-ridden financial system and funds of network;
65- different subscriptions;
66- sending warnings to users;
67- many levels of access for LMS administrators;
68- autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
69 openbsd packet filter configuration files/scripts;
70- autogenerating almost any kind of config file using templates.
71
72%description -l pl.UTF-8
73"LMS" jest skrótem od "LAN Management System". Jest to zestaw
74aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
75osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
76opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
77uzyskanie jakości usług oraz obsługi użytkowników na poziomie
78providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
79to:
80- baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
81 uwagi);
82- baza danych komputerów (adres IP, adres MAC);
83- prowadzenie prostego rachunku operacji finansowych oraz stanu
84 funduszów sieci;
85- różne taryfy abonamentowe;
86- wysyłanie pocztą elektroniczną upomnień do użytkowników;
87- automatyczne naliczanie opłat miesięcznych;
88- różne poziomy dostępu do funkcji LMS dla administratorów;
89- generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
90 dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
91- generowanie praktycznie każdego pliku konfiguracyjnego na podstawie
92 danych w bazie przy użyciu prostych szablonów.
93
94%package scripts
95Summary: LAN Managment System - scripts
96Summary(pl.UTF-8): LAN Managment System - skrypty
97Group: Networking/Utilities
98Requires: perl-Config-IniFiles
99Requires: perl-DBI
100Requires: perl-Net-SMTP-Server
101
102%description scripts
103This package contains scripts to integrate LMS with your system,
104monthly billing, notify users about their debts and cutting off
105customers. Also you can build probably any kind of config file using
106lms-mgc.
107
108%description scripts -l pl.UTF-8
109Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
110comiesięcznych opłat, powiadamiania użytkowników o ich zadłużeniu oraz
111ich automagicznego odłączania. Możesz także zbudować prawdopodobnie
112każdy typ pliku konfiguracyjnego przy użyciu lms-mgc.
113
114%package sqlpanel
115Summary: LAN Managment System - sqlpanel module
116Summary(pl.UTF-8): LAN Managment System - moduł sqlpanel
117Group: Networking/Utilities
118Requires: %{name} = %{version}-%{release}
119
120%description sqlpanel
121SQL-panel module allows you to execute SQL queries and directly modify
122data.
123
124%description sqlpanel -l pl.UTF-8
125Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
126danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
127tabeli. Ponadto podawany jest czas wykonania zapytania.
128
129%package user
130Summary: LAN Managment System - simple user interface
131Summary(pl.UTF-8): LAN Managment System - prosty interfejs użytkownika
132Group: Networking/Utilities
133Requires: %{name} = %{version}-%{release}
134
135%description user
136Simple user interface.
137
138%description user -l pl.UTF-8
139Prosty interfejs użytkownika.
140
141%package lmsd
142Summary: LAN Managment System - LMS system backend
143Summary(pl.UTF-8): LAN Managment System - backend systemu LMS
144Group: Networking/Utilities
145Requires(post,preun): /sbin/chkconfig
146Requires: rc-scripts
147Obsoletes: lms-almsd
148
149%description lmsd
150A program to manage the server by creating configuration files based
151upon LMS database and restarting selected services.
152
153%description lmsd -l pl.UTF-8
154Program zarządzający serwerem poprzez tworzenie plików
155konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
156wybranych usług.
157
158%package userpanel
159Summary: LAN Managment System - Userpanel
160Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika
161Group: Networking/Utilities
162Requires: %{name} = %{version}-%{release}
163
164%description userpanel
165Userpanel is automated virtual customer service, based on LMS and
166using its core features. It enables customers (or it's intended to) to
167do review their payments, change their personal details or computer
168properties, modify subscriptions, submit problems, track their
169requests on Helpdesk and print invoices. It means, it makes a closer
170contact with their ISP.
171
172%description userpanel -l pl.UTF-8
173Userpanel jest opartą na szkielecie LMS (i ściśle z LMS
174współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie
175umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich
176danych osobowych, edycję właściwości swoich komputerów, zmianę taryf,
177zgłaszanie błędów oraz awarii do Helpdesku, wydruk faktur oraz
178formularza przelewu.
179
180%prep
181%setup -q -n %{name}
182%patch0 -p1
183%if "%{_lib}" == "lib64"
184%patch1 -p1
185%endif
186%patch2 -p1
187
188mkdir smarty-plugins
189mv \
190lib/Smarty/plugins/block.t.php \
191lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
192lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
193 smarty-plugins
194rm -rf lib/Smarty
195
196# cleanup backups after patching
197find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
198
199%build
200%if %{with lmsd}
201
202cd daemon
203
204./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
205%{__make} \
206 CC='%{__cc}' \
207 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
208mv lmsd lmsd-mysql
209
210./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
211%{__make} lmsd \
212 CC='%{__cc}' \
213 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
214mv lmsd lmsd-pgsql
215
216cd ..
217%endif
218
219%install
220rm -rf $RPM_BUILD_ROOT
221install -d $RPM_BUILD_ROOT%{_sbindir} \
222 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
223 $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
224 $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
225 $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
226 $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
227 $RPM_BUILD_ROOT%{_smartyplugindir}
228
229install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
230install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
231install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
232install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
233install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
234install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
235install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
236install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
237cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
238cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
239install bin/* $RPM_BUILD_ROOT%{_sbindir}
240cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
241
242install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
243
244install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
245install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
246install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
247
248# sqlpanel
249install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
250install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
251
252# user
253cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
254
255# daemon
256%if %{with lmsd}
257install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
258install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
259cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
260cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
261cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
262install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
263install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
264%endif
265
266#userpanel
267install -d $RPM_BUILD_ROOT%{_lmsdir}/userpanel
268install -d $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules
269install -d $RPM_BUILD_ROOT%{_lmsvar}/userpanel/templates_c
270
271cp -R {userpanel/lib,userpanel/modules,userpanel/templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel
272cp -R {userpanel/index.php,userpanel/style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
273ln -s %{_lmsdir}/www/userpanel/style $RPM_BUILD_ROOT%{_lmsdir}/userpanel
274ln -s %{_lmsvar}/userpanel/templates_c $RPM_BUILD_ROOT%{_lmsdir}/userpanel
275
276for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
277 MODULE=$(basename $MODULE)
278 mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
279 ln -s %{_lmsdir}/userpanel/modules/$MODULE/style \
280 $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
281done
282
283%clean
284rm -rf $RPM_BUILD_ROOT
285
286%post lmsd
287/sbin/chkconfig --add lmsd
288%service lmsd restart "lmsd daemon"
289
290%preun lmsd
291if [ "$1" = "0" ]; then
292 %service lmsd stop
293 /sbin/chkconfig --del lmsd
294fi
295
296%triggerin -- apache1 < 1.3.37-3, apache1-base
297%webapp_register apache %{_webapp}
298
299%triggerun -- apache1 < 1.3.37-3, apache1-base
300%webapp_unregister apache %{_webapp}
301
302%triggerin -- apache < 2.2.0, apache-base
303%webapp_register httpd %{_webapp}
304
305%triggerun -- apache < 2.2.0, apache-base
306%webapp_unregister httpd %{_webapp}
307
308%files
309%defattr(644,root,root,755)
310%doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
311%dir %{_sysconfdir}
312%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
313%dir %attr(750,root,http) %{_webapps}/%{_webapp}
314%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
315%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
316%{_smartyplugindir}/*
317#
318%dir %{_lmsvar}
319%attr(770,root,http) %{_lmsvar}/backups
320%attr(770,root,http) %{_lmsvar}/templates_c
321%attr(770,root,http) %{_lmsvar}/documents
322#
323%dir %{_lmsdir}
324%{_lmsdir}/www
325%exclude %{_lmsdir}/www/user
326%exclude %{_lmsdir}/www/userpanel
327%{_lmsdir}/lib
328%{_lmsdir}/modules
329%exclude %{_lmsdir}/modules/sql.php
330%{_lmsdir}/contrib
331%dir %{_lmsdir}/sample
332%{_lmsdir}/sample/crontab-entry
333%{_lmsdir}/sample/lms-mgc-netx-sample.ini
334%{_lmsdir}/sample/lms-mgc.ini
335%{_lmsdir}/sample/lms.apache.conf
336%{_lmsdir}/sample/lms.ini
337%{_lmsdir}/sample/mailtemplate.txt
338%{_lmsdir}/sample/mailtemplate_en.txt
339%{_lmsdir}/sample/radius-sql.conf
340%{_lmsdir}/sample/rc.lmsd
341%{_lmsdir}/sample/rc.reminder_1st
342%{_lmsdir}/sample/smstemplate.txt
343%{_lmsdir}/sample/tekst_1.txt
344%{_lmsdir}/sample/test.txt
345%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
346
347%{_lmsdir}/templates
348%exclude %{_lmsdir}/templates/sql.html
349%exclude %{_lmsdir}/templates/sqlprint.html
350
351%files scripts
352%defattr(644,root,root,755)
353%attr(755,root,root) %{_sbindir}/*
354
355%files sqlpanel
356%defattr(644,root,root,755)
357%{_lmsdir}/modules/sql.php
358%{_lmsdir}/templates/sql.html
359%{_lmsdir}/templates/sqlprint.html
360
361%files user
362%defattr(644,root,root,755)
363%{_lmsdir}/www/user
364
365%if %{with lmsd}
366%files lmsd
367%defattr(644,root,root,755)
368%attr(755,root,root) %{_sbindir}/lmsd-*
369%dir %{_libdir}/lms
370%attr(755,root,root) %{_libdir}/lms/*.so
371%attr(754,root,root) /etc/rc.d/init.d/lmsd
372# XXX: dir shared with base
373%dir %{_sysconfdir}
374%dir %{_sysconfdir}/modules
375%{_sysconfdir}/modules/*
376%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
377%endif
378
379%files userpanel
380%defattr(644,root,root,755)
381%dir %{_lmsdir}/userpanel
382%{_lmsdir}/userpanel/lib
383%{_lmsdir}/userpanel/modules
384%{_lmsdir}/userpanel/templates
385%{_lmsdir}/userpanel/templates_c
386%{_lmsdir}/userpanel/style
387%dir %{_lmsdir}/www/userpanel
388%{_lmsdir}/www/userpanel/style
389%{_lmsdir}/www/userpanel/index.php
390%dir %{_lmsvar}/userpanel
391%attr(770,root,http) %{_lmsvar}/userpanel/templates_c
This page took 0.52861 seconds and 4 git commands to generate.