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