diff --git a/.gitignore b/.gitignore index 5a0b857..604fae6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,7 @@ /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-50.tar.gz +/WeasyPrint-51.tar.gz diff --git a/sources b/sources index 4008ca2..afddf14 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (weasyprint-69.0.tar.gz) = fb56d7f6173f8a67f8ef4c31408c03625b0a774d0efde003f779e3da054737c88afe9f44ee40b6dda5fc92cfacfa5709d4d96bf1a112862d309eaf2d93881ef6 +SHA512 (WeasyPrint-51.tar.gz) = 631038bece7ac0c15c6a668a7d06137e4bccc049eb80484a153ca9c4a996256de8647428b21ed1d0c1607af3893c747a1956a3d3f012b30105ba4f8613a96fcd diff --git a/weasyprint-disable-flake8-isort-for-pytest.patch b/weasyprint-disable-flake8-isort-for-pytest.patch new file mode 100644 index 0000000..c7a23f5 --- /dev/null +++ b/weasyprint-disable-flake8-isort-for-pytest.patch @@ -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] diff --git a/weasyprint.spec b/weasyprint.spec index d5a01df..dafaba7 100644 --- a/weasyprint.spec +++ b/weasyprint.spec @@ -1,30 +1,51 @@ %global modname weasyprint -%global srcname weasyprint +%global srcname WeasyPrint Name: weasyprint -Version: 69.0 -Release: 2%{?dist} +Version: 51 +Release: 3%{?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: https://weasyprint.org/ +Source0: %pypi_source +Patch0: %{name}-disable-flake8-isort-for-pytest.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 +# 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: /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 >= 2.4.0 +BuildRequires: python3-cssselect2 >= 0.1 +BuildRequires: python3-cairocffi >= 0.9.0 +BuildRequires: python3-html5lib >= 0.999999999 +# upstream requires > 0.9.1 (actually >= 0.8, != 0.9.1), see +# https://github.com/Kozea/WeasyPrint/pull/989#issuecomment-551845041 +# We need pyhen's hyphenation dicts (instead of system-wide dicts) otherwise +# there will be test failures. +BuildRequires: python3-pyphen > 0.9.1 +BuildRequires: python3-tinycss2 >= 1.0 Requires: python3-weasyprint = %{version}-%{release} @@ -35,7 +56,13 @@ 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 @@ -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,206 +98,10 @@ 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 - 69.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Thu Jun 11 2026 Felix Schwarz - 69.0-1 -- update to 69.0 - -* Fri Jun 05 2026 Python Maint - 68.1-2 -- Rebuilt for Python 3.15 - -* Sat Feb 07 2026 Felix Schwarz - 68.1-1 -- update to 68.1 - -* Tue Jan 20 2026 Felix Schwarz - 68.0-1 -- update to 68.0 - -* Sat Jan 17 2026 Fedora Release Engineering - 67.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Dec 03 2025 Felix Schwarz - 67.0-1 -- update to 67.0 - -* Fri Sep 19 2025 Python Maint - 66.0-3 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 66.0-2 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Mon Jul 28 2025 Felix Schwarz - 66.0-1 -- update to 66.0 - -* Fri Jul 25 2025 Fedora Release Engineering - 65.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 65.1-2 -- Rebuilt for Python 3.14 - -* Mon Apr 14 2025 Felix Schwarz - 65.1-1 -- update to 65.1 - -* Sun Mar 23 2025 Felix Schwarz - 65.0-1 -- update to 65.0 - -* Wed Mar 05 2025 Felix Schwarz - 64.1-1 -- update to 64.1 - -* Thu Jan 30 2025 Felix Schwarz - 64.0-1 -- update to 64.0 - -* Sun Jan 19 2025 Fedora Release Engineering - 63.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jan 11 2025 Felix Schwarz - 63.1-1 -- update to 63.1 - -* Sat Jul 20 2024 Fedora Release Engineering - 62.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jun 24 2024 Felix Schwarz - 62.3-1 -- update to 62.3 - -* Sat Jun 08 2024 Python Maint - 62.2-2 -- Rebuilt for Python 3.13 - -* Tue Jun 04 2024 Felix Schwarz - 62.2-1 -- update to 62.2 - -* Mon May 06 2024 Felix Schwarz - 62.1-1 -- update to 62.1 - -* Thu May 02 2024 Felix Schwarz - 62.0-1 -- update to 62.0 - -* Sat Mar 09 2024 Felix Schwarz - 61.2-1 -- update to 61.2 - -* Mon Feb 26 2024 Felix Schwarz - 61.1-1 -- update to 61.1 - -* Mon Feb 12 2024 Felix Schwarz - 61.0-1 -- update to 61.0 - -* Thu Jan 25 2024 Felix Schwarz - 60.2-2 -- use just flit-core as build dependency - -* Tue Dec 12 2023 Felix Schwarz - 60.2-1 -- update to 60.2 - -* Thu Oct 05 2023 Felix Schwarz - 60.1-1 -- update to 60.1 - -* Sat Jul 22 2023 Fedora Release Engineering - 59.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Jul 09 2023 Felix Schwarz - 59.0-2 -- add patch so the test suite passes for Python 3.12 - -* Thu May 11 2023 Felix Schwarz - 59.0-1 -- update to 59.0 - -* Sat Apr 15 2023 Felix Schwarz - 58.1-2 -- SPDX migration -- make tests pass with pydyf 0.6 - -* Tue Mar 07 2023 Felix Schwarz - 58.1-1 -- update to 58.1 - -* Fri Feb 17 2023 Felix Schwarz - 58.0-1 -- update to 58.0 - -* Sat Jan 21 2023 Fedora Release Engineering - 57.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Dec 27 2022 Felix Schwarz - 57.2-1 -- update to 57.2 - -* Sat Nov 05 2022 Felix Schwarz - 57.1-1 -- update to 57.1 - -* Mon Jul 25 2022 Felix Schwarz - 56.1-1 -- update to 56.1 - -* Sat Jul 23 2022 Fedora Release Engineering - 56.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jul 07 2022 Felix Schwarz - 56.0-1 -- update to 56.0 - -* Mon Jun 20 2022 Python Maint - 55.0-2 -- Rebuilt for Python 3.11 - -* Thu May 12 2022 Felix Schwarz - 55.0-1 -- update to 55.0 - -* Mon Apr 04 2022 Felix Schwarz - 54.3-1 -- update to 54.3 - -* Tue Mar 01 2022 Felix Schwarz - 54.2-1 -- update to 54.2 - -* Mon Jan 31 2022 Felix Schwarz - 54.1-1 -- update to 54.1 - -* Sat Jan 22 2022 Fedora Release Engineering - 54.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Jan 08 2022 Felix Schwarz - 54.0-1 -- update to 54.0 - -* Sun Nov 14 2021 Felix Schwarz - 53.4-1 -- update to 53.4 - -* Fri Sep 10 2021 Felix Schwarz - 53.3-1 -- update to 53.3 - -* Fri Aug 27 2021 Felix Schwarz - 53.2-1 -- update to 53.2 - -* Sun Aug 22 2021 Felix Schwarz - 53.1-1 -- update to 53.1 - -* Sun Aug 01 2021 Felix Schwarz - 53.0-1 -- update to 53.0 - -* Fri Jul 23 2021 Fedora Release Engineering - 52.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 52.5-2 -- Rebuilt for Python 3.10 - -* Sun Apr 18 2021 Felix Schwarz - 52.5-1 -- update to 52.5 - -* Tue Mar 23 2021 Felix Schwarz - 52.4-2 -- add patch for pango 1.48.3 - -* Fri Mar 12 2021 Felix Schwarz - 52.4-1 -- update to 52.4 - -* Tue Mar 02 2021 Felix Schwarz - 52.3-1 -- update to 52.3 - -* Wed Jan 27 2021 Fedora Release Engineering - 52.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Dec 6 2020 Felix Schwarz - 52.2-1 -- update to 52.2 - -* Sun Nov 08 2020 Felix Schwarz - 52.1-1 -- update to 52.1 - -* Wed Jul 29 2020 Fedora Release Engineering - 51-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue May 26 2020 Miro Hrončok - 51-4 -- Rebuilt for Python 3.9 - * Wed Mar 04 2020 Felix Schwarz - 51-3 - drop runtime requirement on "dejavu-fonts-common" (#1810150)