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