summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/python-magic
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-03-07 00:41:13 +0000
committerGitHub <noreply@github.com>2021-03-07 00:41:13 +0000
commitf9d40952954abaac0c57fef2dee574567d4b3a94 (patch)
treed0635cbc6d1a6df728edc16b9b7b907e72777ced /pkgs/development/python-modules/python-magic
parent6329ac8111247d6bbe64d050c1bfaa27b1d85080 (diff)
parent5ae3107a2176cb91a20851828e0b7f5d81294d1a (diff)
Merge staging-next into staging
Diffstat (limited to 'pkgs/development/python-modules/python-magic')
-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 5fb576e5f02f..6737f1260733 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 000000000000..5a1dbec7d51b
--- /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: