]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- updated to 1.4.3,
[packages/lms.git] / lms.spec
1 #
2 # Conditional build:
3 %bcond_without  almsd           # without almsd daemon
4 #
5 # TODO:
6 # - cosmetics (sort in %%files and %%install)
7 # - contrib split
8 %define         lmsver          1.4
9 %define         lmssubver       3
10 Summary:        LAN Managment System
11 Summary(pl):    System Zarz±dzania Sieci± Lokaln±
12 Name:           lms
13 Version:        %{lmsver}.%{lmssubver}
14 Release:        0.1
15 License:        GPL
16 Vendor:         LMS Developers
17 Group:          Networking/Utilities
18 Source0:        http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
19 # Source0-md5:  7af9efa0430a3bad5f46f59a21312f0a
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}-calendar.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 %patch2 -p1
150
151 %build
152 %if %{with almsd}
153
154 cd daemon
155
156 ./configure --with-mysql
157 %{__make} \
158         CC='%{__cc}' CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -I../..'
159 mv almsd almsd-mysql
160
161 rm db.o
162
163 ./configure --with-pgsql
164 %{__make} almsd \
165         CC='%{__cc}' \
166         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -I../..'
167 mv almsd almsd-pgsql
168
169 cd ..
170 %endif
171
172 %install
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT%{_sbindir} \
175            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,httpd} \
176            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
177            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c},/usr/lib/lms} \
178            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user,calendar}
179
180 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
181 install img/* $RPM_BUILD_ROOT%{_lmsdir}/www/img
182 cp -r doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
183 cp -r lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
184 mv $RPM_BUILD_ROOT%{_lmsdir}/templates/calendar.html $RPM_BUILD_ROOT%{_lmsdir}/www/calendar
185 install bin/* $RPM_BUILD_ROOT%{_sbindir}
186
187 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
188 install %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/%{name}.conf
189
190 # sqlpanel
191 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
192 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
193
194 # user
195 install contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
196
197 # daemon
198 %if %{with almsd}
199 install daemon/almsd-* $RPM_BUILD_ROOT%{_sbindir}
200 install daemon/modules/*/*.so $RPM_BUILD_ROOT/usr/lib/lms
201 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
202 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
203 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
204 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
205 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
206 %endif
207
208 %clean
209 rm -rf $RPM_BUILD_ROOT
210
211 %post
212 if [ -f /etc/httpd/httpd.conf ] && ! grep -q "^Include.*%{name}.conf" /etc/httpd/httpd.conf; then
213         echo "Include /etc/httpd/%{name}.conf" >> /etc/httpd/httpd.conf
214         if [ -f /var/lock/subsys/httpd ]; then
215                 /usr/sbin/apachectl restart 1>&2
216         fi
217 elif [ -d /etc/httpd/httpd.conf ]; then
218         ln -sf /etc/httpd/%{name}.conf /etc/httpd/httpd.conf/99_%{name}.conf
219         if [ -f /var/lock/subsys/httpd ]; then
220                 /usr/sbin/apachectl restart 1>&2
221         fi
222 fi
223
224 %post almsd
225 /sbin/chkconfig --add lmsd
226 if [ -f /var/lock/subsys/lmsd ]; then
227         /etc/rc.d/init.d/lmsd restart >&2
228 else
229         echo "Run \"/etc/rc.d/init.d/lmsd start\" to start almsd daemon."
230 fi
231
232 %preun
233 if [ "$1" = "0" ]; then
234         umask 027
235         if [ -d /etc/httpd/httpd.conf ]; then
236                 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
237         else
238                 grep -v "^Include.*%{name}.conf" /etc/httpd/httpd.conf > \
239                         /etc/httpd/httpd.conf.tmp
240                 mv -f /etc/httpd/httpd.conf.tmp /etc/httpd/httpd.conf
241         fi
242         if [ -f /var/lock/subsys/httpd ]; then
243                 /usr/sbin/apachectl restart 1>&2
244         fi
245 fi
246
247 %preun almsd
248 if [ "$1" = "0" ]; then
249         if [ -f /var/lock/subsys/lmsd ]; then
250                 /etc/rc.d/init.d/lmsd stop >&2
251         fi
252         /sbin/chkconfig --del lmsd
253 fi
254
255 %triggerpostun -- %{name} <= 1.0.4
256 echo "WARNING!!!"
257 echo "_READ_ and upgrade LMS database:"
258 echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
259 echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
260 echo
261
262 %files
263 %defattr(644,root,root,755)
264 %doc doc/{AUTHORS,ChangeLog*,README,TODO,UPGRADE*,lms*}
265 %dir %{_sysconfdir}
266 %attr(640,root,http) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/*.ini
267 %config(noreplace) %verify(not size mtime md5) /etc/httpd/%{name}.conf
268 #
269 %dir %{_lmsvar}
270 %attr(770,root,http) %{_lmsvar}/backups
271 %attr(770,root,http) %{_lmsvar}/templates_c
272 #
273 %dir %{_lmsdir}
274 %{_lmsdir}/www
275 %exclude %{_lmsdir}/www/user
276 %{_lmsdir}/lib
277 %{_lmsdir}/modules
278 %exclude %{_lmsdir}/modules/sql.php
279 %{_lmsdir}/contrib
280 %{_lmsdir}/sample
281 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.sh
282 %{_lmsdir}/templates
283 %exclude %{_lmsdir}/templates/sql.html
284 %exclude %{_lmsdir}/templates/sqlprint.html
285
286 %files scripts
287 %defattr(644,root,root,755)
288 %dir %{_sbindir}
289 %attr(755,root,root) %{_sbindir}/*
290
291 %files sqlpanel
292 %defattr(644,root,root,755)
293 %{_lmsdir}/modules/sql.php
294 %{_lmsdir}/templates/sql.html
295 %{_lmsdir}/templates/sqlprint.html
296
297 %files user
298 %defattr(644,root,root,755)
299 %{_lmsdir}/www/user
300
301 %if %{with almsd}
302 %files almsd
303 %defattr(644,root,root,755)
304 %doc daemon/{lms.ini.sample,TODO}
305 %attr(755,root,root) %{_sbindir}/almsd-*
306 %attr(755,root,root) /usr/lib/lms/*.so
307 %attr(754,root,root) /etc/rc.d/init.d/lmsd
308 /etc/lms/modules/*
309 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
310 %endif
This page took 0.06041 seconds and 4 git commands to generate.