2019-10-28 04:36:32 -04:00
|
|
|
Make weasyprint load dynamic libraries from hard-coded path.
|
|
|
|
|
|
|
|
From NixOS
|
|
|
|
pkgs/development/python-modules/weasyprint/library-paths.patch
|
|
|
|
|
2019-09-30 15:09:49 -04:00
|
|
|
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()
|
|
|
|
|