Unverified Commit 2afef949 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #198987 from SuperSandro2000/python310Packages.cairocffi

parents 0cc3d43a 75632978
Loading
Loading
Loading
Loading
+28 −25
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
, substituteAll
, makeFontsConf
, freefont_ttf
, pikepdf
, pytest
, glibcLocales
, cairo
@@ -21,15 +22,36 @@

buildPythonPackage rec {
  pname = "cairocffi";
  version = "1.3.0";
  version = "1.4.0";

  disabled = pythonOlder "3.5";

  src = fetchPypi {
    inherit pname version;
    sha256 = "sha256-EIo6fLCeIDvdhQHZuq2R14bSBFYb1x6TZOizSJfEe5E=";
    sha256 = "sha256-UJM5syzNjXsAwiBMMnNs3njbU6MuahYtMSR40lYmzZo=";
  };

  patches = [
    # OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
    (substituteAll {
      src = ./dlopen-paths.patch;
      ext = stdenv.hostPlatform.extensions.sharedLibrary;
      cairo = cairo.out;
      glib = glib.out;
      gdk_pixbuf = gdk-pixbuf.out;
    })
    ./fix_test_scaled_font.patch
  ];

  postPatch = ''
    substituteInPlace setup.cfg \
      --replace "pytest-runner" "" \
      --replace "pytest-cov" "" \
      --replace "pytest-flake8" "" \
      --replace "pytest-isort" "" \
      --replace "--flake8 --isort" ""
  '';

  LC_ALL = "en_US.UTF-8";

  # checkPhase require at least one 'normal' font and one 'monospace',
@@ -38,37 +60,18 @@ buildPythonPackage rec {
    fontDirectories = [ freefont_ttf ];
  };

  propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
  propagatedNativeBuildInputs = [ cffi ];

  # pytestCheckHook does not work
  checkInputs = [ numpy pytest glibcLocales ];
  propagatedBuildInputs = [ cairo cffi ]
    ++ lib.optional withXcffib xcffib;

  postPatch = ''
    substituteInPlace setup.cfg \
      --replace "pytest-runner" "" \
      --replace "pytest-cov" "" \
      --replace "pytest-flake8" "" \
      --replace "pytest-isort" "" \
      --replace "--flake8 --isort" ""
  '';
  # pytestCheckHook does not work
  checkInputs = [ numpy pikepdf pytest glibcLocales ];

  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-paths.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;