]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- added missing Rs: php(mbstring,mysql)
[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(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
166 mkdir smarty-plugins
167 mv \
168 lib/Smarty/plugins/block.t.php \
169 lib/Smarty/plugins/function.{bankaccount,gentime,handle,number,size,sum,tip}.php \
170 lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
171         smarty-plugins
172 rm -rf lib/Smarty
173
174 %build
175 %if %{with lmsd}
176
177 cd daemon
178
179 ./configure --with-mysql
180 %{__make} \
181         CC='%{__cc}' \
182         CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
183 mv lmsd lmsd-mysql
184
185 ./configure --with-pgsql
186 %{__make} lmsd \
187         CC='%{__cc}' \
188         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
189 mv lmsd lmsd-pgsql
190
191 cd ..
192 %endif
193
194 %install
195 rm -rf $RPM_BUILD_ROOT
196 install -d $RPM_BUILD_ROOT%{_sbindir} \
197            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
198            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
199            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
200            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
201            $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
202            $RPM_BUILD_ROOT%{_smartyplugindir}
203
204 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
205 install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
206 install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
207 install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
208 install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
209 install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
210 install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
211 install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
212 cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
213 cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
214 install bin/* $RPM_BUILD_ROOT%{_sbindir}
215 cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
216
217 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
218
219 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
220 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
221 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
222
223 # sqlpanel
224 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
225 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
226
227 # user
228 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
229
230 # daemon
231 %if %{with lmsd}
232 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
233 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
234 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
235 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
236 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
237 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
238 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
239 %endif
240
241 %clean
242 rm -rf $RPM_BUILD_ROOT
243
244 %post lmsd
245 /sbin/chkconfig --add lmsd
246 %service lmsd restart "lmsd daemon"
247
248 %preun lmsd
249 if [ "$1" = "0" ]; then
250         %service lmsd stop
251         /sbin/chkconfig --del lmsd
252 fi
253
254 %triggerin -- apache1 < 1.3.37-3, apache1-base
255 %webapp_register apache %{_webapp}
256
257 %triggerun -- apache1 < 1.3.37-3, apache1-base
258 %webapp_unregister apache %{_webapp}
259
260 %triggerin -- apache < 2.2.0, apache-base
261 %webapp_register httpd %{_webapp}
262
263 %triggerun -- apache < 2.2.0, apache-base
264 %webapp_unregister httpd %{_webapp}
265
266 %files
267 %defattr(644,root,root,755)
268 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
269 %dir %{_sysconfdir}
270 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
271 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
272 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
273 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
274 %{_smartyplugindir}/*
275 #
276 %dir %{_lmsvar}
277 %attr(770,root,http) %{_lmsvar}/backups
278 %attr(770,root,http) %{_lmsvar}/templates_c
279 %attr(770,root,http) %{_lmsvar}/documents
280 #
281 %dir %{_lmsdir}
282 %{_lmsdir}/www
283 %exclude %{_lmsdir}/www/user
284 %{_lmsdir}/lib
285 %{_lmsdir}/modules
286 %exclude %{_lmsdir}/modules/sql.php
287 %{_lmsdir}/contrib
288 %dir %{_lmsdir}/sample
289 %{_lmsdir}/sample/crontab-entry
290 %{_lmsdir}/sample/lms-mgc-netx-sample.ini
291 %{_lmsdir}/sample/lms-mgc.ini
292 %{_lmsdir}/sample/lms.apache.conf
293 %{_lmsdir}/sample/lms.ini
294 %{_lmsdir}/sample/mailtemplate.txt
295 %{_lmsdir}/sample/mailtemplate_en.txt
296 %{_lmsdir}/sample/rc.lmsd
297 %{_lmsdir}/sample/rc.reminder_1st
298 %{_lmsdir}/sample/smstemplate.txt
299 %{_lmsdir}/sample/tekst_1.txt
300 %{_lmsdir}/sample/test.txt
301 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
302
303 %{_lmsdir}/templates
304 %exclude %{_lmsdir}/templates/sql.html
305 %exclude %{_lmsdir}/templates/sqlprint.html
306
307 %files scripts
308 %defattr(644,root,root,755)
309 %attr(755,root,root) %{_sbindir}/*
310
311 %files sqlpanel
312 %defattr(644,root,root,755)
313 %{_lmsdir}/modules/sql.php
314 %{_lmsdir}/templates/sql.html
315 %{_lmsdir}/templates/sqlprint.html
316
317 %files user
318 %defattr(644,root,root,755)
319 %{_lmsdir}/www/user
320
321 %if %{with lmsd}
322 %files lmsd
323 %defattr(644,root,root,755)
324 %attr(755,root,root) %{_sbindir}/lmsd-*
325 %dir %{_libdir}/lms
326 %attr(755,root,root) %{_libdir}/lms/*.so
327 %attr(754,root,root) /etc/rc.d/init.d/lmsd
328 # XXX: dir shared with base
329 %dir %{_sysconfdir}
330 %dir %{_sysconfdir}/modules
331 %{_sysconfdir}/modules/*
332 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
333 %endif
This page took 0.098548 seconds and 4 git commands to generate.