]> git.sur5r.net Git - bacula/bacula/commitdiff
Corrected src/cats/make_catalog_backup.in.patch for changes to that script. Changes...
authorScott Barninger <scott@barninger.com>
Wed, 11 Feb 2004 17:18:54 +0000 (17:18 +0000)
committerScott Barninger <scott@barninger.com>
Wed, 11 Feb 2004 17:18:54 +0000 (17:18 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1044 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/platforms/redhat/bacula.spec.in
bacula/platforms/suse/bacula.spec.in
bacula/src/cats/make_catalog_backup.in.patch

index e3f864ea637866a598550017c60de3b1ec0041f9..79b87c5503dc28debf6a23c73ceb0fa615be4e70 100644 (file)
@@ -4,6 +4,8 @@
 %define depkgs ../depkgs
 %define depkgs_version 24Jul03
 %define tomsrtbt tomsrtbt-2.0.103
+%define sqlite_bindir /usr/lib/sqlite
+%define working_dir /var/bacula
 
 # platform defines - set one below or define the build_xxx on the command line
 # RedHat builds
@@ -52,7 +54,8 @@ BuildRequires: glibc-devel >= 2.2
 BuildRequires: ORBit-devel
 BuildRequires: bonobo-devel
 BuildRequires: GConf-devel
-%else if %{su9}
+%endif
+%if %{su9}
 BuildRequires: termcap
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
@@ -64,7 +67,8 @@ BuildRequires: libbonoboui-devel >= 2.0
 BuildRequires: bonobo-activation-devel
 BuildRequires: gconf2-devel
 BuildRequires: linc-devel
-%else
+%endif
+%if ! %{rh7} && ! %{su9}
 BuildRequires: libtermcap-devel
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
@@ -112,7 +116,8 @@ Requires: ORBit
 Requires: bonobo
 Requires: GConf
 Requires: libtermcap
-%else if %{su9}
+%endif
+%if %{su9}
 Requires: gtk2 >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
@@ -124,7 +129,8 @@ Requires: bonobo-activation
 Requires: gconf2
 Requires: linc
 Requires: termcap
-%else
+%endif
+%if ! %{rh7} && ! %{su9}
 Requires: gtk2 >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
@@ -236,6 +242,8 @@ make sqlite
 make mtx
 cd ${cwd}
 
+# patches for the bundled sqlite scripts
+
 # patch the make_sqlite_tables script for installation bindir
 patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
 
@@ -245,6 +253,9 @@ patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patc
 # patch the make_catalog_backup script for installation bindir
 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
 
+# patch the update_sqlite_tables script for installation bindir
+patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
+
 %configure \
         --prefix=/usr \
         --sbindir=/usr/sbin \
@@ -258,7 +269,7 @@ patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
 %else
         --with-sqlite=${cwd}/../depkgs/sqlite \
 %endif
-        --with-working-dir=/var/bacula \
+        --with-working-dir=%{working_dir} \
         --with-pid-dir=/var/run \
         --with-subsys-dir=/var/lock/subsys
 make
@@ -279,7 +290,7 @@ 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
+mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
 %endif
 
 make \
@@ -287,7 +298,7 @@ make \
         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 \
+        working_dir=$RPM_BUILD_ROOT%{working_dir} \
         install
 
 cd %{depkgs}
@@ -295,7 +306,7 @@ 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 \
+        working_dir=$RPM_BUILD_ROOT%{working_dir} \
         mandir=$RPM_BUILD_ROOT/usr/man \
         mtx-install
 cd ${cwd}
@@ -325,9 +336,9 @@ cp scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT/usr/share/applications/bacula.d
 
 # 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
+cp ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
+cp ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
+cp ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
 %endif
 
 # install the logrotate file
@@ -360,17 +371,23 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 %defattr(-,root,root)
 
 %attr(0754,root,root) /etc/bacula/bacula
-%attr(0754,root,root) /etc/bacula/console
+%attr(0754,root,root) /etc/bacula/bconsole
 %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_database
+%attr(0754,root,root) /etc/bacula/make_mysql_tables
 %attr(0754,root,root) /etc/bacula/drop_mysql_tables
+%attr(0754,root,root) /etc/bacula/update_mysql_tables
+%attr(0754,root,root) /etc/bacula/grant_mysql_privileges
+%attr(0754,root,root) /etc/bacula/create_bacula_database
+%attr(0754,root,root) /etc/bacula/drop_bacula_database
+%attr(0754,root,root) /etc/bacula/grant_bacula_privileges
 %attr(0754,root,root) /etc/bacula/make_bacula_tables
+%attr(0754,root,root) /etc/bacula/drop_bacula_tables
+%attr(0754,root,root) /etc/bacula/update_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/delete_catalog_backup
 %attr(0754,root,root) /etc/bacula/startmysql
 %attr(0754,root,root) /etc/bacula/stopmysql
 %attr(0754,root,root) /etc/bacula/mtx-changer
@@ -389,11 +406,31 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 %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) %config(noreplace) /etc/bacula/bconsole.conf
 %attr(0640,root,root) /etc/bacula/query.sql
