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