From ae58d0f7af61b5bae65ec0532ee316dd9fb5e4ea Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel@debian.org>
Date: Tue, 22 Apr 2008 23:32:30 +0200
Subject: Producing rsyncable tarballs where possible.

---
 helpers/lh_binary_net         |  9 ++++++++-
 helpers/lh_binary_tar         |  8 +++++++-
 helpers/lh_source_debian-live | 10 +++++++++-
 helpers/lh_source_net         |  8 +++++++-
 helpers/lh_source_tar         |  8 +++++++-
 5 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/helpers/lh_binary_net b/helpers/lh_binary_net
index f97d4c3..3b5076e 100755
--- a/helpers/lh_binary_net
+++ b/helpers/lh_binary_net
@@ -78,7 +78,14 @@ case "${LH_NET_TARBALL}" in
 		;;
 
 	gzip)
-		tar cfz binary-net.tar.gz "$(basename ${OLDPWD})/${ROOT_DIR}" "$(basename ${OLDPWD})/tftpboot"
+		if gzip --help | grep -q "\-\-rsyncable"
+		then
+			tar cf binary-net.tar "$(basename ${OLDPWD})/${ROOT_DIR}" "$(basename ${OLDPWD})/tftpboot"
+			gzip --rsyncable --best binary-net.tar
+		else
+			tar cfz binary-net.tar.gz "$(basename ${OLDPWD})/${ROOT_DIR}" "$(basename ${OLDPWD})/tftpboot"
+		fi
+
 		mv binary-net.tar.gz "${OLDPWD}"
 		;;
 
diff --git a/helpers/lh_binary_tar b/helpers/lh_binary_tar
index 85ff064..7560bce 100755
--- a/helpers/lh_binary_tar
+++ b/helpers/lh_binary_tar
@@ -50,7 +50,13 @@ Create_lockfile .lock
 # Remove old binary
 rm -f binary.tar.gz
 
-tar cfz binary-tar.tar.gz binary
+if gzip --help | grep -q '\-\-rsyncable'
+then
+	tar cf binary-tar.tar binary
+	gzip --rsyncable --best binary-tar.tar
+else
+	tar cfz binary-tar.tar.gz binary
+fi
 
 # Creating stage file
 Create_stagefile .stage/binary_tar
diff --git a/helpers/lh_source_debian-live b/helpers/lh_source_debian-live
index 1511468..c82ca29 100755
--- a/helpers/lh_source_debian-live
+++ b/helpers/lh_source_debian-live
@@ -59,7 +59,15 @@ cp -a config source/debian-live
 
 # Create tarball
 cd source
-tar cfz debian-live-config_$(date +%Y%m%d.%s).tar.gz debian-live
+
+if gzip --help | grep -q '\-\-rsyncable'
+then
+	tar cf debian-live-config_$(date +%Y%m%d.%s).tar debian-live
+	gzip --rsyncable --best debian-live-config_$(date +%Y%m%d.%s).tar
+else
+	tar cfz debian-live-config_$(date +%Y%m%d.%s).tar.gz debian-live
+fi
+
 cd "${OLDPWD}"
 
 rm -rf source/debian-live/config
diff --git a/helpers/lh_source_net b/helpers/lh_source_net
index 192ea3b..77c7aed 100755
--- a/helpers/lh_source_net
+++ b/helpers/lh_source_net
@@ -59,7 +59,13 @@ then
 fi
 
 # Create tarball
-tar cfz source-net.tar.gz source
+if gzip --help | grep -q '\-\-rsyncable'
+then
+	tar cf source-net.tar source
+	gzip --rsyncable --best source-net.tar
+else
+	tar cfz source-net.tar.gz source
+fi
 
 # Creating stage file
 Create_stagefile .stage/source_net
diff --git a/helpers/lh_source_tar b/helpers/lh_source_tar
index ecd04ee..4e00db6 100755
--- a/helpers/lh_source_tar
+++ b/helpers/lh_source_tar
@@ -60,7 +60,13 @@ then
 fi
 
 # Create tarball
-tar cfz source.tar.gz source
+if gzip --help | grep -q '\-\-rsyncable'
+then
+	tar cf source.tar source
+	gzip --rsyncable --best source.tar
+else
+	tar cfz source.tar.gz source
+fi
 
 # Creating stage file
 Create_stagefile .stage/source_tar
-- 
cgit v1.0