forked from Lainports/freebsd-ports
/dev/stdin is a non-portable non-POSIX extension having different semantics on different operating systems. zininfo(1) exits with 9 when /dev/stdin is supplied on FreeBSD. In fact, unzip(1) explicitly documents that it does not support reading from stdin. [1] https://lists.reproducible-builds.org/pipermail/diffoscope/2020-March/002632.html PR: 244750 Submitted by: Michael Osipov <michael.osipov siemens com> MFH: 2020Q1
28 lines
994 B
Python
28 lines
994 B
Python
# Non-portable regression caused by 25fee28c/#879011
|
|
# https://lists.reproducible-builds.org/pipermail/diffoscope/2020-March/002632.html
|
|
# TODO: Upstream
|
|
|
|
--- diffoscope/comparators/zip.py.orig 2020-03-12 13:23:59 UTC
|
|
+++ diffoscope/comparators/zip.py
|
|
@@ -38,10 +38,7 @@ from .utils.command import Command
|
|
class Zipinfo(Command):
|
|
@tool_required('zipinfo')
|
|
def cmdline(self):
|
|
- # zipinfo (without -v) puts warning messages (some of which contain
|
|
- # $path) into stdin when stderr is not a tty, see #879011 for details.
|
|
- # to work around it, we run it on /dev/stdin instead, seems to work ok.
|
|
- return ['zipinfo', '/dev/stdin']
|
|
+ return ['zipinfo', self.path]
|
|
|
|
@property
|
|
def returncode(self):
|
|
@@ -54,9 +51,6 @@ class Zipinfo(Command):
|
|
returncode = 0
|
|
|
|
return returncode
|
|
-
|
|
- def stdin(self):
|
|
- return open(self.path, 'rb')
|
|
|
|
def filter(self, line):
|
|
# we don't care about the archive file path
|