rpms/bacula/EL-5 bacula.spec,1.4,1.5

Felix Schwarz fschwarz at fedoraproject.org
Sat Mar 13 10:00:03 UTC 2010


Author: fschwarz

Update of /cvs/pkgs/rpms/bacula/EL-5
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3477/EL-5

Modified Files:
	bacula.spec 
Log Message:
added upgrade hack for broken alternatives in the currently deployed package


Index: bacula.spec
===================================================================
RCS file: /cvs/pkgs/rpms/bacula/EL-5/bacula.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- bacula.spec	22 Jan 2009 13:51:28 -0000	1.4
+++ bacula.spec	13 Mar 2010 10:00:02 -0000	1.5
@@ -1,3 +1,4 @@
+
 %define working_dir	/var/spool/bacula
 %define script_dir	/usr/libexec/bacula
 #%define rescue_version	2.0.0
@@ -8,7 +9,7 @@
 Summary: Cross platform network backup for Linux, Unix, Mac and Windows
 Name: bacula
 Version: 2.4.4
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPL
 Group: System Environment/Daemons
 Source0: http://download.sourceforge.net/bacula/bacula-%{version}.tar.gz
@@ -68,6 +69,7 @@ Provides: bacula-director = %{version}-%
 Requires: bacula-director-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
 Requires: mysql-server
+Conflicts: director-sqlite, director-postgresql
 
 %description director-mysql
 Bacula is a set of programs that allow you to manage the backup,
@@ -85,6 +87,7 @@ Group: System Environment/Daemons
 Provides: bacula-director = %{version}-%{release}
 Requires: bacula-director-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
+Conflicts: director-mysql, director-postgresql
 
 %description director-sqlite
 Bacula is a set of programs that allow you to manage the backup,
@@ -103,6 +106,7 @@ Provides: bacula-director = %{version}-%
 Requires: bacula-director-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
 Requires: postgresql-server
+Conflicts: director-mysql, director-sqlite
 
 %description director-postgresql
 Bacula is a set of programs that allow you to manage the backup,
