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