gnu: python-magic: Work around crash on .crx files.

* gnu/packages/patches/python-magic-python-bytecode.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/python-xyz.scm (python-magic)[source](patches): Add it.
[inputs]: Add FILE-NEXT.
[arguments]: While at it, remove input labels.
* gnu/packages/diffoscope.scm (diffoscope)[native-inputs]: Add FILE-NEXT.
This commit is contained in:
Marius Bakke 2021-12-16 21:10:34 +01:00
parent 12c75628b4
commit 1f4319886a
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
4 changed files with 32 additions and 3 deletions

View file

@ -1673,6 +1673,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-pyflakes-test-location.patch \ %D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-magic-python-bytecode.patch \
%D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch \ %D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \ %D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \

View file

@ -34,6 +34,7 @@ (define-module (gnu packages diffoscope)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpio) #:use-module (gnu packages cpio)
#:use-module (gnu packages dbm) #:use-module (gnu packages dbm)
#:use-module (gnu packages file) ;for 'file-next'
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
@ -184,6 +185,11 @@ (define-public diffoscope
("dtc" ,dtc) ("dtc" ,dtc)
("e2fsprogs" ,e2fsprogs) ("e2fsprogs" ,e2fsprogs)
("ffmpeg" ,ffmpeg) ("ffmpeg" ,ffmpeg)
;; XXX: Must be the same version as python-magic uses;
;; remove when 'file' is updated.
("file" ,file-next)
("fpc" ,fpc) ("fpc" ,fpc)
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)
("ghostscript" ,ghostscript) ("ghostscript" ,ghostscript)

View file

@ -0,0 +1,19 @@
File 5.41 changed the MIME type of Python bytecode; adjust accordingly.
Taken from upstream:
https://github.com/ahupp/python-magic/commit/0ae7e7ceac0e80e03adc75c858bb378c0427331a
diff --git a/test/test.py b/test/test.py
index 0c4621c..e443b84 100755
--- a/test/test.py
+++ b/test/test.py
@@ -90,7 +90,7 @@ def test_mime_types(self):
try:
m = magic.Magic(mime=True)
self.assert_values(m, {
- 'magic._pyc_': ('application/octet-stream', 'text/x-bytecode.python'),
+ 'magic._pyc_': ('application/octet-stream', 'text/x-bytecode.python', 'application/x-bytecode.python'),
'test.pdf': 'application/pdf',
'test.gz': ('application/gzip', 'application/x-gzip'),
'test.snappy.parquet': 'application/octet-stream',

View file

@ -14614,6 +14614,7 @@ (define-public python-magic
(method git-fetch) (method git-fetch)
(uri (git-reference (url home-page) (commit version))) (uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches (search-patches "python-magic-python-bytecode.patch"))
(sha256 (sha256
(base32 (base32
"17jalhjbfd600lzfz296m0nvgp6c7vx1mgz82jbzn8hgdzknf4w0")))) "17jalhjbfd600lzfz296m0nvgp6c7vx1mgz82jbzn8hgdzknf4w0"))))
@ -14628,10 +14629,10 @@ (define-public python-magic
;; python-magic to fail. ;; python-magic to fail.
(add-before 'build 'hard-code-path-to-libmagic (add-before 'build 'hard-code-path-to-libmagic
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((file (assoc-ref inputs "file"))) (let ((magic (search-input-file inputs "/lib/libmagic.so")))
(substitute* "magic/loader.py" (substitute* "magic/loader.py"
(("find_library\\('magic'\\)") (("find_library\\('magic'\\)")
(string-append "'" file "/lib/libmagic.so'")))))) (string-append "'" magic "'"))))))
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
;; The test suite mandates this variable. ;; The test suite mandates this variable.
@ -14645,7 +14646,9 @@ (define-public python-magic
(list which)) (list which))
(inputs (inputs
;; python-magic needs to be able to find libmagic.so. ;; python-magic needs to be able to find libmagic.so.
(list file)) ;; Use a newer version because 5.39 returns bogus for some archives
;; (notably Chromium .crx extensions), which breaks e.g. 'diffoscope'.
(list file-next))
(synopsis "File type identification using libmagic") (synopsis "File type identification using libmagic")
(description (description
"This module uses ctypes to access the libmagic file type "This module uses ctypes to access the libmagic file type