From aeca6912a8f67ecf69ba9b8a436a2a695e5f3acc Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Mon, 14 Jun 2010 19:06:59 +0200
Subject: [PATCH] Added GZIP_OPTS option, defaulting to --rsyncable.

... so that this option can be disabled on systems that don't support it.
This also allows to use another compression program, such as pbzip2 on SMP
machines (closes Roundup bug #2405).
---
 ChangeLog               | 5 +++++
 etc/backupninja.conf.in | 1 +
 handlers/ldap.in        | 2 +-
 handlers/mysql.in       | 4 ++--
 handlers/pgsql.in       | 8 ++++----
 src/backupninja.in      | 1 +
 6 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 66bc1e7d..e3c86084 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
 version 0.9.8 -- UNRELEASED
+    backupninja changes
+	 . Added GZIP_OPTS option, defaulting to --rsyncable, so that this
+	   option can be disabled on systems that don't support it. This
+	   also allows to use another compression program, such as pbzip2
+	   on SMP machines (Closes Roundup bug #2405)
     handler changes
 	sys:
 	 . Only run mdadm if RAID devices actually exist (Closes: #572450)
diff --git a/etc/backupninja.conf.in b/etc/backupninja.conf.in
index de1fbf3b..dee9fff6 100644
--- a/etc/backupninja.conf.in
+++ b/etc/backupninja.conf.in
@@ -86,6 +86,7 @@ vservers = no
 # PGSQLDUMP=/usr/bin/pg_dump
 # PGSQLDUMPALL=/usr/bin/pg_dumpall
 # GZIP=/bin/gzip
+# GZIP_OPTS='--rsyncable'
 # RSYNC=/usr/bin/rsync
 # VSERVERINFO=/usr/sbin/vserver-info
 # VSERVER=/usr/sbin/vserver
diff --git a/handlers/ldap.in b/handlers/ldap.in
index fda24d08..83307eed 100644
--- a/handlers/ldap.in
+++ b/handlers/ldap.in
@@ -86,7 +86,7 @@ if [ "$ldif" == "yes" ]; then
          fi
 
          if [ "$compress" == "yes" ]; then
-            execstr="$execstr | $GZIP --rsyncable > $dumpdir/$dbsuffix.ldif.gz"
+            execstr="$execstr | $GZIP $GZIP_OPTS > $dumpdir/$dbsuffix.ldif.gz"
          else
             execstr="$execstr > $dumpdir/$dbsuffix.ldif"
          fi
diff --git a/handlers/mysql.in b/handlers/mysql.in
index 3488c511..4dece247 100644
--- a/handlers/mysql.in
+++ b/handlers/mysql.in
@@ -279,7 +279,7 @@ then
             fatal "mysqld doesn't appear to be running!"
          fi
          if [ "$compress" == "yes" ]; then
-            execstr="$VSERVER $vsname exec $DUMP | $GZIP --rsyncable > '$vroot$dumpdir/${db}.sql.gz'"
+            execstr="$VSERVER $vsname exec $DUMP | $GZIP $GZIP_OPTS > '$vroot$dumpdir/${db}.sql.gz'"
          else
             execstr="$VSERVER $vsname exec $DUMP -r '$vroot$dumpdir/${db}.sql'"
          fi
@@ -290,7 +290,7 @@ then
             fatal "mysqld doesn't appear to be running!"
          fi
          if [ "$compress" == "yes" ]; then
-            execstr="$DUMP | $GZIP --rsyncable > '$dumpdir/${db}.sql.gz'"
+            execstr="$DUMP | $GZIP $GZIP_OPTS > '$dumpdir/${db}.sql.gz'"
          else
             execstr="$DUMP -r '$dumpdir/${db}.sql'"
          fi
diff --git a/handlers/pgsql.in b/handlers/pgsql.in
index 77a73fee..0b7badfd 100644
--- a/handlers/pgsql.in
+++ b/handlers/pgsql.in
@@ -75,13 +75,13 @@ chmod 700 $vroot$backupdir
 if [ "$databases" == "all" ]; then
    if [ $usevserver = yes ]; then
       if [ "$compress" == "yes" ]; then
-         execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP --rsyncable > '$backupdir/${vsname}.sql.gz'\""
+         execstr="$VSERVER $vsname exec su - $PGSQLUSER -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 --rsyncable > '$backupdir/${localhost}-all.sql.gz'\""
+         execstr="su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMPALL | $GZIP $GZIP_OPTS > '$backupdir/${localhost}-all.sql.gz'\""
       else
          execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL > '$backupdir/${localhost}-all.sql'\""
       fi
@@ -104,13 +104,13 @@ else
    for db in $databases; do
       if [ $usevserver = yes ]; then
          if [ "$compress" == "yes" ]; then
-            execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMP $db | $GZIP --rsyncable > '$backupdir/${db}.sql.gz'\""
+            execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMP $db | $GZIP $GZIP_OPTS > '$backupdir/${db}.sql.gz'\""
          else
             execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMP $db | > '$backupdir/${db}.sql'\""
          fi
       else
          if [ "$compress" == "yes" ]; then
-            execstr="su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMP $db | $GZIP --rsyncable > '$backupdir/${db}.sql.gz'\""
+            execstr="su - $PGSQLUSER -c \"set -o pipefail ; $PGSQLDUMP $db | $GZIP $GZIP_OPTS > '$backupdir/${db}.sql.gz'\""
          else
             execstr="su - $PGSQLUSER -c \"$PGSQLDUMP $db > '$backupdir/${db}.sql'\""
          fi
diff --git a/src/backupninja.in b/src/backupninja.in
index e8a820ff..b397a142 100755
--- a/src/backupninja.in
+++ b/src/backupninja.in
@@ -480,6 +480,7 @@ getconf PGSQLDUMP /usr/bin/pg_dump
 getconf PGSQLDUMPALL /usr/bin/pg_dumpall
 getconf PGSQLUSER postgres
 getconf GZIP /bin/gzip
+getconf GZIP_OPTS --rsyncable
 getconf RSYNC /usr/bin/rsync
 getconf admingroup root
 
-- 
GitLab