summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/diffoscope.scm6
-rw-r--r--gnu/packages/patches/diffoscope-revert-to-magic-open.patch70
3 files changed, 75 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 8a31bfef64..d098c04308 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -926,6 +926,7 @@ dist_patch_DATA = \
%D%/packages/patches/desmume-gcc6-fixes.patch \
%D%/packages/patches/desmume-gcc7-fixes.patch \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
+ %D%/packages/patches/diffoscope-revert-to-magic-open.patch \
%D%/packages/patches/diffutils-gets-undeclared.patch \
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 7108c773ae..a31ac485c2 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -72,7 +72,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "165")
+ (version "166")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -81,7 +81,9 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0chi8drkxdwk7mlfgljij0nihnxp9pi5ybhqaq8rc4l1zl6srirb"))))
+ "0vc4a38ii6b10af4c7cxfkvj4lk4ihx1xs4q5lshnkyg74gmm21b"))
+ (patches (search-patches
+ "diffoscope-revert-to-magic-open.patch"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/patches/diffoscope-revert-to-magic-open.patch b/gnu/packages/patches/diffoscope-revert-to-magic-open.patch
new file mode 100644
index 0000000000..d52b26ead5
--- /dev/null
+++ b/gnu/packages/patches/diffoscope-revert-to-magic-open.patch
@@ -0,0 +1,70 @@
+From b658c3a6819ccb9a104b13e973132c66f0965965 Mon Sep 17 00:00:00 2001
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Thu, 11 Feb 2021 17:28:21 -0800
+Subject: [PATCH] Revert "Prefer to use magic.Magic over the magic.open
+ compatibility interface. (Closes: reproducible-builds/diffoscope#236)"
+
+This reverts commit c72c30f29ea3760eb4c785644dc7cd4c26833740.
+---
+ diffoscope/comparators/utils/file.py | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/diffoscope/comparators/utils/file.py b/diffoscope/comparators/utils/file.py
+index fb3b4316..32700f02 100644
+--- a/diffoscope/comparators/utils/file.py
++++ b/diffoscope/comparators/utils/file.py
+@@ -65,37 +65,37 @@ def _run_tests(fold, tests):
+
+
+ class File(metaclass=abc.ABCMeta):
+- if hasattr(magic, "Magic"): # use python-magic
++ if hasattr(magic, "open"): # use Magic-file-extensions from file
+
+ @classmethod
+ def guess_file_type(cls, path):
+ if not hasattr(cls, "_mimedb"):
+- cls._mimedb = magic.Magic()
+- return maybe_decode(cls._mimedb.from_file(path))
++ cls._mimedb = magic.open(magic.NONE)
++ cls._mimedb.load()
++ return cls._mimedb.file(
++ path.encode("utf-8", errors="surrogateescape")
++ )
+
+ @classmethod
+ def guess_encoding(cls, path):
+ if not hasattr(cls, "_mimedb_encoding"):
+- cls._mimedb_encoding = magic.Magic(mime_encoding=True)
+- return maybe_decode(cls._mimedb_encoding.from_file(path))
++ cls._mimedb_encoding = magic.open(magic.MAGIC_MIME_ENCODING)
++ cls._mimedb_encoding.load()
++ return cls._mimedb_encoding.file(path)
+
+- else: # use Magic-file-extensions from file
++ else: # use python-magic
+
+ @classmethod
+ def guess_file_type(cls, path):
+ if not hasattr(cls, "_mimedb"):
+- cls._mimedb = magic.open(magic.NONE)
+- cls._mimedb.load()
+- return cls._mimedb.file(
+- path.encode("utf-8", errors="surrogateescape")
+- )
++ cls._mimedb = magic.Magic()
++ return maybe_decode(cls._mimedb.from_file(path))
+
+ @classmethod
+ def guess_encoding(cls, path):
+ if not hasattr(cls, "_mimedb_encoding"):
+- cls._mimedb_encoding = magic.open(magic.MAGIC_MIME_ENCODING)
+- cls._mimedb_encoding.load()
+- return cls._mimedb_encoding.file(path)
++ cls._mimedb_encoding = magic.Magic(mime_encoding=True)
++ return maybe_decode(cls._mimedb_encoding.from_file(path))
+
+ def __init__(self, container=None):
+ self._comments = []
+--
+2.30.0
+