This is an automated email from the git hooks/post-receive script. guillem pushed a commit to branch main in repository dpkg.
View the commit online: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=4429430741d8752ab8254ba87d85c743b488247a commit 4429430741d8752ab8254ba87d85c743b488247a Author: Guillem Jover <[email protected]> AuthorDate: Tue Sep 26 04:31:27 2023 +0200 test: Generate the .deb from scratch instead of adapting them The behavior for «ar rc» is not portable, and depending on the system implementation, it either replaces the file, or appends it at the end, or other variations. Instead always construct the .deb from its components, which seems to be more portable. --- src/at/deb-format.at | 28 +++++++++++++--------------- src/at/deb-split.at | 11 +++++------ 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/at/deb-format.at b/src/at/deb-format.at index 4b829bf58..b3a64ffc5 100644 --- a/src/at/deb-format.at +++ b/src/at/deb-format.at @@ -223,9 +223,8 @@ DPKG_GEN_PKG_DEB_FORMAT_TEMPL() AT_CHECK([ # Test debian-binary with 2.x versions -cp pkg-templ.deb pkg-version-2x.deb echo 2.999 >debian-binary -ar rc pkg-version-2x.deb debian-binary +ar qc pkg-version-2x.deb debian-binary control.tar data.tar ar t pkg-version-2x.deb ar x pkg-templ.deb debian-binary dpkg-deb -I pkg-version-2x.deb @@ -246,9 +245,8 @@ data.tar AT_CHECK([ # Test debian-binary with extra lines -cp pkg-templ.deb pkg-magic-extra.deb echo "extra line" >>debian-binary -ar rc pkg-magic-extra.deb debian-binary +ar qc pkg-magic-extra.deb debian-binary control.tar data.tar ar t pkg-magic-extra.deb ar x pkg-templ.deb debian-binary dpkg-deb -I pkg-magic-extra.deb @@ -407,7 +405,7 @@ data.tar AT_CHECK([ # Test data.tar.bad member dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none -ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad +ar qc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad ar t pkg-data-bad.deb dpkg-deb -c pkg-data-bad.deb ], [2], [debian-binary @@ -418,7 +416,7 @@ data.tar.bad AT_CHECK([ # Test control.tar member -ar rc pkg-control-none.deb debian-binary control.tar data.tar +ar qc pkg-control-none.deb debian-binary control.tar data.tar ar t pkg-control-none.deb dpkg-deb -I pkg-control-none.deb ], [], [debian-binary @@ -438,7 +436,7 @@ data.tar AT_CHECK([ # Test data.tar member -ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar +ar qc pkg-data-none.deb debian-binary control.tar.gz data.tar ar t pkg-data-none.deb dpkg-deb -c pkg-data-none.deb ], [], [debian-binary @@ -451,7 +449,7 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.gz member -ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz +ar qc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz ar t pkg-data-gz.deb dpkg-deb -c pkg-data-gz.deb ], [], [debian-binary @@ -463,7 +461,7 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ ]) # Create .deb with non-uniform data.tar/control.tar member compression -ar rc pkg-mixed-comp.deb debian-binary control.tar data.tar.gz +ar qc pkg-mixed-comp.deb debian-binary control.tar data.tar.gz DEB_MIXED_COMP_SIZE=$(DPKG_FILE_SIZE([pkg-mixed-comp.deb])) AT_CHECK_UNQUOTED([ @@ -525,7 +523,7 @@ xz -c data.tar >data.tar.xz AT_CHECK([ # Test control.tar.xz member -ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz +ar qc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz ar t pkg-control-xz.deb dpkg-deb -c pkg-control-xz.deb ], [], [debian-binary @@ -538,7 +536,7 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.xz member -ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz +ar qc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz ar t pkg-data-xz.deb dpkg-deb -c pkg-data-xz.deb ], [], [debian-binary @@ -576,7 +574,7 @@ zstd -c data.tar >data.tar.zst AT_CHECK([ # Test control.tar.zst member -ar rc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst +ar qc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst ar t pkg-control-zst.deb dpkg-deb -c pkg-control-zst.deb ], [], [debian-binary @@ -589,7 +587,7 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.zst member -ar rc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst +ar qc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst ar t pkg-data-zst.deb dpkg-deb -c pkg-data-zst.deb ], [], [debian-binary @@ -626,7 +624,7 @@ bzip2 -c data.tar >data.tar.bz2 AT_CHECK([ # Test data.tar.bz2 member -ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2 +ar qc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2 ar t pkg-data-bz2.deb dpkg-deb -c pkg-data-bz2.deb ], [], [debian-binary @@ -654,7 +652,7 @@ lzma -c data.tar >data.tar.lzma AT_CHECK([ # Test data.tar.lzma member -ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma +ar qc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma ar t pkg-data-lzma.deb dpkg-deb -c pkg-data-lzma.deb ], [], [debian-binary diff --git a/src/at/deb-split.at b/src/at/deb-split.at index 043b7efdc..539e20e45 100644 --- a/src/at/deb-split.at +++ b/src/at/deb-split.at @@ -26,6 +26,7 @@ dpkg-split -S 210 -s pkg-split.deb pkg-split-part for p in DPKG_SEQ([10]); do test -f pkg-split-part.${p}of10.deb done +ar x pkg-split-part.1of10.deb data.1 ], [], [Splitting package pkg-split into 10 parts: 1 2 3 4 5 6 7 8 9 10 done ]) @@ -40,11 +41,10 @@ DEB_SPLIT_PART_SIZE_VERSION=$((DEB_SPLIT_PART_SIZE + 2)) AT_CHECK_UNQUOTED([ # Test debian-split with 2.x version -cp pkg-split-part.1of10.deb pkg-split-part-version-2x.deb -ar x pkg-split-part-version-2x.deb debian-split +ar x pkg-split-part.1of10.deb debian-split $SED -e '1c2.999' debian-split >debian-split.new mv debian-split.new debian-split -ar rc pkg-split-part-version-2x.deb debian-split +ar qc pkg-split-part-version-2x.deb debian-split data.1 ar t pkg-split-part-version-2x.deb dpkg-split -I pkg-split-part-version-2x.deb ], [], [debian-split @@ -68,10 +68,9 @@ DEB_SPLIT_PART_SIZE_MAGIC_EXTRA=$((DEB_SPLIT_PART_SIZE + 10)) AT_CHECK_UNQUOTED([ # Test debian-split with extra lines -cp pkg-split-part.1of10.deb pkg-split-part-magic-extra.deb -ar x pkg-split-part-magic-extra.deb debian-split +ar x pkg-split-part.1of10.deb debian-split echo "extra line" >>debian-split -ar rc pkg-split-part-magic-extra.deb debian-split +ar qc pkg-split-part-magic-extra.deb debian-split data.1 ar t pkg-split-part-magic-extra.deb dpkg-split -I pkg-split-part-magic-extra.deb ], [], [debian-split -- Dpkg.Org's dpkg

