aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/python-modules/weasyprint
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-05 12:43:18 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-05 12:44:52 +0000
commitcf85056ba64caf3267d43255ef4a1243e9c8ee3b (patch)
tree3051519e9c8275b870aac43f80af875715c9d124 /nixpkgs/pkgs/development/python-modules/weasyprint
parent1148b1d122bc03e9a3665856c9b7bb96bd4e3994 (diff)
parent2436c27541b2f52deea3a4c1691216a02152e729 (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.nix67
-rw-r--r--nixpkgs/pkgs/development/python-modules/weasyprint/library-paths.patch38
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()
+