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