# Platform Build Configuration # basic defines for every build %define depkgs ../depkgs %define depkgs_version 24Jul03 %define tomsrtbt tomsrtbt-2.0.103 # platform defines - set one below or define the build_xxx on the command line # RedHat builds %define rh7 0 %{?build_rh7:%define rh7 1} %define rh8 0 %{?build_rh8:%define rh8 1} %define rh9 0 %{?build_rh9:%define rh9 1} # Fedora Core 1 build %define fc1 0 %{?build_fc1:%define fc1 1} # Whitebox Enterprise build %define wb3 0 %{?build_wb3:%define wb3 1} # database defines # set mysql for MySQL support, leave unset for sqlite support %define mysql 0 %{?build_mysql:%define mysql 1} Summary: Bacula - The Network Backup Solution Name: bacula Version: @VERSION@ Release: 1 Group: System Environment/Daemons Copyright: GPL v2 Source0:http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz Source1:http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz Source2:http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/%{tomsrtbt}.tar.gz BuildRoot: %{_tmppath}/%{name}-root URL: http://www.bacula.org/ Vendor: The Bacula Team Distribution: The Bacula Team Packager: D. Scott Barninger BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel BuildRequires: libstdc++-devel, libtermcap-devel, libxml2-devel, zlib-devel %if %{rh7} BuildRequires: gtk+-devel >= 1.2 BuildRequires: gnome-libs-devel >= 1.4 BuildRequires: glibc-devel >= 2.2 BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel %else BuildRequires: gtk2-devel >= 2.0 BuildRequires: libgnomeui-devel >= 2.0 BuildRequires: glibc-devel >= 2.3 BuildRequires: ORBit2-devel BuildRequires: libart_lgpl-devel >= 2.0 BuildRequires: libbonobo-devel >= 2.0 BuildRequires: libbonoboui-devel >= 2.0 BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel %endif %if %{mysql} BuildRequires: mysql-devel >= 3.23 %endif %description Bacula - It comes by night and sucks the vital essence from your computers. 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. In technical terms, it is a network client/server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. %if %{mysql} %package mysql %else %package sqlite %endif Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Provides: bacula-dir, bacula-sd, bacula-fd Requires: readline, perl, atk, ncurses, pango, libstdc++ Requires: libtermcap, libxml2, zlib %if %{rh7} Requires: gtk+ >= 1.2 Requires: gnome-libs >= 1.4 Requires: glibc >= 2.2 Requires: ORBit Requires: bonobo Requires: GConf %else Requires: gtk2 >= 2.0 Requires: libgnomeui >= 2.0 Requires: glibc >= 2.3 Requires: ORBit2 Requires: libart_lgpl >= 2.0 Requires: libbonobo >= 2.0 Requires: libbonoboui >= 2.0 Requires: bonobo-activation Requires: GConf2 Requires: linc %endif %if %{mysql} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif %if %{mysql} %description mysql %else %description sqlite %endif Bacula - It comes by night and sucks the vital essence from your computers. 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. In technical terms, it is a network client/server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. %if %{mysql} This build requires MySQL to be installed separately as the catalog database. %else This build incorporates sqlite as the catalog database, statically compiled. %endif %package client Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Provides: bacula-fd Requires: readline, perl, libstdc++, zlib %if %{rh7} Requires: gtk+ >= 1.2 Requires: gnome-libs >= 1.4 Requires: glibc >= 2.2 %else Requires: gtk2 >= 2.0 Requires: libgnomeui >= 2.0 Requires: glibc >= 2.3 %endif %description client Bacula - It comes by night and sucks the vital essence from your computers. 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. In technical terms, it is a network client/server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. This is the File daemon (Client) only package. %package rescue Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons Requires: coreutils, util-linux, libc5, bacula-fd %description rescue Bacula - It comes by night and sucks the vital essence from your computers. 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. In technical terms, it is a network client/server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. This package installs scripts for disaster recovery and builds rescue floppy disks for bare metal recovery. This package includes tomsrtbt (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool to build a boot floppy disk. You need to have the bacula-sqlite, bacula-mysql or bacula-client package for your platform installed and configured before installing this package. %prep %setup -b 1 %setup -b 2 %build cwd=${PWD} cd %{depkgs} %if ! %{mysql} make sqlite %endif make mtx cd ${cwd} # patch the make_sqlite_tables script for installation bindir patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch # patch the create_sqlite_database script for installation bindir patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch # patch the make_catalog_backup script for installation bindir patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch %configure \ --prefix=/usr \ --sbindir=/usr/sbin \ --sysconfdir=/etc/bacula \ --with-scriptdir=/etc/bacula \ --enable-smartalloc \ --enable-gnome \ --enable-static-fd \ %if %{mysql} --with-mysql \ %else --with-sqlite=${cwd}/../depkgs/sqlite \ %endif --with-working-dir=/var/bacula \ --with-pid-dir=/var/run \ --with-subsys-dir=/var/lock/subsys make cd src/filed strip static-bacula-fd cd ../../ %install cwd=${PWD} mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System mkdir -p $RPM_BUILD_ROOT/usr/share/applications mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt %if ! %{mysql} mkdir -p $RPM_BUILD_ROOT/usr/lib/sqlite %endif make \ prefix=$RPM_BUILD_ROOT/usr \ sbindir=$RPM_BUILD_ROOT/usr/sbin \ sysconfdir=$RPM_BUILD_ROOT/etc/bacula \ scriptdir=$RPM_BUILD_ROOT/etc/bacula \ working_dir=$RPM_BUILD_ROOT/var/bacula \ install cd %{depkgs} make \ prefix=$RPM_BUILD_ROOT/usr \ sbindir=$RPM_BUILD_ROOT/usr/sbin \ sysconfdir=$RPM_BUILD_ROOT/etc/bacula \ working_dir=$RPM_BUILD_ROOT/var/bacula \ mandir=$RPM_BUILD_ROOT/usr/man \ mtx-install cd ${cwd} %if ! %{mysql} # fixme - make installs the mysql scripts for sqlite build rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges %endif # install the init scripts cp platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir cp platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd cp platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd # install the menu stuff cp scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png cp scripts/bacula.desktop.gnome1 $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop cp scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop # install sqlite %if ! %{mysql} cp ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT/usr/lib/sqlite/sqlite cp ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT/usr/lib/sqlite/sqlite.h cp ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT/usr/lib/sqlite/libsqlite.a %endif # install the logrotate file cp scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula # install the rescue stuff # these are the rescue scripts cp rescue/linux/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/ cp rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/ # this is the static file daemon cp src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/bacula-fd # this is the tom's root boot disk cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/ %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" %if %{mysql} %files mysql %defattr(-,root,root) %attr(0754,root,root) /etc/bacula/bacula %attr(0754,root,root) /etc/bacula/console %attr(0754,root,root) /etc/bacula/fd %attr(0754,root,root) /etc/bacula/gconsole %attr(0754,root,root) /etc/bacula/create_mysql_database %attr(0754,root,root) /etc/bacula/delete_catalog_backup %attr(0754,root,root) /etc/bacula/drop_bacula_tables %attr(0754,root,root) /etc/bacula/drop_mysql_tables %attr(0754,root,root) /etc/bacula/make_bacula_tables %attr(0754,root,root) /etc/bacula/make_catalog_backup %attr(0754,root,root) /etc/bacula/make_mysql_tables %attr(0754,root,root) /etc/bacula/grant_mysql_privileges %attr(0754,root,root) /etc/bacula/startmysql %attr(0754,root,root) /etc/bacula/stopmysql %attr(0754,root,root) /etc/bacula/mtx-changer %attr(0754,root,root) /etc/rc.d/init.d/bacula-dir %attr(0754,root,root) /etc/rc.d/init.d/bacula-fd %attr(0754,root,root) /etc/rc.d/init.d/bacula-sd %attr(0644,root,root) %doc COPYING ChangeLog INSTALL README ReleaseNotes doc/* %attr(0644,root,root) /usr/man/man1/* %attr(0644,root,root) /usr/share/pixmaps/bacula.png %attr(0644,root,root) /usr/share/gnome/apps/System/bacula.desktop %attr(0644,root,root) /usr/share/applications/bacula.desktop %attr(0644,root,root) %config(noreplace) /etc/bacula/gnome-console.conf %attr(0644,root,root) /etc/logrotate.d/bacula %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-dir.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-fd.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-sd.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/console.conf %attr(0640,root,root) /etc/bacula/query.sql %attr(0640,root,root) %dir /var/bacula %attr(0750,root,root) /usr/sbin/* %post mysql # delete then add our links /sbin/chkconfig --del bacula-dir /sbin/chkconfig --del bacula-fd /sbin/chkconfig --del bacula-sd /sbin/chkconfig --add bacula-dir /sbin/chkconfig --add bacula-fd /sbin/chkconfig --add bacula-sd # add execute permissions for console chmod 0755 /usr/sbin/gnome-console # grant privileges and create tables # this will error out harmlessly if tables already exist echo "Granting privileges for MySQL user bacula..." /etc/bacula/grant_mysql_privileges echo "Creating MySQL bacula database..." /etc/bacula/create_mysql_database echo "Creating bacula tables..." /etc/bacula/make_mysql_tables %preun mysql # delete our links /sbin/chkconfig --del bacula-dir /sbin/chkconfig --del bacula-fd /sbin/chkconfig --del bacula-sd %else %files sqlite %defattr(-,root,root) %attr(0754,root,root) /etc/bacula/bacula %attr(0754,root,root) /etc/bacula/console %attr(0754,root,root) /etc/bacula/fd %attr(0754,root,root) /etc/bacula/gconsole %attr(0754,root,root) /etc/bacula/create_sqlite_database %attr(0754,root,root) /etc/bacula/delete_catalog_backup %attr(0754,root,root) /etc/bacula/drop_bacula_tables %attr(0754,root,root) /etc/bacula/drop_sqlite_tables %attr(0754,root,root) /etc/bacula/make_bacula_tables %attr(0754,root,root) /etc/bacula/make_catalog_backup %attr(0754,root,root) /etc/bacula/make_sqlite_tables %attr(0754,root,root) /etc/bacula/mtx-changer %attr(0754,root,root) /etc/rc.d/init.d/bacula-dir %attr(0754,root,root) /etc/rc.d/init.d/bacula-fd %attr(0754,root,root) /etc/rc.d/init.d/bacula-sd %attr(0644,root,root) %doc COPYING ChangeLog INSTALL README ReleaseNotes doc/* %attr(0644,root,root) /usr/man/man1/* %attr(0644,root,root) /usr/share/pixmaps/bacula.png %attr(0644,root,root) /usr/share/gnome/apps/System/bacula.desktop %attr(0644,root,root) /usr/share/applications/bacula.desktop %attr(0644,root,root) %config(noreplace) /etc/bacula/gnome-console.conf %attr(0644,root,root) /etc/logrotate.d/bacula %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-dir.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-fd.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-sd.conf %attr(0640,root,root) %config(noreplace) /etc/bacula/console.conf %attr(0640,root,root) /etc/bacula/query.sql %attr(0640,root,root) /usr/lib/sqlite/libsqlite.a %attr(0640,root,root) /usr/lib/sqlite/sqlite.h %attr(0640,root,root) %dir /var/bacula %attr(0750,root,root) /usr/sbin/* %attr(0750,root,root) /usr/lib/sqlite/sqlite %post sqlite # delete then add our links /sbin/chkconfig --del bacula-dir /sbin/chkconfig --del bacula-fd /sbin/chkconfig --del bacula-sd /sbin/chkconfig --add bacula-dir /sbin/chkconfig --add bacula-fd /sbin/chkconfig --add bacula-sd # add execute permission for console chmod 0755 /usr/sbin/gnome-console # create the database and tables echo "Creating SQLite database..." /etc/bacula/create_sqlite_database echo "Creating the SQLite tables..." /etc/bacula/make_sqlite_tables %preun sqlite # delete our links /sbin/chkconfig --del bacula-dir /sbin/chkconfig --del bacula-fd /sbin/chkconfig --del bacula-sd %endif %files client %defattr(-,root,root) %attr(0754,root,root) /etc/bacula/fd %attr(0754,root,root) /etc/rc.d/init.d/bacula-fd %attr(0644,root,root) %doc COPYING ChangeLog INSTALL README ReleaseNotes doc/* %attr(0644,root,root) /etc/logrotate.d/bacula %attr(0640,root,root) %config(noreplace) /etc/bacula/bacula-fd.conf %attr(0640,root,root) %dir /var/bacula %attr(0750,root,root) /usr/sbin/bacula-fd %attr(0750,root,root) /usr/sbin/btraceback %attr(0750,root,root) /usr/sbin/btraceback.gdb %attr(0750,root,root) /usr/sbin/smtp %post client # delete then add our links /sbin/chkconfig --del bacula-fd /sbin/chkconfig --add bacula-fd %preun client # delete our links /sbin/chkconfig --del bacula-fd %files rescue %defattr(-,root,root) %attr(0644,root,root) /etc/bacula/rescue/backup.etc.list %attr(0754,root,root) /etc/bacula/rescue/format_floppy %attr(0754,root,root) /etc/bacula/rescue/getdiskinfo %attr(0754,root,root) /etc/bacula/rescue/make_rescue_disk %attr(0754,root,root) /etc/bacula/rescue/restore_bacula %attr(0754,root,root) /etc/bacula/rescue/restore_etc %attr(0754,root,root) /etc/bacula/rescue/run_grub %attr(0754,root,root) /etc/bacula/rescue/run_lilo %attr(0644,root,root) /etc/bacula/rescue/sfdisk.bz2 %attr(0754,root,root) /etc/bacula/rescue/bacula-fd /etc/bacula/rescue/tomsrtbt/* %post rescue # link our current installed conf file to the rescue directory ln -s /etc/bacula-fd.conf /etc/bacula/rescue/bacula-fd.conf echo echo "Ready to create the rescue files for this system." echo "Press to continue..." read A echo # run getdiskinfo echo "Running getdiskinfo..." cd /etc/bacula/rescue ./getdiskinfo echo echo "Finished." echo "To create a boot disk run \"./install.s\" from the /etc/bacula/rescue/tomsrtbt/" echo "directory. To make the bacula rescue disk run" echo "\"./make_rescue_disk --copy-static-bacula --copy-etc-files\" " echo "from the /etc/bacula/rescue directory. To recreate the rescue" echo "information for this system run ./getdiskinfo again." echo %preun rescue # remove the files created after the initial rpm installation rm -f /etc/bacula/rescue/bacula-fd.conf rm -f /etc/bacula/rescue/partition.* rm -f /etc/bacula/rescue/format.* rm -f /etc/bacula/rescue/mount_drives rm -f /etc/bacula/rescue/start_network rm -f /etc/bacula/rescue/sfdisk rm -rf /etc/bacula/rescue/diskinfo/* %changelog * Sat Jan 24 2004 D. Scott Barninger - added patch for create_sqlite_database to fix the installed bindir - added execute of create_sqlite_database to post of sqlite package * Sat Jan 10 2004 D. Scott Barninger - added virtual package Provides bacula-dir, bacula-sd, bacula-fd - added bacula-fd as Requires for rescue package - added build tag for Fedora Core 1 - cleaned up dependancies for all builds * Thu Jan 1 2004 D. Scott Barninger - removed rh_version from package names - added platform build configuration section to beginning of file * Tue Nov 25 2003 D. Scott Barninger - removed make_static_bacula script from rescue package install * Sun Nov 23 2003 D. Scott Barninger - Added define at top of file for depkgs version - Added rescue sub-package - Moved requires statements into proper sub-package locations * Mon Oct 27 2003 D. Scott Barninger - Corrected Requires for Gnome 1.4/2.0 builds * Fri Oct 24 2003 D. Scott Barninger - Added separate Source declaration for depkgs - added patch for make_catalog_backup script * Mon May 11 2003 D. Scott Barninger - Misc changes to mysql/sqlite build and rh7/8 menu differences - Added rh_version to sub-package names - Added installed but missing file /etc/bacula/gconsole - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds * Thu May 08 2003 Kern Sibbald - Update spec for version 1.31 and combine client * Sun Mar 30 2003 D. Scott Barninger - Initial spec file