~ruther/guix-local

1f4319886a9523ee46033f1d28b15f564bab4312 — Marius Bakke 4 years ago 12c7562
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.
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1673,6 1673,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/python-pyflakes-test-location.patch	\
  %D%/packages/patches/python-flint-includes.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-memcached-syntax-warnings.patch	\
  %D%/packages/patches/python-mox3-python3.6-compat.patch	\

M gnu/packages/diffoscope.scm => gnu/packages/diffoscope.scm +6 -0
@@ 34,6 34,7 @@
  #:use-module (gnu packages compression)
  #:use-module (gnu packages cpio)
  #:use-module (gnu packages dbm)
  #:use-module (gnu packages file)      ;for 'file-next'
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages ghostscript)
  #:use-module (gnu packages gnome)


@@ 184,6 185,11 @@
                     ("dtc" ,dtc)
                     ("e2fsprogs" ,e2fsprogs)
                     ("ffmpeg" ,ffmpeg)

                     ;; XXX: Must be the same version as python-magic uses;
                     ;; remove when 'file' is updated.
                     ("file" ,file-next)

                     ("fpc" ,fpc)
                     ("gettext" ,gettext-minimal)
                     ("ghostscript" ,ghostscript)

A gnu/packages/patches/python-magic-python-bytecode.patch => gnu/packages/patches/python-magic-python-bytecode.patch +19 -0
@@ 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',

M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +6 -3
@@ 14614,6 14614,7 @@ syntax highlighting, markdown and more to the terminal.")
       (method git-fetch)
       (uri (git-reference (url home-page) (commit version)))
       (file-name (git-file-name name version))
       (patches (search-patches "python-magic-python-bytecode.patch"))
       (sha256
        (base32
         "17jalhjbfd600lzfz296m0nvgp6c7vx1mgz82jbzn8hgdzknf4w0"))))


@@ 14628,10 14629,10 @@ syntax highlighting, markdown and more to the terminal.")
                  ;; python-magic to fail.
                  (add-before 'build 'hard-code-path-to-libmagic
                    (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"
                          (("find_library\\('magic'\\)")
                           (string-append "'" file "/lib/libmagic.so'"))))))
                           (string-append "'" magic "'"))))))
                  (replace 'check
                    (lambda* (#:key tests? #:allow-other-keys)
                      ;; The test suite mandates this variable.


@@ 14645,7 14646,9 @@ syntax highlighting, markdown and more to the terminal.")
     (list which))
    (inputs
     ;; 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")
    (description
     "This module uses ctypes to access the libmagic file type