]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- update to lms 1.9.3
[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.9
10 %define         lmssubver       3
11 Summary:        LAN Managment System
12 Summary(pl):    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://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5:  c9560bf98462498a3bf4923e27560caf
20 Source1:        %{name}.conf
21 Source2:        %{name}.init
22 Source3:        %{name}.sysconfig
23 Patch0:         %{name}-PLD.patch
24 Patch1:         %{name}-amd64.patch
25 URL:            http://lms.rulez.pl/
26 %{?with_lmsd:BuildRequires:     libgadu-devel}
27 %{?with_lmsd:BuildRequires:     mysql-devel}
28 %{?with_lmsd:BuildRequires:     postgresql-devel}
29 BuildRequires:  rpmbuild(macros) >= 1.268
30 %{?with_lmsd:Requires(post,preun):      /sbin/chkconfig}
31 BuildRequires:  bison
32 BuildRequires:  flex
33 BuildRequires:  rpm-pythonprov
34 Requires:       php
35 Requires:       php-gd
36 Requires:       php-iconv
37 Requires:       php-pcre
38 Requires:       php-posix
39 Requires:       webapps
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %define         _sysconfdir     /etc/%{name}
43 %define         _lmsdir         %{_datadir}/%{name}
44 %define         _lmsvar         /var/lib/%{name}
45 %define         _webapps        /etc/webapps
46 %define         _webapp         %{name}
47
48 %description
49 This is a package of applications in PHP and Perl for managing LANs.
50 It's using MySQL or PostgreSQL. The main goal is to get the best
51 service of users at provider's level. The main features in LMS are:
52 - database of users (name, surname, address, telephone number,
53   commentary);
54 - database of computers (IP, MAC);
55 - easy-ridden financial system and funds of network;
56 - different subscriptions;
57 - sending warnings to users;
58 - many levels of access for LMS administrators;
59 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
60   openbsd packet filter configuration files/scripts;
61 - autogenerating almost any kind of config file using templates.
62
63 %description -l pl
64 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
65 aplikacji w PHP i Perlu, u³atwiaj±cych zarz±dzanie sieciami
66 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
67 opartych o bazê danych MySQL lub PostgreSQL. G³ówne za³o¿enia to
68 uzyskanie jako¶ci us³ug oraz obs³ugi u¿ytkowników na poziomie
69 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
70 to:
71 - baza danych u¿ytkowników (imiê, nazwisko, adres, numer telefonu,
72   uwagi);
73 - baza danych komputerów (adres IP, adres MAC);
74 - prowadzenie prostego rachunku operacji finansowych oraz stanu
75   funduszów sieci;
76 - ró¿ne taryfy abonamentowe;
77 - wysy³anie poczt± elektroniczn± upomnieñ do u¿ytkowników;
78 - automatyczne naliczanie op³at miesiêcznych;
79 - ró¿ne poziomy dostêpu do funkcji LMS dla administratorów;
80 - generowanie regu³ i plików konfiguracyjnych dla ipchains, iptables,
81   dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
82 - generowanie praktycznie ka¿dego pliku konfiguracyjnego na podstawie
83   danych w bazie przy u¿yciu prostych szablonów.
84
85 %package scripts
86 Summary:        LAN Managment System - scripts
87 Summary(pl):    LAN Managment System - skrypty
88 Group:          Networking/Utilities
89 Requires:       perl-Config-IniFiles
90 Requires:       perl-DBI
91 Requires:       perl-Net-SMTP-Server
92
93 %description scripts
94 This package contains scripts to integrate LMS with your system,
95 monthly billing, notify users about their debts and cutting off
96 customers. Also you can build probably any kind of config file using
97 lms-mgc.
98
99 %description scripts -l pl
100 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
101 comiesiêcznych op³at, powiadamiania u¿ytkowników o ich zad³u¿eniu oraz
102 ich automagicznego od³±czania. Mo¿esz tak¿e zbudowaæ prawdopodobnie
103 ka¿dy typ pliku konfiguracyjnego przy u¿yciu lms-mgc.
104
105 %package sqlpanel
106 Summary:        LAN Managment System - sqlpanel module
107 Summary(pl):    LAN Managment System - modu³ sqlpanel
108 Group:          Networking/Utilities
109 Requires:       %{name} = %{version}-%{release}
110
111 %description sqlpanel
112 SQL-panel module allows you to execute SQL queries and directly modify
113 data.
114
115 %description sqlpanel -l pl
116 Modu³ 'SQL - panel' daje mo¿liwo¶æ bezpo¶redniego dostêpu do bazy
117 danych poprzez zadawanie zapytañ SQL. Wyniki wy¶wietlane s± w formie
118 tabeli. Ponadto podawany jest czas wykonania zapytania.
119
120 %package user
121 Summary:        LAN Managment System - simple user interface
122 Summary(pl):    LAN Managment System - prosty interfejs u¿ytkownika
123 Group:          Networking/Utilities
124 Requires:       %{name} = %{version}-%{release}
125
126 %description user
127 Simple user interface.
128
129 %description user -l pl
130 Prosty interfejs u¿ytkownika.
131
132 %package lmsd
133 Summary:        LAN Managment System - LMS system backend
134 Summary(pl):    LAN Managment System - backend systemu LMS
135 Group:          Networking/Utilities
136 Requires(post,preun):   /sbin/chkconfig
137 Requires:       rc-scripts
138 Obsoletes:      lms-almsd
139
140 %description lmsd
141 A program to manage the server by creating configuration files based
142 upon LMS database and restarting selected services.
143
144 %description lmsd -l pl
145 Program zarz±dzaj±cy serwerem poprzez tworzenie plików
146 konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
147 wybranych us³ug.
148
149 %prep
150 %setup -q -n %{name}
151 %patch0 -p1
152 %if "%{_lib}" == "lib64"
153 %patch1 -p1
154 %endif
155
156 %build
157 %if %{with lmsd}
158
159 cd daemon
160
161 ./configure --with-mysql
162 %{__make} \
163         CC='%{__cc}' \
164         CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
165 mv lmsd lmsd-mysql
166
167 ./configure --with-pgsql
168 %{__make} lmsd \
169         CC='%{__cc}' \
170         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
171 mv lmsd lmsd-pgsql
172
173 cd ..
174 %endif
175
176 %install
177 rm -rf $RPM_BUILD_ROOT
178 install -d $RPM_BUILD_ROOT%{_sbindir} \
179            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
180            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
181            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
182            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
183            $RPM_BUILD_ROOT%{_lmsdir}/www/img/core
184
185 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
186 install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
187 install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
188 install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
189 install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
190 install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
191 install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
192 install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
193 cp -r doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
194 cp -r lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
195 install bin/* $RPM_BUILD_ROOT%{_sbindir}
196
197 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
198
199 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
200 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
201 install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
202
203 # sqlpanel
204 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
205 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
206
207 # user
208 cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
209
210 # daemon
211 %if %{with lmsd}
212 install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
213 install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
214 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
215 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
216 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
217 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
218 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
219 %endif
220
221 %clean
222 rm -rf $RPM_BUILD_ROOT
223
224 %post lmsd
225 /sbin/chkconfig --add lmsd
226 %service lmsd restart "lmsd daemon"
227
228 %preun lmsd
229 if [ "$1" = "0" ]; then
230         %service lmsd stop
231         /sbin/chkconfig --del lmsd
232 fi
233
234 %triggerin -- apache1 < 1.3.37-3, apache1-base
235 %webapp_register apache %{_webapp}
236
237 %triggerun -- apache1 < 1.3.37-3, apache1-base
238 %webapp_unregister apache %{_webapp}
239
240 %triggerin -- apache < 2.2.0, apache-base
241 %webapp_register httpd %{_webapp}
242
243 %triggerun -- apache < 2.2.0, apache-base
244 %webapp_unregister httpd %{_webapp}
245
246 %triggerpostun -- %{name} <= 1.0.4
247 echo "WARNING!!!"
248 echo "_READ_ and upgrade LMS database:"
249 echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
250 echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
251
252 %triggerpostun -- %{name} <= 1.2.0
253 echo "BEWARE:"
254 echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team"
255 echo "You are advised to upgrade it manually"
256 echo
257
258 %triggerpostun -- %{name} < 1.6.6-1.4
259 # nuke very-old config location (this mostly for Ra)
260 if [ -f /etc/httpd/httpd.conf ]; then
261         sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
262 fi
263
264 # migrate from httpd (apache2) config dir
265 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
266         cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
267         mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
268 fi
269
270 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
271 /usr/sbin/webapp register httpd %{_webapp}
272 %service -q httpd reload
273
274 %files
275 %defattr(644,root,root,755)
276 %doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
277 %dir %{_sysconfdir}
278 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
279 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
280 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
281 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
282 #
283 %dir %{_lmsvar}
284 %attr(770,root,http) %{_lmsvar}/backups
285 %attr(770,root,http) %{_lmsvar}/templates_c
286 %attr(770,root,http) %{_lmsvar}/documents
287 #
288 %dir %{_lmsdir}
289 %{_lmsdir}/www
290 %exclude %{_lmsdir}/www/user
291 %{_lmsdir}/lib
292 %{_lmsdir}/modules
293 %exclude %{_lmsdir}/modules/sql.php
294 %{_lmsdir}/contrib
295 %{_lmsdir}/sample
296 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
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.099155 seconds and 4 git commands to generate.