Skip to content

Commit

Permalink
app-arch/dpkg: Fix the gzip --rsyncable check. Disable one pedantic t…
Browse files Browse the repository at this point in the history
…est.

Package-Manager: portage-2.3.2
  • Loading branch information
Jeroen Roovers committed Nov 6, 2016
1 parent bbc8416 commit 7edf995
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app-arch/dpkg/dpkg-1.18.12.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ DOCS=(
PATCHES=(
"${FILESDIR}"/${PN}-1.18.9-strerror.patch
"${FILESDIR}"/${PN}-1.18.12-flags.patch
"${FILESDIR}"/${PN}-1.18.12-rsyncable.patch
"${FILESDIR}"/${PN}-1.18.12-dpkg_buildpackage-test.patch
)

src_prepare() {
Expand Down
10 changes: 10 additions & 0 deletions app-arch/dpkg/files/dpkg-1.18.12-dpkg_buildpackage-test.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -238,7 +238,6 @@
t/Dpkg_Source_Package.t \
t/Dpkg_Dist_Files.t \
t/dpkg_source.t \
- t/dpkg_buildpackage.t \
t/merge_changelogs.t \
t/mk.t \
$(nil)
28 changes: 28 additions & 0 deletions app-arch/dpkg/files/dpkg-1.18.12-rsyncable.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
--- a/scripts/Dpkg/Compression.pm
+++ b/scripts/Dpkg/Compression.pm
@@ -81,20 +81,12 @@
};

#
-# XXX: The gzip package in Debian at some point acquired a Debian-specific
-# --rsyncable option via a vendor patch. Which is not present in most of the
-# major distributions, dpkg downstream systems, nor gzip upstream, who have
-# stated they will most probably not accept it because people should be using
-# pigz instead.
+# If gzip supports --rsyncable (version >=1.7 or the Debian patched variant),
+# we use it. Sadly a non-compliant gzip will not complain about the argument
+# when it does not understand it, so we can only print out the usage and infer
+# --rsyncable support from that.
#
-# This option should have never been accepted in dpkg, ever. But removing it
-# now would probably cause demands for tarring and feathering. In addition
-# we cannot use the Dpkg::Vendor logic because that would cause circular
-# module dependencies. The whole affair is pretty disgusting really.
-#
-# Check the perl Config to discern Debian and hopefully derivatives too.
-#
-if ($Config{cf_by} eq 'Debian Project') {
+if (system("gzip --help 2>&1 | grep -q -- --rsyncable") == 0) {
push @{$COMP->{gzip}->{comp_prog}}, '--rsyncable';
}

0 comments on commit 7edf995

Please sign in to comment.