-%attr(0640,root,root) %dir /var/bacula
+%attr(0640,root,root) %dir %{working_dir}
 
 %attr(0750,root,root) /usr/sbin/*
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+
+%pre mysql
+# test for bacula database older than version 6
+# note: this ASSUMES no password has been set for bacula database
+DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
+
+if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
+       echo "This bacula upgrade will update a bacula database from version 6 to 7."
+       echo "You appear to be running database version $DB_VER. You must first update"
+       echo "your database to version 6 and then install this upgrade. The alternative"
+       echo "is to use /etc/bacula/drop_mysql_tables to delete all your your current"
+       echo "catalog information, then do the upgrade. Information on updating a"
+       echo "database older than version 6 can be found in the release notes."
+       exit 1
+fi
+# check for and copy /etc/bacula/console.conf to bconsole.conf
+if [ -s /etc/bacula/console.conf ];then
+       cp /etc/bacula/console.conf /etc/bacula/bconsole.conf
+fi
 
 %post mysql
 # delete then add our links
@@ -407,14 +444,30 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 # 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
+# test for an existing database
+# note: this ASSUMES no password has been set for bacula database
+DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
+
+# grant privileges and create tables if they do not exist
+if [ -z "$DB_VER" ]; then
+       echo "Hmm, doesn't look like you have an existing database."
+       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
+
+# check to see if we need to upgrade a 1.32 or lower database
+elif [ "$DB_VER" -lt "7" ]; then
+       echo "This release requires an upgrade to your bacula database."
+       echo "Backing up your current database..."
+       mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
+       echo "Upgrading bacula database ..."
+       /etc/bacula/update_mysql_tables
+       echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
+
+fi
 
 %preun mysql
 # delete our links
@@ -428,16 +481,23 @@ echo "Creating bacula tables..."
 %defattr(-,root,root)
 
 %attr(0754,root,root) /etc/bacula/bacula
-%attr(0754,root,root) /etc/bacula/console
+%attr(0754,root,root) /etc/bacula/bconsole
 %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/create_bacula_database
+%attr(0754,root,root) /etc/bacula/drop_bacula_database
+%attr(0754,root,root) /etc/bacula/grant_bacula_privileges
+%attr(0754,root,root) /etc/bacula/make_bacula_tables
 %attr(0754,root,root) /etc/bacula/drop_bacula_tables
+%attr(0754,root,root) /etc/bacula/update_bacula_tables
+%attr(0754,root,root) /etc/bacula/create_sqlite_database
+%attr(0754,root,root) /etc/bacula/drop_sqlite_database
+%attr(0754,root,root) /etc/bacula/grant_sqlite_privileges
+%attr(0754,root,root) /etc/bacula/make_sqlite_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/update_sqlite_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/delete_catalog_backup
 %attr(0754,root,root) /etc/bacula/mtx-changer
 %attr(0754,root,root) /etc/init.d/bacula-dir
 %attr(0754,root,root) /etc/init.d/bacula-fd
@@ -454,14 +514,34 @@ echo "Creating bacula tables..."
 %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) %config(noreplace) /etc/bacula/bconsole.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(0640,root,root) %{sqlite_bindir}/libsqlite.a
+%attr(0640,root,root) %{sqlite_bindir}/sqlite.h
+%attr(0640,root,root) %dir %{working_dir}
 
 %attr(0750,root,root) /usr/sbin/*
-%attr(0750,root,root) /usr/lib/sqlite/sqlite
+%attr(0750,root,root) %{sqlite_bindir}/sqlite
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+
+%pre sqlite
+# test for bacula database older than version 6
+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`
+       if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
+               echo "This bacula upgrade will update a bacula database from version 6 to 7."
+               echo "You appear to be running database version $DB_VER. You must first update"
+               echo "your database to version 6 and then install this upgrade. The alternative"
+               echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
+               echo "catalog information, then do the upgrade. Information on updating a"
+               echo "database older than version 6 can be found in the release notes."
+               exit 1
+       fi
+fi
+# check for and copy /etc/bacula/console.conf to bconsole.conf
+if [ -s /etc/bacula/console.conf ];then
+       cp /etc/bacula/console.conf /etc/bacula/bconsole.conf
+fi
 
 %post sqlite
 # delete then add our links
@@ -475,11 +555,26 @@ echo "Creating bacula tables..."
 # 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
+# test for an existing database
+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.32 or lower database
+       if [ "$DB_VER" -lt "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
+               echo "Upgrading bacula database ..."
+               /etc/bacula/update_sqlite_tables
+               echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
+       fi
+else
+       # create the database and tables
+       echo "Hmm, doesn't look like you have an existing database."
+       echo "Creating SQLite database..."
+       /etc/bacula/create_sqlite_database
+       echo "Creating the SQLite tables..."
+       /etc/bacula/make_sqlite_tables
+fi
 
 %preun sqlite
 # delete our links
@@ -499,12 +594,12 @@ echo "Creating the SQLite tables..."
 %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(0640,root,root) %dir %{working_dir}
 
 %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
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+%attr(0750,root,root) /usr/sbin/bsmtp
 
 
 %post client
@@ -565,6 +660,23 @@ rm -f /etc/bacula/rescue/sfdisk
 rm -rf /etc/bacula/rescue/diskinfo/*
 
 %changelog
+* Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- corrected the if else logic in the dependancy sections
+- changes for 1.34 release
+- /etc/bacula/console is now /etc/bacula/bconsole
+- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
+- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
+- /usr/sbin/smtp is now /usr/sbin/bsmtp
+- added new /etc/bacula/drop_mysql_database
+- added new /etc/bacula/drop_sqlite_database
+- added new /etc/bacula/grant_sqlite_privileges
+- added new generic bacula database scripts in /etc/bacula
+- added pre-install sections to check for database versions older than 6
+- added check for /etc/bacula/console.conf and copy to bconsole.conf
+* Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
+- added testing for existing databases before executing any of the database creation scripts
+- added defines working_dir and sqlite_bindir in place of hard coded paths
 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
 - added build configuration for SuSE.
 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
index e3f864ea637866a598550017c60de3b1ec0041f9..79b87c5503dc28debf6a23c73ceb0fa615be4e70 100644 (file)
@@ -4,6 +4,8 @@
 %define depkgs ../depkgs
 %define depkgs_version 24Jul03
 %define tomsrtbt tomsrtbt-2.0.103
+%define sqlite_bindir /usr/lib/sqlite
+%define working_dir /var/bacula
 
 # platform defines - set one below or define the build_xxx on the command line
 # RedHat builds
@@ -52,7 +54,8 @@ BuildRequires: glibc-devel >= 2.2
 BuildRequires: ORBit-devel
 BuildRequires: bonobo-devel
 BuildRequires: GConf-devel
-%else if %{su9}
+%endif
+%if %{su9}
 BuildRequires: termcap
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
@@ -64,7 +67,8 @@ BuildRequires: libbonoboui-devel >= 2.0
 BuildRequires: bonobo-activation-devel
 BuildRequires: gconf2-devel
 BuildRequires: linc-devel
-%else
+%endif
+%if ! %{rh7} && ! %{su9}
 BuildRequires: libtermcap-devel
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
@@ -112,7 +116,8 @@ Requires: ORBit
 Requires: bonobo
 Requires: GConf
 Requires: libtermcap
-%else if %{su9}
+%endif
+%if %{su9}
 Requires: gtk2 >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
@@ -124,7 +129,8 @@ Requires: bonobo-activation
 Requires: gconf2
 Requires: linc
 Requires: termcap
-%else
+%endif
+%if ! %{rh7} && ! %{su9}
 Requires: gtk2 >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
@@ -236,6 +242,8 @@ make sqlite
 make mtx
 cd ${cwd}
 
+# patches for the bundled sqlite scripts
+
 # patch the make_sqlite_tables script for installation bindir
 patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
 
@@ -245,6 +253,9 @@ patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patc
 # patch the make_catalog_backup script for installation bindir
 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
 
+# patch the update_sqlite_tables script for installation bindir
+patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
+
 %configure \
         --prefix=/usr \
         --sbindir=/usr/sbin \
@@ -258,7 +269,7 @@ patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
 %else
         --with-sqlite=${cwd}/../depkgs/sqlite \
 %endif
-        --with-working-dir=/var/bacula \
+        --with-working-dir=%{working_dir} \
         --with-pid-dir=/var/run \
         --with-subsys-dir=/var/lock/subsys
 make
@@ -279,7 +290,7 @@ 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
+mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
 %endif
 
 make \
@@ -287,7 +298,7 @@ make \
         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 \
+        working_dir=$RPM_BUILD_ROOT%{working_dir} \
         install
 
 cd %{depkgs}
@@ -295,7 +306,7 @@ 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 \
+        working_dir=$RPM_BUILD_ROOT%{working_dir} \
         mandir=$RPM_BUILD_ROOT/usr/man \
         mtx-install
 cd ${cwd}
@@ -325,9 +336,9 @@ cp scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT/usr/share/applications/bacula.d
 
 # 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
+cp ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
+cp ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
+cp ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
 %endif
 
 # install the logrotate file
@@ -360,17 +371,23 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 %defattr(-,root,root)
 
 %attr(0754,root,root) /etc/bacula/bacula
-%attr(0754,root,root) /etc/bacula/console
+%attr(0754,root,root) /etc/bacula/bconsole
 %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_database
+%attr(0754,root,root) /etc/bacula/make_mysql_tables
 %attr(0754,root,root) /etc/bacula/drop_mysql_tables
+%attr(0754,root,root) /etc/bacula/update_mysql_tables
+%attr(0754,root,root) /etc/bacula/grant_mysql_privileges
+%attr(0754,root,root) /etc/bacula/create_bacula_database
+%attr(0754,root,root) /etc/bacula/drop_bacula_database
+%attr(0754,root,root) /etc/bacula/grant_bacula_privileges
 %attr(0754,root,root) /etc/bacula/make_bacula_tables
+%attr(0754,root,root) /etc/bacula/drop_bacula_tables
+%attr(0754,root,root) /etc/bacula/update_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/delete_catalog_backup
 %attr(0754,root,root) /etc/bacula/startmysql
 %attr(0754,root,root) /etc/bacula/stopmysql
 %attr(0754,root,root) /etc/bacula/mtx-changer
@@ -389,11 +406,31 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 %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) %config(noreplace) /etc/bacula/bconsole.conf
 %attr(0640,root,root) /etc/bacula/query.sql
-%attr(0640,root,root) %dir /var/bacula
+%attr(0640,root,root) %dir %{working_dir}
 
 %attr(0750,root,root) /usr/sbin/*
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+
+%pre mysql
+# test for bacula database older than version 6
+# note: this ASSUMES no password has been set for bacula database
+DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
+
+if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
+       echo "This bacula upgrade will update a bacula database from version 6 to 7."
+       echo "You appear to be running database version $DB_VER. You must first update"
+       echo "your database to version 6 and then install this upgrade. The alternative"
+       echo "is to use /etc/bacula/drop_mysql_tables to delete all your your current"
+       echo "catalog information, then do the upgrade. Information on updating a"
+       echo "database older than version 6 can be found in the release notes."
+       exit 1
+fi
+# check for and copy /etc/bacula/console.conf to bconsole.conf
+if [ -s /etc/bacula/console.conf ];then
+       cp /etc/bacula/console.conf /etc/bacula/bconsole.conf
+fi
 
 %post mysql
 # delete then add our links
@@ -407,14 +444,30 @@ cp ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
 # 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
+# test for an existing database
+# note: this ASSUMES no password has been set for bacula database
+DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
+
+# grant privileges and create tables if they do not exist
+if [ -z "$DB_VER" ]; then
+       echo "Hmm, doesn't look like you have an existing database."
+       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
+
+# check to see if we need to upgrade a 1.32 or lower database
+elif [ "$DB_VER" -lt "7" ]; then
+       echo "This release requires an upgrade to your bacula database."
+       echo "Backing up your current database..."
+       mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
+       echo "Upgrading bacula database ..."
+       /etc/bacula/update_mysql_tables
+       echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
+
+fi
 
 %preun mysql
 # delete our links
@@ -428,16 +481,23 @@ echo "Creating bacula tables..."
 %defattr(-,root,root)
 
 %attr(0754,root,root) /etc/bacula/bacula
-%attr(0754,root,root) /etc/bacula/console
+%attr(0754,root,root) /etc/bacula/bconsole
 %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/create_bacula_database
+%attr(0754,root,root) /etc/bacula/drop_bacula_database
+%attr(0754,root,root) /etc/bacula/grant_bacula_privileges
+%attr(0754,root,root) /etc/bacula/make_bacula_tables
 %attr(0754,root,root) /etc/bacula/drop_bacula_tables
+%attr(0754,root,root) /etc/bacula/update_bacula_tables
+%attr(0754,root,root) /etc/bacula/create_sqlite_database
+%attr(0754,root,root) /etc/bacula/drop_sqlite_database
+%attr(0754,root,root) /etc/bacula/grant_sqlite_privileges
+%attr(0754,root,root) /etc/bacula/make_sqlite_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/update_sqlite_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/delete_catalog_backup
 %attr(0754,root,root) /etc/bacula/mtx-changer
 %attr(0754,root,root) /etc/init.d/bacula-dir
 %attr(0754,root,root) /etc/init.d/bacula-fd
@@ -454,14 +514,34 @@ echo "Creating bacula tables..."
 %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) %config(noreplace) /etc/bacula/bconsole.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(0640,root,root) %{sqlite_bindir}/libsqlite.a
+%attr(0640,root,root) %{sqlite_bindir}/sqlite.h
+%attr(0640,root,root) %dir %{working_dir}
 
 %attr(0750,root,root) /usr/sbin/*
-%attr(0750,root,root) /usr/lib/sqlite/sqlite
+%attr(0750,root,root) %{sqlite_bindir}/sqlite
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+
+%pre sqlite
+# test for bacula database older than version 6
+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`
+       if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
+               echo "This bacula upgrade will update a bacula database from version 6 to 7."
+               echo "You appear to be running database version $DB_VER. You must first update"
+               echo "your database to version 6 and then install this upgrade. The alternative"
+               echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
+               echo "catalog information, then do the upgrade. Information on updating a"
+               echo "database older than version 6 can be found in the release notes."
+               exit 1
+       fi
+fi
+# check for and copy /etc/bacula/console.conf to bconsole.conf
+if [ -s /etc/bacula/console.conf ];then
+       cp /etc/bacula/console.conf /etc/bacula/bconsole.conf
+fi
 
 %post sqlite
 # delete then add our links
@@ -475,11 +555,26 @@ echo "Creating bacula tables..."
 # 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
+# test for an existing database
+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.32 or lower database
+       if [ "$DB_VER" -lt "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
+               echo "Upgrading bacula database ..."
+               /etc/bacula/update_sqlite_tables
+               echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
+       fi
+else
+       # create the database and tables
+       echo "Hmm, doesn't look like you have an existing database."
+       echo "Creating SQLite database..."
+       /etc/bacula/create_sqlite_database
+       echo "Creating the SQLite tables..."
+       /etc/bacula/make_sqlite_tables
+fi
 
 %preun sqlite
 # delete our links
@@ -499,12 +594,12 @@ echo "Creating the SQLite tables..."
 %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(0640,root,root) %dir %{working_dir}
 
 %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
+%attr(0750,root,root) /etc/bacula/btraceback.gdb
+%attr(0750,root,root) /usr/sbin/bsmtp
 
 
 %post client
@@ -565,6 +660,23 @@ rm -f /etc/bacula/rescue/sfdisk
 rm -rf /etc/bacula/rescue/diskinfo/*
 
 %changelog
+* Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- corrected the if else logic in the dependancy sections
+- changes for 1.34 release
+- /etc/bacula/console is now /etc/bacula/bconsole
+- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
+- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
+- /usr/sbin/smtp is now /usr/sbin/bsmtp
+- added new /etc/bacula/drop_mysql_database
+- added new /etc/bacula/drop_sqlite_database
+- added new /etc/bacula/grant_sqlite_privileges
+- added new generic bacula database scripts in /etc/bacula
+- added pre-install sections to check for database versions older than 6
+- added check for /etc/bacula/console.conf and copy to bconsole.conf
+* Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
+- added testing for existing databases before executing any of the database creation scripts
+- added defines working_dir and sqlite_bindir in place of hard coded paths
 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
 - added build configuration for SuSE.
 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
index 14d3adc16f35df1c5f18ff5dbd8e4972904cac8d..040f7d370b7008536fae972d45ef7075027d7bfc 100644 (file)
@@ -2,15 +2,15 @@
 <   echo ".dump" | @SQL_BINDIR@/sqlite bacula.db >bacula.sql
 ---
 >   echo ".dump" | /usr/lib/sqlite/sqlite bacula.db >bacula.sql
-11c11
-<   @SQL_BINDIR@/mysqldump $* -f --opt bacula >bacula.sql
+12c12
+<     @SQL_BINDIR@/mysqldump $* -f --opt bacula >bacula.sql
 ---
->   /usr/bin/mysqldump $* -f --opt bacula >bacula.sql
-16c16
+>     /usr/bin/mysqldump $* -f --opt bacula >bacula.sql
+14c14
+<     @SQL_BINDIR@/pg_dump $* bacula >bacula.sql
+---
+>     /usr/bin/pg_dump $* bacula >bacula.sql
+20c20
 < #     rm -f @SQL_BINDIR@/../var/bacula/*
 ---
 > #     rm -f /var/lib/mysql/bacula/*
-22c22
-< #     sqlite bacula.db <bacula.sql
----
-> #     /usr/lib/sqlite/sqlite bacula.db <bacula.sql