@@ -175,6 +179,7 @@ Provides: bacula-storage = %{version}-%{
 Requires: bacula-storage-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
 Requires: mysql-server
+Conflicts: storage-sqlite, storage-postgresql
 
 %description storage-mysql
 Bacula is a set of programs that allow you to manage the backup,
@@ -192,6 +197,7 @@ Group: System Environment/Daemons
 Provides: bacula-storage = %{version}-%{release}
 Requires: bacula-storage-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
+Conflicts: storage-mysql, storage-postgresql
 
 %description storage-sqlite
 Bacula is a set of programs that allow you to manage the backup,
@@ -210,6 +216,7 @@ Provides: bacula-storage = %{version}-%{
 Requires: bacula-storage-common = %{version}-%{release}
 Requires: bacula-common = %{version}-%{release}
 Requires: postgresql-server
+Conflicts: storage-mysql, storage-sqlite
 
 %description storage-postgresql
 Bacula is a set of programs that allow you to manage the backup,
@@ -585,55 +592,175 @@ rm -rf %{buildroot}
 
 
 %post director-mysql
-/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.mysql 50 \
-	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.mysql \
-	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.mysql \
-	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.mysql \
-	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.mysql \
-	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.mysql \
-	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.mysql \
-	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.mysql \
-	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.mysql
+#/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.mysql 50 \
+#	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.mysql \
+#	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.mysql \
+#	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.mysql \
+#	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.mysql \
+#	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.mysql \
+#	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.mysql \
+#	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.mysql \
+#	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.mysql
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+
+replace_symlink /usr/sbin/bacula-dir mysql
+replace_symlink /usr/libexec/bacula/create_bacula_database mysql
+replace_symlink /usr/libexec/bacula/drop_bacula_database mysql
+replace_symlink /usr/libexec/bacula/drop_bacula_tables mysql
+replace_symlink /usr/libexec/bacula/grant_bacula_privileges mysql
+replace_symlink /usr/libexec/bacula/make_bacula_tables mysql
+replace_symlink /usr/libexec/bacula/make_catalog_backup mysql
+replace_symlink /usr/libexec/bacula/update_bacula_tables mysql
 
 
 %post director-sqlite
-/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.sqlite 40 \
-	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.sqlite \
-	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.sqlite \
-	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.sqlite \
-	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.sqlite \
-	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.sqlite \
-	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.sqlite \
-	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.sqlite \
-	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.sqlite
+#/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.sqlite 40 \
+#	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.sqlite \
+#	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.sqlite \
+#	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.sqlite \
+#	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.sqlite \
+#	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.sqlite \
+#	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.sqlite \
+#	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.sqlite \
+#	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.sqlite
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+
+replace_symlink /usr/sbin/bacula-dir sqlite
+replace_symlink /usr/libexec/bacula/create_bacula_database sqlite
+replace_symlink /usr/libexec/bacula/drop_bacula_database sqlite
+replace_symlink /usr/libexec/bacula/drop_bacula_tables sqlite
+replace_symlink /usr/libexec/bacula/grant_bacula_privileges sqlite
+replace_symlink /usr/libexec/bacula/make_bacula_tables sqlite
+replace_symlink /usr/libexec/bacula/make_catalog_backup sqlite
+replace_symlink /usr/libexec/bacula/update_bacula_tables sqlite
 
 
 %post director-postgresql
-/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.postgresql 60 \
-	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.postgresql \
-	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.postgresql \
-	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.postgresql \
-	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.postgresql \
-	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.postgresql \
-	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.postgresql \
-	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.postgresql \
-	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.postgresql
+#/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.postgresql 60 \
+#	--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.postgresql \
+#	--slave /usr/libexec/bacula/create_bacula_database create_bacula_database /usr/libexec/bacula/create_bacula_database.postgresql \
+#	--slave /usr/libexec/bacula/drop_bacula_database drop_bacula_database /usr/libexec/bacula/drop_bacula_database.postgresql \
+#	--slave /usr/libexec/bacula/drop_bacula_tables drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.postgresql \
+#	--slave /usr/libexec/bacula/grant_bacula_privileges grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.postgresql \
+#	--slave /usr/libexec/bacula/make_bacula_tables make_bacula_tables /usr/libexec/bacula/make_bacula_tables.postgresql \
+#	--slave /usr/libexec/bacula/make_catalog_backup make_catalog_backup /usr/libexec/bacula/make_catalog_backup.postgresql \
+#	--slave /usr/libexec/bacula/update_bacula_tables update_bacula_tables /usr/libexec/bacula/update_bacula_tables.postgresql
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+replace_symlink /usr/sbin/bacula-dir postgresql
+replace_symlink /usr/libexec/bacula/create_bacula_database postgresql
+replace_symlink /usr/libexec/bacula/drop_bacula_database postgresql
+replace_symlink /usr/libexec/bacula/drop_bacula_tables postgresql
+replace_symlink /usr/libexec/bacula/grant_bacula_privileges postgresql
+replace_symlink /usr/libexec/bacula/make_bacula_tables postgresql
+replace_symlink /usr/libexec/bacula/make_catalog_backup postgresql
+replace_symlink /usr/libexec/bacula/update_bacula_tables postgresql
 
 
 %preun director-mysql
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.mysql
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+	if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+	        rm -f $filename
+	    fi
+	fi
+}
+
+remove_all_fake_dir_alternatives() {
+    suffix=$1
+    remove_fake_alternative /usr/sbin/bacula-dir $suffix
+    remove_fake_alternative /usr/sbin/dbcheck bacula-dbcheck $suffix
+    remove_fake_alternative /usr/libexec/bacula/create_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/grant_bacula_privileges $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_catalog_backup $suffix
+    remove_fake_alternative /usr/libexec/bacula/update_bacula_tables $suffix
+}
+remove_all_fake_dir_alternatives mysql
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
 
 %preun director-sqlite
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.sqlite
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+    if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+            rm -f $filename
+        fi
+    fi
+}
+
+remove_all_fake_dir_alternatives() {
+    suffix=$1
+    remove_fake_alternative /usr/sbin/bacula-dir $suffix
+    remove_fake_alternative /usr/sbin/dbcheck bacula-dbcheck $suffix
+    remove_fake_alternative /usr/libexec/bacula/create_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/grant_bacula_privileges $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_catalog_backup $suffix
+    remove_fake_alternative /usr/libexec/bacula/update_bacula_tables $suffix
+}
+remove_all_fake_dir_alternatives sqlite
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
 
 %preun director-postgresql
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.postgresql
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+    if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+            rm -f $filename
+        fi
+    fi
+}
+
+remove_all_fake_dir_alternatives() {
+    suffix=$1
+    remove_fake_alternative /usr/sbin/bacula-dir $suffix
+    remove_fake_alternative /usr/sbin/dbcheck bacula-dbcheck $suffix
+    remove_fake_alternative /usr/libexec/bacula/create_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_database $suffix
+    remove_fake_alternative /usr/libexec/bacula/drop_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/grant_bacula_privileges $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_bacula_tables $suffix
+    remove_fake_alternative /usr/libexec/bacula/make_catalog_backup $suffix
+    remove_fake_alternative /usr/libexec/bacula/update_bacula_tables $suffix
+}
+remove_all_fake_dir_alternatives postgresql
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
+
 
 %pre common
 /usr/sbin/fedora-groupadd 33 -r bacula &>/dev/null || :
