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