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