From e10af96a9a832e178b37bd1e247b80374ebb342aa498eac124eb23d2eb508a86 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Tue, 23 Mar 2010 14:25:33 +0000 Subject: [PATCH] Accepting request 35550 from home:a_jaeger:branches:openSUSE:Factory Copy from home:a_jaeger:branches:openSUSE:Factory/build-compare via accept of submit request 35550 revision 71. Request was accepted with message: Reviewed ok, thanks. OBS-URL: https://build.opensuse.org/request/show/35550 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=56 --- build-compare.changes | 12 ++++++++++++ build-compare.spec | 2 +- ready | 0 rpm-check.sh | 43 +++++++++++++++++++++++++++++++++++-------- same-build-result.sh | 1 - 5 files changed, 48 insertions(+), 10 deletions(-) delete mode 100644 ready diff --git a/build-compare.changes b/build-compare.changes index df8d6c5..2744b71 100644 --- a/build-compare.changes +++ b/build-compare.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Mar 23 13:37:47 UTC 2010 - aj@suse.de + +- Handle mono files. +- Mount /proc if it's not mounted already to work around bug in + build script. + +------------------------------------------------------------------- +Sun Mar 14 09:22:39 UTC 2010 - aj@suse.de + +- Improve last regexp to fix virt-utils. + ------------------------------------------------------------------- Sat Mar 6 04:01:36 UTC 2010 - aj@suse.de diff --git a/build-compare.spec b/build-compare.spec index f5e46a9..58a7dc6 100644 --- a/build-compare.spec +++ b/build-compare.spec @@ -24,7 +24,7 @@ Group: Development/Tools/Building AutoReqProv: on Summary: Build Result Compare Script Version: 2009.10.14 -Release: 5 +Release: 6 Source: same-build-result.sh Source1: rpm-check.sh Source2: COPYING diff --git a/ready b/ready deleted file mode 100644 index 473a0f4..0000000 diff --git a/rpm-check.sh b/rpm-check.sh index 3024d8d..6ad4816 100644 --- a/rpm-check.sh +++ b/rpm-check.sh @@ -1,6 +1,6 @@ #! /bin/bash # -# Copyright (c) 2009 SUSE Linux Product Gmbh, Germany. +# Copyright (c) 2009, 2010 SUSE Linux Product GmbH, Germany. # Licensed under GPL v2, see COPYING file for details. # # Written by Michael Matz and Stephan Coolo @@ -238,12 +238,9 @@ check_single_file() sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file sed -i -e "s,Release:.*$release2,Release: @RELEASE@," new/$file ;; - *.dll|*.exe) - # we can't handle it well enough - if ! cmp -s old/$file new/$file; then - echo "mono $file differs" - return 1 - fi + *.exe.mdb|*.dll.mdb) + # Just debug information, we can skip them + echo "$file skipped as debug file." return 0 ;; *.a) @@ -381,8 +378,9 @@ check_single_file() # .TH debhelper 7 "2010-02-27" "7.4.15" "Debhelper" # .TH DIRMNGR-CLIENT 1 2010-02-27 "Dirmngr 1.0.3" "GNU Privacy Guard" # .TH ccmake 1 "March 06, 2010" "ccmake 2.8.1-rc3" + # .TH QEMU-IMG 1 "2010-03-14" " " " " for f in old/$file new/$file; do - sed -i -e 's|^\.TH \(.*\) \(.\) \("\?20..-..-.."\?\|"[a-zA-Z]* [0-9][0-9], 20[0-9][0-9]"\) |.TH \1 \2 "2000-01-01" |' $f + sed -i -e 's|^\.TH \(.*\) \([0-9]\) \("20..-..-.."\|20..-..-..\|"[A-Z][a-z]* [0-9][0-9], 20[0-9][0-9]"\) |.TH \1 \2 "2000-01-01" |' $f done ;; *.elc) @@ -416,6 +414,21 @@ check_single_file() ftype=`/usr/bin/file old/$file | cut -d: -f2-` case $ftype in + *PE32\ executable*Mono\/\.Net\ assembly*) + echo "PE32 Mono/.Net assembly: $file" + if [ -x /usr/bin/monodis ] ; then + monodis old/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file1} + monodis new/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file2} + if ! cmp -s ${file1} ${file2}; then + echo "$file differs ($ftype)" + diff -u ${file1} ${file2} + return 1 + fi + else + echo "Cannot compare, no monodis installed" + return 1 + fi + ;; *executable*|*LSB\ shared\ object*) objdump -d --no-show-raw-insn old/$file | filter_disasm > $file1 if ! test -s $file1; then @@ -465,6 +478,15 @@ check_single_file() return 0 } +# We need /proc mounted for some tests, so check that it's mounted and +# complain if not. +PROC_MOUNTED=0 +if [ ! -d /proc/self/ ]; then + echo "/proc is not mounted" + mount -orw -n -tproc none /proc + PROC_MOUNTED=1 +fi + ret=0 for file in $files; do if ! check_single_file $file; then @@ -475,6 +497,11 @@ for file in $files; do fi done +if [ "$PROC_MOUNTED" -eq "1" ]; then + echo "Unmounting proc" + umount /proc +fi + rm $file1 $file2 $dfile rm -r $dir exit $ret diff --git a/same-build-result.sh b/same-build-result.sh index aab2e5d..8706d29 100644 --- a/same-build-result.sh +++ b/same-build-result.sh @@ -16,7 +16,6 @@ OLDDIR="$1" shift NEWDIRS="$*" - echo "$CMPSCRIPT" if [ ! -d "$OLDDIR" ]; then