gnu: weasyprint: Update to 52.1.
Fixes <https://issues.guix.gnu.org/42409>. * gnu/packages/patches/weasyprint-library-paths.patch: Delete. * gnu/packages/pdf.scm (weasyprint): Update to 52.1 [phases]{patch-library-paths}: Adjust. {check}: Remove. {register-dejavu-font}: New phase. [native-inputs]: Add font-dejavu.master
parent
e59a26cf3e
commit
c601e2bf9a
|
@ -1695,7 +1695,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
|
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
|
||||||
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
|
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
|
||||||
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
|
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
|
||||||
%D%/packages/patches/weasyprint-library-paths.patch \
|
|
||||||
%D%/packages/patches/webkitgtk-share-store.patch \
|
%D%/packages/patches/webkitgtk-share-store.patch \
|
||||||
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
|
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
|
||||||
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
|
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
Make weasyprint load dynamic libraries from hard-coded path.
|
|
||||||
|
|
||||||
From NixOS
|
|
||||||
pkgs/development/python-modules/weasyprint/library-paths.patch
|
|
||||||
|
|
||||||
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()
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
|
||||||
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
|
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
|
||||||
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -59,6 +60,7 @@
|
||||||
#:use-module (gnu packages cups)
|
#:use-module (gnu packages cups)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages djvu)
|
#:use-module (gnu packages djvu)
|
||||||
|
#:use-module (gnu packages fonts)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages game-development)
|
#:use-module (gnu packages game-development)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
|
@ -1428,14 +1430,17 @@ manipulating PDF documents from the command line. It supports
|
||||||
(define-public weasyprint
|
(define-public weasyprint
|
||||||
(package
|
(package
|
||||||
(name "weasyprint")
|
(name "weasyprint")
|
||||||
(version "51")
|
(version "52.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (pypi-uri "WeasyPrint" version))
|
(uri (git-reference
|
||||||
|
(url "https://github.com/FelixSchwarz/WeasyPrint")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0skdzwq7cd715dnnds6abx0k0xmmnmsqp0vb1r1w20sg7abp3sdk"))
|
(base32
|
||||||
(patches (search-patches "weasyprint-library-paths.patch"))))
|
"0rcj9yah3bp6bbvkmny3w4csx4l5v49lc7mrk29g0x77qnwswjy7"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -1447,27 +1452,39 @@ manipulating PDF documents from the command line. It supports
|
||||||
(pango (assoc-ref inputs "pango"))
|
(pango (assoc-ref inputs "pango"))
|
||||||
(pangoft2 (assoc-ref inputs "pangoft2")))
|
(pangoft2 (assoc-ref inputs "pangoft2")))
|
||||||
(substitute* "weasyprint/fonts.py"
|
(substitute* "weasyprint/fonts.py"
|
||||||
(("@fontconfig@")
|
(("'fontconfig'")
|
||||||
(string-append fontconfig "/lib/libfontconfig.so"))
|
(format #f "'~a/lib/libfontconfig.so'" fontconfig))
|
||||||
(("@pangoft2@")
|
(("'pangoft2-1.0'")
|
||||||
(string-append pango "/lib/libpangoft2-1.0.so")))
|
(format #f "'~a/lib/libpangoft2-1.0.so'" pango)))
|
||||||
(substitute* "weasyprint/text.py"
|
(substitute* "weasyprint/text.py"
|
||||||
(("@gobject@")
|
(("'gobject-2.0'")
|
||||||
(string-append glib "/lib/libgobject-2.0.so"))
|
(format #f "'~a/lib/libgobject-2.0.so'" glib))
|
||||||
(("@pango@")
|
(("'pango-1.0'")
|
||||||
(string-append pango "/lib/libpango-1.0.so"))
|
(format #f "'~a/lib/libpango-1.0.so'" pango))
|
||||||
(("@pangocairo@")
|
(("'pangocairo-1.0'")
|
||||||
(string-append pango "/lib/libpangocairo-1.0.so"))))))
|
(format #f "'~a/lib/libpangocairo-1.0.so'" pango)))
|
||||||
(add-after 'unpack 'remove-pytest-options
|
#t)))
|
||||||
|
(add-after 'unpack 'disable-linters
|
||||||
|
;; Their check fails; none of our business.
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "setup.cfg"
|
(substitute* "setup.cfg"
|
||||||
;; flake8 and isort syntax checks fail, which is not our
|
((".*pytest-flake8.*") "")
|
||||||
;; business.
|
((".*pytest-isort.*") "")
|
||||||
(("addopts = --flake8 --isort") ""))))
|
(("--flake8") "")
|
||||||
(replace 'check
|
(("--isort") ""))
|
||||||
(lambda _
|
#t))
|
||||||
;; Run pytest, excluding one failing test.
|
(add-before 'check 'register-dejavu-font
|
||||||
(invoke "pytest" "-k" "not test_flex_column_wrap_reverse"))))))
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; TODO: fix FreeType so that fonts found in XDG_DATA_DIRS are
|
||||||
|
;; honored.
|
||||||
|
(let* ((HOME "/tmp")
|
||||||
|
(dejavu (assoc-ref inputs "font-dejavu"))
|
||||||
|
(fonts-dir (string-append HOME "/.fonts")))
|
||||||
|
(setenv "HOME" HOME)
|
||||||
|
(mkdir-p fonts-dir)
|
||||||
|
(symlink (string-append dejavu "/share/fonts/truetype")
|
||||||
|
(string-append fonts-dir "/truetype"))
|
||||||
|
(invoke "fc-cache" "-rv")))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("fontconfig" ,fontconfig)
|
`(("fontconfig" ,fontconfig)
|
||||||
("glib" ,glib)
|
("glib" ,glib)
|
||||||
|
@ -1482,7 +1499,8 @@ manipulating PDF documents from the command line. It supports
|
||||||
("python-pyphen" ,python-pyphen)
|
("python-pyphen" ,python-pyphen)
|
||||||
("python-tinycss2" ,python-tinycss2)))
|
("python-tinycss2" ,python-tinycss2)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-pytest-cov" ,python-pytest-cov)
|
`(("font-dejavu" ,font-dejavu) ;tests depend on it
|
||||||
|
("python-pytest-cov" ,python-pytest-cov)
|
||||||
("python-pytest-runner" ,python-pytest-runner)))
|
("python-pytest-runner" ,python-pytest-runner)))
|
||||||
(home-page "https://weasyprint.org/")
|
(home-page "https://weasyprint.org/")
|
||||||
(synopsis "Document factory for creating PDF files from HTML")
|
(synopsis "Document factory for creating PDF files from HTML")
|
||||||
|
|
Reference in New Issue