]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- added lmsd_debug (disabled by default)
[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       11
11 Summary:        LAN Managment System
12 Summary(pl.UTF-8):      System Zarządzania Siecią Lokalną
13 Name:           lms
14 Version:        %{lmsver}.%{lmssubver}
15 Release:        4
16 License:        GPL v2
17 Group:          Networking/Utilities
18 Source0:        http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5:  5f1a8cdd126107ddb0656a60f48f2d4e
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 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 %prep
160 %setup -q -n %{name}
161 %patch0 -p1
162 %if "%{_lib}" == "lib64"
163 %patch1 -p1
164 %endif
165 %patch2 -p1
166 %patch3 -p1
167
168 mkdir smarty-plugins
169 mv \
170 lib/Smarty/plugins/block.t.php \
171 lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
172 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
173         smarty-plugins
174 rm -rf lib/Smarty
175
176 # cleanup backups after patching
177 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
178
179 %build
180 %if %{with lmsd}
181
182 cd daemon
183
184 ./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
185 %{__make} \
186         CC='%{__cc}' \
187         CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
188 mv lmsd lmsd-mysql
189
190 ./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
191 %{__make} lmsd \
192         CC='%{__cc}' \
193         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
194 mv lmsd lmsd-pgsql
195
196 cd ..
197 %endif
198
199 %install
200 rm -rf $RPM_BUILD_ROOT
201 install -d $RPM_BUILD_ROOT%{_sbindir} \
202            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
203            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
204            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
205            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
206            $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
207            $RPM_BUILD_ROOT%{_smartyplugindir}
208
209 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
210 install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
211 install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
212 install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
213 install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
214 install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
215 install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
216 install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
217 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
218 cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
219 install bin/* $RPM_BUILD_ROOT%{_sbindir}
220 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
221
222 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
223
224 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
225 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
226 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
227
228 # sqlpanel
229 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
230 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
231
232 # user
233 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
234
235 # daemon
236 %if %{with lmsd}
237 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
238 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
239 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
240 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
241 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
242 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
243 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
244 %endif
245
246 %clean
247 rm -rf $RPM_BUILD_ROOT
248
249 %post lmsd
250 /sbin/chkconfig --add lmsd
251 %service lmsd restart "lmsd daemon"
252
253 %preun lmsd
254 if [ "$1" = "0" ]; then
255         %service lmsd stop
256         /sbin/chkconfig --del lmsd
257 fi
258
259 %triggerin -- apache1 < 1.3.37-3, apache1-base
260 %webapp_register apache %{_webapp}
261
262 %triggerun -- apache1 < 1.3.37-3, apache1-base
263 %webapp_unregister apache %{_webapp}
264
265 %triggerin -- apache < 2.2.0, apache-base
266 %webapp_register httpd %{_webapp}
267
268 %triggerun -- apache < 2.2.0, apache-base
269 %webapp_unregister httpd %{_webapp}
270
271 %files
272 %defattr(644,root,root,755)
273 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
274 %dir %{_sysconfdir}
275 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
276 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
277 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
278 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
279 %{_smartyplugindir}/*
280 #
281 %dir %{_lmsvar}
282 %attr(770,root,http) %{_lmsvar}/backups
283 %attr(770,root,http) %{_lmsvar}/templates_c
284 %attr(770,root,http) %{_lmsvar}/documents
285 #
286 %dir %{_lmsdir}
287 %{_lmsdir}/www
288 %exclude %{_lmsdir}/www/user
289 %{_lmsdir}/lib
290 %{_lmsdir}/modules
291 %exclude %{_lmsdir}/modules/sql.php
292 %{_lmsdir}/contrib
293 %dir %{_lmsdir}/sample
294 %{_lmsdir}/sample/crontab-entry
295 %{_lmsdir}/sample/lms-mgc-netx-sample.ini
296 %{_lmsdir}/sample/lms-mgc.ini
297 %{_lmsdir}/sample/lms.apache.conf
298 %{_lmsdir}/sample/lms.ini
299 %{_lmsdir}/sample/mailtemplate.txt
300 %{_lmsdir}/sample/mailtemplate_en.txt
301 %{_lmsdir}/sample/rc.lmsd
302 %{_lmsdir}/sample/rc.reminder_1st
303 %{_lmsdir}/sample/smstemplate.txt
304 %{_lmsdir}/sample/tekst_1.txt
305 %{_lmsdir}/sample/test.txt
306 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
307
308 %{_lmsdir}/templates
309 %exclude %{_lmsdir}/templates/sql.html
310 %exclude %{_lmsdir}/templates/sqlprint.html
311
312 %files scripts
313 %defattr(644,root,root,755)
314 %attr(755,root,root) %{_sbindir}/*
315
316 %files sqlpanel
317 %defattr(644,root,root,755)
318 %{_lmsdir}/modules/sql.php
319 %{_lmsdir}/templates/sql.html
320 %{_lmsdir}/templates/sqlprint.html
321
322 %files user
323 %defattr(644,root,root,755)
324 %{_lmsdir}/www/user
325
326 %if %{with lmsd}
327 %files lmsd
328 %defattr(644,root,root,755)
329 %attr(755,root,root) %{_sbindir}/lmsd-*
330 %dir %{_libdir}/lms
331 %attr(755,root,root) %{_libdir}/lms/*.so
332 %attr(754,root,root) /etc/rc.d/init.d/lmsd
333 # XXX: dir shared with base
334 %dir %{_sysconfdir}
335 %dir %{_sysconfdir}/modules
336 %{_sysconfdir}/modules/*
337 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
338 %endif
This page took 0.081251 seconds and 4 git commands to generate.