]> git.pld-linux.org Git - packages/lms.git/blame - lms.spec
- release 2
[packages/lms.git] / lms.spec
CommitLineData
03d9c849 1# TODO
03d9c849
ER
2# - cosmetics (sort in %%files and %%install)
3# - contrib split
273010b2 4#
5# Conditional build:
a072064c 6%bcond_without lmsd # without lmsd daemon
fe902a4b 7%bcond_with lmsd_debug # with lmsd debugging
953ccfa8 8
aef69fa8 9%define lmsver 1.11
8b501fcf 10%define lmssubver 13
22909130 11Summary: LAN Managment System
2359e96f 12Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
22909130 13Name: lms
273010b2 14Version: %{lmsver}.%{lmssubver}
11f5efda 15Release: 2
ab4f73d4 16License: GPL v2
22909130 17Group: Networking/Utilities
8670b6bc 18Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
8b501fcf 19# Source0-md5: 294899358ae2585a4030580d79a06ee8
273010b2 20Source1: %{name}.conf
21Source2: %{name}.init
22Source3: %{name}.sysconfig
46d522a5 23Patch0: %{name}-PLD.patch
273010b2 24Patch1: %{name}-amd64.patch
a1016496 25Patch2: %{name}-smarty.patch
864db7d0 26URL: http://www.lms.org.pl/
a1016496
ER
27BuildRequires: bison
28BuildRequires: flex
a072064c 29%{?with_lmsd:BuildRequires: libgadu-devel}
30%{?with_lmsd:BuildRequires: mysql-devel}
ac37211c 31BuildRequires: net-snmp-devel
aa4cb6ed 32%{?with_lmsd:BuildRequires: postgresql-devel >= 8.2}
a1016496 33BuildRequires: rpm-pythonprov
495cdf06 34BuildRequires: rpmbuild(macros) >= 1.461
ac37211c 35BuildRequires: yacc
a072064c 36%{?with_lmsd:Requires(post,preun): /sbin/chkconfig}
8670b6bc 37Requires: Smarty >= 2.6.18-2
a335e4ed
ER
38Requires: php(gd)
39Requires: php(iconv)
ddd97afb
SP
40Requires: php(mbstring)
41Requires: php(mysql)
a335e4ed
ER
42Requires: php(pcre)
43Requires: php(posix)
3674e9e4 44Requires: webapps
beed63b5
SP
45Requires: webserver(access)
46Requires: webserver(alias)
a335e4ed 47Requires: webserver(php)
22909130 48BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
273010b2 50%define _sysconfdir /etc/%{name}
51%define _lmsdir %{_datadir}/%{name}
52%define _lmsvar /var/lib/%{name}
495cdf06 53%define _smartyplugindir %{php_data_dir}/Smarty/plugins
3674e9e4
ER
54%define _webapps /etc/webapps
55%define _webapp %{name}
22909130 56
57%description
903f9044 58This is a package of applications in PHP and Perl for managing LANs.
273010b2 59It's using MySQL or PostgreSQL. The main goal is to get the best
888faf4b 60service of users at provider's level. The main features in LMS are:
03d9c849 61- database of users (name, surname, address, telephone number,
57c06cb1 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;
57c06cb1 67- many levels of access for LMS administrators;
2dfa4d4f
ŁJM
68- autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
69 openbsd packet filter configuration files/scripts;
90b91a27 70- autogenerating almost any kind of config file using templates.
22909130 71
62e7c272
JR
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
57c06cb1 75osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
62e7c272
JR
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
888faf4b 78providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
79to:
62e7c272 80- baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
57c06cb1 81 uwagi);
62e7c272 82- baza danych komputerów (adres IP, adres MAC);
57c06cb1 83- prowadzenie prostego rachunku operacji finansowych oraz stanu
62e7c272
JR
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.
22909130 93
c339c515
ŁJM
94%package scripts
95Summary: LAN Managment System - scripts
2359e96f 96Summary(pl.UTF-8): LAN Managment System - skrypty
273010b2 97Group: Networking/Utilities
c339c515
ŁJM
98Requires: perl-Config-IniFiles
99Requires: perl-DBI
1e7c8904 100Requires: perl-Net-SMTP-Server
c339c515
ŁJM
101
102%description scripts
342af906
JB
103This package contains scripts to integrate LMS with your system,
104monthly billing, notify users about their debts and cutting off
03d9c849 105customers. Also you can build probably any kind of config file using
342af906 106lms-mgc.
c339c515 107
62e7c272 108%description scripts -l pl.UTF-8
342af906 109Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
62e7c272
JR
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.
c339c515 113
273010b2 114%package sqlpanel
115Summary: LAN Managment System - sqlpanel module
2359e96f 116Summary(pl.UTF-8): LAN Managment System - moduł sqlpanel
273010b2 117Group: Networking/Utilities
d0c1a05f 118Requires: %{name} = %{version}-%{release}
273010b2 119
120%description sqlpanel
121SQL-panel module allows you to execute SQL queries and directly modify
122data.
123
62e7c272
JR
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
273010b2 127tabeli. Ponadto podawany jest czas wykonania zapytania.
128
129%package user
130Summary: LAN Managment System - simple user interface
2359e96f 131Summary(pl.UTF-8): LAN Managment System - prosty interfejs użytkownika
273010b2 132Group: Networking/Utilities
d0c1a05f 133Requires: %{name} = %{version}-%{release}
273010b2 134
135%description user
136Simple user interface.
137
62e7c272
JR
138%description user -l pl.UTF-8
139Prosty interfejs użytkownika.
273010b2 140
a072064c 141%package lmsd
efde61fc 142Summary: LAN Managment System - LMS system backend
2359e96f 143Summary(pl.UTF-8): LAN Managment System - backend systemu LMS
273010b2 144Group: Networking/Utilities
f856e948
JB
145Requires(post,preun): /sbin/chkconfig
146Requires: rc-scripts
09a5ca2d 147Obsoletes: lms-almsd
273010b2 148
a072064c 149%description lmsd
d0c1a05f
JB
150A program to manage the server by creating configuration files based
151upon LMS database and restarting selected services.
273010b2 152
62e7c272
JR
153%description lmsd -l pl.UTF-8
154Program zarządzający serwerem poprzez tworzenie plików
f856e948 155konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
62e7c272 156wybranych usług.
9603d008 157
5a4bc3c7 158%package userpanel
aa4cb6ed
SP
159Summary: LAN Managment System - Userpanel
160Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika
161Group: Networking/Utilities
162Requires: %{name} = %{version}-%{release}
5a4bc3c7
GP
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
22909130 180%prep
342af906 181%setup -q -n %{name}
3d829255 182%patch0 -p1
c7b20370 183%if "%{_lib}" == "lib64"
273010b2 184%patch1 -p1
185%endif
5e115572 186%patch2 -p1
273010b2 187
a1016496
ER
188mkdir smarty-plugins
189mv \
190lib/Smarty/plugins/block.t.php \
15002aed 191lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
a1016496
ER
192lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
193 smarty-plugins
194rm -rf lib/Smarty
195
953ccfa8
ER
196# cleanup backups after patching
197find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
198
273010b2 199%build
a072064c 200%if %{with lmsd}
273010b2 201
202cd daemon
203
fe902a4b 204./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
273010b2 205%{__make} \
9a9c8fa3
TO
206 CC='%{__cc}' \
207 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
a072064c 208mv lmsd lmsd-mysql
273010b2 209
fe902a4b 210./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
a072064c 211%{__make} lmsd \
273010b2 212 CC='%{__cc}' \
03d9c849 213 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
a072064c 214mv lmsd lmsd-pgsql
273010b2 215
216cd ..
217%endif
22909130 218
219%install
220rm -rf $RPM_BUILD_ROOT
273010b2 221install -d $RPM_BUILD_ROOT%{_sbindir} \
3674e9e4 222 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
273010b2 223 $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
726bd551 224 $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
30950fca 225 $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
a1016496
ER
226 $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
227 $RPM_BUILD_ROOT%{_smartyplugindir}
273010b2 228
229install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
30950fca
KT
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
a1016496
ER
237cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
238cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
273010b2 239install bin/* $RPM_BUILD_ROOT%{_sbindir}
a1016496 240cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
273010b2 241
242install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
3674e9e4
ER
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
273010b2 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
b4677ec9 253cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
273010b2 254
255# daemon
a072064c 256%if %{with lmsd}
257install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
03d9c849 258install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
273010b2 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
22909130 265
5a4bc3c7
GP
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
22909130 283%clean
284rm -rf $RPM_BUILD_ROOT
285
a072064c 286%post lmsd
273010b2 287/sbin/chkconfig --add lmsd
d5c71495 288%service lmsd restart "lmsd daemon"
273010b2 289
a072064c 290%preun lmsd
273010b2 291if [ "$1" = "0" ]; then
d5c71495 292 %service lmsd stop
273010b2 293 /sbin/chkconfig --del lmsd
294fi
295
3d0148ce 296%triggerin -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
297%webapp_register apache %{_webapp}
298
3d0148ce 299%triggerun -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
300%webapp_unregister apache %{_webapp}
301
ed54242f 302%triggerin -- apache < 2.2.0, apache-base
3674e9e4
ER
303%webapp_register httpd %{_webapp}
304
ed54242f 305%triggerun -- apache < 2.2.0, apache-base
3674e9e4
ER
306%webapp_unregister httpd %{_webapp}
307
22909130 308%files
309%defattr(644,root,root,755)
ab4f73d4 310%doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
273010b2 311%dir %{_sysconfdir}
1e7c8904 312%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
3674e9e4
ER
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
a1016496 316%{_smartyplugindir}/*
273010b2 317#
318%dir %{_lmsvar}
319%attr(770,root,http) %{_lmsvar}/backups
320%attr(770,root,http) %{_lmsvar}/templates_c
726bd551 321%attr(770,root,http) %{_lmsvar}/documents
273010b2 322#
22909130 323%dir %{_lmsdir}
273010b2 324%{_lmsdir}/www
325%exclude %{_lmsdir}/www/user
5a4bc3c7 326%exclude %{_lmsdir}/www/userpanel
273010b2 327%{_lmsdir}/lib
328%{_lmsdir}/modules
329%exclude %{_lmsdir}/modules/sql.php
330%{_lmsdir}/contrib
aed1f328
ER
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
5a4bc3c7 339%{_lmsdir}/sample/radius-sql.conf
aed1f328
ER
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
b4677ec9 345%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
aed1f328 346
273010b2 347%{_lmsdir}/templates
348%exclude %{_lmsdir}/templates/sql.html
349%exclude %{_lmsdir}/templates/sqlprint.html
c339c515
ŁJM
350
351%files scripts
342af906 352%defattr(644,root,root,755)
273010b2 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
a072064c 365%if %{with lmsd}
366%files lmsd
273010b2 367%defattr(644,root,root,755)
a072064c 368%attr(755,root,root) %{_sbindir}/lmsd-*
f856e948
JB
369%dir %{_libdir}/lms
370%attr(755,root,root) %{_libdir}/lms/*.so
273010b2 371%attr(754,root,root) /etc/rc.d/init.d/lmsd
f856e948
JB
372# XXX: dir shared with base
373%dir %{_sysconfdir}
374%dir %{_sysconfdir}/modules
375%{_sysconfdir}/modules/*
273010b2 376%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
377%endif
5a4bc3c7
GP
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
a937c8d2 391%attr(770,root,http) %{_lmsvar}/userpanel/templates_c
This page took 0.133439 seconds and 4 git commands to generate.