]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- make -j1 parser module
[packages/lms.git] / lms.spec
1 # TODO:
2 # - package documents/templates/default
3 # - cosmetics (sort in %%files and %%install)
4 # - consider contrib and samples (re)packaging
5 #
6 # Conditional build:
7 %bcond_without  lmsd            # without lmsd daemon
8 %bcond_with     lmsd_debug      # with lmsd debugging
9
10 %define         lmsver          1.11
11 %define         lmssubver       13
12 Summary:        LAN Managment System
13 Summary(pl.UTF-8):      System Zarządzania Siecią Lokalną
14 Name:           lms
15 Version:        %{lmsver}.%{lmssubver}
16 Release:        3
17 License:        GPL v2
18 Group:          Networking/Utilities
19 Source0:        http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
20 # Source0-md5:  294899358ae2585a4030580d79a06ee8
21 Source1:        %{name}.conf
22 Source2:        %{name}.init
23 Source3:        %{name}.sysconfig
24 Patch0:         %{name}-PLD.patch
25 Patch1:         %{name}-amd64.patch
26 Patch2:         %{name}-smarty.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 >= 8.2}
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         _webapps        /etc/webapps
53 %define         _webapp         %{name}
54 %define         _smartyplugindir        %{php_data_dir}/Smarty/plugins
55 %define         _lmsdir         %{_datadir}/%{name}
56 %define         _lmsvar         /var/lib/%{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
189 mkdir smarty-plugins
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 \
194         smarty-plugins
195 %{__rm} -r lib/Smarty
196
197 # cleanup backups after patching
198 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 %{__rm}
199
200 %build
201 %if %{with lmsd}
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 CFLAGS="%{rpmcflags}" %{__make} -j1 -C modules/parser \
217         CC='%{__cc}'
218
219 cd ..
220 %endif
221
222 %install
223 rm -rf $RPM_BUILD_ROOT
224 install -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
230 cp -a *.php img $RPM_BUILD_ROOT%{_lmsdir}/www
231 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
232 cp -a contrib lib modules sample templates $RPM_BUILD_ROOT%{_lmsdir}
233 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
234 cp -a bin/* $RPM_BUILD_ROOT%{_sbindir}
235
236 %{__mv} $RPM_BUILD_ROOT{%{_lmsdir}/sample/%{name}.ini,%{_sysconfdir}}
237
238 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
239 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
240
241 # sqlpanel
242 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/sql*.php,modules}
243 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/*.html,templates}
244
245 # user
246 %{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/customer/*,www/user}
247
248 # daemon
249 %if %{with lmsd}
250 install daemon/lmsd-*sql $RPM_BUILD_ROOT%{_sbindir}
251 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
252 for module in dns ggnotify notify; do
253         cp -a daemon/modules/$module/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/$module
254 done
255 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
256 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
257 %endif
258
259 #userpanel
260 cp -a userpanel/{lib,modules,templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel
261 cp -a userpanel/{index.php,style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
262 ln -s %{_lmsdir}/www/userpanel/style    $RPM_BUILD_ROOT%{_lmsdir}/userpanel
263 ln -s %{_lmsvar}/userpanel/templates_c  $RPM_BUILD_ROOT%{_lmsdir}/userpanel
264
265 for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
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
270 done
271
272 %clean
273 rm -rf $RPM_BUILD_ROOT
274
275 %post lmsd
276 /sbin/chkconfig --add lmsd
277 %service lmsd restart "lmsd daemon"
278
279 %preun lmsd
280 if [ "$1" = "0" ]; then
281         %service lmsd stop
282         /sbin/chkconfig --del lmsd
283 fi
284
285 %triggerin -- apache1 < 1.3.37-3, apache1-base
286 %webapp_register apache %{_webapp}
287
288 %triggerun -- apache1 < 1.3.37-3, apache1-base
289 %webapp_unregister apache %{_webapp}
290
291 %triggerin -- apache < 2.2.0, apache-base
292 %webapp_register httpd %{_webapp}
293
294 %triggerun -- apache < 2.2.0, apache-base
295 %webapp_unregister httpd %{_webapp}
296
297 %files
298 %defattr(644,root,root,755)
299 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
300 %dir %{_sysconfdir}
301 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
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
305 %{_smartyplugindir}/*.php
306 #
307 %dir %{_lmsvar}
308 %attr(770,root,http) %{_lmsvar}/backups
309 %attr(770,root,http) %{_lmsvar}/documents
310 %attr(770,root,http) %{_lmsvar}/templates_c
311 #
312 %dir %{_lmsdir}
313 %{_lmsdir}/lib
314 %{_lmsdir}/modules
315 %exclude %{_lmsdir}/modules/sql.php
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
323 %{_lmsdir}/contrib
324 %dir %{_lmsdir}/sample
325 %{_lmsdir}/sample/crontab-entry
326 %{_lmsdir}/sample/lms-mgc*.ini
327 %{_lmsdir}/sample/*.conf
328 %{_lmsdir}/sample/*.txt
329 %{_lmsdir}/sample/rc.lmsd
330 %{_lmsdir}/sample/rc.reminder_1st
331 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
332
333 %files scripts
334 %defattr(644,root,root,755)
335 %attr(755,root,root) %{_sbindir}/lms-*
336 %attr(755,root,root) %{_sbindir}/lmsd-*sql
337
338 %files sqlpanel
339 %defattr(644,root,root,755)
340 %{_lmsdir}/modules/sql.php
341 %{_lmsdir}/modules/sqllang.php
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
349 %if %{with lmsd}
350 %files lmsd
351 %defattr(644,root,root,755)
352 %attr(755,root,root) %{_sbindir}/lmsd-*
353 %dir %{_libdir}/lms
354 %attr(755,root,root) %{_libdir}/lms/*.so
355 %attr(754,root,root) /etc/rc.d/init.d/lmsd
356 # XXX: dir shared with base
357 %dir %{_sysconfdir}
358 %dir %{_sysconfdir}/modules
359 %{_sysconfdir}/modules/*
360 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
361 %endif
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
375 %attr(770,root,http) %{_lmsvar}/userpanel/templates_c
This page took 0.200943 seconds and 4 git commands to generate.