@@ -647,34 +774,104 @@ test "$1" != 0 || /usr/sbin/fedora-group
 
 
 %post storage-mysql
-/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.mysql 50 \
-	--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.mysql 
-
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+replace_symlink /usr/sbin/bcopy mysql
+if [ -h /usr/sbin/dbcheck ]; then
+    rm -f /usr/sbin/dbcheck
+fi
+cp /usr/sbin/bscan.mysql /usr/sbin/dbcheck
 
 %post storage-sqlite
-/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.sqlite 40 \
-	--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.sqlite
+#/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.sqlite 40 \
+#   --slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.sqlite
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+replace_symlink /usr/sbin/bcopy sqlite
+if [ -h /usr/sbin/dbcheck ]; then
+    rm -f /usr/sbin/dbcheck
+fi
+cp /usr/sbin/bscan.sqlite /usr/sbin/dbcheck
 
 
 %post storage-postgresql
-/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.postgresql 60 \
-	--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.postgresql
+#/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.postgresql 60 \
+#	--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.postgresql
+replace_symlink() {
+    alternatives_name=$1
+    suffix=$2
+    if [ -h $alternatives_name ]; then
+        rm -f $alternatives_name
+    fi
+    cp $alternatives_name.$suffix $alternatives_name
+}
+replace_symlink /usr/sbin/bcopy postgresql
+if [ -h /usr/sbin/dbcheck ]; then
+    rm -f /usr/sbin/dbcheck
+fi
+cp /usr/sbin/bscan.postgresql /usr/sbin/dbcheck
 
 
 %preun storage-mysql
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.mysql
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+    if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+            rm -f $filename
+        fi
+    fi
+}
+
+remove_fake_alternative /usr/sbin/bcopy mysql
+remove_fake_alternative /usr/sbin/dbcheck mysql
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
 
 %preun storage-sqlite
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.sqlite
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+    if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+            rm -f $filename
+        fi
+    fi
+}
+remove_fake_alternative /usr/sbin/bcopy sqlite
+remove_fake_alternative /usr/sbin/dbcheck sqlite
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
 
 %preun storage-postgresql
-if [ "$1" = 0 ]; then
-  /usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.postgresql
-fi
+REMAINING_ITEMS=$1
+remove_fake_alternative() {
+    filename=$1
+    suffix=$2
+    if [ ! -h $filename ]; then
+        if [ $REMAINING_ITEMS -eq 0 ]; then
+            rm -f $filename
+        fi
+    fi
+}
+remove_fake_alternative /usr/sbin/bcopy postgresql
+remove_fake_alternative /usr/sbin/dbcheck postgresql
+
+# As proposed on epel-devel, we will not re-enable alternatives in EPEL-5
 
 %post client
 /sbin/chkconfig --add bacula-fd
@@ -927,6 +1124,9 @@ fi
 
 
 %changelog
+* Sun Feb 28 2010 Felix Schwarz <felix.schwarz at oss.schwarz.eu> 2.4.4-2
+- Implement workaround for broken alternatives in 2.0.3-10
+
 * Wed Jan 14 2009 Jon Ciesla <limb at jcomserv.net> 2.4.4-1
 - Update to 2.4.4, fix alternatives.
 



More information about the scm-commits mailing list