# basic defines for every build
%define depkgs ../depkgs
-%define depkgs_version 08Mar04
+%define depkgs_version 29Oct04
%define tomsrtbt tomsrtbt-2.0.103
%define sqlite_bindir /usr/lib/sqlite
%define working_dir /var/bacula
%endif
%if %{su9}
BuildRequires: termcap
+BuildRequires: libgnome >= 2.0
BuildRequires: gtk2-devel >= 2.0
BuildRequires: libgnomeui-devel >= 2.0
BuildRequires: glibc-devel >= 2.3
Summary: Bacula - The Network Backup Solution
Group: System Environment/Daemons
-Requires: coreutils, util-linux, libc5, bacula-fd
+Requires: coreutils, util-linux, libc5, bacula-fd, cdrecord, mkisofs, make
%description rescue
Bacula - It comes by night and sucks the vital essence from your computers.
%endif
%if %{su9}
Requires: gtk2 >= 2.0
+Requires: libgnome >= 2.0
Requires: libgnomeui >= 2.0
Requires: glibc >= 2.3
Requires: ORBit2
%prep
-%setup -b 1
-%setup -b 2
-%setup -b 3
+%setup
+%setup -T -D -b 1
+%setup -T -D -b 2
+%setup -T -D -b 3
%build
# patch the update_sqlite_tables script for installation bindir
patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
+# patch the bacula-dir init script to remove sqlite service
+%if %{sqlite} && %{su9}
+patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
+%endif
+
%configure \
--prefix=/usr \
--sbindir=/usr/sbin \
--with-mysql \
%endif
%if %{sqlite}
- --with-sqlite=${cwd}/../depkgs/sqlite \
+ --with-sqlite=${cwd}/%{depkgs}/sqlite \
%endif
%if %{postgresql}
--with-postgresql \
%else
mkdir -p $RPM_BUILD_ROOT/usr/share/applications
%endif
-mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue
-mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt
+mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/floppy
+mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/tomsrtbt
+mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom
mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
%if ! %{su9}
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
# install sqlite
%if %{sqlite}
-cp -p ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
-cp -p ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
-cp -p ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
+cp -p %{depkgs}/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
+cp -p %{depkgs}/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
+cp -p %{depkgs}/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
%endif
# install the logrotate file
cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
# install the rescue stuff
-# these are the rescue scripts
-cp -p rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/
+# these are the floppy rescue scripts
+cp -p rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+cp -p rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/
+
+# this is the cdrom rescue stuff
+cp -r -p rescue/linux/cdrom/* $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/
+mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/bin/
+rm -f $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/Makefile.in
+rm -f $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/bacula/Makefile.in
+touch $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/rpm_release
# this is the static file daemon
-cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/bacula-fd
+cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/bacula-fd
+cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/cdrom/bin/bacula-fd
# this is the tom's root boot disk
-cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
+cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/tomsrtbt/
# install the updatedb scripts
cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
# now clean up permissions that are left broken by the install
chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
chmod o-rwx $RPM_BUILD_ROOT/var/bacula
+%if ! %{rh7} && ! %{rh8}
+chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor
+chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf
+%endif
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
%pre sqlite
# test for bacula database older than version 7
-if [ -s %{working_dir}/bacula.db ];then
+if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then
echo "This bacula upgrade will update a bacula database from version 7 to 8."
if [ -s %{working_dir}/bacula.db ]; then
DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
# check to see if we need to upgrade a 1.34 or lower database
- if [ "$DB_VER" -lt "8" ]; then
+ if [ "$DB_VER" -lt "7" ]; then
+ echo "This bacula upgrade requires a database update to version 8. You appear to"
+ echo "be running database version $DB_VER. You must update your database using the"
+ echo "upgrade scripts in the bacula-updatedb package. The alternative"
+ echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
+ echo "catalog information, then /etc/bacula/make_sqlite_tables. Information on updating a"
+ echo "database older than version 7 can be found in the release notes."
+ fi
+
+ if [ "$DB_VER" -lt "8" ] && [ "$DB_VER" -ge "7" ]; then
echo "This release requires an upgrade to your bacula database."
echo "Backing up your current database..."
echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
%files rescue
%defattr(-,root,root)
-/etc/bacula/rescue/backup.etc.list
-/etc/bacula/rescue/format_floppy
-/etc/bacula/rescue/getdiskinfo
-/etc/bacula/rescue/make_rescue_disk
-/etc/bacula/rescue/restore_bacula
-/etc/bacula/rescue/restore_etc
-/etc/bacula/rescue/run_grub
-/etc/bacula/rescue/run_lilo
-/etc/bacula/rescue/sfdisk.bz2
-/etc/bacula/rescue/bacula-fd
-/etc/bacula/rescue/tomsrtbt/*
+/etc/bacula/rescue/floppy/*
+/etc/bacula/rescue/cdrom/*
%post rescue
# link our current installed conf file to the rescue directory
-ln -s /etc/bacula-fd.conf /etc/bacula/rescue/bacula-fd.conf
+ln -s /etc/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf
+ln -s /etc/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf
# run getdiskinfo
echo "Creating rescue files for this system..."
-cd /etc/bacula/rescue
+cd /etc/bacula/rescue/floppy
+./getdiskinfo
+cd /etc/bacula/rescue/cdrom/bacula
./getdiskinfo
%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/*
+rm -f /etc/bacula/rescue/floppy/bacula-fd.conf
+rm -f /etc/bacula/rescue/floppy/partition.*
+rm -f /etc/bacula/rescue/floppy/format.*
+rm -f /etc/bacula/rescue/floppy/mount_drives
+rm -f /etc/bacula/rescue/floppy/start_network
+rm -f /etc/bacula/rescue/floppy/sfdisk
+rm -rf /etc/bacula/rescue/floppy/diskinfo/*
+
+rm -f /etc/bacula/rescue/cdrom/bacula/bacula-fd.conf
+rm -f /etc/bacula/rescue/cdrom/bacula/partition.*
+rm -f /etc/bacula/rescue/cdrom/bacula/format.*
+rm -f /etc/bacula/rescue/cdrom/bacula/mount_drives
+rm -f /etc/bacula/rescue/cdrom/bacula/start_network
+rm -rf /etc/bacula/rescue/cdrom/bacula/diskinfo/*
%files updatedb
%defattr(-,root,root)
%changelog
+* Thu Nov 18 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- update depkgs to 29Oct04
+* Fri Nov 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add cdrom rescue to bacula-rescue package
+* Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- misc fixes from 1.36.0 suse feedback
+- fix situation where sqlite database exists but sqlite has been removed.
* Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
- remove tray-monitor from RH8 build
+- fix permissions on tray-monitor files
* Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
- add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
- change database update to 7 to 8 upgrade,