[pkg-bacula-commits] [SCM] Bacula, a network backup, recovery and verification program branch, master, updated. debian/5.2.6+dfsg-6-21-gbbe70c0
Alexander Golovko
alexandro at ankalagon.ru
Wed Jan 2 19:01:49 UTC 2013
The following commit has been merged in the master branch:
commit 58aa76be6ec3fed19f432930e4a0d830712b9861
Author: Alexander Golovko <alexandro at ankalagon.ru>
Date: Thu Nov 8 11:48:24 2012 +0400
switch delete_catalog_backup script under ucf control
Backported commits:
a4b9477a1578dc89938e788b07e5515e91cef997
345e49e15c5ba64820c32cac4e34ea7faf6ccfd1
94740d85b9082d25906f9e1c9b45ae528f8b9403
e51cbd56c6519611ab29ffdd91925ce9861912ec
d4a161e802503625895d0fad0bd4f996808310c7
diff --git a/debian/additions/common-functions.dpkg b/debian/additions/common-functions.dpkg
index 065566f..fee5916 100644
--- a/debian/additions/common-functions.dpkg
+++ b/debian/additions/common-functions.dpkg
@@ -44,6 +44,104 @@ EOF
}
+
+#
+# Function for substitute variables into template
+# Usage: substitute <template> <output>
+#
+# will replace all occurance of XXX_var_XXX to value of environment variable `var'
+#
+
+substitute() {
+ local TEMPLATE DEST HOSTNAME SUBST_VARIABLES SEDCMD
+ TEMPLATE="$1"
+ DEST="$2"
+
+ HOSTNAME="${HOSTNAME:-`hostname --fqdn 2>/dev/null || hostname`}"
+
+ SUBST_VARIABLES="${SUBST_VARIABLES:-HOSTNAME DBNAME DBUSER DBPASS \
+ DIRPASSWD DIRMPASSWD SDPASSWD SDMPASSWD FDPASSWD FDMPASSWD}"
+
+ SEDCMD="sed"
+ for var in $SUBST_VARIABLES; do
+ value=$(eval echo "\$$var" |sed -e 's/[\/&]/\\&/g')
+ SEDCMD="$SEDCMD -e s/XXX_${var}_XXX/$value/g"
+ done
+
+ $SEDCMD "$TEMPLATE" >"$DEST"
+}
+
+
+
+#
+# Function for check if config already registered by the same package for
+# other database type.
+# Usage: config_from_other_dbtype <package> <config>
+#
+
+config_from_other_dbtype() {
+ local PACKAGE CONFIG base_package_name regex
+ PACKAGE="$1"
+ CONFIG="$2"
+
+ base_package_name=$(echo "$PACKAGE" |sed -Ee 's/-(mysql|pgsql|sqlite3)$//')
+ regex="^$CONFIG:$base_package_name-(mysql|pgsql|sqlite3):"
+
+ ucfq -w "$CONFIG" |egrep -q "$regex"
+}
+
+
+
+#
+# Function for install config file from template
+# Usage: install_config <package> <config name> [ <template> ]
+#
+# use substitute() for generate config
+# use config_from_other_dbtype() for force reregister file with ucf
+# install and register generated file with ucf
+#
+
+install_config() {
+ local PACKAGE CONFIG OLD_VERSION TEMPLATEa tempfile
+ PACKAGE="$1"
+ if [ $# -ge 3 ]; then
+ TEMPLATE="$2"
+ CONFIG="$3"
+ else
+ TEMPLATE="/usr/share/bacula-common/defconfig/$(basename '$CONFIG')"
+ CONFIG="$3"
+ fi
+ tempfile=`tempfile`
+
+
+ dpkg_conffile_md5sum="$(dpkg-query -W -f='${Conffiles}' \"$PACKAGE\" \
+ 2>/dev/null |sed -ne "\' $CONFIG ' { s/ obsolete$//; s/.* //; p }")"
+
+ if [ -n "$dpkg_conffile_md5sum" ]; then
+ echo "$dpkg_conffile_md5sum default" >"$tempfile.md5sum"
+ fi
+
+ if [ -f "$TEMPLATE.md5sum" ]; then
+ cat "$TEMPLATE.md5sum" >>"$tempfile.md5sum"
+ fi
+
+
+ substitute "$TEMPLATE" "$tempfile"
+ ucf --debconf-ok --three-way "$tempfile" "$CONFIG"
+
+ # if config installed by the same package for other
+ # database type, we need force reregister it.
+ if config_from_other_dbtype "$PACKAGE" "$CONFIG"; then
+ ucfr -f "$PACKAGE" "$CONFIG"
+ else
+ ucfr "$PACKAGE" "$CONFIG"
+ fi
+
+ rm -f "$tempfile" "$tempfile.md5sum"
+}
+
+
+
#
# Function for setup /etc/default/*
# Usage: call from postins script "setup_etc_default <package> $@"
diff --git a/debian/additions/sqlite3/delete_catalog_backup.md5sum b/debian/additions/sqlite3/delete_catalog_backup.md5sum
new file mode 100644
index 0000000..eddbd20
--- /dev/null
+++ b/debian/additions/sqlite3/delete_catalog_backup.md5sum
@@ -0,0 +1 @@
+4046822bde52b5b6926d33b20b7e7b07 5.2.6+dfsg-[2345]
diff --git a/debian/bacula-director-db.postrm.in b/debian/bacula-director-db.postrm.in
index af9608e..a51fab2 100644
--- a/debian/bacula-director-db.postrm.in
+++ b/debian/bacula-director-db.postrm.in
@@ -22,20 +22,28 @@ case "$1" in
purge)
rm -f $CONFFILE $CONFFILE.dist
- # purge /etc/default/bacula-dir if there was not installed package
+
+ UCF_CONFIG_FILES="/etc/default/bacula-dir \
+ /etc/bacula/scripts/delete_catalog_backup"
+
+ # purge configs if there are no installed package
# for other database type
- if ! which ucfq >/dev/null || ucfq -w "/etc/default/bacula-dir" \
- |egrep -q "^[^:]*:bacula-director-$THISDB:";
- then
- rm -f /etc/default/bacula-dir /etc/default/bacula-dir.ucf-old \
- /etc/default/bacula-dir.ucf-new /etc/default/bacula-dir.ucf-dist
+ for CONF in $UCF_CONFIG_FILES; do
+ if which ucfq >/dev/null && \
+ ! (ucfq -w "$CONF" |egrep -q "^$CONF:bacula-director-$THISDB:");
+ then
+ continue
+ fi
+
+ rm -f "$CONF" "$CONF.ucf-old" "$CONF.ucf-new" "$CONF.ucf-dist"
+
if which ucf >/dev/null; then
- ucf --purge /etc/default/bacula-dir
+ ucf --purge "$CONF"
fi
if which ucfr >/dev/null; then
- ucfr --purge bacula-director-$THISDB /etc/default/bacula-dir
+ ucfr --purge bacula-director-$THISDB "$CONF"
fi
- fi
+ done
;;
esac
diff --git a/debian/bacula-director-mysql.install b/debian/bacula-director-mysql.install
index 77fc949..66ece38 100644
--- a/debian/bacula-director-mysql.install
+++ b/debian/bacula-director-mysql.install
@@ -1,6 +1,7 @@
etc/bacula/scripts/make_mysql_tables usr/share/bacula-director
etc/bacula/scripts/update_mysql* usr/share/bacula-director
-etc/bacula/scripts/*catalog_backup
+etc/bacula/scripts/make_catalog_backup
+etc/bacula/scripts/delete_catalog_backup usr/share/bacula-common/defconfig/scripts
etc/bacula/scripts/*catalog_backup.pl
debian/additions/mysql/make_catalog_backup_awk etc/bacula/scripts
usr/sbin/bacula-dir
diff --git a/debian/bacula-director-mysql.postinst b/debian/bacula-director-mysql.postinst
index 59b4c65..f3fab5c 100644
--- a/debian/bacula-director-mysql.postinst
+++ b/debian/bacula-director-mysql.postinst
@@ -66,7 +66,14 @@ configure)
-e s~XXX_FDPASSWORD_XXX~$FDPASSWD~ \
$DEFCONFIG/bacula-dir.conf > $TARGET
- sed -i -e "s/XXX_DBNAME_XXX/$dbc_dbname/" /etc/bacula/scripts/delete_catalog_backup
+
+ DBNAME="$dbc_dbname"
+ SUBST_VARIABLES=DBNAME
+ install_config \
+ bacula-director-mysql \
+ /usr/share/bacula-common/defconfig/scripts/delete_catalog_backup \
+ /etc/bacula/scripts/delete_catalog_backup
+
sh $POSTINST_COMMON
diff --git a/debian/bacula-director-pgsql.install b/debian/bacula-director-pgsql.install
index 5c7fdbd..7368210 100644
--- a/debian/bacula-director-pgsql.install
+++ b/debian/bacula-director-pgsql.install
@@ -1,7 +1,8 @@
etc/bacula/scripts/make_postgresql_tables usr/share/bacula-director
etc/bacula/scripts/grant_postgresql_privileges usr/share/bacula-director
etc/bacula/scripts/update_postgres* usr/share/bacula-director
-etc/bacula/scripts/*catalog_backup
+etc/bacula/scripts/make_catalog_backup
+etc/bacula/scripts/delete_catalog_backup usr/share/bacula-common/defconfig/scripts
etc/bacula/scripts/*catalog_backup.pl
debian/additions/pgsql/make_catalog_backup_awk etc/bacula/scripts
usr/sbin/bacula-dir
diff --git a/debian/bacula-director-pgsql.postinst b/debian/bacula-director-pgsql.postinst
index c6b7ef5..05b453b 100644
--- a/debian/bacula-director-pgsql.postinst
+++ b/debian/bacula-director-pgsql.postinst
@@ -75,7 +75,14 @@ configure)
$DEFCONFIG/bacula-dir.conf > $TARGET
fi
- sed -i -e "s/XXX_DBNAME_XXX/$dbc_dbname/" /etc/bacula/scripts/delete_catalog_backup
+
+ DBNAME="$dbc_dbname"
+ SUBST_VARIABLES=DBNAME
+ install_config \
+ bacula-director-pgsql \
+ /usr/share/bacula-common/defconfig/scripts/delete_catalog_backup \
+ /etc/bacula/scripts/delete_catalog_backup
+
sh $POSTINST_COMMON
echo "Ok."
diff --git a/debian/bacula-director-sqlite3.install b/debian/bacula-director-sqlite3.install
index b7ed49a..3f6b4eb 100644
--- a/debian/bacula-director-sqlite3.install
+++ b/debian/bacula-director-sqlite3.install
@@ -1,6 +1,8 @@
etc/bacula/scripts/make_sqlite*tables usr/share/bacula-director
etc/bacula/scripts/update_sqlite* usr/share/bacula-director
-etc/bacula/scripts/*catalog_backup
+etc/bacula/scripts/make_catalog_backup
+debian/additions/sqlite3/delete_catalog_backup.md5sum usr/share/bacula-common/defconfig/scripts
+etc/bacula/scripts/delete_catalog_backup usr/share/bacula-common/defconfig/scripts
etc/bacula/scripts/*catalog_backup.pl
debian/additions/sqlite3/make_catalog_backup_awk etc/bacula/scripts
usr/sbin/bacula-dir
diff --git a/debian/bacula-director-sqlite3.postinst b/debian/bacula-director-sqlite3.postinst
index e1feca1..87de84d 100644
--- a/debian/bacula-director-sqlite3.postinst
+++ b/debian/bacula-director-sqlite3.postinst
@@ -69,8 +69,15 @@ configure)
-e s~XXX_DBUSER_XXX~~ \
-e s~XXX_DBPASSWORD_XXX~~ \
$DEFCONFIG/bacula-dir.conf > $TARGET
-
- sed -i -e "s/XXX_DBNAME_XXX/$dbc_dbname/" /etc/bacula/scripts/delete_catalog_backup
+
+
+ DBNAME="$BACULADBNAME"
+ SUBST_VARIABLES=DBNAME
+ install_config \
+ bacula-director-sqlite3 \
+ /usr/share/bacula-common/defconfig/scripts/delete_catalog_backup \
+ /etc/bacula/scripts/delete_catalog_backup
+
sh $POSTINST_COMMON
diff --git a/debian/changelog b/debian/changelog
index 08dcdd8..745bdbe 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -37,6 +37,10 @@ bacula (5.2.6+dfsg-2+deb7u1) testing; urgency=high
+ Fix bacula-fd crash on saving xattr on btrfs.
* debian/patches/fix-save-only-one-xattr.patch, debian/patches/series:
+ Save all file xattrs, not only first (Closes: #688732).
+ * debian/bacula-director-*.{install,postinst},
+ debian/additions/sqlite3/delete_catalog_backup.md5sum,
+ debian/additions/common-functions.dpkg (Closes: #688199):
+ + switch /etc/bacula/scripts/delete_catalog_backup undef ucf control.
[ Bart Swedrowski ]
* debian/bacula-console.postinst,debian/bacula-console-qt.postinst,
--
Bacula, a network backup, recovery and verification program
More information about the pkg-bacula-commits
mailing list