- 2015.04.28
- Filter InitrdID in /linuxrc.config - Hexdump old and new file in parallel - Sort cpio file list with files to compare - Extract old and new files in parallel - Ignore block device nodes - Ignore character device nodes - Always clean tmpdir on exit in pkg-diff.sh - Handle squashfs files OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=183
This commit is contained in:
parent
eb960fa915
commit
31153d04ed
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 28 11:52:12 UTC 2015 - olaf@aepfle.de
|
||||||
|
|
||||||
|
- 2015.04.28
|
||||||
|
- Filter InitrdID in /linuxrc.config
|
||||||
|
- Hexdump old and new file in parallel
|
||||||
|
- Sort cpio file list with files to compare
|
||||||
|
- Extract old and new files in parallel
|
||||||
|
- Ignore block device nodes
|
||||||
|
- Ignore character device nodes
|
||||||
|
- Always clean tmpdir on exit in pkg-diff.sh
|
||||||
|
- Handle squashfs files
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Apr 13 08:55:39 UTC 2015 - olaf@aepfle.de
|
Mon Apr 13 08:55:39 UTC 2015 - olaf@aepfle.de
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Summary: Build Result Compare Script
|
|||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
Group: Development/Tools/Building
|
Group: Development/Tools/Building
|
||||||
Url: https://github.com/openSUSE/build-compare
|
Url: https://github.com/openSUSE/build-compare
|
||||||
Version: 2015.04.13
|
Version: 2015.04.28
|
||||||
Release: 0
|
Release: 0
|
||||||
Source1: COPYING
|
Source1: COPYING
|
||||||
Source2: same-build-result.sh
|
Source2: same-build-result.sh
|
||||||
|
71
pkg-diff.sh
71
pkg-diff.sh
@ -20,6 +20,21 @@ if test "$#" != 2; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Always clean up on exit
|
||||||
|
local_tmpdir=`mktemp -d`
|
||||||
|
if test -z "${local_tmpdir}"
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
function _exit()
|
||||||
|
{
|
||||||
|
chmod -R u+w "${local_tmpdir}"
|
||||||
|
rm -rf "${local_tmpdir}"
|
||||||
|
}
|
||||||
|
trap _exit EXIT
|
||||||
|
# Let further mktemp refer to private tmpdir
|
||||||
|
export TMPDIR=$local_tmpdir
|
||||||
|
|
||||||
self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0))
|
self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0))
|
||||||
|
|
||||||
source $FUNCTIONS
|
source $FUNCTIONS
|
||||||
@ -168,8 +183,9 @@ diff_two_files()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$file differs ($ftype)"
|
echo "$file differs ($ftype)"
|
||||||
hexdump -C old/$file > $file1
|
hexdump -C old/$file > $file1 &
|
||||||
hexdump -C new/$file > $file2
|
hexdump -C new/$file > $file2 &
|
||||||
|
wait
|
||||||
diff -u $file1 $file2 | head -n 200
|
diff -u $file1 $file2 | head -n 200
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@ -246,20 +262,23 @@ check_compressed_file()
|
|||||||
bz2)
|
bz2)
|
||||||
mv old/$file{,.bz2}
|
mv old/$file{,.bz2}
|
||||||
mv new/$file{,.bz2}
|
mv new/$file{,.bz2}
|
||||||
bzip2 -d old/$file.bz2
|
bzip2 -d old/$file.bz2 &
|
||||||
bzip2 -d new/$file.bz2
|
bzip2 -d new/$file.bz2 &
|
||||||
|
wait
|
||||||
;;
|
;;
|
||||||
gzip)
|
gzip)
|
||||||
mv old/$file{,.gz}
|
mv old/$file{,.gz}
|
||||||
mv new/$file{,.gz}
|
mv new/$file{,.gz}
|
||||||
gzip -d old/$file.gz
|
gzip -d old/$file.gz &
|
||||||
gzip -d new/$file.gz
|
gzip -d new/$file.gz &
|
||||||
|
wait
|
||||||
;;
|
;;
|
||||||
xz)
|
xz)
|
||||||
mv old/$file{,.xz}
|
mv old/$file{,.xz}
|
||||||
mv new/$file{,.xz}
|
mv new/$file{,.xz}
|
||||||
xz -d old/$file.xz
|
xz -d old/$file.xz &
|
||||||
xz -d new/$file.xz
|
xz -d new/$file.xz &
|
||||||
|
wait
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
|
ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
|
||||||
@ -324,7 +343,7 @@ check_single_file()
|
|||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
*.cpio)
|
*.cpio)
|
||||||
flist=`cpio --quiet --list --force-local < "new/$file"`
|
flist=`cpio --quiet --list --force-local < "new/$file" | sort`
|
||||||
pwd=$PWD
|
pwd=$PWD
|
||||||
fdir=$file.extract.$PPID.$$
|
fdir=$file.extract.$PPID.$$
|
||||||
mkdir old/$fdir new/$fdir
|
mkdir old/$fdir new/$fdir
|
||||||
@ -345,6 +364,23 @@ check_single_file()
|
|||||||
rm -rf old/$fdir new/$fdir
|
rm -rf old/$fdir new/$fdir
|
||||||
return $ret
|
return $ret
|
||||||
;;
|
;;
|
||||||
|
*.squashfs)
|
||||||
|
flist=`unsquashfs -no-progress -ls -dest '' "new/$file" | grep -Ev '^(Parallel unsquashfs:|[0-9]+ inodes )' | sort`
|
||||||
|
fdir=$file.extract.$PPID.$$
|
||||||
|
unsquashfs -no-progress -dest old/$fdir "old/$file"
|
||||||
|
unsquashfs -no-progress -dest new/$fdir "new/$file"
|
||||||
|
local ret=0
|
||||||
|
for f in $flist; do
|
||||||
|
if ! check_single_file $fdir/$f; then
|
||||||
|
ret=1
|
||||||
|
if test -z "$check_all"; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf old/$fdir new/$fdir
|
||||||
|
return $ret
|
||||||
|
;;
|
||||||
*.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2)
|
*.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2)
|
||||||
flist=`tar tf new/$file`
|
flist=`tar tf new/$file`
|
||||||
pwd=$PWD
|
pwd=$PWD
|
||||||
@ -626,6 +662,11 @@ check_single_file()
|
|||||||
}' "$f"
|
}' "$f"
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
*/linuxrc.config)
|
||||||
|
echo "${file}"
|
||||||
|
sed -i '/^InitrdID:/s@^.*@InitrdID: something@' "old/$file"
|
||||||
|
sed -i '/^InitrdID:/s@^.*@InitrdID: something@' "new/$file"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
|
ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
|
||||||
@ -722,6 +763,14 @@ check_single_file()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
Squashfs\ filesystem,*)
|
||||||
|
echo "$file ($ftype)"
|
||||||
|
mv old/$file{,.squashfs}
|
||||||
|
mv new/$file{,.squashfs}
|
||||||
|
if ! check_single_file ${file}.squashfs; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
symbolic\ link\ to\ *)
|
symbolic\ link\ to\ *)
|
||||||
readlink "old/$file" > $file1
|
readlink "old/$file" > $file1
|
||||||
readlink "new/$file" > $file2
|
readlink "new/$file" > $file2
|
||||||
@ -730,6 +779,10 @@ check_single_file()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
block\ special\ *)
|
||||||
|
;;
|
||||||
|
character\ special\ *)
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if ! diff_two_files; then
|
if ! diff_two_files; then
|
||||||
return 1
|
return 1
|
||||||
|
Loading…
Reference in New Issue
Block a user