]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- up to 1.10.1
[packages/lms.git] / lms.spec
1 # TODO
2 # - test build on amd64 and check /usr/lib64 patch
3 # - cosmetics (sort in %%files and %%install)
4 # - contrib split
5 #
6 # Conditional build:
7 %bcond_without  lmsd            # without lmsd daemon
8 #
9 %define         lmsver          1.10
10 %define         lmssubver       1
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:  8719b8534c8792a84e2436f00ea48a49
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 %{?with_lmsd:BuildRequires:     postgresql-devel}
32 BuildRequires:  rpm-pythonprov
33 BuildRequires:  rpmbuild(macros) >= 1.268
34 %{?with_lmsd:Requires(post,preun):      /sbin/chkconfig}
35 Requires:       Smarty >= 2.6.18-2
36 Requires:       php(gd)
37 Requires:       php(iconv)
38 Requires:       php(pcre)
39 Requires:       php(posix)
40 Requires:       webapps
41 Requires:       webserver(php)
42 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
44 %define         _sysconfdir     /etc/%{name}
45 %define         _lmsdir         %{_datadir}/%{name}
46 %define         _lmsvar         /var/lib/%{name}
47 %define         _smartyplugindir        /usr/share/php/Smarty/plugins
48 %define         _webapps        /etc/webapps
49 %define         _webapp         %{name}
50
51 %description
52 This is a package of applications in PHP and Perl for managing LANs.
53 It's using MySQL or PostgreSQL. The main goal is to get the best
54 service of users at provider's level. The main features in LMS are:
55 - database of users (name, surname, address, telephone number,
56   commentary);
57 - database of computers (IP, MAC);
58 - easy-ridden financial system and funds of network;
59 - different subscriptions;
60 - sending warnings to users;
61 - many levels of access for LMS administrators;
62 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
63   openbsd packet filter configuration files/scripts;
64 - autogenerating almost any kind of config file using templates.
65
66 %description -l pl.UTF-8
67 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
68 aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
69 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
70 opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
71 uzyskanie jakości usług oraz obsługi użytkowników na poziomie
72 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
73 to:
74 - baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
75   uwagi);
76 - baza danych komputerów (adres IP, adres MAC);
77 - prowadzenie prostego rachunku operacji finansowych oraz stanu
78   funduszów sieci;
79 - różne taryfy abonamentowe;
80 - wysyłanie pocztą elektroniczną upomnień do użytkowników;
81 - automatyczne naliczanie opłat miesięcznych;
82 - różne poziomy dostępu do funkcji LMS dla administratorów;
83 - generowanie reguł i plików konfiguracyjnych dla ipchains, iptables,
84   dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
85 - generowanie praktycznie każdego pliku konfiguracyjnego na podstawie
86   danych w bazie przy użyciu prostych szablonów.
87
88 %package scripts
89 Summary:        LAN Managment System - scripts
90 Summary(pl.UTF-8):      LAN Managment System - skrypty
91 Group:          Networking/Utilities
92 Requires:       perl-Config-IniFiles
93 Requires:       perl-DBI
94 Requires:       perl-Net-SMTP-Server
95
96 %description scripts
97 This package contains scripts to integrate LMS with your system,
98 monthly billing, notify users about their debts and cutting off
99 customers. Also you can build probably any kind of config file using
100 lms-mgc.
101
102 %description scripts -l pl.UTF-8
103 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
104 comiesięcznych opłat, powiadamiania użytkowników o ich zadłużeniu oraz
105 ich automagicznego odłączania. Możesz także zbudować prawdopodobnie
106 każdy typ pliku konfiguracyjnego przy użyciu lms-mgc.
107
108 %package sqlpanel
109 Summary:        LAN Managment System - sqlpanel module
110 Summary(pl.UTF-8):      LAN Managment System - moduł sqlpanel
111 Group:          Networking/Utilities
112 Requires:       %{name} = %{version}-%{release}
113
114 %description sqlpanel
115 SQL-panel module allows you to execute SQL queries and directly modify
116 data.
117
118 %description sqlpanel -l pl.UTF-8
119 Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
120 danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
121 tabeli. Ponadto podawany jest czas wykonania zapytania.
122
123 %package user
124 Summary:        LAN Managment System - simple user interface
125 Summary(pl.UTF-8):      LAN Managment System - prosty interfejs użytkownika
126 Group:          Networking/Utilities
127 Requires:       %{name} = %{version}-%{release}
128
129 %description user
130 Simple user interface.
131
132 %description user -l pl.UTF-8
133 Prosty interfejs użytkownika.
134
135 %package lmsd
136 Summary:        LAN Managment System - LMS system backend
137 Summary(pl.UTF-8):      LAN Managment System - backend systemu LMS
138 Group:          Networking/Utilities
139 Requires(post,preun):   /sbin/chkconfig
140 Requires:       rc-scripts
141 Obsoletes:      lms-almsd
142
143 %description lmsd
144 A program to manage the server by creating configuration files based
145 upon LMS database and restarting selected services.
146
147 %description lmsd -l pl.UTF-8
148 Program zarządzający serwerem poprzez tworzenie plików
149 konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
150 wybranych usług.
151
152 %prep
153 %setup -q -n %{name}
154 %patch0 -p1
155 %if "%{_lib}" == "lib64"
156 %patch1 -p1
157 %endif
158 %patch2 -p1
159
160 mkdir smarty-plugins
161 mv \
162 lib/Smarty/plugins/block.t.php \
163 lib/Smarty/plugins/function.{bankaccount,gentime,handle,number,size,sum,tip}.php \
164 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
165         smarty-plugins
166 rm -rf lib/Smarty
167
168 %build
169 %if %{with lmsd}
170
171 cd daemon
172
173 ./configure --with-mysql
174 %{__make} \
175         CC='%{__cc}' \
176         CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
177 mv lmsd lmsd-mysql
178
179 ./configure --with-pgsql
180 %{__make} lmsd \
181         CC='%{__cc}' \
182         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
183 mv lmsd lmsd-pgsql
184
185 cd ..
186 %endif
187
188 %install
189 rm -rf $RPM_BUILD_ROOT
190 install -d $RPM_BUILD_ROOT%{_sbindir} \
191            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
192            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
193            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
194            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
195            $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
196            $RPM_BUILD_ROOT%{_smartyplugindir}
197
198 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
199 install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
200 install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
201 install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
202 install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
203 install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
204 install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
205 install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
206 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
207 cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
208 install bin/* $RPM_BUILD_ROOT%{_sbindir}
209 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
210
211 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
212
213 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
214 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
215 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
216
217 # sqlpanel
218 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
219 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
220
221 # user
222 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
223
224 # daemon
225 %if %{with lmsd}
226 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
227 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
228 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
229 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
230 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
231 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
232 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
233 %endif
234
235 %clean
236 rm -rf $RPM_BUILD_ROOT
237
238 %post lmsd
239 /sbin/chkconfig --add lmsd
240 %service lmsd restart "lmsd daemon"
241
242 %preun lmsd
243 if [ "$1" = "0" ]; then
244         %service lmsd stop
245         /sbin/chkconfig --del lmsd
246 fi
247
248 %triggerin -- apache1 < 1.3.37-3, apache1-base
249 %webapp_register apache %{_webapp}
250
251 %triggerun -- apache1 < 1.3.37-3, apache1-base
252 %webapp_unregister apache %{_webapp}
253
254 %triggerin -- apache < 2.2.0, apache-base
255 %webapp_register httpd %{_webapp}
256
257 %triggerun -- apache < 2.2.0, apache-base
258 %webapp_unregister httpd %{_webapp}
259
260 %triggerpostun -- %{name} <= 1.0.4
261 echo "WARNING!!!"
262 echo "_READ_ and upgrade LMS database:"
263 echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
264 echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
265
266 %triggerpostun -- %{name} <= 1.2.0
267 echo "BEWARE:"
268 echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team"
269 echo "You are advised to upgrade it manually"
270 echo
271
272 %triggerpostun -- %{name} < 1.6.6-1.4
273 # nuke very-old config location (this mostly for Ra)
274 if [ -f /etc/httpd/httpd.conf ]; then
275         sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
276 fi
277
278 # migrate from httpd (apache2) config dir
279 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
280         cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
281         mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
282 fi
283
284 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
285 /usr/sbin/webapp register httpd %{_webapp}
286 %service -q httpd reload
287
288 %files
289 %defattr(644,root,root,755)
290 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
291 %dir %{_sysconfdir}
292 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
293 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
294 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
295 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
296 %{_smartyplugindir}/*
297 #
298 %dir %{_lmsvar}
299 %attr(770,root,http) %{_lmsvar}/backups
300 %attr(770,root,http) %{_lmsvar}/templates_c
301 %attr(770,root,http) %{_lmsvar}/documents
302 #
303 %dir %{_lmsdir}
304 %{_lmsdir}/www
305 %exclude %{_lmsdir}/www/user
306 %{_lmsdir}/lib
307 %{_lmsdir}/modules
308 %exclude %{_lmsdir}/modules/sql.php
309 %{_lmsdir}/contrib
310 %dir %{_lmsdir}/sample
311 %{_lmsdir}/sample/crontab-entry
312 %{_lmsdir}/sample/lms-mgc-netx-sample.ini
313 %{_lmsdir}/sample/lms-mgc.ini
314 %{_lmsdir}/sample/lms.apache.conf
315 %{_lmsdir}/sample/lms.ini
316 %{_lmsdir}/sample/mailtemplate.txt
317 %{_lmsdir}/sample/mailtemplate_en.txt
318 %{_lmsdir}/sample/rc.lmsd
319 %{_lmsdir}/sample/rc.reminder_1st
320 %{_lmsdir}/sample/smstemplate.txt
321 %{_lmsdir}/sample/tekst_1.txt
322 %{_lmsdir}/sample/test.txt
323 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
324
325 %{_lmsdir}/templates
326 %exclude %{_lmsdir}/templates/sql.html
327 %exclude %{_lmsdir}/templates/sqlprint.html
328
329 %files scripts
330 %defattr(644,root,root,755)
331 %attr(755,root,root) %{_sbindir}/*
332
333 %files sqlpanel
334 %defattr(644,root,root,755)
335 %{_lmsdir}/modules/sql.php
336 %{_lmsdir}/templates/sql.html
337 %{_lmsdir}/templates/sqlprint.html
338
339 %files user
340 %defattr(644,root,root,755)
341 %{_lmsdir}/www/user
342
343 %if %{with lmsd}
344 %files lmsd
345 %defattr(644,root,root,755)
346 %attr(755,root,root) %{_sbindir}/lmsd-*
347 %dir %{_libdir}/lms
348 %attr(755,root,root) %{_libdir}/lms/*.so
349 %attr(754,root,root) /etc/rc.d/init.d/lmsd
350 # XXX: dir shared with base
351 %dir %{_sysconfdir}
352 %dir %{_sysconfdir}/modules
353 %{_sysconfdir}/modules/*
354 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
355 %endif
This page took 0.08064 seconds and 4 git commands to generate.