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