diff options
author | Katharina Fey <kookie@spacekookie.de> | 2019-10-05 12:43:18 +0000 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2019-10-05 12:44:52 +0000 |
commit | cf85056ba64caf3267d43255ef4a1243e9c8ee3b (patch) | |
tree | 3051519e9c8275b870aac43f80af875715c9d124 /nixpkgs/pkgs/development/python-modules/weasyprint | |
parent | 1148b1d122bc03e9a3665856c9b7bb96bd4e3994 (diff) | |
parent | 2436c27541b2f52deea3a4c1691216a02152e729 (diff) |
Add 'nixpkgs/' from commit '2436c27541b2f52deea3a4c1691216a02152e729'
git-subtree-dir: nixpkgs
git-subtree-mainline: 1148b1d122bc03e9a3665856c9b7bb96bd4e3994
git-subtree-split: 2436c27541b2f52deea3a4c1691216a02152e729
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/weasyprint')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/weasyprint/default.nix | 67 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/weasyprint/library-paths.patch | 38 |
2 files changed, 105 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix new file mode 100644 index 00000000000..7dc09d58aad --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix @@ -0,0 +1,67 @@ +{ buildPythonPackage, + fetchPypi, + cairosvg, + pyphen, + cffi, + cssselect, + lxml, + html5lib, + tinycss, + pygobject2, + glib, + pango, + fontconfig, + stdenv, + pytest, + pytestrunner, + pytest-isort, + pytest-flake8, + pytestcov, + isPy3k, + substituteAll +}: + +buildPythonPackage rec { + pname = "weasyprint"; + version = "47"; + disabled = !isPy3k; + + # ignore failing pytest + checkPhase = "pytest -k 'not test_font_stretch'"; + + # ignore failing flake8-test + prePatch = '' + substituteInPlace setup.cfg \ + --replace '[tool:pytest]' '[tool:pytest]\nflake8-ignore = E501' + ''; + + checkInputs = [ pytest pytestrunner pytest-isort pytest-flake8 pytestcov ]; + + FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf"; + + propagatedBuildInputs = [ cairosvg pyphen cffi cssselect lxml html5lib tinycss pygobject2 ]; + + patches = [ + (substituteAll { + src = ./library-paths.patch; + fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}"; + pangoft2 = "${pango.out}/lib/libpangoft2-1.0${stdenv.hostPlatform.extensions.sharedLibrary}"; + gobject = "${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}"; + pango = "${pango.out}/lib/libpango-1.0${stdenv.hostPlatform.extensions.sharedLibrary}"; + pangocairo = "${pango.out}/lib/libpangocairo-1.0${stdenv.hostPlatform.extensions.sharedLibrary}"; + }) + ]; + + src = fetchPypi { + inherit version; + pname = "WeasyPrint"; + sha256 = "0hd1zwrkfnj7g0jaaf6jvarlj6l5imar6ar78zxdgv17a3s3k3dg"; + }; + + meta = with stdenv.lib; { + homepage = https://weasyprint.org/; + description = "Converts web documents to PDF"; + license = licenses.bsd3; + maintainers = with maintainers; [ elohmeier ]; + }; +} diff --git a/nixpkgs/pkgs/development/python-modules/weasyprint/library-paths.patch b/nixpkgs/pkgs/development/python-modules/weasyprint/library-paths.patch new file mode 100644 index 00000000000..eabbdbdcd6e --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/weasyprint/library-paths.patch @@ -0,0 +1,38 @@ +diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py +index 377716c1..2016e01c 100644 +--- a/weasyprint/fonts.py ++++ b/weasyprint/fonts.py +@@ -48,11 +48,8 @@ else: + # with OSError: dlopen() failed to load a library: cairo / cairo-2 + # So let's hope we find the same file as cairo already did ;) + # Same applies to pangocairo requiring pangoft2 +- fontconfig = dlopen(ffi, 'fontconfig', 'libfontconfig', +- 'libfontconfig-1.dll', +- 'libfontconfig.so.1', 'libfontconfig-1.dylib') +- pangoft2 = dlopen(ffi, 'pangoft2-1.0', 'libpangoft2-1.0-0', +- 'libpangoft2-1.0.so', 'libpangoft2-1.0.dylib') ++ fontconfig = dlopen(ffi, '@fontconfig@') ++ pangoft2 = dlopen(ffi, '@pangoft2@') + + ffi.cdef(''' + // FontConfig +diff --git a/weasyprint/text.py b/weasyprint/text.py +index 035074e9..08e40395 100644 +--- a/weasyprint/text.py ++++ b/weasyprint/text.py +@@ -243,12 +243,9 @@ def dlopen(ffi, *names): + return ffi.dlopen(names[0]) # pragma: no cover + + +-gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so', +- 'libgobject-2.0.dylib') +-pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so', +- 'libpango-1.0.dylib') +-pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0', +- 'libpangocairo-1.0.so', 'libpangocairo-1.0.dylib') ++gobject = dlopen(ffi, '@gobject@') ++pango = dlopen(ffi, '@pango@') ++pangocairo = dlopen(ffi, '@pangocairo@') + + gobject.g_type_init() + |