From 3c69ae3451932df65564f532a8d14c1819adc1ae729180e080caf72761cb14df Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 11 Nov 2014 13:22:49 +0000 Subject: [PATCH 1/2] Accepting request 260844 from home:olh:branches:openSUSE:Tools - Update check-all option to really keep going and check all files - Add check to recursively look into gzip files with odd suffix to properly handle /usr/share/vlc/skins2/default.vlt - Fix quoting . remove filelist handling part of the change in previous SR. OBS-URL: https://build.opensuse.org/request/show/260844 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=151 --- build-compare.changes | 12 +++++++++++ functions.sh | 32 ++++++++++++++++++---------- rpm-check.sh | 49 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 12 deletions(-) diff --git a/build-compare.changes b/build-compare.changes index 53a8cf0..174cefb 100644 --- a/build-compare.changes +++ b/build-compare.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Nov 7 11:12:10 UTC 2014 - ohering@suse.de + +- Update check-all option to really keep going and check all files +- Add check to recursively look into gzip files with odd suffix + to properly handle /usr/share/vlc/skins2/default.vlt + +------------------------------------------------------------------- +Sat Aug 2 19:37:18 UTC 2014 - johannesobermayr@gmx.de + +- Fix quoting . + ------------------------------------------------------------------- Tue Jul 29 15:07:04 UTC 2014 - johannesobermayr@gmx.de diff --git a/functions.sh b/functions.sh index 1ad1bcf..772c0e8 100644 --- a/functions.sh +++ b/functions.sh @@ -82,25 +82,31 @@ function cmp_spec () # the DISTURL tag can be used as checkin ID #echo "$QF" if ! diff -au $file1 $file2; then - rm $file1 $file2 - return 1 + if test -z "$check_all"; then + rm $file1 $file2 + return 1 + fi fi # Remember to quote the . which is in release - release1=`$RPM --qf "%{RELEASE}" "$oldrpm"|sed -e 's/\./\\./g'` - release2=`$RPM --qf "%{RELEASE}" "$newrpm"|sed -e 's/\./\\./g'` + release1=`$RPM --qf "%{RELEASE}" "$oldrpm"|sed -e 's/\./\\\./g'` + release2=`$RPM --qf "%{RELEASE}" "$newrpm"|sed -e 's/\./\\\./g'` # This might happen with a forced rebuild of factory if [ "${release1%.*}" != "${release2%.*}" ] ; then echo "release prefix mismatch" - return 1 + if test -z "$check_all"; then + return 1 + fi fi check_provides $oldrpm $release1 > $file1 check_provides $newrpm $release2 > $file2 if ! diff -au $file1 $file2; then - rm $file1 $file2 - return 1 + if test -z "$check_all"; then + rm $file1 $file2 + return 1 + fi fi # scripts, might contain release number @@ -109,8 +115,10 @@ function cmp_spec () check_header $newrpm | sed -e "s,-$release2$,-@RELEASE@," > $file2 if ! diff -au $file1 $file2; then - rm $file1 $file2 - return 1 + if test -z "$check_all"; then + rm $file1 $file2 + return 1 + fi fi # First check the file attributes and later the md5s @@ -130,8 +138,10 @@ function cmp_spec () check_header $newrpm | sed -e "s,-$release2,-@RELEASE@," > $file2 if ! diff -au $file1 $file2; then - rm $file1 $file2 - return 1 + if test -z "$check_all"; then + rm $file1 $file2 + return 1 + fi fi # now the md5sums. if they are different, we check more detailed diff --git a/rpm-check.sh b/rpm-check.sh index b52b3a6..070cdeb 100644 --- a/rpm-check.sh +++ b/rpm-check.sh @@ -104,7 +104,9 @@ case $RES in ;; 1) echo "RPM meta information is different" - exit 1 + if test -z "$check_all"; then + exit 1 + fi ;; 2) ;; @@ -150,6 +152,45 @@ strip_numbered_anchors() } +check_gzip_file() +{ + local file=$1 + local tmpdir=`mktemp -d` + local ftype + local ret=0 + if test -n "$tmpdir"; then + mkdir $tmpdir/{old,new} + cp --parents --dereference old/$file $tmpdir/ + cp --parents --dereference new/$file $tmpdir/ + if pushd $tmpdir > /dev/null ; then + mv old/$file{,.gz} + mv new/$file{,.gz} + gunzip old/$file.gz + gunzip new/$file.gz + ftype=`/usr/bin/file old/$file | cut -d: -f2-` + case $ftype in + *POSIX\ tar\ archive) + echo "gzip content is: $ftype" + mv old/$file{,.tar} + mv new/$file{,.tar} + if ! check_single_file ${file}.tar; then + ret=1 + fi + ;; + *) + echo "unhandled gzip content: $ftype" + if ! diff_two_files; then + ret=1 + fi + ;; + esac + popd > /dev/null + fi + rm -rf "$tmpdir" + fi + return $ret +} + check_single_file() { local file="$1" @@ -513,6 +554,12 @@ check_single_file() # tar might package directories - ignore them here return 0 ;; + *gzip\ compressed\ data*) + echo "gzipped file with odd filename: $file" + if ! check_gzip_file "$file"; then + return 1 + fi + ;; *) if ! diff_two_files; then return 1 From 89e4b701b24896c92e15749538a2771decade19042f0e57b061983fa1828fde0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 14 Nov 2014 08:31:26 +0000 Subject: [PATCH 2/2] Accepting request 261214 from home:Andreas_Schwab:Factory - Use $(...) instead of `...` to avoid losing backslash quoting OBS-URL: https://build.opensuse.org/request/show/261214 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=152 --- build-compare.changes | 5 +++++ functions.sh | 4 ++-- same-build-result.sh | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/build-compare.changes b/build-compare.changes index 174cefb..5b38d28 100644 --- a/build-compare.changes +++ b/build-compare.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Nov 12 09:29:24 UTC 2014 - schwab@suse.de + +- Use $(...) instead of `...` to avoid losing backslash quoting + ------------------------------------------------------------------- Fri Nov 7 11:12:10 UTC 2014 - ohering@suse.de diff --git a/functions.sh b/functions.sh index 772c0e8..3133bfe 100644 --- a/functions.sh +++ b/functions.sh @@ -89,8 +89,8 @@ function cmp_spec () fi # Remember to quote the . which is in release - release1=`$RPM --qf "%{RELEASE}" "$oldrpm"|sed -e 's/\./\\\./g'` - release2=`$RPM --qf "%{RELEASE}" "$newrpm"|sed -e 's/\./\\\./g'` + release1=$($RPM --qf "%{RELEASE}" "$oldrpm"|sed -e 's/\./\\./g') + release2=$($RPM --qf "%{RELEASE}" "$newrpm"|sed -e 's/\./\\./g') # This might happen with a forced rebuild of factory if [ "${release1%.*}" != "${release2%.*}" ] ; then echo "release prefix mismatch" diff --git a/same-build-result.sh b/same-build-result.sh index ddf95b0..3c08a01 100644 --- a/same-build-result.sh +++ b/same-build-result.sh @@ -64,8 +64,8 @@ NEWRPMS=($(find $NEWDIRS -type f -name \*rpm -a ! -name \*src.rpm -a ! -name \*. # Get release from first RPM and keep for rpmlint check # Remember to quote the "." for future regexes -release1=`rpm -qp --nodigest --nosignature --qf "%{RELEASE}" "${OLDRPMS[0]}"|sed -e 's/\./\\./g'` -release2=`rpm -qp --nodigest --nosignature --qf "%{RELEASE}" "${NEWRPMS[0]}"|sed -e 's/\./\\./g'` +release1=$(rpm -qp --nodigest --nosignature --qf "%{RELEASE}" "${OLDRPMS[0]}"|sed -e 's/\./\\./g') +release2=$(rpm -qp --nodigest --nosignature --qf "%{RELEASE}" "${NEWRPMS[0]}"|sed -e 's/\./\\./g') SUCCESS=1 rpmqp='rpm -qp --qf %{NAME} --nodigest --nosignature '