[Reproducible-commits] [misc] 01/01: diffp: also support data.tar.bz2 and data.tar.gz

Jérémy Bobbio lunar at moszumanska.debian.org
Fri Sep 19 21:44:51 UTC 2014


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch master
in repository misc.

commit fc6723db908bb43fd68ff81a3d0c727d45dc3893
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Fri Sep 19 23:42:24 2014 +0200

    diffp: also support data.tar.bz2 and data.tar.gz
---
 diffp | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/diffp b/diffp
index 6903888..1b38dbc 100755
--- a/diffp
+++ b/diffp
@@ -17,7 +17,7 @@ get_ops() {
 
 	case "$file" in
 	    */bin/*|*/sbin/*)
-		case "$(ar p $PACKAGE_A data.tar.xz | tar -JxOf - $file | file -)" in
+		case "$(ar p $PACKAGE_A $DATA_TAR | $DATA_COMPR | tar -xOf - $file | file -)" in
 		    *ELF*)
 			echo "readelf -a FILE"
 			echo "readelf -w FILE"
@@ -66,8 +66,23 @@ paste <(dcmd "$CHANGES_A" | sort | grep '\.deb$') <(dcmd "$CHANGES_B" | sort | g
 
 	diffc "sha1sum < PACKAGE | sed -e 's,-$,$PACKAGE,'" && continue
 
+	DATA_TAR=
+	for file in data.tar.gz data.tar.bz2 data.tar.xz; do
+		if [ "$file" = "$(ar t "$PACKAGE_A" "$file" 2>/dev/null)" ]; then
+			DATA_TAR="$file"
+			case "$file" in *.gz) DATA_COMPR="zcat" ;;
+					*.bz2) DATA_COMPR="bzcat" ;;
+					*.xz) DATA_COMPR="xzcat" ;;
+			esac
+		fi
+	done
+	if [ -z "$DATA_TAR" ]; then
+		echo "Unable to find data.tar in $PACKAGE"
+		continue
+	fi
+
 	MISMATCH=
-	for file in debian-binary control.tar.gz data.tar.xz; do
+	for file in debian-binary control.tar.gz "$DATA_TAR"; do
 		if diffc "ar p PACKAGE $file | sha1sum | sed -e s/-$/$file/"; then
 			MISMATCH=1
 		fi
@@ -82,16 +97,16 @@ paste <(dcmd "$CHANGES_A" | sort | grep '\.deb$') <(dcmd "$CHANGES_B" | sort | g
 		diffc "ar p PACKAGE control.tar.gz | tar -zxOf - $file"
 	done
 
-	echo "===== data.tar.xz"
-	diffc 'hachoir-metadata --raw --quality=1 --maxlen=0 <(ar p PACKAGE data.tar.xz | xzcat)'
+	echo "===== $DATA_TAR"
+	diffc "hachoir-metadata --raw --quality=1 --maxlen=0 <(ar p PACKAGE $DATA_TAR | $DATA_COMPR)"
 	if ar p "$PACKAGE_A" control.tar.gz | tar -ztf - ./md5sums >/dev/null; then
 		FILES="$(diffc "ar p PACKAGE control.tar.gz | tar -zxOf - ./md5sums" | awk '/^-/ { print "./" $2 }')"
 	else
-		FILES="$(ar p $PACKAGE_A data.tar.xz | tar -Jvtf - | awk '/^-/ { print $6 }')"
+		FILES="$(ar p $PACKAGE_A $DATA_TAR | $DATA_COMPR | tar -vtf - | awk '/^-/ { print $6 }')"
 	fi
 	echo "$FILES" | while read file; do
 		echo "----- $file"
-		diffc "ar p PACKAGE data.tar.xz | tar -JxOf - $file" |
+		diffc "ar p PACKAGE $DATA_TAR | $DATA_COMPR | tar -xOf - $file" |
 		    sed -e "s,Binary files [^ ]* and [^ ]* differ,Binary file $file differ,"
 
 		OPS="$(get_ops "$file")"
@@ -99,8 +114,8 @@ paste <(dcmd "$CHANGES_A" | sort | grep '\.deb$') <(dcmd "$CHANGES_B" | sort | g
 
 		TMP_A=$(mktemp)
 		TMP_B=$(mktemp)
-		ar p $PACKAGE_A data.tar.xz | tar -JxOf - $file > "$TMP_A"
-		ar p $PACKAGE_B data.tar.xz | tar -JxOf - $file > "$TMP_B"
+		ar p $PACKAGE_A $DATA_TAR | tar -${DATA_TAR}xOf - $file > "$TMP_A"
+		ar p $PACKAGE_B $DATA_TAR | tar -${DATA_TAR}xOf - $file > "$TMP_B"
 		echo "$OPS" | while read op; do
 			diff -u0 <(echo "$op" | sed -e "s,FILE,$TMP_A," | sh | sed -e "s,$TMP_A,$file,g") \
 			         <(echo "$op" | sed -e "s,FILE,$TMP_B," | sh | sed -e "s,$TMP_B,$file,g") | trim_diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/misc.git



More information about the Reproducible-commits mailing list