summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Schütz <rschuetz17@gmail.com>2019-03-19 10:20:05 +0100
committerGitHub <noreply@github.com>2019-03-19 10:20:05 +0100
commit180c68d88a6f9eb5b396be83b66b4cbf603cb7de (patch)
tree89bd50de4083b2a10c06d5319854ef3707295642
parentb517554ea648a6411f48ba3e602aa1fa84b87aeb (diff)
downloadnixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar.gz
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar.bz2
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar.lz
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar.xz
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.tar.zst
nixpkgs-180c68d88a6f9eb5b396be83b66b4cbf603cb7de.zip
python.pkgs.cairocffi: make withXcffib work again (#57855)
-rw-r--r--pkgs/development/python-modules/cairocffi/0_9.nix26
-rw-r--r--pkgs/development/python-modules/cairocffi/default.nix71
-rw-r--r--pkgs/development/python-modules/cairocffi/generic.nix51
-rw-r--r--pkgs/top-level/python-packages.nix7
4 files changed, 91 insertions, 64 deletions
diff --git a/pkgs/development/python-modules/cairocffi/0_9.nix b/pkgs/development/python-modules/cairocffi/0_9.nix
new file mode 100644
index 00000000000..19a469dad26
--- /dev/null
+++ b/pkgs/development/python-modules/cairocffi/0_9.nix
@@ -0,0 +1,26 @@
+# FIXME: make gdk_pixbuf dependency optional
+{ stdenv
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, lib
+, substituteAll
+, makeFontsConf
+, freefont_ttf
+, pytest
+, pytestrunner
+, glibcLocales
+, cairo
+, cffi
+, withXcffib ? false, xcffib
+, python
+, glib
+, gdk_pixbuf
+}@args:
+
+import ./generic.nix ({
+  version = "0.9.0";
+  sha256 = "15386c3a9e08823d6826c4491eaccc7b7254b1dc587a3b9ce60c350c3f990337";
+  dlopen_patch = ./dlopen-paths-0.9.patch;
+  inherit withXcffib;
+} // args)
diff --git a/pkgs/development/python-modules/cairocffi/default.nix b/pkgs/development/python-modules/cairocffi/default.nix
index 863e181f991..528c845c07e 100644
--- a/pkgs/development/python-modules/cairocffi/default.nix
+++ b/pkgs/development/python-modules/cairocffi/default.nix
@@ -15,64 +15,13 @@
 , withXcffib ? false, xcffib
 , python
 , glib
-, gdk_pixbuf }:
-
-let
-  generic = { version, sha256, dlopen_patch, disabled ? false }:
-    buildPythonPackage rec {
-      pname = "cairocffi";
-      inherit version disabled;
-
-      src = fetchPypi {
-        inherit pname version sha256;
-      };
-
-      LC_ALL = "en_US.UTF-8";
-
-      # checkPhase require at least one 'normal' font and one 'monospace',
-      # otherwise glyph tests fails
-      FONTCONFIG_FILE = makeFontsConf {
-        fontDirectories = [ freefont_ttf ];
-      };
-
-      checkInputs = [ pytest pytestrunner glibcLocales ];
-      propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
-
-      checkPhase = ''
-        py.test $out/${python.sitePackages}
-      '';
-
-      patches = [
-        # OSError: dlopen() failed to load a library: gdk_pixbuf-2.0 / gdk_pixbuf-2.0-0
-        (substituteAll {
-          src = dlopen_patch;
-          ext = stdenv.hostPlatform.extensions.sharedLibrary;
-          cairo = cairo.out;
-          glib = glib.out;
-          gdk_pixbuf = gdk_pixbuf.out;
-        })
-        ./fix_test_scaled_font.patch
-      ];
-
-      meta = with lib; {
-        homepage = https://github.com/SimonSapin/cairocffi;
-        license = licenses.bsd3;
-        maintainers = with maintainers; [];
-        description = "cffi-based cairo bindings for Python";
-      };
-    };
-in
-  {
-    cairocffi_1_0 = generic {
-      version = "1.0.2";
-      sha256 = "01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff";
-      dlopen_patch = ./dlopen-paths.patch;
-      disabled = pythonOlder "3.5";
-    };
-
-    cairocffi_0_9 = generic {
-      version = "0.9.0";
-      sha256 = "15386c3a9e08823d6826c4491eaccc7b7254b1dc587a3b9ce60c350c3f990337";
-      dlopen_patch = ./dlopen-paths-0.9.patch;
-    };
-  }
+, gdk_pixbuf
+}@args:
+
+import ./generic.nix ({
+  version = "1.0.2";
+  sha256 = "01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff";
+  dlopen_patch = ./dlopen-paths.patch;
+  disabled = pythonOlder "3.5";
+  inherit withXcffib;
+} // args)
diff --git a/pkgs/development/python-modules/cairocffi/generic.nix b/pkgs/development/python-modules/cairocffi/generic.nix
new file mode 100644
index 00000000000..4fa5cc466c3
--- /dev/null
+++ b/pkgs/development/python-modules/cairocffi/generic.nix
@@ -0,0 +1,51 @@
+{ version
+, sha256
+, dlopen_patch
+, disabled ? false
+, ...
+}@args:
+
+with args;
+
+buildPythonPackage rec {
+  pname = "cairocffi";
+  inherit version disabled;
+
+  src = fetchPypi {
+    inherit pname version sha256;
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  # checkPhase require at least one 'normal' font and one 'monospace',
+  # otherwise glyph tests fails
+  FONTCONFIG_FILE = makeFontsConf {
+    fontDirectories = [ freefont_ttf ];
+  };
+
+  checkInputs = [ pytest pytestrunner glibcLocales ];
+  propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
+
+  checkPhase = ''
+    py.test $out/${python.sitePackages}
+  '';
+
+  patches = [
+    # OSError: dlopen() failed to load a library: gdk_pixbuf-2.0 / gdk_pixbuf-2.0-0
+    (substituteAll {
+      src = dlopen_patch;
+      ext = stdenv.hostPlatform.extensions.sharedLibrary;
+      cairo = cairo.out;
+      glib = glib.out;
+      gdk_pixbuf = gdk_pixbuf.out;
+    })
+    ./fix_test_scaled_font.patch
+  ];
+
+  meta = with lib; {
+    homepage = https://github.com/SimonSapin/cairocffi;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [];
+    description = "cffi-based cairo bindings for Python";
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 90c97e1548e..5544dca851d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1323,9 +1323,10 @@ in {
   canmatrix = callPackage ../development/python-modules/canmatrix {};
 
 
-  cairocffi = let
-    inherit (callPackage ../development/python-modules/cairocffi {}) cairocffi_1_0 cairocffi_0_9;
-  in if isPy3k then cairocffi_1_0 else cairocffi_0_9;
+  cairocffi = if isPy3k then
+    callPackage ../development/python-modules/cairocffi {}
+  else
+    callPackage ../development/python-modules/cairocffi/0_9.nix {};
 
   cairosvg = if isPy3k then
     callPackage ../development/python-modules/cairosvg {}