Compare commits

..

3 commits

Author SHA1 Message Date
4022cd4e3c add new sources 2019-12-11 00:27:44 +01:00
5952524905 try to run tests for WeasyPrint 2019-12-11 00:22:11 +01:00
2e4affaac9 update to upstream version 47 2019-12-11 00:01:20 +01:00
7 changed files with 269 additions and 246 deletions

9
.gitignore vendored
View file

@ -1,9 +1,6 @@
/v0.19.2.tar.gz
/v0.21.tar.gz
/v0.22.tar.gz
/WeasyPrint-*
/WeasyPrint-*.tar.gz
/weasyprint-*.tar.gz
/*.src.rpm
/results_weasyprint
/weasyprint-??.?
/weasyprint-0.22.tar.gz
/weasyprint-0.39.tar.gz
/WeasyPrint-47.tar.gz

View file

@ -1 +1 @@
SHA512 (weasyprint-69.0.tar.gz) = fb56d7f6173f8a67f8ef4c31408c03625b0a774d0efde003f779e3da054737c88afe9f44ee40b6dda5fc92cfacfa5709d4d96bf1a112862d309eaf2d93881ef6
SHA512 (WeasyPrint-47.tar.gz) = 1f840d997d33aebd2a8a4c2dafdfec0dfe13a97beda21438f69e28f6bfca8a6fcfe0496cb5a9fa4307e6807b23e2ba656093fe90e3fb2269a865e56a9a83fe1b

View file

@ -0,0 +1,30 @@
diff --git a/setup.cfg b/setup.cfg
index 1e88b56..62725f6 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -52,8 +52,6 @@ install_requires =
tests_require =
pytest-runner
pytest-cov
- pytest-flake8
- pytest-isort
python_requires = >= 3.5
[options.entry_points]
@@ -71,8 +69,6 @@ doc =
test =
pytest-runner
pytest-cov
- pytest-flake8
- pytest-isort
[bdist_wheel]
python-tag = py3
@@ -85,7 +81,6 @@ build-dir = docs/_build
test = pytest
[tool:pytest]
-addopts = --flake8 --isort
norecursedirs = build dist .cache .eggs .git
[coverage:run]

View file

@ -0,0 +1,107 @@
diff --git a/weasyprint/tests/test_text.py b/weasyprint/tests/test_text.py
index 1bebd57..df67943 100644
--- a/weasyprint/tests/test_text.py
+++ b/weasyprint/tests/test_text.py
@@ -466,7 +466,7 @@ def test_text_indent_multipage(indent):
@assert_no_logs
-def test_hyphenate_character_1():
+def _test_hyphenate_character_1():
page, = render_pages(
'<html style="width: 5em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -483,7 +483,7 @@ def test_hyphenate_character_1():
@assert_no_logs
-def test_hyphenate_character_2():
+def _test_hyphenate_character_2():
page, = render_pages(
'<html style="width: 5em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -500,7 +500,7 @@ def test_hyphenate_character_2():
@assert_no_logs
-def test_hyphenate_character_3():
+def _test_hyphenate_character_3():
page, = render_pages(
'<html style="width: 5em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -517,7 +517,7 @@ def test_hyphenate_character_3():
@assert_no_logs
-def test_hyphenate_character_4():
+def _test_hyphenate_character_4():
page, = render_pages(
'<html style="width: 5em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -533,7 +533,7 @@ def test_hyphenate_character_4():
@assert_no_logs
-def test_hyphenate_character_5():
+def _test_hyphenate_character_5():
page, = render_pages(
'<html style="width: 5em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -600,7 +600,7 @@ def test_hyphenate_manual_2():
@assert_no_logs
-def test_hyphenate_manual_3():
+def _test_hyphenate_manual_3():
# Automatic hyphenation opportunities within a word must be ignored if the
# word contains a conditional hyphen, in favor of the conditional
# hyphen(s).
@@ -617,7 +617,7 @@ def test_hyphenate_manual_3():
@assert_no_logs
-def test_hyphenate_limit_zone_1():
+def _test_hyphenate_limit_zone_1():
page, = render_pages(
'<html style="width: 12em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -651,7 +651,7 @@ def test_hyphenate_limit_zone_2():
@assert_no_logs
-def test_hyphenate_limit_zone_3():
+def _test_hyphenate_limit_zone_3():
page, = render_pages(
'<html style="width: 12em; font-family: ahem">'
'<style>@font-face {src: url(AHEM____.TTF); font-family: ahem}</style>'
@@ -686,19 +686,10 @@ def test_hyphenate_limit_zone_4():
@assert_no_logs
@pytest.mark.parametrize('css, result', (
- ('auto', 2),
- ('auto auto 0', 2),
- ('0 0 0', 2),
('4 4 auto', 1),
- ('6 2 4', 2),
- ('auto 1 auto', 2),
('7 auto auto', 1),
- ('6 auto auto', 2),
- ('5 2', 2),
- ('3', 2),
('2 4 6', 1),
('auto 4', 1),
- ('auto 2', 2),
))
def test_hyphenate_limit_chars(css, result):
page, = render_pages((
@@ -738,10 +729,6 @@ def test_hyphenate_limit_chars_punctuation(css):
@pytest.mark.parametrize('wrap, text, test, full_text', (
('break-word', 'aaaaaaaa', lambda a: a > 1, 'aaaaaaaa'),
('normal', 'aaaaaaaa', lambda a: a == 1, 'aaaaaaaa'),
- ('break-word', 'hyphenations', lambda a: a > 3,
- 'hy\u2010phen\u2010ations'),
- ('break-word', "A splitted word. An hyphenated word.",
- lambda a: a > 8, "Asplittedword.Anhy\u2010phen\u2010atedword."),
))
def test_overflow_wrap(wrap, text, test, full_text):
page, = render_pages('''

View file

@ -0,0 +1,23 @@
commit aab0fa5b9d8c8a3960ba79f6c54ad56c64a1c06d
Author: Guillaume Ayoub <guillaume.ayoub@kozea.fr>
Date: Wed Aug 14 18:32:44 2019 +0200
Fix line height with Pango > 1.44
Pango > 1.44 returns a wrong baseline when no text is set on the layout. We
now have to set text when calculating metrics for strut layouts.
Fix #917.
diff --git a/weasyprint/css/computed_values.py b/weasyprint/css/computed_values.py
index 37f8b1b4..87c83ed4 100644
--- a/weasyprint/css/computed_values.py
+++ b/weasyprint/css/computed_values.py
@@ -742,6 +742,7 @@ def strut_layout(style, context=None):
return context.strut_layouts[key]
layout = text.Layout(context, style['font_size'], style)
+ layout.set_text(' ')
line, _ = layout.get_first_line()
_, _, _, _, text_height, baseline = text.first_line_metrics(
line, '', layout, resume_at=None, space_collapse=False, style=style)

View file

@ -0,0 +1,52 @@
commit b06a3a9a6f3609a0257b3270875ae3d91dad609b
Author: Guillaume Ayoub <guillaume.ayoub@kozea.fr>
Date: Thu Sep 5 13:46:01 2019 +0200
Always set tabulation width
Not setting it makes Pango use a slightly different value of tabulation width,
breaking a test.
diff --git a/weasyprint/text.py b/weasyprint/text.py
index 24681e58..20c613a5 100644
--- a/weasyprint/text.py
+++ b/weasyprint/text.py
@@ -728,10 +728,6 @@ class Layout(object):
pango.pango_attr_list_insert(attr_list, attr)
pango.pango_layout_set_attributes(self.layout, attr_list)
- # Tabs width
- if style['tab_size'] != 8: # Default Pango value is 8
- self.set_tabs()
-
def get_first_line(self):
layout_iter = ffi.gc(
pango.pango_layout_get_iter(self.layout),
@@ -783,6 +779,10 @@ class Layout(object):
pango.pango_layout_set_attributes(self.layout, attr_list)
pango.pango_attr_list_unref(attr_list)
+ # Tabs width
+ if b'\t' in bytestring:
+ self.set_tabs()
+
def get_font_metrics(self):
context = pango.pango_layout_get_context(self.layout)
return FontMetrics(context, self.font, self.language)
@@ -792,14 +792,12 @@ class Layout(object):
def set_tabs(self):
if isinstance(self.style['tab_size'], int):
- style = self.style.copy()
- style['tab_size'] = 8
layout = Layout(
- self.context, style['font_size'], style,
+ self.context, self.style['font_size'], self.style,
self.justification_spacing)
layout.set_text(' ' * self.style['tab_size'])
line, _ = layout.get_first_line()
- width, _ = get_size(line, style)
+ width, _ = get_size(line, self.style)
width = int(round(width))
else:
width = int(self.style['tab_size'].value)

View file

@ -1,30 +1,50 @@
%global modname weasyprint
%global srcname weasyprint
%global srcname WeasyPrint
Name: weasyprint
Version: 69.0
Release: 2%{?dist}
Version: 47
Release: 1%{?dist}
Summary: Utility to render HTML and CSS to PDF
License: BSD-3-Clause
URL: https://weasyprint.org
Source0: %{pypi_source weasyprint}
License: BSD
URL: http://weasyprint.org/
Source0: %pypi_source
Patch0: %{name}-disable-flake8-isort-for-pytest.patch
# both patches already in WeasyPrint 50
Patch1: weasyprint-fix-pango-144.patch
Patch2: weasyprint-set-tab-size.patch
# several tests in "test_text.py" fail because Fedora's python3-pyphen does
# not ship hyphenation dicts but relies on system-provided dicts (F30/F31).
Patch3: weasyprint-disable-hyphenation-tests.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: pyproject-rpm-macros
# used as "build-backend" in pyproject.toml but not detected by Fedora's
# macros to generate build requirements
BuildRequires: python3dist(flit-core)
# upstream installation docs say:
# "setuptools ≥ 30.3.0 is required to install WeasyPrint from wheel,
# but 39.2.0 is required to build the package or install from source."
BuildRequires: python3-setuptools >= 39.2.0
BuildRequires: python3-pytest
BuildRequires: python3-pytest-cov
BuildRequires: python3-pytest-runner
BuildRequires: python3-setuptools >= 39.2.0
BuildRequires: /usr/bin/pathfix.py
# requirements for testing
BuildRequires: dejavu-fonts-all
BuildRequires: google-noto-emoji-fonts
BuildRequires: ghostscript
# https://doc.courtbouillon.org/weasyprint/latest/first_steps.html
BuildRequires: pango >= 1.44.0
BuildRequires: python3dist(pytest)
BuildRequires: python3dist(pytest-xdist)
BuildRequires: cairo >= 1.15.4
BuildRequires: dejavu-sans-fonts
BuildRequires: gdk-pixbuf2 >= 2.25.0
BuildRequires: gdk-pixbuf2-modules
# gdk-pixbuf2 does not require libjpeg directly but tests try to load jpg
# images via gdk-pixbuf2
BuildRequires: libjpeg-turbo
BuildRequires: pango >= 1.38.0
BuildRequires: python3-cairosvg >= 1.0.20
BuildRequires: python3-cssselect2 >= 0.1
BuildRequires: python3-cairocffi >= 0.9.0
BuildRequires: python3-html5lib >= 0.999999999
BuildRequires: python3-pyphen >= 0.8
BuildRequires: python3-tinycss2 >= 1.0
Requires: python3-weasyprint = %{version}-%{release}
@ -35,11 +55,18 @@ for printing.
%package -n python3-weasyprint
Summary: Python library to render HTML and CSS to PDF
Requires: pango >= 1.44.0
Requires: cairo >= 1.15.4
Requires: pango >= 1.38.0
Requires: gdk-pixbuf2 >= 2.25.0
# workaround for bug 1685654
# actually python3-cairocffi should have that dependency (see bug 1698217) but
# for now just add the requirement here.
Requires: python3-xcffib
# other Python dependencies will be picked up automatically
# Weasyprint will fail if no fonts are installed. There's no way to know
# what fonts the user would actually want, but require a few common ones
# that might be useful:
Requires: dejavu-fonts-common
Requires: dejavu-sans-fonts
Requires: dejavu-sans-mono-fonts
Requires: dejavu-serif-fonts
@ -49,19 +76,17 @@ The WeasyPrint Python library is a rendering engine for HTML and CSS that
can export to PDF. It aims to support web standards for printing.
%prep
%autosetup -p1 -n %{srcname}-%{version}
%generate_buildrequires
%pyproject_buildrequires -r
%autosetup -p1 -n WeasyPrint-%{version}
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" .
%build
%pyproject_wheel
%py3_build
%install
%pyproject_install
%py3_install
%check
%pytest -n auto
%{__python3} setup.py test
# do not ship tests
rm -rf %{buildroot}%{python3_sitelib}/%{modname}/tests
@ -73,223 +98,12 @@ rm -rf %{buildroot}%{python3_sitelib}/%{modname}/tests
%files -n python3-weasyprint
%license LICENSE
%doc README.rst
%{python3_sitelib}/%{modname}-%{version}.dist-info/
%{python3_sitelib}/%{srcname}-%{version}-*/
%{python3_sitelib}/%{modname}/
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 69.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Thu Jun 11 2026 Felix Schwarz <fschwarz@fedoraproject.org> - 69.0-1
- update to 69.0
* Fri Jun 05 2026 Python Maint <python-maint@redhat.com> - 68.1-2
- Rebuilt for Python 3.15
* Sat Feb 07 2026 Felix Schwarz <fschwarz@fedoraproject.org> - 68.1-1
- update to 68.1
* Tue Jan 20 2026 Felix Schwarz <fschwarz@fedoraproject.org> - 68.0-1
- update to 68.0
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 67.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Dec 03 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 67.0-1
- update to 67.0
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 66.0-3
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 66.0-2
- Rebuilt for Python 3.14.0rc2 bytecode
* Mon Jul 28 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 66.0-1
- update to 66.0
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 65.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 65.1-2
- Rebuilt for Python 3.14
* Mon Apr 14 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 65.1-1
- update to 65.1
* Sun Mar 23 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 65.0-1
- update to 65.0
* Wed Mar 05 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 64.1-1
- update to 64.1
* Thu Jan 30 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 64.0-1
- update to 64.0
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 63.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jan 11 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 63.1-1
- update to 63.1
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 62.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jun 24 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 62.3-1
- update to 62.3
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 62.2-2
- Rebuilt for Python 3.13
* Tue Jun 04 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 62.2-1
- update to 62.2
* Mon May 06 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 62.1-1
- update to 62.1
* Thu May 02 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 62.0-1
- update to 62.0
* Sat Mar 09 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 61.2-1
- update to 61.2
* Mon Feb 26 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 61.1-1
- update to 61.1
* Mon Feb 12 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 61.0-1
- update to 61.0
* Thu Jan 25 2024 Felix Schwarz <fschwarz@fedoraproject.org> - 60.2-2
- use just flit-core as build dependency
* Tue Dec 12 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 60.2-1
- update to 60.2
* Thu Oct 05 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 60.1-1
- update to 60.1
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 59.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Jul 09 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 59.0-2
- add patch so the test suite passes for Python 3.12
* Thu May 11 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 59.0-1
- update to 59.0
* Sat Apr 15 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 58.1-2
- SPDX migration
- make tests pass with pydyf 0.6
* Tue Mar 07 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 58.1-1
- update to 58.1
* Fri Feb 17 2023 Felix Schwarz <fschwarz@fedoraproject.org> - 58.0-1
- update to 58.0
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 57.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Dec 27 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 57.2-1
- update to 57.2
* Sat Nov 05 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 57.1-1
- update to 57.1
* Mon Jul 25 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 56.1-1
- update to 56.1
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 56.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jul 07 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 56.0-1
- update to 56.0
* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 55.0-2
- Rebuilt for Python 3.11
* Thu May 12 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 55.0-1
- update to 55.0
* Mon Apr 04 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 54.3-1
- update to 54.3
* Tue Mar 01 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 54.2-1
- update to 54.2
* Mon Jan 31 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 54.1-1
- update to 54.1
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 54.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Jan 08 2022 Felix Schwarz <fschwarz@fedoraproject.org> - 54.0-1
- update to 54.0
* Sun Nov 14 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 53.4-1
- update to 53.4
* Fri Sep 10 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 53.3-1
- update to 53.3
* Fri Aug 27 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 53.2-1
- update to 53.2
* Sun Aug 22 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 53.1-1
- update to 53.1
* Sun Aug 01 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 53.0-1
- update to 53.0
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 52.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 52.5-2
- Rebuilt for Python 3.10
* Sun Apr 18 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 52.5-1
- update to 52.5
* Tue Mar 23 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 52.4-2
- add patch for pango 1.48.3
* Fri Mar 12 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 52.4-1
- update to 52.4
* Tue Mar 02 2021 Felix Schwarz <fschwarz@fedoraproject.org> - 52.3-1
- update to 52.3
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 52.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Dec 6 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 52.2-1
- update to 52.2
* Sun Nov 08 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 52.1-1
- update to 52.1
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 51-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 51-4
- Rebuilt for Python 3.9
* Wed Mar 04 2020 Felix Schwarz <fschwarz@fedoraproject.org> - 51-3
- drop runtime requirement on "dejavu-fonts-common" (#1810150)
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 51-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Dec 25 2019 Felix Schwarz <fschwarz@fedoraproject.org> 51-1
- update to upstream version 51
* Sun Dec 01 2019 Felix Schwarz <fschwarz@fedoraproject.org> 50-1
- update to new upstream version
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 0.39-5
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 0.39-4
- Rebuilt for Python 3.8
* Mon Nov 04 2019 Felix Schwarz <fschwarz@fedoraproject.org> 47-1
- update to upstream version 47
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.39-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild