# Bacula Web GUI RPM spec file # Copyright (C) 2004-2007 Free Software Foundation Europe e.V. # Platform defines %define rhel 0 %{?build_rhel:%define rhel 1} %define suse 0 %{?build_suse:%define suse 1} %define mdk 0 %{?build_mdk:%define mdk 1} # test for a platform definition %if ! %{rhel} && ! %{suse} && ! %{mdk} %{error: You must specify a platform. Please examine the spec file.} exit 1 %endif # source package names %define web bacula-web %define bimagemgr bimagemgr %define bweb bweb %define brestore brestore # set destination directories %define cgidir /var/www/cgi-bin %define docdir /var/www/html %define sysconfdir /etc/bacula %if %{suse} %define cgidir /srv/www/cgi-bin %define docdir /srv/www/htdocs %endif # set ownership of files %define binowner root %define bingroup root %define dataowner apache %define datagroup apache %if %{suse} %define dataowner wwwrun %define datagroup www %endif %define groupmod /usr/sbin/groupmod %define groupfile /etc/group Summary: Bacula - The Network Backup Solution Name: bacula-gui Version: @VERSION@ Release: 1 Group: System Environment/Daemons License: GPL v2 Source0: %{web}-%{version}.tar.gz Source1: %{bimagemgr}-%{version}.tar.gz Source2: bacula-docs-%{version}.tar.gz Source3: %{bweb}-%{version}.tar.gz Source4: %{brestore}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-root URL: http://www.bacula.org/ BuildArchitectures: noarch Vendor: The Bacula Team Distribution: The Bacula Team Packager: D. Scott Barninger %description Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. bacula-gui is a set of web server based tools used to manage backups. %package bimagemgr Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: perl, perl-DBI, bacula-server, cdrecord, mkisofs %if %{mdk} Requires: apache %else Requires: httpd %endif Obsoletes: bacula-bimagemgr %description bimagemgr Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. bimagemgr is a utility to manage backups made to files intended for burning to CDR disk. bimagemgr allows you to easily see which Volumes have been written to more recently than they have been recorded to CDR disk and record those which have. %package web Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: php >= 4, bacula-server %if %{mdk} Requires: apache %else Requires: httpd %endif %description web Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. bacula-web is a web server based utility to monitor your bacula server. %package libbweb Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-GDGraph, perl-GD Requires: perl-HTML-Template, perl-Time-modules %if %{suse} Requires: perl-CGI-Application %else Requires: perl-CGI %endif %description libbweb Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. libbweb is a set of perl modules required by bacula-gui-bweb and bacula-gui-brestore utilities. %package brestore Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-Expect, perl-libwww-perl Requires: perl-Gtk2-GladeXML, bacula-gui-libbweb = %{version} %description brestore Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. brestore is a file restoration interface. %package bweb Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: perl, perl-DBI, perl-DBD-mysql, perl-DBD-Pg, perl-GDGraph Requires: perl-HTML-Template, perl-Time-modules, bacula-gui-libbweb Requires: bacula-server %if %{suse} Requires: perl-CGI-Application %else Requires: perl-CGI %endif %description bweb Bacula is a set of computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. bweb is a web based interface for a bacula server. %prep # unpack both sources inside a directory with package name and version %setup -c %{name} -D -b 1 %setup -c %{name} -T -D -b 2 %setup -c %{name} -T -D -b 3 %setup -c %{name} -T -D -b 4 %build %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" rm -rf docs mkdir -p $RPM_BUILD_ROOT%{cgidir} mkdir -p $RPM_BUILD_ROOT%{docdir}/%{web} mkdir -p $RPM_BUILD_ROOT%{sysconfdir} mkdir -p $RPM_BUILD_ROOT%{perl_sitearch} mkdir -p $RPM_BUILD_ROOT/usr/bin mkdir -p $RPM_BUILD_ROOT/usr/share/brestore mkdir -p $RPM_BUILD_ROOT/usr/share/applications mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps mkdir -p $RPM_BUILD_ROOT%{cgidir}/bweb chmod 755 $RPM_BUILD_ROOT%{cgidir}/bweb mkdir -p $RPM_BUILD_ROOT/usr/share/bweb/tpl mkdir -p $RPM_BUILD_ROOT%{docdir}/%{bweb} %if !%{suse} mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps mkdir -p $RPM_BUILD_ROOT/etc/pam.d %endif # install bimagemgr files cp -p %{bimagemgr}-%{version}/bimagemgr.pl $RPM_BUILD_ROOT%{cgidir}/ cp -p %{bimagemgr}-%{version}/config.pm $RPM_BUILD_ROOT%{cgidir}/ cp -p %{bimagemgr}-%{version}/create_cdimage_table.pl $RPM_BUILD_ROOT%{sysconfdir}/ cp -p %{bimagemgr}-%{version}/README $RPM_BUILD_ROOT%{sysconfdir}/README.bimagemgr cp -p %{bimagemgr}-%{version}/bimagemgr.gif $RPM_BUILD_ROOT%{docdir}/ cp -p %{bimagemgr}-%{version}/cdrom_spins.gif $RPM_BUILD_ROOT%{docdir}/ cp -p %{bimagemgr}-%{version}/clearpixel.gif $RPM_BUILD_ROOT%{docdir}/ cp -p %{bimagemgr}-%{version}/temp.html $RPM_BUILD_ROOT%{docdir}/ chmod 755 $RPM_BUILD_ROOT%{cgidir}/bimagemgr.pl chmod 750 $RPM_BUILD_ROOT%{cgidir}/config.pm chmod 750 $RPM_BUILD_ROOT%{sysconfdir}/create_cdimage_table.pl chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/README.bimagemgr chmod 644 $RPM_BUILD_ROOT%{docdir}/*.gif chmod 664 $RPM_BUILD_ROOT%{docdir}/temp.html # install bacula-web files cp -p %{web}-%{version}/README $RPM_BUILD_ROOT%{sysconfdir}/README.bacula-web cp -r -p %{web}-%{version}/* $RPM_BUILD_ROOT%{docdir}/%{web}/ chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/README.bacula-web # install the libbweb files cp -p %{bweb}-%{version}/lib/*.pm $RPM_BUILD_ROOT%{perl_sitearch}/ chmod 644 $RPM_BUILD_ROOT%{perl_sitearch}/*.pm # install the brestore files cp -p %{brestore}-%{version}/brestore.pl $RPM_BUILD_ROOT/usr/bin/ cp -p %{brestore}-%{version}/brestore.glade $RPM_BUILD_ROOT/usr/share/brestore/ %if %{suse} cp -p %{brestore}-%{version}/brestore.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop %else cp -p %{brestore}-%{version}/brestore.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop cp -p %{brestore}-%{version}/brestore.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/brestore cp -p %{brestore}-%{version}/brestore.pamd $RPM_BUILD_ROOT/etc/pam.d/brestore ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/brestore %endif cp -p %{brestore}-%{version}/brestore.png $RPM_BUILD_ROOT/usr/share/pixmaps/ chmod 755 $RPM_BUILD_ROOT/usr/bin/brestore.pl chmod 644 $RPM_BUILD_ROOT/usr/share/brestore/brestore.glade chmod 644 $RPM_BUILD_ROOT/usr/share/applications/brestore.desktop chmod 644 $RPM_BUILD_ROOT/usr/share/pixmaps/brestore.png # install the bweb files cp -p %{bweb}-%{version}/cgi/*.pl $RPM_BUILD_ROOT%{cgidir}/bweb/ chmod 755 $RPM_BUILD_ROOT%{cgidir}/bweb/* echo "template_dir = /usr/share/bweb/tpl" > $RPM_BUILD_ROOT%{sysconfdir}/bweb.conf cp -p %{bweb}-%{version}/tpl/*.tpl $RPM_BUILD_ROOT/usr/share/bweb/tpl/ chmod 644 $RPM_BUILD_ROOT/usr/share/bweb/tpl/* cp -p %{bweb}-%{version}/html/*.js $RPM_BUILD_ROOT%{docdir}/%{bweb}/ cp -p %{bweb}-%{version}/html/*.png $RPM_BUILD_ROOT%{docdir}/%{bweb}/ cp -p %{bweb}-%{version}/html/*.css $RPM_BUILD_ROOT%{docdir}/%{bweb}/ cp -p %{bweb}-%{version}/html/*.gif $RPM_BUILD_ROOT%{docdir}/%{bweb}/ cp -p %{bweb}-%{version}/html/*.html $RPM_BUILD_ROOT%{docdir}/%{bweb}/ chmod 644 $RPM_BUILD_ROOT%{docdir}/%{bweb}/* cp -p %{bweb}-%{version}/script/bweb-postgresql.sql $RPM_BUILD_ROOT%{sysconfdir} chmod 644 $RPM_BUILD_ROOT%{sysconfdir}/bweb-postgresql.sql # remove the standard doc files from the install directory rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/ChangeLog rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/CONTACT rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/COPYING rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/README rm -f $RPM_BUILD_ROOT%{docdir}/%{web}/TODO # setup the docs dir mkdir -p docs/%{bimagemgr} mkdir docs/%{web} mkdir docs/%{brestore} mkdir docs/%{bweb} cp -p %{bimagemgr}-%{version}/README docs/%{bimagemgr}/ cp -p %{bimagemgr}-%{version}/COPYING docs/%{bimagemgr}/ cp -p %{bimagemgr}-%{version}/ChangeLog docs/%{bimagemgr}/ cp -p %{bimagemgr}-%{version}/ReleaseNotes docs/%{bimagemgr}/ cp -p bacula-docs-%{version}/manual/%{bimagemgr}.pdf docs/%{bimagemgr}/ cp -p %{web}-%{version}/README docs/%{web}/ cp -p %{web}-%{version}/ChangeLog docs/%{web}/ cp -p %{web}-%{version}/CONTACT docs/%{web}/ cp -p %{web}-%{version}/COPYING docs/%{web}/ cp -p bacula-docs-%{version}/%{web}/%{web}.pdf docs/%{web}/ cp -p %{brestore}-%{version}/README docs/%{brestore}/ cp -p %{brestore}-%{version}/COPYING docs/%{brestore}/ cp -p %{brestore}-%{version}/ReleaseNotes docs/%{brestore}/ cp -p %{bweb}-%{version}/INSTALL docs/%{bweb}/ cp -p %{bweb}-%{version}/COPYING docs/%{bweb}/ cp -p %{bweb}-%{version}/ReleaseNotes docs/%{bweb}/ %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" rm -rf docs %files bimagemgr %defattr(-,root,root) %doc docs/%{bimagemgr}/* %defattr(-,%{binowner},%{bingroup}) %{cgidir}/bimagemgr.pl %{sysconfdir}/create_cdimage_table.pl %{sysconfdir}/README.bimagemgr %{docdir}/bimagemgr.gif %{docdir}/cdrom_spins.gif %{docdir}/clearpixel.gif %defattr(-,%{dataowner},%{datagroup}) %{docdir}/temp.html %config(noreplace) %{cgidir}/config.pm %files web %defattr(-,root,root) %doc docs/%{web}/* %defattr(-,%{binowner},%{bingroup}) %{sysconfdir}/README.bacula-web %defattr(-,%{dataowner},%{datagroup}) %{docdir}/%{web}/*.php %{docdir}/%{web}/*.po %{docdir}/%{web}/*.inc %config(noreplace) %{docdir}/%{web}/configs %{docdir}/%{web}/external_packages %{docdir}/%{web}/images %{docdir}/%{web}/js %{docdir}/%{web}/locale %{docdir}/%{web}/templates %{docdir}/%{web}/templates_c %files libbweb %defattr(-,root,root) %{perl_sitearch}/*.pm %files brestore %defattr(-,root,root) /usr/bin/brestore.pl /usr/share/brestore/brestore.glade /usr/share/applications/brestore.desktop /usr/share/pixmaps/brestore.png %doc docs/%{brestore}/* %if !%{suse} # add the console helper files %config(noreplace,missingok) /etc/pam.d/brestore %config(noreplace,missingok) /etc/security/console.apps/brestore /usr/bin/brestore %endif %files bweb %defattr(-,%{binowner},%{bingroup}) %{cgidir}/bweb/*.pl /usr/share/bweb/tpl/*.tpl %{docdir}/bweb/* %{sysconfdir}/bweb-postgresql.sql %doc docs/%{bweb}/* %defattr(-,%{binowner},%{datagroup}) %dir %{sysconfdir} %defattr(-,%{dataowner},%{datagroup}) %{sysconfdir}/bweb.conf %post bimagemgr %if %{suse} # add the web server user to group bacula %{groupmod} -A %{dataowner} bacula %else # do it the hard way cp -p %{groupfile} %{groupfile}.old awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile} %endif %postun bimagemgr %if %{suse} # remove the web server user to group bacula %{groupmod} -R %{dataowner} bacula %else echo echo "You should remove user %{dataowner} from group bacula." echo %endif %post bweb %if %{suse} # add the web server user to group bacula %{groupmod} -A %{dataowner} bacula %else # do it the hard way cp -p %{groupfile} %{groupfile}.old awk '{if (/bacula:/) print $0",%{dataowner}"; else print $0}' %{groupfile}.old > %{groupfile} %endif echo echo If you are using postgresql, you should load %{sysconfdir}/bweb-postgresql.sql into echo your database. echo postgres:~$ psql bacula < %{sysconfdir}/bweb-postgresql.sql echo %postun bweb %if %{suse} # remove the web server user to group bacula %{groupmod} -R %{dataowner} bacula %else echo echo "You should remove user %{dataowner} from group bacula." echo %endif %changelog * Sun Dec 31 2006 ebl - move /etc/bweb/config to /etc/bacula/bweb.conf * Sun Sep 24 2006 D. Scott Barninger - it's bweb not brestore that needs to add dataowner to group bacula - brestore will need to run xsu or consolehelper * Sun Sep 03 2006 D. Scott Barninger - seems that groupmod -A or -R is only available on SuSE - use awk or add warning for other platforms * Sat Aug 26 2006 D. Scott Barninger - add brestore menu entry and post script - add /etc/bweb/bweb-postgresql.sql - add bweb and brestore docs * Sun Aug 20 2006 D. Scott Barninger - add libbweb, bweb and brestore packages * Sun May 14 2006 D. Scott Barninger - add bimagemgr manual * Sun May 07 2006 D. Scott Barninger - refine files section for web - add documentation - add config.pm for bimagemgr - add post script bimagemgr to add web server user to group bacula * Sat May 06 2006 D. Scott Barninger - was bimagemgr spec convert to bacula-gui spec. include bacula-web * Thu Dec 09 2004 D. Scott Barninger - ASSIGNMENT OF COPYRIGHT - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and - assigns unto Kern Sibbald, his successors, assigns and personal representatives, - all right, title and interest in and to the copyright in this software RPM - spec file. D. Scott Barninger warrants good title to said copyright, that it is - free of all liens, encumbrances or any known claims against said copyright. * Sun Nov 14 2004 D. Scott Barninger - initial spec file