summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorRobert Schütz <dev@schuetz-co.de>2021-02-28 11:32:30 +0100
committerRobert Schütz <dev@schuetz-co.de>2021-03-06 16:32:03 +0100
commit6c3b5c1942fe539226fad6bea4af9f1b2c275e45 (patch)
tree4f18eff42a79f555ee907124a688121f5b7daa2a /pkgs
parentd80850806d60e62c2a8189bc62e373a3facae442 (diff)
downloadnixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar.gz
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar.bz2
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar.lz
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar.xz
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.tar.zst
nixpkgs-6c3b5c1942fe539226fad6bea4af9f1b2c275e45.zip
pythonPackages.python_magic: fix build and run tests
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix36
-rw-r--r--pkgs/development/python-modules/python-magic/libmagic-path.patch17
2 files changed, 41 insertions, 12 deletions
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index 5fb576e5f02..6737f126073 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -1,24 +1,36 @@
-{ buildPythonPackage, lib, fetchPypi, file, stdenv }:
+{ lib
+, stdenv
+, python
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+, file
+, glibcLocales
+}:
 
 buildPythonPackage rec {
   pname = "python-magic";
   version = "0.4.22";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ca884349f2c92ce830e3f498c5b7c7051fe2942c3ee4332f65213b8ebff15a62";
+  src = fetchFromGitHub {
+    owner = "ahupp";
+    repo = "python-magic";
+    rev = version;
+    sha256 = "0zbdjr5shijs0jayz7gycpx0kn6v2bh83dpanyajk2vmy47jvbd6";
   };
 
-  postPatch = ''
-    substituteInPlace magic.py --replace "ctypes.util.find_library('magic')" "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
-  '';
+  patches = [
+    (substituteAll {
+      src = ./libmagic-path.patch;
+      libmagic = "${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
 
-  doCheck = false;
+  checkInputs = [ glibcLocales ];
 
-  # TODO: tests are failing
-  #checkPhase = ''
-  #  ${python}/bin/${python.executable} ./test.py
-  #'';
+  checkPhase = ''
+    LC_ALL="en_US.UTF-8" ${python.interpreter} test/test.py
+  '';
 
   meta = {
     description = "A python interface to the libmagic file type identification library";
diff --git a/pkgs/development/python-modules/python-magic/libmagic-path.patch b/pkgs/development/python-modules/python-magic/libmagic-path.patch
new file mode 100644
index 00000000000..5a1dbec7d51
--- /dev/null
+++ b/pkgs/development/python-modules/python-magic/libmagic-path.patch
@@ -0,0 +1,17 @@
+diff --git a/magic/loader.py b/magic/loader.py
+index 6b2bfcb..69778af 100644
+--- a/magic/loader.py
++++ b/magic/loader.py
+@@ -5,11 +5,7 @@ import glob
+ def load_lib():
+   libmagic = None
+   # Let's try to find magic or magic1
+-  dll = ctypes.util.find_library('magic') \
+-        or ctypes.util.find_library('magic1') \
+-        or ctypes.util.find_library('cygmagic-1') \
+-        or ctypes.util.find_library('libmagic-1') \
+-        or ctypes.util.find_library('msys-magic-1')  # for MSYS2
++  dll = '@libmagic@'
+ 
+   # necessary because find_library returns None if it doesn't find the library
+   if dll: