about summary refs log tree commit diff
path: root/pkgs/development/python-modules/freetype-py
diff options
context:
space:
mode:
authorDaniel Goertzen <daniel.goertzen@gmail.com>2020-02-04 13:54:03 -0600
committerDaniel Goertzen <daniel.goertzen@gmail.com>2020-05-07 07:58:38 -0500
commit5142e214923e35cd8f2b417b38370f6eca849ced (patch)
tree6ad227885d1aa590964f6cc5e4e6f6ef3139b945 /pkgs/development/python-modules/freetype-py
parent2c58b1d464d8dffc1e5b21041a62eea31ecbd118 (diff)
freetype-py: init at 2.1.0.post1
Diffstat (limited to 'pkgs/development/python-modules/freetype-py')
-rw-r--r--pkgs/development/python-modules/freetype-py/default.nix29
-rw-r--r--pkgs/development/python-modules/freetype-py/library-paths.patch37
2 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/freetype-py/default.nix b/pkgs/development/python-modules/freetype-py/default.nix
new file mode 100644
index 0000000000000..52b9b2ea1fa06
--- /dev/null
+++ b/pkgs/development/python-modules/freetype-py/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools_scm, freetype }:
+
+buildPythonPackage rec {
+  pname = "freetype-py";
+  version = "2.1.0.post1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k62fx53qrv9nb73mpqi2r11wzbx41qfv5qppvh6rylywnrknf3n";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./library-paths.patch;
+      freetype = "${freetype.out}/lib/libfreetype${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ freetype ];
+
+  meta = with lib; {
+    homepage = https://github.com/rougier/freetype-py;
+    description = "FreeType (high-level Python API)";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/freetype-py/library-paths.patch b/pkgs/development/python-modules/freetype-py/library-paths.patch
new file mode 100644
index 0000000000000..a30c7e7355fa8
--- /dev/null
+++ b/pkgs/development/python-modules/freetype-py/library-paths.patch
@@ -0,0 +1,37 @@
+diff --git a/freetype/raw.py b/freetype/raw.py
+index ff3bea3..78c68ab 100644
+--- a/freetype/raw.py
++++ b/freetype/raw.py
+@@ -19,31 +19,7 @@ from freetype.ft_enums import *
+ from freetype.ft_errors import *
+ from freetype.ft_structs import *
+ 
+-# First, look for a bundled FreeType shared object on the top-level of the
+-# installed freetype-py module.
+-system = platform.system()
+-if system == 'Windows':
+-    library_name = 'libfreetype.dll'
+-elif system == 'Darwin':
+-    library_name = 'libfreetype.dylib'
+-else:
+-    library_name = 'libfreetype.so'
+-
+-filename = os.path.join(os.path.dirname(freetype.__file__), library_name)
+-
+-# If no bundled shared object is found, look for a system-wide installed one.
+-if not os.path.exists(filename):
+-    # on windows all ctypes does when checking for the library
+-    # is to append .dll to the end and look for an exact match
+-    # within any entry in PATH.
+-    filename = ctypes.util.find_library('freetype')
+-
+-    if filename is None:
+-        if platform.system() == 'Windows':
+-            # Check current working directory for dll as ctypes fails to do so
+-            filename = os.path.join(os.path.realpath('.'), "freetype.dll")
+-        else:
+-            filename = library_name
++filename = "@freetype@"
+ 
+ try:
+     _lib = ctypes.CDLL(filename)