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