mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 22:26:40 -05:00
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:
parent
12c75628b4
commit
1f4319886a
4 changed files with 32 additions and 3 deletions
|
@ -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 \
|
||||||
|
|
|
@ -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)
|
||||||
|
|
19
gnu/packages/patches/python-magic-python-bytecode.patch
Normal file
19
gnu/packages/patches/python-magic-python-bytecode.patch
Normal 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',
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue