[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/06: gnu: Add python-magic.
From: |
Ludovic Courtès |
Subject: |
03/06: gnu: Add python-magic. |
Date: |
Wed, 30 Mar 2016 21:39:53 +0000 |
civodul pushed a commit to branch master
in repository guix.
commit daeeea715473b5c698647f8fcc5729ac62ac8191
Author: Chris Marusich <address@hidden>
Date: Sun Mar 27 19:10:48 2016 -0700
gnu: Add python-magic.
* gnu/packages/python.scm (python-magic, python2-magic): New variables.
Signed-off-by: Ludovic Courtès <address@hidden>
---
gnu/packages/python.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 88aef9d..b1d6404 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -16,7 +16,7 @@
;;; Copyright © 2015, 2016 Erik Edrosa <address@hidden>
;;; Copyright © 2015, 2016 Efraim Flashner <address@hidden>
;;; Copyright © 2015 Kyle Meyer <address@hidden>
-;;; Copyright © 2015 Chris Marusich <address@hidden>
+;;; Copyright © 2015, 2016 Chris Marusich <address@hidden>
;;; Copyright © 2016 Danny Milosavljevic <address@hidden>
;;;
;;; This file is part of GNU Guix.
@@ -6056,7 +6056,10 @@ Python's @code{ctypes} foreign function interface
(FFI).")
#t))))))
(inputs `(("file" ,file)))
(self-native-input? #f)
- (synopsis "Python bindings to the libmagic file type guesser")))
+ (synopsis "Python bindings to the libmagic file type guesser. Note that
+this module and the python-magic module both provide a \"magic.py\" file;
+these two modules, which are different and were developed separately, both
+serve the same purpose: provide Python bindings for libmagic.")))
(define-public python2-file
(package-with-python2 python-file))
@@ -8490,3 +8493,64 @@ is made as zipfile like as possible.")
(define-public python2-rarfile
(package-with-python2 python-rarfile))
+
+(define-public python-magic
+ (package
+ (name "python-magic")
+ (version "0.4.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/ahupp/python-magic/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "17bgy92i7sb021f2s4mw1dcvpm6p1mi9jihridwy1pyn8mzvpjgk"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system python-build-system)
+ (arguments
+ ;; The tests are unreliable, so don't run them. The tests fail
+ ;; under Python3 because they were written for Python2 and
+ ;; contain import statements that do not work in Python3. One of
+ ;; the tests fails under Python2 because its assertions are
+ ;; overly stringent; it relies on comparing output strings which
+ ;; are brittle and can change depending on the version of
+ ;; libmagic being used and the system on which the test is
+ ;; running. In my case, under GuixSD 0.10.0, only one test
+ ;; failed, and it seems to have failed only because the version
+ ;; of libmagic that is packaged in Guix outputs a slightly
+ ;; different (but not wrong) string than the one that the test
+ ;; expected.
+ '(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ ;; Replace a specific method call with a hard-coded
+ ;; path to the necessary libmagic.so file in the
+ ;; store. If we don't do this, then the method call
+ ;; will fail to find the libmagic.so file, which in
+ ;; turn will cause any application using
+ ;; python-magic to fail.
+ (add-before 'build 'hard-code-path-to-libmagic
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((file (assoc-ref inputs "file")))
+ (substitute* "magic.py"
+ (("ctypes.util.find_library\\('magic'\\)")
+ (string-append "'" file "/lib/libmagic.so'")))
+ #t))))))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (inputs
+ ;; python-magic needs to be able to find libmagic.so.
+ `(("file" ,file)))
+ (home-page "https://github.com/ahupp/python-magic")
+ (synopsis "File type identification using libmagic")
+ (description
+ "This module uses ctypes to access the libmagic file type
+identification library. It makes use of the local magic database and
+supports both textual and MIME-type output. Note that this module and
+the python-file module both provide a \"magic.py\" file; these two
+modules, which are different and were developed separately, both serve
+the same purpose: to provide Python bindings for libmagic.")
+ (license license:expat)))
+
+(define-public python2-magic
+ (package-with-python2 python-magic))
- branch master updated (21d1811 -> 4827b36), Ludovic Courtès, 2016/03/30
- 02/06: ui: Add comment on the translation of "current"., Ludovic Courtès, 2016/03/30
- 05/06: doc: Clarify how to use the '#:python' parameter., Ludovic Courtès, 2016/03/30
- 01/06: doc: Fix URL of gnutls-guile one-page-per-node manual., Ludovic Courtès, 2016/03/30
- 04/06: gnu: Add python2-s3cmd., Ludovic Courtès, 2016/03/30
- 03/06: gnu: Add python-magic.,
Ludovic Courtès <=
- 06/06: doc: Small fixes for typos and missing words., Ludovic Courtès, 2016/03/30