]> git.pld-linux.org Git - packages/lms.git/blame - lms.spec
- converted to UTF-8
[packages/lms.git] / lms.spec
CommitLineData
03d9c849 1# TODO
3674e9e4 2# - test build on amd64 and check /usr/lib64 patch
03d9c849
ER
3# - cosmetics (sort in %%files and %%install)
4# - contrib split
273010b2 5#
6# Conditional build:
a072064c 7%bcond_without lmsd # without lmsd daemon
273010b2 8#
30950fca
KT
9%define lmsver 1.9
10%define lmssubver 3
22909130 11Summary: LAN Managment System
62e7c272 12Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
22909130 13Name: lms
273010b2 14Version: %{lmsver}.%{lmssubver}
a335e4ed 15Release: 2
ab4f73d4 16License: GPL v2
22909130 17Group: Networking/Utilities
273010b2 18Source0: http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
30950fca 19# Source0-md5: c9560bf98462498a3bf4923e27560caf
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
342af906 26URL: http://lms.rulez.pl/
a1016496
ER
27BuildRequires: bison
28BuildRequires: flex
a072064c 29%{?with_lmsd:BuildRequires: libgadu-devel}
30%{?with_lmsd:BuildRequires: mysql-devel}
31%{?with_lmsd:BuildRequires: postgresql-devel}
a1016496 32BuildRequires: rpm-pythonprov
d5c71495 33BuildRequires: rpmbuild(macros) >= 1.268
a072064c 34%{?with_lmsd:Requires(post,preun): /sbin/chkconfig}
a1016496 35Requires: Smarty >= 2.6.10-4
a335e4ed
ER
36Requires: php(gd)
37Requires: php(iconv)
38Requires: php(pcre)
39Requires: php(posix)
3674e9e4 40Requires: webapps
a335e4ed 41Requires: webserver(php)
22909130 42BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
273010b2 44%define _sysconfdir /etc/%{name}
45%define _lmsdir %{_datadir}/%{name}
46%define _lmsvar /var/lib/%{name}
a1016496 47%define _smartyplugindir /usr/share/php/Smarty/plugins
3674e9e4
ER
48%define _webapps /etc/webapps
49%define _webapp %{name}
22909130 50
51%description
903f9044 52This is a package of applications in PHP and Perl for managing LANs.
273010b2 53It's using MySQL or PostgreSQL. The main goal is to get the best
888faf4b 54service of users at provider's level. The main features in LMS are:
03d9c849 55- database of users (name, surname, address, telephone number,
57c06cb1 56 commentary);
57- database of computers (IP, MAC);
58- easy-ridden financial system and funds of network;
59- different subscriptions;
60- sending warnings to users;
57c06cb1 61- many levels of access for LMS administrators;
2dfa4d4f
ŁJM
62- autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
63 openbsd packet filter configuration files/scripts;
90b91a27 64- autogenerating almost any kind of config file using templates.
22909130 65
62e7c272
JR
66%description -l pl.UTF-8
67"LMS" jest skrótem od "LAN Management System". Jest to zestaw
68aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
57c06cb1 69osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
62e7c272
JR
70opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
71uzyskanie jakości usług oraz obsługi użytkowników na poziomie
888faf4b 72providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
73to:
62e7c272 74- baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
57c06cb1 75 uwagi);
62e7c272 76- baza danych komputerów (adres IP, adres MAC);
57c06cb1 77- prowadzenie prostego rachunku operacji finansowych oraz stanu
62e7c272
JR
78 funduszów sieci;
79- różne taryfy abonamentowe;
80- wysyłanie pocztą elektroniczną upomnień do użytkowników;
81- automatyczne naliczanie opłat miesięcznych;
82- różne poziomy dostępu do funkcji LMS dla administratorów;
83- generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
84 dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
85- generowanie praktycznie każdego pliku konfiguracyjnego na podstawie
86 danych w bazie przy użyciu prostych szablonów.
22909130 87
c339c515
ŁJM
88%package scripts
89Summary: LAN Managment System - scripts
62e7c272 90Summary(pl.UTF-8): LAN Managment System - skrypty
273010b2 91Group: Networking/Utilities
c339c515
ŁJM
92Requires: perl-Config-IniFiles
93Requires: perl-DBI
1e7c8904 94Requires: perl-Net-SMTP-Server
c339c515
ŁJM
95
96%description scripts
342af906
JB
97This package contains scripts to integrate LMS with your system,
98monthly billing, notify users about their debts and cutting off
03d9c849 99customers. Also you can build probably any kind of config file using
342af906 100lms-mgc.
c339c515 101
62e7c272 102%description scripts -l pl.UTF-8
342af906 103Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
62e7c272
JR
104comiesięcznych opłat, powiadamiania użytkowników o ich zadłużeniu oraz
105ich automagicznego odłączania. Możesz także zbudować prawdopodobnie
106każdy typ pliku konfiguracyjnego przy użyciu lms-mgc.
c339c515 107
273010b2 108%package sqlpanel
109Summary: LAN Managment System - sqlpanel module
62e7c272 110Summary(pl.UTF-8): LAN Managment System - moduł sqlpanel
273010b2 111Group: Networking/Utilities
d0c1a05f 112Requires: %{name} = %{version}-%{release}
273010b2 113
114%description sqlpanel
115SQL-panel module allows you to execute SQL queries and directly modify
116data.
117
62e7c272
JR
118%description sqlpanel -l pl.UTF-8
119Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
120danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
273010b2 121tabeli. Ponadto podawany jest czas wykonania zapytania.
122
123%package user
124Summary: LAN Managment System - simple user interface
62e7c272 125Summary(pl.UTF-8): LAN Managment System - prosty interfejs użytkownika
273010b2 126Group: Networking/Utilities
d0c1a05f 127Requires: %{name} = %{version}-%{release}
273010b2 128
129%description user
130Simple user interface.
131
62e7c272
JR
132%description user -l pl.UTF-8
133Prosty interfejs użytkownika.
273010b2 134
a072064c 135%package lmsd
efde61fc 136Summary: LAN Managment System - LMS system backend
62e7c272 137Summary(pl.UTF-8): LAN Managment System - backend systemu LMS
273010b2 138Group: Networking/Utilities
f856e948
JB
139Requires(post,preun): /sbin/chkconfig
140Requires: rc-scripts
09a5ca2d 141Obsoletes: lms-almsd
273010b2 142
a072064c 143%description lmsd
d0c1a05f
JB
144A program to manage the server by creating configuration files based
145upon LMS database and restarting selected services.
273010b2 146
62e7c272
JR
147%description lmsd -l pl.UTF-8
148Program zarządzający serwerem poprzez tworzenie plików
f856e948 149konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
62e7c272 150wybranych usług.
9603d008 151
22909130 152%prep
342af906 153%setup -q -n %{name}
3d829255 154%patch0 -p1
c7b20370 155%if "%{_lib}" == "lib64"
273010b2 156%patch1 -p1
157%endif
158
a1016496
ER
159mkdir smarty-plugins
160mv \
161lib/Smarty/plugins/block.t.php \
162lib/Smarty/plugins/function.{bankaccount,handle,number,size,sum,tip}.php \
163lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
164 smarty-plugins
165rm -rf lib/Smarty
166
273010b2 167%build
a072064c 168%if %{with lmsd}
273010b2 169
170cd daemon
171
172./configure --with-mysql
173%{__make} \
9a9c8fa3
TO
174 CC='%{__cc}' \
175 CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
a072064c 176mv lmsd lmsd-mysql
273010b2 177
178./configure --with-pgsql
a072064c 179%{__make} lmsd \
273010b2 180 CC='%{__cc}' \
03d9c849 181 CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
a072064c 182mv lmsd lmsd-pgsql
273010b2 183
184cd ..
185%endif
22909130 186
187%install
188rm -rf $RPM_BUILD_ROOT
273010b2 189install -d $RPM_BUILD_ROOT%{_sbindir} \
3674e9e4 190 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
273010b2 191 $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
726bd551 192 $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
30950fca 193 $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
a1016496
ER
194 $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
195 $RPM_BUILD_ROOT%{_smartyplugindir}
273010b2 196
197install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
30950fca
KT
198install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
199install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
200install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
201install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
202install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
203install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
204install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
a1016496
ER
205cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
206cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
273010b2 207install bin/* $RPM_BUILD_ROOT%{_sbindir}
a1016496 208cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
273010b2 209
210install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
3674e9e4
ER
211
212install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
213install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
214install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
273010b2 215
216# sqlpanel
217install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
218install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
219
220# user
b4677ec9 221cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
273010b2 222
223# daemon
a072064c 224%if %{with lmsd}
225install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
03d9c849 226install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
273010b2 227cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
228cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
229cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
230install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
231install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
232%endif
22909130 233
234%clean
235rm -rf $RPM_BUILD_ROOT
236
a072064c 237%post lmsd
273010b2 238/sbin/chkconfig --add lmsd
d5c71495 239%service lmsd restart "lmsd daemon"
273010b2 240
a072064c 241%preun lmsd
273010b2 242if [ "$1" = "0" ]; then
d5c71495 243 %service lmsd stop
273010b2 244 /sbin/chkconfig --del lmsd
245fi
246
3d0148ce 247%triggerin -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
248%webapp_register apache %{_webapp}
249
3d0148ce 250%triggerun -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
251%webapp_unregister apache %{_webapp}
252
ed54242f 253%triggerin -- apache < 2.2.0, apache-base
3674e9e4
ER
254%webapp_register httpd %{_webapp}
255
ed54242f 256%triggerun -- apache < 2.2.0, apache-base
3674e9e4
ER
257%webapp_unregister httpd %{_webapp}
258
273010b2 259%triggerpostun -- %{name} <= 1.0.4
260echo "WARNING!!!"
261echo "_READ_ and upgrade LMS database:"
262echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
263echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
3d829255 264
265%triggerpostun -- %{name} <= 1.2.0
1e7c8904
ER
266echo "BEWARE:"
267echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team"
268echo "You are advised to upgrade it manually"
269echo
273010b2 270
3674e9e4
ER
271%triggerpostun -- %{name} < 1.6.6-1.4
272# nuke very-old config location (this mostly for Ra)
273if [ -f /etc/httpd/httpd.conf ]; then
274 sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
275fi
276
277# migrate from httpd (apache2) config dir
278if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
279 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
280 mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
281fi
282
283rm -f /etc/httpd/httpd.conf/99_%{name}.conf
284/usr/sbin/webapp register httpd %{_webapp}
285%service -q httpd reload
286
22909130 287%files
288%defattr(644,root,root,755)
ab4f73d4 289%doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
273010b2 290%dir %{_sysconfdir}
1e7c8904 291%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
3674e9e4
ER
292%dir %attr(750,root,http) %{_webapps}/%{_webapp}
293%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
294%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
a1016496 295%{_smartyplugindir}/*
273010b2 296#
297%dir %{_lmsvar}
298%attr(770,root,http) %{_lmsvar}/backups
299%attr(770,root,http) %{_lmsvar}/templates_c
726bd551 300%attr(770,root,http) %{_lmsvar}/documents
273010b2 301#
22909130 302%dir %{_lmsdir}
273010b2 303%{_lmsdir}/www
304%exclude %{_lmsdir}/www/user
305%{_lmsdir}/lib
306%{_lmsdir}/modules
307%exclude %{_lmsdir}/modules/sql.php
308%{_lmsdir}/contrib
aed1f328
ER
309%dir %{_lmsdir}/sample
310%{_lmsdir}/sample/crontab-entry
311%{_lmsdir}/sample/lms-mgc-netx-sample.ini
312%{_lmsdir}/sample/lms-mgc.ini
313%{_lmsdir}/sample/lms.apache.conf
314%{_lmsdir}/sample/lms.ini
315%{_lmsdir}/sample/mailtemplate.txt
316%{_lmsdir}/sample/mailtemplate_en.txt
317%{_lmsdir}/sample/rc.lmsd
318%{_lmsdir}/sample/rc.reminder_1st
319%{_lmsdir}/sample/smstemplate.txt
320%{_lmsdir}/sample/tekst_1.txt
321%{_lmsdir}/sample/test.txt
b4677ec9 322%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
aed1f328 323
273010b2 324%{_lmsdir}/templates
325%exclude %{_lmsdir}/templates/sql.html
326%exclude %{_lmsdir}/templates/sqlprint.html
c339c515
ŁJM
327
328%files scripts
342af906 329%defattr(644,root,root,755)
273010b2 330%attr(755,root,root) %{_sbindir}/*
331
332%files sqlpanel
333%defattr(644,root,root,755)
334%{_lmsdir}/modules/sql.php
335%{_lmsdir}/templates/sql.html
336%{_lmsdir}/templates/sqlprint.html
337
338%files user
339%defattr(644,root,root,755)
340%{_lmsdir}/www/user
341
a072064c 342%if %{with lmsd}
343%files lmsd
273010b2 344%defattr(644,root,root,755)
a072064c 345%attr(755,root,root) %{_sbindir}/lmsd-*
f856e948
JB
346%dir %{_libdir}/lms
347%attr(755,root,root) %{_libdir}/lms/*.so
273010b2 348%attr(754,root,root) /etc/rc.d/init.d/lmsd
f856e948
JB
349# XXX: dir shared with base
350%dir %{_sysconfdir}
351%dir %{_sysconfdir}/modules
352%{_sysconfdir}/modules/*
273010b2 353%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
354%endif
This page took 0.183397 seconds and 4 git commands to generate.