From 13f247afebde199ffb03d23e8662d362d5681ca6 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Sun, 7 Nov 2010 13:07:26 +0100 Subject: Fix reliance on bash for pipefail. (Closes: #602374) Thanks to Sergio Talens-Oliag for the bug report and patch. --- AUTHORS | 1 + ChangeLog | 7 +++++++ handlers/ldap.in | 2 +- handlers/mysql.in | 2 +- handlers/pgsql.in | 12 ++++++------ 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/AUTHORS b/AUTHORS index 5ca3087..90fa918 100644 --- a/AUTHORS +++ b/AUTHORS @@ -37,3 +37,4 @@ Chris Nolan -- maildir subdirectory expansion Dan Carley -- mysql bugfix Jordi Mallach -- do not error when no jobs are configured Jacob Anawalt -- pg_dump format option +Sergio Talens-Oliag -- pipefail fixes diff --git a/ChangeLog b/ChangeLog index f7bf585..8bcdc6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,10 +8,17 @@ version 0.9.9 -- UNRELEASED (Closes Roundup bug #598) . Remove support for duplicity < 0.4.4. Even etch-backports has a newer one. + ldap: + . Fix reliance on bash for pipefail. + mysql: + . Fix reliance on bash for pipefail. + Thanks to Sergio Talens-Oliag for the patch. + (Closes: #602374) postgresql: . Support various pg_dump formats in addition to pg_dumpall. Thanks to Jacob Anawalt for the patch. (Closes Roundup bug #2534) + . Fix reliance on bash for pipefail. rdiff: . Support reading include/exclude patterns from files using the "include @/etc/backup_includes" syntax (Closes Roundup bug diff --git a/handlers/ldap.in b/handlers/ldap.in index 83307ee..600f172 100644 --- a/handlers/ldap.in +++ b/handlers/ldap.in @@ -91,7 +91,7 @@ if [ "$ldif" == "yes" ]; then execstr="$execstr > $dumpdir/$dbsuffix.ldif" fi debug "$execstr" - output=`su root -c "set -o pipefail ; $execstr" 2>&1` + output=`su root -s /bin/bash -c "set -o pipefail ; $execstr" 2>&1` code=$? if [ "$code" == "0" ]; then debug $output diff --git a/handlers/mysql.in b/handlers/mysql.in index 0282046..05ea396 100644 --- a/handlers/mysql.in +++ b/handlers/mysql.in @@ -303,7 +303,7 @@ then debug "su $user -c \"$execstr\"" if [ ! $test ] then - output=`su $user -c "set -o pipefail ; $execstr" 2>&1` + output=`su $user -s /bin/bash -c "set -o pipefail ; $execstr" 2>&1` code=$? if [ "$code" == "0" ] then diff --git a/handlers/pgsql.in b/handlers/pgsql.in index f68ec2f..ff71ebc 100644 --- a/handlers/pgsql.in +++ b/handlers/pgsql.in @@ -115,13 +115,13 @@ fi if [ "$databases" == "all" ]; then if [ $usevserver = yes ]; then if [ "$compress" == "yes" ]; then - execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP $GZIP_OPTS > '$backupdir/${vsname}.sql.gz'\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -s /bin/bash -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP $GZIP_OPTS > '$backupdir/${vsname}.sql.gz'\"" else execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMPALL > '$backupdir/${vsname}.sql'\"" fi else if [ "$compress" == "yes" ]; then - execstr="su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP $GZIP_OPTS > '$backupdir/${localhost}-all.sql.gz'\"" + execstr="su - $PGSQLUSER -s /bin/bash -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP $GZIP_OPTS > '$backupdir/${localhost}-all.sql.gz'\"" else execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL > '$backupdir/${localhost}-all.sql'\"" fi @@ -152,9 +152,9 @@ else globalscmd="$PGSQLDUMPALL -g > '$backupdir/globals.sql'" fi if [ $usevserver = yes ]; then - execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$globalscmd\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -s /bin/bash -c \"$globalscmd\"" else - execstr="su - $PGSQLUSER -c \"$globalscmd\"" + execstr="su - $PGSQLUSER -s /bin/bash -c \"$globalscmd\"" fi debug "$execstr" if [ ! $test ]; then @@ -189,9 +189,9 @@ else dumpcmd="$PGSQLDUMP --format=$format ${disablecustomcompress} $db | > '$backupdir/${db}.${dumpext}'" fi if [ $usevserver = yes ]; then - execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$dumpcmd\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -s /bin/bash -c \"$dumpcmd\"" else - execstr="su - $PGSQLUSER -c \"$dumpcmd\"" + execstr="su - $PGSQLUSER -s /bin/bash -c \"$dumpcmd\"" fi debug "$execstr" if [ ! $test ]; then -- cgit v1.2.3