3
0
Fork 0
forked from mirrors/nixpkgs

python3Packages.weasyprint: 52 -> 54.3

This commit is contained in:
Rasmus Précenth 2021-11-16 23:31:08 +01:00
parent e951187304
commit abbba8eb4c
No known key found for this signature in database
GPG key ID: E0D6F12345AD5641
2 changed files with 69 additions and 55 deletions

View file

@ -1,17 +1,24 @@
{ buildPythonPackage,
fetchPypi,
fetchpatch,
pytestCheckHook,
brotli,
cairosvg,
fonttools,
pydyf,
pyphen,
cffi,
cssselect,
lxml,
html5lib,
tinycss,
zopfli,
glib,
harfbuzz,
pango,
fontconfig,
lib, stdenv,
ghostscript,
pytest,
pytest-runner,
pytest-isort,
@ -23,35 +30,48 @@
buildPythonPackage rec {
pname = "weasyprint";
version = "52";
version = "53.4";
disabled = !isPy3k;
# excluded test needs the Ahem font
checkPhase = ''
runHook preCheck
pytest -k 'not test_font_stretch'
runHook postCheck
'';
pytestFlagsArray = [
# setup.py is auto-generated and doesn't pass the flake8 check
"--ignore=setup.py"
# ffi.py is patched by us and doesn't pass the flake8 check
"--ignore=weasyprint/text/ffi.py"
];
# ignore failing flake8-test
prePatch = ''
substituteInPlace setup.cfg \
--replace '[tool:pytest]' '[tool:pytest]\nflake8-ignore = E501'
'';
disabledTests = [
# test_font_stretch needs the Ahem font (fails on macOS)
"test_font_stretch"
];
checkInputs = [ pytest pytest-runner pytest-isort pytest-flake8 pytest-cov ];
checkInputs = [
pytestCheckHook
ghostscript
pytest
pytest-runner
pytest-isort
pytest-flake8
pytest-cov
];
FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
propagatedBuildInputs = [ cairosvg pyphen cffi cssselect lxml html5lib tinycss ];
propagatedBuildInputs = [
brotli
cairosvg
cffi
cssselect
fonttools
html5lib
lxml
pydyf
pyphen
tinycss
zopfli
];
# 47043a1fd7e50a892b9836466f521df85d597c4.patch can be removed after next release of weasyprint, see:
# https://github.com/Kozea/WeasyPrint/issues/1333#issuecomment-818062970
patches = [
(fetchpatch {
url = "https://github.com/Kozea/WeasyPrint/commit/47043a1fd7e50a892b9836466f521df85d597c44.patch";
sha256 = "0l9z0hrav3bcdajlg3vbzljq0lkw7hlj8ppzrq3v21hbj1il1nsb";
})
(substituteAll {
src = ./library-paths.patch;
fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
@ -59,13 +79,14 @@ buildPythonPackage rec {
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}";
harfbuzz = "${harfbuzz.out}/lib/libharfbuzz${stdenv.hostPlatform.extensions.sharedLibrary}";
})
];
src = fetchPypi {
inherit version;
pname = "WeasyPrint";
sha256 = "0rwf43111ws74m8b1alkkxzz57g0np3vmd8as74adwnxslfcg4gs";
pname = "weasyprint";
sha256 = "sha256-EMyxfVXHMJa98e3T7+WMuFWwfkwwfZutTryaPxP/RYA=";
};
meta = with lib; {

View file

@ -1,38 +1,31 @@
diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
index 79e3b5b..4438eb4 100644
--- a/weasyprint/fonts.py
+++ b/weasyprint/fonts.py
@@ -45,11 +45,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.0', '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 1dc5e4d..b070bad 100644
--- a/weasyprint/text.py
+++ b/weasyprint/text.py
@@ -255,12 +255,9 @@ def dlopen(ffi, *names):
diff --git a/weasyprint/text/ffi.py b/weasyprint/text/ffi.py
index 0734cbea..22e31a5e 100644
--- a/weasyprint/text/ffi.py
+++ b/weasyprint/text/ffi.py
@@ -387,21 +387,11 @@ 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.0',
- 'libgobject-2.0.dylib')
-pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so.0',
-gobject = _dlopen(
- ffi, 'gobject-2.0-0', 'gobject-2.0', 'libgobject-2.0-0',
- 'libgobject-2.0.so.0', 'libgobject-2.0.dylib')
-pango = _dlopen(
- ffi, 'pango-1.0-0', 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so.0',
- 'libpango-1.0.dylib')
-pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0',
- 'libpangocairo-1.0.so.0', 'libpangocairo-1.0.dylib')
+gobject = dlopen(ffi, '@gobject@')
+pango = dlopen(ffi, '@pango@')
+pangocairo = dlopen(ffi, '@pangocairo@')
-harfbuzz = _dlopen(
- ffi, 'harfbuzz', 'harfbuzz-0.0', 'libharfbuzz-0',
- 'libharfbuzz.so.0', 'libharfbuzz.so.0', 'libharfbuzz.0.dylib')
-fontconfig = _dlopen(
- ffi, 'fontconfig-1', 'fontconfig', 'libfontconfig', 'libfontconfig-1.dll',
- 'libfontconfig.so.1', 'libfontconfig-1.dylib')
-pangoft2 = _dlopen(
- ffi, 'pangoft2-1.0-0', 'pangoft2-1.0', 'libpangoft2-1.0-0',
- 'libpangoft2-1.0.so.0', 'libpangoft2-1.0.dylib')
+gobject = _dlopen(ffi, '@gobject@')
+pango = _dlopen(ffi, '@pango@')
+harfbuzz = _dlopen(ffi, '@harfbuzz@')
+fontconfig = _dlopen(ffi, '@fontconfig@')
+pangoft2 = _dlopen(ffi, '@pangoft2@')
gobject.g_type_init()