1 # Bacula Web GUI RPM spec file
2 # Copyright (C) 2004-2006 Kern Sibbald
7 %{?build_rhel:%define rhel 1}
10 %{?build_suse:%define suse 1}
13 %{?build_mdk:%define mdk 1}
15 # test for a platform definition
16 %if ! %{rhel} && ! %{suse} && ! %{mdk}
17 %{error: You must specify a platform. Please examine the spec file.}
21 # source package names
22 %define web bacula-web
23 %define bimagemgr bimagemgr
25 %define brestore brestore
27 # set destination directories
28 %define cgidir /var/www/cgi-bin
29 %define docdir /var/www/html
30 %define sysconfdir /etc/bacula
32 %define cgidir /srv/www/cgi-bin
33 %define docdir /srv/www/htdocs
36 # set ownership of files
39 %define dataowner apache
40 %define datagroup apache
42 %define dataowner wwwrun
46 %define groupmod /usr/sbin/groupmod
47 %define groupfile /etc/group
49 Summary: Bacula - The Network Backup Solution
53 Group: System Environment/Daemons
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>
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.
74 Summary: Bacula - The Network Backup Solution
75 Group: System Environment/Daemons
77 Requires: perl, perl-DBI, bacula-server, cdrecord, mkisofs
84 Obsoletes: bacula-bimagemgr
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
96 Summary: Bacula - The Network Backup Solution
97 Group: System Environment/Daemons
99 Requires: php >= 4, bacula-server
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.
113 Summary: Bacula - The Network Backup Solution
114 Group: System Environment/Daemons
116 Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-GDGraph, perl-GD
117 Requires: perl-HTML-Template, perl-Time-modules
120 Requires: perl-CGI-Application
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.
132 Summary: Bacula - The Network Backup Solution
133 Group: System Environment/Daemons
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}
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.
145 Summary: Bacula - The Network Backup Solution
146 Group: System Environment/Daemons
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
153 Requires: perl-CGI-Application
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.
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
176 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
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
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}
194 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
195 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
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}/
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
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}/
219 chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/README.bacula-web
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
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/
229 cp -p %{brestore}-%{version}/brestore.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop
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
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
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 chmod 644 $RPM_BUILD_ROOT%{docdir}/%{bweb}/*
253 cp -p %{bweb}-%{version}/script/bweb-postgresql.sql $RPM_BUILD_ROOT%{sysconfdir}
254 chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/bweb-postgresql.sql
257 # remove the standard doc files from the install directory
258 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/ChangeLog
259 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/CONTACT
260 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/COPYING
261 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/README
262 rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/TODO
265 mkdir -p docs/%{bimagemgr}
267 mkdir docs/%{brestore}
270 cp -p %{bimagemgr}-%{version}/README docs/%{bimagemgr}/
271 cp -p %{bimagemgr}-%{version}/COPYING docs/%{bimagemgr}/
272 cp -p %{bimagemgr}-%{version}/ChangeLog docs/%{bimagemgr}/
273 cp -p %{bimagemgr}-%{version}/ReleaseNotes docs/%{bimagemgr}/
274 cp -p bacula-docs-%{version}/manual/%{bimagemgr}.pdf docs/%{bimagemgr}/
276 cp -p %{web}-%{version}/README docs/%{web}/
277 cp -p %{web}-%{version}/ChangeLog docs/%{web}/
278 cp -p %{web}-%{version}/CONTACT docs/%{web}/
279 cp -p %{web}-%{version}/COPYING docs/%{web}/
280 cp -p bacula-docs-%{version}/%{web}/%{web}.pdf docs/%{web}/
282 cp -p %{brestore}-%{version}/README docs/%{brestore}/
283 cp -p %{brestore}-%{version}/COPYING docs/%{brestore}/
284 cp -p %{brestore}-%{version}/ReleaseNotes docs/%{brestore}/
286 cp -p %{bweb}-%{version}/INSTALL docs/%{bweb}/
287 cp -p %{bweb}-%{version}/COPYING docs/%{bweb}/
288 cp -p %{bweb}-%{version}/ReleaseNotes docs/%{bweb}/
291 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
295 %defattr(-,root,root)
296 %doc docs/%{bimagemgr}/*
298 %defattr(-,%{binowner},%{bingroup})
299 %{cgidir}/bimagemgr.pl
300 %{sysconfdir}/create_cdimage_table.pl
301 %{sysconfdir}/README.bimagemgr
302 %{docdir}/bimagemgr.gif
303 %{docdir}/cdrom_spins.gif
304 %{docdir}/clearpixel.gif
306 %defattr(-,%{dataowner},%{datagroup})
308 %config(noreplace) %{cgidir}/config.pm
311 %defattr(-,root,root)
314 %defattr(-,%{binowner},%{bingroup})
315 %{sysconfdir}/README.bacula-web
317 %defattr(-,%{dataowner},%{datagroup})
318 %{docdir}/%{web}/*.php
319 %{docdir}/%{web}/*.po
320 %{docdir}/%{web}/*.inc
321 %config(noreplace) %{docdir}/%{web}/configs
322 %{docdir}/%{web}/external_packages
323 %{docdir}/%{web}/images
325 %{docdir}/%{web}/locale
326 %{docdir}/%{web}/templates
327 %{docdir}/%{web}/templates_c
330 %defattr(-,root,root)
331 %{perl_sitearch}/*.pm
334 %defattr(-,root,root)
336 /usr/share/brestore/brestore.glade
337 /usr/share/applications/brestore.desktop
338 /usr/share/pixmaps/brestore.png
339 %doc docs/%{brestore}/*
341 # add the console helper files
342 %config(noreplace,missingok) /etc/pam.d/brestore
343 %config(noreplace,missingok) /etc/security/console.apps/brestore
348 %defattr(-,%{binowner},%{bingroup})
350 /usr/share/bweb/tpl/*.tpl
352 %{sysconfdir}/bweb-postgresql.sql
355 %defattr(-,%{binowner},%{datagroup})
358 %defattr(-,%{dataowner},%{datagroup})
359 %{sysconfdir}/bweb.conf
363 # add the web server user to group bacula
364 %{groupmod} -A %{dataowner} bacula
367 cp -p %{groupfile} %{groupfile}.old
368 awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile}
373 # remove the web server user to group bacula
374 %{groupmod} -R %{dataowner} bacula
377 echo "You should remove user %{dataowner} from group bacula."
383 # add the web server user to group bacula
384 %{groupmod} -A %{dataowner} bacula
387 cp -p %{groupfile} %{groupfile}.old
388 awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile}
391 echo If you are using postgresql, you should load %{sysconfdir}/bweb-postgresql.sql into
393 echo postgres:~$ psql bacula < %{sysconfdir}/bweb-postgresql.sql
398 # remove the web server user to group bacula
399 %{groupmod} -R %{dataowner} bacula
402 echo "You should remove user %{dataowner} from group bacula."
407 * Sun Dec 31 2006 ebl
408 - move /etc/bweb/config to /etc/bacula/bweb.conf
409 * Sun Sep 24 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
410 - it's bweb not brestore that needs to add dataowner to group bacula
411 - brestore will need to run xsu or consolehelper
412 * Sun Sep 03 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
413 - seems that groupmod -A or -R is only available on SuSE
414 - use awk or add warning for other platforms
415 * Sat Aug 26 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
416 - add brestore menu entry and post script
417 - add /etc/bweb/bweb-postgresql.sql
418 - add bweb and brestore docs
419 * Sun Aug 20 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
420 - add libbweb, bweb and brestore packages
421 * Sun May 14 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
422 - add bimagemgr manual
423 * Sun May 07 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
424 - refine files section for web
426 - add config.pm for bimagemgr
427 - add post script bimagemgr to add web server user to group bacula
428 * Sat May 06 2006 D. Scott Barninger <barninger at fairfieldcomputers.com>
429 - was bimagemgr spec convert to bacula-gui spec. include bacula-web
430 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
431 - ASSIGNMENT OF COPYRIGHT
432 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and
433 - assigns unto Kern Sibbald, his successors, assigns and personal representatives,
434 - all right, title and interest in and to the copyright in this software RPM
435 - spec file. D. Scott Barninger warrants good title to said copyright, that it is
436 - free of all liens, encumbrances or any known claims against said copyright.
437 * Sun Nov 14 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>