]>
Commit | Line | Data |
---|---|---|
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 13 | |
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: 294899358ae2585a4030580d79a06ee8 | |
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 | BuildRequires: net-snmp-devel | |
32 | %{?with_lmsd:BuildRequires: postgresql-devel >= 8.2} | |
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 | %package userpanel | |
159 | Summary: LAN Managment System - Userpanel | |
160 | Summary(pl.UTF-8): System Zarządzania Siecią Lokalną - Panel Użytkownika | |
161 | Group: Networking/Utilities | |
162 | Requires: %{name} = %{version}-%{release} | |
163 | ||
164 | %description userpanel | |
165 | Userpanel is automated virtual customer service, based on LMS and | |
166 | using its core features. It enables customers (or it's intended to) to | |
167 | do review their payments, change their personal details or computer | |
168 | properties, modify subscriptions, submit problems, track their | |
169 | requests on Helpdesk and print invoices. It means, it makes a closer | |
170 | contact with their ISP. | |
171 | ||
172 | %description userpanel -l pl.UTF-8 | |
173 | Userpanel jest opartą na szkielecie LMS (i ściśle z LMS | |
174 | współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie | |
175 | umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich | |
176 | danych osobowych, edycję właściwości swoich komputerów, zmianę taryf, | |
177 | zgłaszanie błędów oraz awarii do Helpdesku, wydruk faktur oraz | |
178 | formularza przelewu. | |
179 | ||
180 | %prep | |
181 | %setup -q -n %{name} | |
182 | %patch0 -p1 | |
183 | %if "%{_lib}" == "lib64" | |
184 | %patch1 -p1 | |
185 | %endif | |
186 | %patch2 -p1 | |
187 | ||
188 | mkdir smarty-plugins | |
189 | mv \ | |
190 | lib/Smarty/plugins/block.t.php \ | |
191 | lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \ | |
192 | lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \ | |
193 | smarty-plugins | |
194 | rm -rf lib/Smarty | |
195 | ||
196 | # cleanup backups after patching | |
197 | find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f | |
198 | ||
199 | %build | |
200 | %if %{with lmsd} | |
201 | ||
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 | cd .. | |
217 | %endif | |
218 | ||
219 | %install | |
220 | rm -rf $RPM_BUILD_ROOT | |
221 | install -d $RPM_BUILD_ROOT%{_sbindir} \ | |
222 | $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \ | |
223 | $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \ | |
224 | $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \ | |
225 | $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \ | |
226 | $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \ | |
227 | $RPM_BUILD_ROOT%{_smartyplugindir} | |
228 | ||
229 | install *.php $RPM_BUILD_ROOT%{_lmsdir}/www | |
230 | install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/* | |
231 | install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
232 | install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
233 | install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
234 | install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
235 | install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
236 | install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img | |
237 | cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc | |
238 | cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir} | |
239 | install bin/* $RPM_BUILD_ROOT%{_sbindir} | |
240 | cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir} | |
241 | ||
242 | install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir} | |
243 | ||
244 | install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp} | |
245 | install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf | |
246 | install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf | |
247 | ||
248 | # sqlpanel | |
249 | install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules | |
250 | install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates | |
251 | ||
252 | # user | |
253 | cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user | |
254 | ||
255 | # daemon | |
256 | %if %{with lmsd} | |
257 | install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir} | |
258 | install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms | |
259 | cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns | |
260 | cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify | |
261 | cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity | |
262 | install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd | |
263 | install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name} | |
264 | %endif | |
265 | ||
266 | #userpanel | |
267 | install -d $RPM_BUILD_ROOT%{_lmsdir}/userpanel | |
268 | install -d $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules | |
269 | install -d $RPM_BUILD_ROOT%{_lmsvar}/userpanel/templates_c | |
270 | ||
271 | cp -R {userpanel/lib,userpanel/modules,userpanel/templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel | |
272 | cp -R {userpanel/index.php,userpanel/style} $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel | |
273 | ln -s %{_lmsdir}/www/userpanel/style $RPM_BUILD_ROOT%{_lmsdir}/userpanel | |
274 | ln -s %{_lmsvar}/userpanel/templates_c $RPM_BUILD_ROOT%{_lmsdir}/userpanel | |
275 | ||
276 | for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do | |
277 | MODULE=$(basename $MODULE) | |
278 | mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE | |
279 | ln -s %{_lmsdir}/userpanel/modules/$MODULE/style \ | |
280 | $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE | |
281 | done | |
282 | ||
283 | %clean | |
284 | rm -rf $RPM_BUILD_ROOT | |
285 | ||
286 | %post lmsd | |
287 | /sbin/chkconfig --add lmsd | |
288 | %service lmsd restart "lmsd daemon" | |
289 | ||
290 | %preun lmsd | |
291 | if [ "$1" = "0" ]; then | |
292 | %service lmsd stop | |
293 | /sbin/chkconfig --del lmsd | |
294 | fi | |
295 | ||
296 | %triggerin -- apache1 < 1.3.37-3, apache1-base | |
297 | %webapp_register apache %{_webapp} | |
298 | ||
299 | %triggerun -- apache1 < 1.3.37-3, apache1-base | |
300 | %webapp_unregister apache %{_webapp} | |
301 | ||
302 | %triggerin -- apache < 2.2.0, apache-base | |
303 | %webapp_register httpd %{_webapp} | |
304 | ||
305 | %triggerun -- apache < 2.2.0, apache-base | |
306 | %webapp_unregister httpd %{_webapp} | |
307 | ||
308 | %files | |
309 | %defattr(644,root,root,755) | |
310 | %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*} | |
311 | %dir %{_sysconfdir} | |
312 | %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini | |
313 | %dir %attr(750,root,http) %{_webapps}/%{_webapp} | |
314 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf | |
315 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf | |
316 | %{_smartyplugindir}/* | |
317 | # | |
318 | %dir %{_lmsvar} | |
319 | %attr(770,root,http) %{_lmsvar}/backups | |
320 | %attr(770,root,http) %{_lmsvar}/templates_c | |
321 | %attr(770,root,http) %{_lmsvar}/documents | |
322 | # | |
323 | %dir %{_lmsdir} | |
324 | %{_lmsdir}/www | |
325 | %exclude %{_lmsdir}/www/user | |
326 | %exclude %{_lmsdir}/www/userpanel | |
327 | %{_lmsdir}/lib | |
328 | %{_lmsdir}/modules | |
329 | %exclude %{_lmsdir}/modules/sql.php | |
330 | %{_lmsdir}/contrib | |
331 | %dir %{_lmsdir}/sample | |
332 | %{_lmsdir}/sample/crontab-entry | |
333 | %{_lmsdir}/sample/lms-mgc-netx-sample.ini | |
334 | %{_lmsdir}/sample/lms-mgc.ini | |
335 | %{_lmsdir}/sample/lms.apache.conf | |
336 | %{_lmsdir}/sample/lms.ini | |
337 | %{_lmsdir}/sample/mailtemplate.txt | |
338 | %{_lmsdir}/sample/mailtemplate_en.txt | |
339 | %{_lmsdir}/sample/radius-sql.conf | |
340 | %{_lmsdir}/sample/rc.lmsd | |
341 | %{_lmsdir}/sample/rc.reminder_1st | |
342 | %{_lmsdir}/sample/smstemplate.txt | |
343 | %{_lmsdir}/sample/tekst_1.txt | |
344 | %{_lmsdir}/sample/test.txt | |
345 | %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl | |
346 | ||
347 | %{_lmsdir}/templates | |
348 | %exclude %{_lmsdir}/templates/sql.html | |
349 | %exclude %{_lmsdir}/templates/sqlprint.html | |
350 | ||
351 | %files scripts | |
352 | %defattr(644,root,root,755) | |
353 | %attr(755,root,root) %{_sbindir}/* | |
354 | ||
355 | %files sqlpanel | |
356 | %defattr(644,root,root,755) | |
357 | %{_lmsdir}/modules/sql.php | |
358 | %{_lmsdir}/templates/sql.html | |
359 | %{_lmsdir}/templates/sqlprint.html | |
360 | ||
361 | %files user | |
362 | %defattr(644,root,root,755) | |
363 | %{_lmsdir}/www/user | |
364 | ||
365 | %if %{with lmsd} | |
366 | %files lmsd | |
367 | %defattr(644,root,root,755) | |
368 | %attr(755,root,root) %{_sbindir}/lmsd-* | |
369 | %dir %{_libdir}/lms | |
370 | %attr(755,root,root) %{_libdir}/lms/*.so | |
371 | %attr(754,root,root) /etc/rc.d/init.d/lmsd | |
372 | # XXX: dir shared with base | |
373 | %dir %{_sysconfdir} | |
374 | %dir %{_sysconfdir}/modules | |
375 | %{_sysconfdir}/modules/* | |
376 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} | |
377 | %endif | |
378 | ||
379 | %files userpanel | |
380 | %defattr(644,root,root,755) | |
381 | %dir %{_lmsdir}/userpanel | |
382 | %{_lmsdir}/userpanel/lib | |
383 | %{_lmsdir}/userpanel/modules | |
384 | %{_lmsdir}/userpanel/templates | |
385 | %{_lmsdir}/userpanel/templates_c | |
386 | %{_lmsdir}/userpanel/style | |
387 | %dir %{_lmsdir}/www/userpanel | |
388 | %{_lmsdir}/www/userpanel/style | |
389 | %{_lmsdir}/www/userpanel/index.php | |
390 | %dir %{_lmsvar}/userpanel | |
391 | %attr(770,root,http) %{_lmsvar}/userpanel/templates_c |