]> git.pld-linux.org Git - packages/lms.git/blob - lms.spec
- upgraded patches
[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.6
9 %define         lmssubver       0
10 Summary:        LAN Managment System
11 Summary(pl):    System Zarz±dzania Sieci± Lokaln±
12 Name:           lms
13 Version:        %{lmsver}.%{lmssubver}
14 Release:        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:  942955f198c2d7f5b8b702ec60335729
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_almsd:BuildRequires:    libgadu-devel}
27 %{?with_almsd:BuildRequires:    mysql-devel}
28 %{?with_almsd:BuildRequires:    postgresql-devel}
29 %{?with_almsd:PreReq:           rc-scripts}
30 %{?with_almsd:Requires(post,preun):     /sbin/chkconfig}
31 Requires:       php
32 Requires:       php-gd
33 Requires:       php-posix
34 Requires:       php-pcre
35 Requires:       webserver
36 Requires:       Smarty >= 2.5.0
37 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
38
39 %define         _sysconfdir     /etc/%{name}
40 %define         _lmsdir         %{_datadir}/%{name}
41 %define         _lmsvar         /var/lib/%{name}
42
43 %description
44 This is a package of applications in PHP and Perl for managing LANs.
45 It's using MySQL or PostgreSQL. The main goal is to get the best
46 service of users at provider's level. The main features in LMS are:
47 - database of users (name, surname, address, telefon number,
48   commentary);
49 - database of computers (IP, MAC);
50 - easy-ridden financial system and funds of network;
51 - different subscriptions;
52 - sending warnings to users;
53 - many levels of access for LMS administrators;
54 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
55   openbsd packet filter configuration files/scripts;
56 - autogenerating almost any kind of config file using templates.
57
58 %description -l pl
59 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
60 aplikacji w PHP i Perlu, u³atwiaj±cych zarz±dzanie sieciami
61 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
62 opartych o bazê danych MySQL lub PostgreSQL. G³ówne za³o¿enia to
63 uzyskanie jako¶ci us³ug oraz obs³ugi u¿ytkowników na poziomie
64 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
65 to:
66 - baza danych u¿ytkowników (imiê, nazwisko, adres, numer telefonu,
67   uwagi);
68 - baza danych komputerów (adres IP, adres MAC);
69 - prowadzenie prostego rachunku operacji finansowych oraz stanu
70   funduszów sieci;
71 - ró¿ne taryfy abonamentowe;
72 - wysy³anie poczt± elektroniczn± upomnieñ do u¿ytkowników;
73 - automatyczne naliczanie op³at miesiêcznych;
74 - ró¿ne poziomy dostêpu do funkcji LMS dla administratorów;
75 - generowanie regu³ i plików konfiguracyjnych dla ipchains, iptables,
76   dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
77 - generowanie praktycznie ka¿dego pliku konfiguracyjnego na podstawie
78   danych w bazie przy u¿yciu prostych szablonów.
79
80 %package scripts
81 Summary:        LAN Managment System - scripts
82 Summary(pl):    LAN Managment System - skrypty
83 Group:          Networking/Utilities
84 Requires:       perl-Net-SMTP-Server
85 Requires:       perl-Config-IniFiles
86 Requires:       perl-DBI
87
88 %description scripts
89 This package contains scripts to integrate LMS with your system,
90 monthly billing, notify users about their debts and cutting off
91 customers. Also you can build propably any kind of config file using
92 lms-mgc.
93
94 %description scripts -l pl
95 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
96 comiesiêcznych op³at, powiadamiania u¿ytkowników o ich zad³u¿eniu oraz
97 ich automagicznego od³±czania. Mo¿esz tak¿e zbudowaæ prawdopodobnie
98 ka¿dy typ pliku konfiguracyjnego przy u¿yciu lms-mgc.
99
100 %package sqlpanel
101 Summary:        LAN Managment System - sqlpanel module
102 Summary(pl):    LAN Managment System - modu³ sqlpanel
103 Group:          Networking/Utilities
104 Requires:       %{name} = %{version}-%{release}
105
106 %description sqlpanel
107 SQL-panel module allows you to execute SQL queries and directly modify
108 data.
109
110 %description sqlpanel -l pl
111 Modu³ 'SQL - panel' daje mo¿liwo¶æ bezpo¶redniego dostêpu do bazy
112 danych poprzez zadawanie zapytañ SQL. Wyniki wy¶wietlane s± w formie
113 tabeli. Ponadto podawany jest czas wykonania zapytania.
114
115 %package user
116 Summary:        LAN Managment System - simple user interface
117 Summary(pl):    LAN Managment System - prosty interfejs u¿ytkownika
118 Group:          Networking/Utilities
119 Requires:       %{name} = %{version}-%{release}
120
121 %description user
122 Simple user interface.
123
124 %description user -l pl
125 Prosty interfejs u¿ytkownika.
126
127 %package almsd
128 Summary:        LAN Managment System - LMS system backend
129 Summary(pl):    LAN Managment System - backend systemu LMS
130 Group:          Networking/Utilities
131 Requires:       %{name} = %{version}-%{release}
132
133 %description almsd
134 A program to manage the server by creating configuration files based
135 upon LMS database and restarting selected services.
136
137 %description almsd -l pl
138 Program zarz±dzaj±cy serwerem poprzez tworzenie plików
139 konfiguracyjnych na podstawie bazy danych LMS'a i restartowanie
140 wybranych us³ug.
141
142 %prep
143 %setup -q -n %{name}
144 %patch0 -p1
145 %if "%{_lib}" == "lib64"
146 %patch1 -p1
147 %endif
148
149 %build
150 %if %{with almsd}
151
152 cd daemon
153
154 ./configure --with-mysql
155 %{__make} \
156         CC='%{__cc}' CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -I../..'
157 mv almsd almsd-mysql
158
159 rm db.o
160
161 ./configure --with-pgsql
162 %{__make} almsd \
163         CC='%{__cc}' \
164         CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -I../..'
165 mv almsd almsd-pgsql
166
167 cd ..
168 %endif
169
170 %install
171 rm -rf $RPM_BUILD_ROOT
172 install -d $RPM_BUILD_ROOT%{_sbindir} \
173            $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,httpd} \
174            $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
175            $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c},/usr/lib/lms} \
176            $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user,calendar}
177
178 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
179 install img/* $RPM_BUILD_ROOT%{_lmsdir}/www/img
180 cp -r doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
181 cp -r lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
182 mv $RPM_BUILD_ROOT%{_lmsdir}/templates/calendar.html $RPM_BUILD_ROOT%{_lmsdir}/www/calendar
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 cp -r 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
259 %triggerpostun -- %{name} <= 1.2.0
260 echo "BEWARE:" 
261 echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team" 
262 echo "You are advised to upgrade it manually" 
263 echo 
264
265 %files
266 %defattr(644,root,root,755)
267 %doc doc/{AUTHORS,ChangeLog*,README,UPGRADE*,lms*}
268 %dir %{_sysconfdir}
269 %attr(640,root,http) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/*.ini
270 %config(noreplace) %verify(not size mtime md5) /etc/httpd/%{name}.conf
271 #
272 %dir %{_lmsvar}
273 %attr(770,root,http) %{_lmsvar}/backups
274 %attr(770,root,http) %{_lmsvar}/templates_c
275 #
276 %dir %{_lmsdir}
277 %{_lmsdir}/www
278 %exclude %{_lmsdir}/www/user
279 %{_lmsdir}/lib
280 %{_lmsdir}/modules
281 %exclude %{_lmsdir}/modules/sql.php
282 %{_lmsdir}/contrib
283 %{_lmsdir}/sample
284 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
285 %{_lmsdir}/templates
286 %exclude %{_lmsdir}/templates/sql.html
287 %exclude %{_lmsdir}/templates/sqlprint.html
288
289 %files scripts
290 %defattr(644,root,root,755)
291 %dir %{_sbindir}
292 %attr(755,root,root) %{_sbindir}/*
293
294 %files sqlpanel
295 %defattr(644,root,root,755)
296 %{_lmsdir}/modules/sql.php
297 %{_lmsdir}/templates/sql.html
298 %{_lmsdir}/templates/sqlprint.html
299
300 %files user
301 %defattr(644,root,root,755)
302 %{_lmsdir}/www/user
303
304 %if %{with almsd}
305 %files almsd
306 %defattr(644,root,root,755)
307 %doc daemon/lms.ini.sample
308 %attr(755,root,root) %{_sbindir}/almsd-*
309 %attr(755,root,root) /usr/lib/lms/*.so
310 %attr(754,root,root) /etc/rc.d/init.d/lmsd
311 /etc/lms/modules/*
312 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
313 %endif
This page took 0.061667 seconds and 3 git commands to generate.