]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- up to 1.10.5 (Neith)
[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       5
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:  512b0ef7540758e65a7439cc7ab7ac52
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.461
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        %{php_data_dir}/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 %files
261 %defattr(644,root,root,755)
262 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
263 %dir %{_sysconfdir}
264 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
265 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
266 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
267 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
268 %{_smartyplugindir}/*
269 #
270 %dir %{_lmsvar}
271 %attr(770,root,http) %{_lmsvar}/backups
272 %attr(770,root,http) %{_lmsvar}/templates_c
273 %attr(770,root,http) %{_lmsvar}/documents
274 #
275 %dir %{_lmsdir}
276 %{_lmsdir}/www
277 %exclude %{_lmsdir}/www/user
278 %{_lmsdir}/lib
279 %{_lmsdir}/modules
280 %exclude %{_lmsdir}/modules/sql.php
281 %{_lmsdir}/contrib
282 %dir %{_lmsdir}/sample
283 %{_lmsdir}/sample/crontab-entry
284 %{_lmsdir}/sample/lms-mgc-netx-sample.ini
285 %{_lmsdir}/sample/lms-mgc.ini
286 %{_lmsdir}/sample/lms.apache.conf
287 %{_lmsdir}/sample/lms.ini
288 %{_lmsdir}/sample/mailtemplate.txt
289 %{_lmsdir}/sample/mailtemplate_en.txt
290 %{_lmsdir}/sample/rc.lmsd
291 %{_lmsdir}/sample/rc.reminder_1st
292 %{_lmsdir}/sample/smstemplate.txt
293 %{_lmsdir}/sample/tekst_1.txt
294 %{_lmsdir}/sample/test.txt
295 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
296
297 %{_lmsdir}/templates
298 %exclude %{_lmsdir}/templates/sql.html
299 %exclude %{_lmsdir}/templates/sqlprint.html
300
301 %files scripts
302 %defattr(644,root,root,755)
303 %attr(755,root,root) %{_sbindir}/*
304
305 %files sqlpanel
306 %defattr(644,root,root,755)
307 %{_lmsdir}/modules/sql.php
308 %{_lmsdir}/templates/sql.html
309 %{_lmsdir}/templates/sqlprint.html
310
311 %files user
312 %defattr(644,root,root,755)
313 %{_lmsdir}/www/user
314
315 %if %{with lmsd}
316 %files lmsd
317 %defattr(644,root,root,755)
318 %attr(755,root,root) %{_sbindir}/lmsd-*
319 %dir %{_libdir}/lms
320 %attr(755,root,root) %{_libdir}/lms/*.so
321 %attr(754,root,root) /etc/rc.d/init.d/lmsd
322 # XXX: dir shared with base
323 %dir %{_sysconfdir}
324 %dir %{_sysconfdir}/modules
325 %{_sysconfdir}/modules/*
326 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
327 %endif
This page took 0.068028 seconds and 4 git commands to generate.