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