]> git.pld-linux.org Git - packages/lms.git/blame - lms.spec
- make -j1 parser module
[packages/lms.git] / lms.spec
CommitLineData
64351d7b
TP
1# TODO:
2# - package documents/templates/default
03d9c849 3# - cosmetics (sort in %%files and %%install)
64351d7b 4# - consider contrib and samples (re)packaging
273010b2 5#
6# Conditional build:
a072064c 7%bcond_without lmsd # without lmsd daemon
fe902a4b 8%bcond_with lmsd_debug # with lmsd debugging
953ccfa8 9
aef69fa8 10%define lmsver 1.11
8b501fcf 11%define lmssubver 13
22909130 12Summary: LAN Managment System
2359e96f 13Summary(pl.UTF-8): System Zarządzania Siecią Lokalną
22909130 14Name: lms
273010b2 15Version: %{lmsver}.%{lmssubver}
64351d7b 16Release: 3
ab4f73d4 17License: GPL v2
22909130 18Group: Networking/Utilities
8670b6bc 19Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
8b501fcf 20# Source0-md5: 294899358ae2585a4030580d79a06ee8
273010b2 21Source1: %{name}.conf
22Source2: %{name}.init
23Source3: %{name}.sysconfig
46d522a5 24Patch0: %{name}-PLD.patch
273010b2 25Patch1: %{name}-amd64.patch
a1016496 26Patch2: %{name}-smarty.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
aa4cb6ed 33%{?with_lmsd:BuildRequires: postgresql-devel >= 8.2}
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}
3674e9e4
ER
52%define _webapps /etc/webapps
53%define _webapp %{name}
64351d7b
TP
54%define _smartyplugindir %{php_data_dir}/Smarty/plugins
55%define _lmsdir %{_datadir}/%{name}
56%define _lmsvar /var/lib/%{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,
64351d7b
TP
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,
68- many levels of access for LMS administrators,
2dfa4d4f 69- autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
64351d7b 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,
64351d7b
TP
82 uwagi),
83- baza danych komputerów (adres IP, adres MAC),
57c06cb1 84- prowadzenie prostego rachunku operacji finansowych oraz stanu
64351d7b
TP
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,
62e7c272 90- generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
64351d7b 91 dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers,
62e7c272
JR
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 159%package userpanel
aa4cb6ed
SP
160Summary: LAN Managment System - Userpanel
161Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika
162Group: Networking/Utilities
163Requires: %{name} = %{version}-%{release}
5a4bc3c7
GP
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
273010b2 188
a1016496 189mkdir smarty-plugins
64351d7b
TP
190%{__mv} \
191 lib/Smarty/plugins/block.t.php \
192 lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
193 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
a1016496 194 smarty-plugins
64351d7b 195%{__rm} -r lib/Smarty
a1016496 196
953ccfa8 197# cleanup backups after patching
64351d7b 198find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 %{__rm}
953ccfa8 199
273010b2 200%build
a072064c 201%if %{with lmsd}
273010b2 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
a1c1a4be
TP
216CFLAGS="%{rpmcflags}" %{__make} -j1 -C modules/parser \
217 CC='%{__cc}'
64351d7b 218
273010b2 219cd ..
220%endif
22909130 221
222%install
223rm -rf $RPM_BUILD_ROOT
64351d7b
TP
224install -d $RPM_BUILD_ROOT{%{_sbindir},%{_libdir}/%{name},%{_webapps}/%{_webapp}} \
225 $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
226 $RPM_BUILD_ROOT%{_smartyplugindir} \
227 $RPM_BUILD_ROOT%{_lmsdir}/{lms,userpanel,www/{doc,user,userpanel/modules}} \
228 $RPM_BUILD_ROOT%{_lmsvar}/{backups,documents,templates_c,userpanel/templates_c}
229
230cp -a *.php img $RPM_BUILD_ROOT%{_lmsdir}/www
a1016496 231cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
64351d7b 232cp -a contrib lib modules sample templates $RPM_BUILD_ROOT%{_lmsdir}
a1016496 233cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
64351d7b 234cp -a bin/* $RPM_BUILD_ROOT%{_sbindir}
273010b2 235
64351d7b 236%{__mv} $RPM_BUILD_ROOT{%{_lmsdir}/sample/%{name}.ini,%{_sysconfdir}}
3674e9e4 237
3674e9e4
ER
238install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
239install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
273010b2 240
241# sqlpanel
64351d7b
TP
242%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/sql*.php,modules}
243%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/*.html,templates}
273010b2 244
245# user
64351d7b 246%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/customer/*,www/user}
273010b2 247
248# daemon
a072064c 249%if %{with lmsd}
64351d7b
TP
250install daemon/lmsd-*sql $RPM_BUILD_ROOT%{_sbindir}
251install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
252for module in dns ggnotify notify; do
253 cp -a daemon/modules/$module/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/$module
254done
273010b2 255install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
256install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
257%endif
22909130 258
5a4bc3c7 259#userpanel
64351d7b
TP
260cp -a userpanel/{lib,modules,templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel
261cp -a userpanel/{index.php,style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
262ln -s %{_lmsdir}/www/userpanel/style $RPM_BUILD_ROOT%{_lmsdir}/userpanel
263ln -s %{_lmsvar}/userpanel/templates_c $RPM_BUILD_ROOT%{_lmsdir}/userpanel
5a4bc3c7
GP
264
265for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
64351d7b
TP
266 MODULE=$(basename $MODULE)
267 mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
268 ln -s %{_lmsdir}/userpanel/modules/$MODULE/style \
269 $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
5a4bc3c7
GP
270done
271
22909130 272%clean
273rm -rf $RPM_BUILD_ROOT
274
a072064c 275%post lmsd
273010b2 276/sbin/chkconfig --add lmsd
d5c71495 277%service lmsd restart "lmsd daemon"
273010b2 278
a072064c 279%preun lmsd
273010b2 280if [ "$1" = "0" ]; then
d5c71495 281 %service lmsd stop
273010b2 282 /sbin/chkconfig --del lmsd
283fi
284
3d0148ce 285%triggerin -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
286%webapp_register apache %{_webapp}
287
3d0148ce 288%triggerun -- apache1 < 1.3.37-3, apache1-base
3674e9e4
ER
289%webapp_unregister apache %{_webapp}
290
ed54242f 291%triggerin -- apache < 2.2.0, apache-base
3674e9e4
ER
292%webapp_register httpd %{_webapp}
293
ed54242f 294%triggerun -- apache < 2.2.0, apache-base
3674e9e4
ER
295%webapp_unregister httpd %{_webapp}
296
22909130 297%files
298%defattr(644,root,root,755)
ab4f73d4 299%doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
273010b2 300%dir %{_sysconfdir}
1e7c8904 301%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
3674e9e4
ER
302%dir %attr(750,root,http) %{_webapps}/%{_webapp}
303%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
304%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
64351d7b 305%{_smartyplugindir}/*.php
273010b2 306#
307%dir %{_lmsvar}
308%attr(770,root,http) %{_lmsvar}/backups
726bd551 309%attr(770,root,http) %{_lmsvar}/documents
64351d7b 310%attr(770,root,http) %{_lmsvar}/templates_c
273010b2 311#
22909130 312%dir %{_lmsdir}
273010b2 313%{_lmsdir}/lib
314%{_lmsdir}/modules
315%exclude %{_lmsdir}/modules/sql.php
64351d7b
TP
316%exclude %{_lmsdir}/modules/sqllang.php
317%{_lmsdir}/templates
318%exclude %{_lmsdir}/templates/sql.html
319%exclude %{_lmsdir}/templates/sqlprint.html
320%{_lmsdir}/www
321%exclude %{_lmsdir}/www/user
322%exclude %{_lmsdir}/www/userpanel
273010b2 323%{_lmsdir}/contrib
aed1f328
ER
324%dir %{_lmsdir}/sample
325%{_lmsdir}/sample/crontab-entry
64351d7b
TP
326%{_lmsdir}/sample/lms-mgc*.ini
327%{_lmsdir}/sample/*.conf
328%{_lmsdir}/sample/*.txt
aed1f328
ER
329%{_lmsdir}/sample/rc.lmsd
330%{_lmsdir}/sample/rc.reminder_1st
b4677ec9 331%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
aed1f328 332
c339c515 333%files scripts
342af906 334%defattr(644,root,root,755)
64351d7b
TP
335%attr(755,root,root) %{_sbindir}/lms-*
336%attr(755,root,root) %{_sbindir}/lmsd-*sql
273010b2 337
338%files sqlpanel
339%defattr(644,root,root,755)
340%{_lmsdir}/modules/sql.php
64351d7b 341%{_lmsdir}/modules/sqllang.php
273010b2 342%{_lmsdir}/templates/sql.html
343%{_lmsdir}/templates/sqlprint.html
344
345%files user
346%defattr(644,root,root,755)
347%{_lmsdir}/www/user
348
a072064c 349%if %{with lmsd}
350%files lmsd
273010b2 351%defattr(644,root,root,755)
a072064c 352%attr(755,root,root) %{_sbindir}/lmsd-*
f856e948
JB
353%dir %{_libdir}/lms
354%attr(755,root,root) %{_libdir}/lms/*.so
273010b2 355%attr(754,root,root) /etc/rc.d/init.d/lmsd
f856e948
JB
356# XXX: dir shared with base
357%dir %{_sysconfdir}
358%dir %{_sysconfdir}/modules
359%{_sysconfdir}/modules/*
273010b2 360%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
361%endif
5a4bc3c7
GP
362
363%files userpanel
364%defattr(644,root,root,755)
365%dir %{_lmsdir}/userpanel
366%{_lmsdir}/userpanel/lib
367%{_lmsdir}/userpanel/modules
368%{_lmsdir}/userpanel/templates
369%{_lmsdir}/userpanel/templates_c
370%{_lmsdir}/userpanel/style
371%dir %{_lmsdir}/www/userpanel
372%{_lmsdir}/www/userpanel/style
373%{_lmsdir}/www/userpanel/index.php
374%dir %{_lmsvar}/userpanel
a937c8d2 375%attr(770,root,http) %{_lmsvar}/userpanel/templates_c
This page took 0.240844 seconds and 4 git commands to generate.