From: Scott Barninger Date: Wed, 11 Feb 2004 17:18:54 +0000 (+0000) Subject: Corrected src/cats/make_catalog_backup.in.patch for changes to that script. Changes... X-Git-Tag: Release-1.34.0~134 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=39b42153c3802d0b3e7f71fc8c289fd4408b44a2;p=bacula%2Fbacula Corrected src/cats/make_catalog_backup.in.patch for changes to that script. Changes to rpm spec file for upcoming 1.34 release for redhat and suse platforms. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1044 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/platforms/redhat/bacula.spec.in b/bacula/platforms/redhat/bacula.spec.in index e3f864ea63..79b87c5503 100644 --- a/bacula/platforms/redhat/bacula.spec.in +++ b/bacula/platforms/redhat/bacula.spec.in @@ -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 +- 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 +- 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 - added build configuration for SuSE. - Thanks to Matt Vollmar for his input diff --git a/bacula/platforms/suse/bacula.spec.in b/bacula/platforms/suse/bacula.spec.in index e3f864ea63..79b87c5503 100644 --- a/bacula/platforms/suse/bacula.spec.in +++ b/bacula/platforms/suse/bacula.spec.in @@ -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 +- 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 +- 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 - added build configuration for SuSE. - Thanks to Matt Vollmar for his input diff --git a/bacula/src/cats/make_catalog_backup.in.patch b/bacula/src/cats/make_catalog_backup.in.patch index 14d3adc16f..040f7d370b 100644 --- a/bacula/src/cats/make_catalog_backup.in.patch +++ b/bacula/src/cats/make_catalog_backup.in.patch @@ -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 # /usr/lib/sqlite/sqlite bacula.db