forked from josch/mmdebstrap
coverage.sh: also compare permissions, ownership, symlink targets and mtimes
This commit is contained in:
parent
8cac785f65
commit
aa3d2875a8
1 changed files with 19 additions and 2 deletions
21
coverage.sh
21
coverage.sh
|
@ -248,14 +248,16 @@ done
|
||||||
if ! cmp /tmp/debian-$dist-debootstrap/etc/shadow /tmp/debian-$dist-mm/etc/shadow; then
|
if ! cmp /tmp/debian-$dist-debootstrap/etc/shadow /tmp/debian-$dist-mm/etc/shadow; then
|
||||||
echo patching /etc/shadow on $dist $variant >&2
|
echo patching /etc/shadow on $dist $variant >&2
|
||||||
awk -v FS=: -v OFS=: -v SDE=\$SOURCE_DATE_EPOCH '{ print \$1,\$2,int(SDE/60/60/24),\$4,\$5,\$6,\$7,\$8,\$9 }' < /tmp/debian-$dist-mm/etc/shadow > /tmp/debian-$dist-mm/etc/shadow.bak
|
awk -v FS=: -v OFS=: -v SDE=\$SOURCE_DATE_EPOCH '{ print \$1,\$2,int(SDE/60/60/24),\$4,\$5,\$6,\$7,\$8,\$9 }' < /tmp/debian-$dist-mm/etc/shadow > /tmp/debian-$dist-mm/etc/shadow.bak
|
||||||
mv /tmp/debian-$dist-mm/etc/shadow.bak /tmp/debian-$dist-mm/etc/shadow
|
cat /tmp/debian-$dist-mm/etc/shadow.bak > /tmp/debian-$dist-mm/etc/shadow
|
||||||
|
rm /tmp/debian-$dist-mm/etc/shadow.bak
|
||||||
else
|
else
|
||||||
echo no difference for /etc/shadow on $dist $variant >&2
|
echo no difference for /etc/shadow on $dist $variant >&2
|
||||||
fi
|
fi
|
||||||
if ! cmp /tmp/debian-$dist-debootstrap/etc/shadow- /tmp/debian-$dist-mm/etc/shadow-; then
|
if ! cmp /tmp/debian-$dist-debootstrap/etc/shadow- /tmp/debian-$dist-mm/etc/shadow-; then
|
||||||
echo patching /etc/shadow- on $dist $variant >&2
|
echo patching /etc/shadow- on $dist $variant >&2
|
||||||
awk -v FS=: -v OFS=: -v SDE=\$SOURCE_DATE_EPOCH '{ print \$1,\$2,int(SDE/60/60/24),\$4,\$5,\$6,\$7,\$8,\$9 }' < /tmp/debian-$dist-mm/etc/shadow- > /tmp/debian-$dist-mm/etc/shadow-.bak
|
awk -v FS=: -v OFS=: -v SDE=\$SOURCE_DATE_EPOCH '{ print \$1,\$2,int(SDE/60/60/24),\$4,\$5,\$6,\$7,\$8,\$9 }' < /tmp/debian-$dist-mm/etc/shadow- > /tmp/debian-$dist-mm/etc/shadow-.bak
|
||||||
mv /tmp/debian-$dist-mm/etc/shadow-.bak /tmp/debian-$dist-mm/etc/shadow-
|
cat /tmp/debian-$dist-mm/etc/shadow-.bak > /tmp/debian-$dist-mm/etc/shadow-
|
||||||
|
rm /tmp/debian-$dist-mm/etc/shadow-.bak
|
||||||
else
|
else
|
||||||
echo no difference for /etc/shadow- on $dist $variant >&2
|
echo no difference for /etc/shadow- on $dist $variant >&2
|
||||||
fi
|
fi
|
||||||
|
@ -263,6 +265,21 @@ fi
|
||||||
# check if the file content differs
|
# check if the file content differs
|
||||||
diff --no-dereference --recursive /tmp/debian-$dist-debootstrap /tmp/debian-$dist-mm
|
diff --no-dereference --recursive /tmp/debian-$dist-debootstrap /tmp/debian-$dist-mm
|
||||||
|
|
||||||
|
# check permissions, ownership, symlink targets, modification times using tar
|
||||||
|
# directory mtimes will differ, thus we equalize them first
|
||||||
|
find /tmp/debian-$dist-debootstrap /tmp/debian-$dist-mm -type d -print0 | xargs -0 touch --date="@$SOURCE_DATE_EPOCH"
|
||||||
|
# debootstrap never ran apt -- fixing permissions
|
||||||
|
for d in ./var/lib/apt/lists/partial ./var/cache/apt/archives/partial; do
|
||||||
|
chroot /tmp/debian-$dist-debootstrap chmod 0700 \$d
|
||||||
|
chroot /tmp/debian-$dist-debootstrap chown _apt:root \$d
|
||||||
|
done
|
||||||
|
tar -C /tmp/debian-$dist-debootstrap --numeric-owner --sort=name --clamp-mtime --mtime=$(date --utc --date=@$SOURCE_DATE_EPOCH --iso-8601=seconds) -cf /tmp/root1.tar .
|
||||||
|
tar -C /tmp/debian-$dist-mm --numeric-owner --sort=name --clamp-mtime --mtime=$(date --utc --date=@$SOURCE_DATE_EPOCH --iso-8601=seconds) -cf /tmp/root2.tar .
|
||||||
|
tar --full-time --verbose -tf /tmp/root1.tar > /tmp/root1.tar.list
|
||||||
|
tar --full-time --verbose -tf /tmp/root2.tar > /tmp/root2.tar.list
|
||||||
|
diff -u /tmp/root1.tar.list /tmp/root2.tar.list
|
||||||
|
rm /tmp/root1.tar /tmp/root2.tar /tmp/root1.tar.list /tmp/root2.tar.list
|
||||||
|
|
||||||
# check if file properties (permissions, ownership, symlink names, modification time) differ
|
# check if file properties (permissions, ownership, symlink names, modification time) differ
|
||||||
#
|
#
|
||||||
# we cannot use this (yet) because it cannot copy with paths that have [ or @ in them
|
# we cannot use this (yet) because it cannot copy with paths that have [ or @ in them
|
||||||
|
|
Loading…
Reference in a new issue