]> git.sur5r.net Git - bacula/bacula/blob - gui/bacula-gui.spec.in
ebl Add ids on command.tpl to fix #1300
[bacula/bacula] / gui / bacula-gui.spec.in
1 # Bacula Web GUI RPM spec file
2 # Copyright (C) 2004-2007 Free Software Foundation Europe e.V.
3
4 # Platform defines
5
6 %define rhel 0
7 %{?build_rhel:%define rhel 1}
8
9 %define suse 0
10 %{?build_suse:%define suse 1}
11
12 %define mdk 0
13 %{?build_mdk:%define mdk 1}
14
15 # test for a platform definition
16 %if ! %{rhel} && ! %{suse} && ! %{mdk}
17 %{error: You must specify a platform. Please examine the spec file.}
18 exit 1
19 %endif
20
21 # source package names
22 %define web bacula-web
23 %define bimagemgr bimagemgr
24 %define bweb bweb
25 %define brestore brestore
26
27 # set destination directories
28 %define cgidir /var/www/cgi-bin
29 %define docdir /var/www/html
30 %define sysconfdir /etc/bacula
31 %if %{suse}
32 %define cgidir /srv/www/cgi-bin
33 %define docdir /srv/www/htdocs
34 %endif
35
36 # set ownership of files
37 %define binowner root
38 %define bingroup root
39 %define dataowner apache
40 %define datagroup apache
41 %if %{suse}
42 %define dataowner wwwrun
43 %define datagroup www
44 %endif
45
46 %define groupmod /usr/sbin/groupmod
47 %define groupfile /etc/group
48
49 Summary: Bacula - The Network Backup Solution
50 Name: bacula-gui
51 Version: @VERSION@
52 Release: 1
53 Group: System Environment/Daemons
54 License: GPL v2
55 Source0: %{web}-%{version}.tar.gz
56 Source1: %{bimagemgr}-%{version}.tar.gz
57 Source2: bacula-docs-%{version}.tar.gz
58 Source3: %{bweb}-%{version}.tar.gz
59 Source4: %{brestore}-%{version}.tar.gz
60 BuildRoot: %{_tmppath}/%{name}-root
61 URL: http://www.bacula.org/
62 BuildArchitectures: noarch
63 Vendor: The Bacula Team
64 Distribution: The Bacula Team 
65 Packager: D. Scott Barninger <barninger at fairfieldcomputers dot com>
66
67 %description
68 Bacula is a set of computer programs that permit you (or the system 
69 administrator) to manage backup, recovery, and verification of computer 
70 data across a network of computers of different kinds. bacula-gui is a 
71 set of web server based tools used to manage backups.
72
73 %package bimagemgr
74 Summary: Bacula - The Network Backup Solution
75 Group: System Environment/Daemons
76
77 Requires: perl, perl-DBI, bacula-server, cdrecord, mkisofs
78 %if %{mdk}
79 Requires: apache
80 %else
81 Requires: httpd
82 %endif
83
84 Obsoletes: bacula-bimagemgr
85
86 %description bimagemgr
87 Bacula is a set of computer programs that permit you (or the system 
88 administrator) to manage backup, recovery, and verification of computer 
89 data across a network of computers of different kinds. bimagemgr is a 
90 utility to manage backups made to files intended for burning to CDR 
91 disk. bimagemgr allows you to easily see which Volumes have been written 
92 to more recently than they have been recorded to CDR disk and record those 
93 which have.
94
95 %package web
96 Summary: Bacula - The Network Backup Solution
97 Group: System Environment/Daemons
98
99 Requires: php >= 4, bacula-server
100 %if %{mdk}
101 Requires: apache
102 %else
103 Requires: httpd
104 %endif
105
106 %description web
107 Bacula is a set of computer programs that permit you (or the system 
108 administrator) to manage backup, recovery, and verification of computer 
109 data across a network of computers of different kinds. bacula-web is a 
110 web server based utility to monitor your bacula server.
111
112 %package libbweb
113 Summary: Bacula - The Network Backup Solution
114 Group: System Environment/Daemons
115
116 Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-GDGraph, perl-GD
117 Requires: perl-HTML-Template, perl-Time-modules
118
119 %if %{suse}
120 Requires: perl-CGI-Application
121 %else
122 Requires: perl-CGI
123 %endif
124
125 %description libbweb
126 Bacula is a set of computer programs that permit you (or the system 
127 administrator) to manage backup, recovery, and verification of computer 
128 data across a network of computers of different kinds. libbweb is a set 
129 of perl modules required by bacula-gui-bweb and bacula-gui-brestore utilities.
130
131 %package brestore
132 Summary: Bacula - The Network Backup Solution
133 Group: System Environment/Daemons
134
135 Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-Expect, perl-libwww-perl
136 Requires: perl-Gtk2-GladeXML, bacula-gui-libbweb = %{version}
137
138 %description brestore
139 Bacula is a set of computer programs that permit you (or the system 
140 administrator) to manage backup, recovery, and verification of computer 
141 data across a network of computers of different kinds. brestore is a file 
142 restoration interface.
143
144 %package bweb
145 Summary: Bacula - The Network Backup Solution
146 Group: System Environment/Daemons
147
148 Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-GDGraph
149 Requires: perl-HTML-Template, perl-Time-modules, bacula-gui-libbweb
150 Requires: bacula-server
151
152 %if %{suse}
153 Requires: perl-CGI-Application
154 %else
155 Requires: perl-CGI
156 %endif
157
158 %description bweb
159 Bacula is a set of computer programs that permit you (or the system 
160 administrator) to manage backup, recovery, and verification of computer 
161 data across a network of computers of different kinds. bweb is a web based 
162 interface for a bacula server.
163
164 %prep
165
166 # unpack both sources inside a directory with package name and version
167 %setup -c %{name} -D -b 1
168 %setup -c %{name} -T -D -b 2
169 %setup -c %{name} -T -D -b 3
170 %setup -c %{name} -T -D -b 4
171
172 %build
173
174 %install
175
176 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
177 rm -rf docs
178
179 mkdir -p $RPM_BUILD_ROOT%{cgidir}
180 mkdir -p $RPM_BUILD_ROOT%{docdir}/%{web}
181 mkdir -p $RPM_BUILD_ROOT%{sysconfdir}
182 mkdir -p $RPM_BUILD_ROOT%{perl_sitearch}
183 mkdir -p $RPM_BUILD_ROOT/usr/bin
184 mkdir -p $RPM_BUILD_ROOT/usr/share/brestore
185 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
186 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
187
188 mkdir -p $RPM_BUILD_ROOT%{cgidir}/bweb
189 chmod 755 $RPM_BUILD_ROOT%{cgidir}/bweb
190 mkdir -p $RPM_BUILD_ROOT/usr/share/bweb/tpl
191 mkdir -p $RPM_BUILD_ROOT%{docdir}/%{bweb}
192
193 %if !%{suse}
194 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
195 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
196 %endif
197
198 # install bimagemgr files
199 cp -p %{bimagemgr}-%{version}/bimagemgr.pl $RPM_BUILD_ROOT%{cgidir}/
200 cp -p %{bimagemgr}-%{version}/config.pm $RPM_BUILD_ROOT%{cgidir}/
201 cp -p %{bimagemgr}-%{version}/create_cdimage_table.pl $RPM_BUILD_ROOT%{sysconfdir}/
202 cp -p %{bimagemgr}-%{version}/README $RPM_BUILD_ROOT%{sysconfdir}/README.bimagemgr
203 cp -p %{bimagemgr}-%{version}/bimagemgr.gif $RPM_BUILD_ROOT%{docdir}/
204 cp -p %{bimagemgr}-%{version}/cdrom_spins.gif $RPM_BUILD_ROOT%{docdir}/
205 cp -p %{bimagemgr}-%{version}/clearpixel.gif $RPM_BUILD_ROOT%{docdir}/
206 cp -p %{bimagemgr}-%{version}/temp.html $RPM_BUILD_ROOT%{docdir}/
207
208 chmod 755 $RPM_BUILD_ROOT%{cgidir}/bimagemgr.pl
209 chmod 750 $RPM_BUILD_ROOT%{cgidir}/config.pm
210 chmod 750 $RPM_BUILD_ROOT%{sysconfdir}/create_cdimage_table.pl
211 chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/README.bimagemgr
212 chmod 644 $RPM_BUILD_ROOT%{docdir}/*.gif
213 chmod 664 $RPM_BUILD_ROOT%{docdir}/temp.html
214
215 # install bacula-web files
216 cp -p %{web}-%{version}/README $RPM_BUILD_ROOT%{sysconfdir}/README.bacula-web
217 cp -r -p %{web}-%{version}/* $RPM_BUILD_ROOT%{docdir}/%{web}/
218
219 chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/README.bacula-web
220
221 # install the libbweb files
222 cp -p %{bweb}-%{version}/lib/*.pm $RPM_BUILD_ROOT%{perl_sitearch}/
223 chmod 644 $RPM_BUILD_ROOT%{perl_sitearch}/*.pm
224
225 # install the brestore files
226 cp -p %{brestore}-%{version}/brestore.pl $RPM_BUILD_ROOT/usr/bin/
227 cp -p %{brestore}-%{version}/brestore.glade $RPM_BUILD_ROOT/usr/share/brestore/
228 %if %{suse}
229 cp -p %{brestore}-%{version}/brestore.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop
230 %else
231 cp -p %{brestore}-%{version}/brestore.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop
232 cp -p %{brestore}-%{version}/brestore.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/brestore
233 cp -p %{brestore}-%{version}/brestore.pamd $RPM_BUILD_ROOT/etc/pam.d/brestore
234 ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/brestore
235 %endif
236 cp -p %{brestore}-%{version}/brestore.png $RPM_BUILD_ROOT/usr/share/pixmaps/
237 chmod 755 $RPM_BUILD_ROOT/usr/bin/brestore.pl
238 chmod 644 $RPM_BUILD_ROOT/usr/share/brestore/brestore.glade
239 chmod 644 $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop
240 chmod 644 $RPM_BUILD_ROOT/usr/share/pixmaps/brestore.png
241
242 # install the bweb files
243 cp -p %{bweb}-%{version}/cgi/*.pl $RPM_BUILD_ROOT%{cgidir}/bweb/
244 chmod 755 $RPM_BUILD_ROOT%{cgidir}/bweb/*
245 echo "template_dir = /usr/share/bweb/tpl" > $RPM_BUILD_ROOT%{sysconfdir}/bweb.conf
246 cp -p %{bweb}-%{version}/tpl/*.tpl $RPM_BUILD_ROOT/usr/share/bweb/tpl/
247 chmod 644 $RPM_BUILD_ROOT/usr/share/bweb/tpl/*
248 cp -p %{bweb}-%{version}/html/*.js $RPM_BUILD_ROOT%{docdir}/%{bweb}/
249 cp -p %{bweb}-%{version}/html/*.png $RPM_BUILD_ROOT%{docdir}/%{bweb}/
250 cp -p %{bweb}-%{version}/html/*.css $RPM_BUILD_ROOT%{docdir}/%{bweb}/
251 cp -p %{bweb}-%{version}/html/*.gif $RPM_BUILD_ROOT%{docdir}/%{bweb}/
252 cp -p %{bweb}-%{version}/html/*.html $RPM_BUILD_ROOT%{docdir}/%{bweb}/
253 chmod 644 $RPM_BUILD_ROOT%{docdir}/%{bweb}/*
254 cp -p %{bweb}-%{version}/script/bweb-postgresql.sql $RPM_BUILD_ROOT%{sysconfdir}
255 chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/bweb-postgresql.sql
256
257
258 # remove the standard doc files from the install directory
259 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/ChangeLog
260 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/CONTACT
261 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/COPYING
262 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/README
263 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/TODO
264
265 # setup the docs dir
266 mkdir -p docs/%{bimagemgr}
267 mkdir docs/%{web}
268 mkdir docs/%{brestore}
269 mkdir docs/%{bweb}
270
271 cp -p %{bimagemgr}-%{version}/README docs/%{bimagemgr}/
272 cp -p %{bimagemgr}-%{version}/COPYING docs/%{bimagemgr}/
273 cp -p %{bimagemgr}-%{version}/ChangeLog docs/%{bimagemgr}/
274 cp -p %{bimagemgr}-%{version}/ReleaseNotes docs/%{bimagemgr}/
275 cp -p bacula-docs-%{version}/manual/%{bimagemgr}.pdf docs/%{bimagemgr}/
276
277 cp -p %{web}-%{version}/README docs/%{web}/
278 cp -p %{web}-%{version}/ChangeLog docs/%{web}/
279 cp -p %{web}-%{version}/CONTACT docs/%{web}/
280 cp -p %{web}-%{version}/COPYING docs/%{web}/
281 cp -p bacula-docs-%{version}/%{web}/%{web}.pdf docs/%{web}/
282
283 cp -p %{brestore}-%{version}/README docs/%{brestore}/
284 cp -p %{brestore}-%{version}/COPYING docs/%{brestore}/
285 cp -p %{brestore}-%{version}/ReleaseNotes docs/%{brestore}/
286
287 cp -p %{bweb}-%{version}/INSTALL docs/%{bweb}/
288 cp -p %{bweb}-%{version}/COPYING docs/%{bweb}/
289 cp -p %{bweb}-%{version}/ReleaseNotes docs/%{bweb}/
290
291 %clean
292 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
293 rm -rf docs
294
295 %files bimagemgr
296 %defattr(-,root,root)
297 %doc docs/%{bimagemgr}/*
298
299 %defattr(-,%{binowner},%{bingroup})
300 %{cgidir}/bimagemgr.pl
301 %{sysconfdir}/create_cdimage_table.pl
302 %{sysconfdir}/README.bimagemgr
303 %{docdir}/bimagemgr.gif
304 %{docdir}/cdrom_spins.gif
305 %{docdir}/clearpixel.gif
306
307 %defattr(-,%{dataowner},%{datagroup})
308 %{docdir}/temp.html
309 %config(noreplace) %{cgidir}/config.pm
310
311 %files web
312 %defattr(-,root,root)
313 %doc docs/%{web}/*
314
315 %defattr(-,%{binowner},%{bingroup})
316 %{sysconfdir}/README.bacula-web
317
318 %defattr(-,%{dataowner},%{datagroup})
319 %{docdir}/%{web}/*.php
320 %{docdir}/%{web}/*.po
321 %{docdir}/%{web}/*.inc
322 %config(noreplace) %{docdir}/%{web}/configs
323 %{docdir}/%{web}/external_packages
324 %{docdir}/%{web}/images
325 %{docdir}/%{web}/js
326 %{docdir}/%{web}/locale
327 %{docdir}/%{web}/templates
328 %{docdir}/%{web}/templates_c
329
330 %files libbweb
331 %defattr(-,root,root)
332 %{perl_sitearch}/*.pm
333
334 %files brestore
335 %defattr(-,root,root)
336 /usr/bin/brestore.pl
337 /usr/share/brestore/brestore.glade
338 /usr/share/applications/brestore.desktop
339 /usr/share/pixmaps/brestore.png
340 %doc docs/%{brestore}/*
341 %if !%{suse}
342 # add the console helper files
343 %config(noreplace,missingok) /etc/pam.d/brestore
344 %config(noreplace,missingok) /etc/security/console.apps/brestore
345 /usr/bin/brestore
346 %endif
347
348 %files bweb
349 %defattr(-,%{binowner},%{bingroup})
350 %{cgidir}/bweb/*.pl
351 /usr/share/bweb/tpl/*.tpl
352 %{docdir}/bweb/*
353 %{sysconfdir}/bweb-postgresql.sql
354 %doc docs/%{bweb}/*
355
356 %defattr(-,%{binowner},%{datagroup})
357 %dir %{sysconfdir}
358
359 %defattr(-,%{dataowner},%{datagroup})
360 %{sysconfdir}/bweb.conf
361
362 %post bimagemgr
363 %if %{suse}
364 # add the web server user to group bacula
365 %{groupmod} -A %{dataowner} bacula
366 %else
367 # do it the hard way
368 cp -p %{groupfile} %{groupfile}.old
369 awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile}
370 %endif
371
372 %postun bimagemgr
373 %if %{suse}
374 # remove the web server user to group bacula
375 %{groupmod} -R %{dataowner} bacula
376 %else
377 echo
378 echo "You should remove user %{dataowner} from group bacula."
379 echo
380 %endif
381
382 %post bweb
383 %if %{suse}
384 # add the web server user to group bacula
385 %{groupmod} -A %{dataowner} bacula
386 %else
387 # do it the hard way
388 cp -p %{groupfile} %{groupfile}.old
389 awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile}
390 %endif
391 echo
392 echo If you are using postgresql, you should load %{sysconfdir}/bweb-postgresql.sql into
393 echo your database.
394 echo postgres:~$ psql bacula < %{sysconfdir}/bweb-postgresql.sql
395 echo
396
397 %postun bweb
398 %if %{suse}
399 # remove the web server user to group bacula
400 %{groupmod} -R %{dataowner} bacula
401 %else
402 echo
403 echo "You should remove user %{dataowner} from group bacula."
404 echo
405 %endif
406
407 %changelog
408 * Sun Dec 31 2006 ebl
409 - move /etc/bweb/config to /etc/bacula/bweb.conf
410 * Sun Sep 24 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
411 - it's bweb not brestore that needs to add dataowner to group bacula
412 - brestore will need to run xsu or consolehelper
413 * Sun Sep 03 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
414 - seems that groupmod -A or -R is only available on SuSE
415 - use awk or add warning for other platforms
416 * Sat Aug 26 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
417 - add brestore menu entry and post script
418 - add /etc/bweb/bweb-postgresql.sql
419 - add bweb and brestore docs
420 * Sun Aug 20 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
421 - add libbweb, bweb and brestore packages
422 * Sun May 14 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
423 - add bimagemgr manual
424 * Sun May 07 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
425 - refine files section for web
426 - add documentation
427 - add config.pm for bimagemgr
428 - add post script bimagemgr to add web server user to group bacula
429 * Sat May 06 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
430 - was bimagemgr spec convert to bacula-gui spec. include bacula-web
431 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
432 - ASSIGNMENT OF COPYRIGHT
433 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and 
434 - assigns unto Kern Sibbald, his successors, assigns and personal representatives, 
435 - all right, title and interest in and to the copyright in this software RPM
436 - spec file. D. Scott Barninger warrants good title to said copyright, that it is 
437 - free of all liens, encumbrances or any known claims against said copyright.
438 * Sun Nov 14 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
439 - initial spec file