17
0

10 Commits

Author SHA256 Message Date
b08802dc3b Accepting request 1278844 from devel:languages:python
Forwarded request #1278687 from glaubitz

- Update to 65.1
    * #2414: Correctly handle flex columns split between pages
    * 1b24ad9: Include padding in outer size of item elements
    * #2419: Set main tag as block by default
    * #2415: Fix support of replaced block box as flex items
    * 83da2fe0: Fix margins and padding for rtl lists
    * #2429, #1076, #2431: Fix page groups
  - Bump cssselect2_min_version to 0.8.0

OBS-URL: https://build.opensuse.org/request/show/1278844
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-weasyprint?expand=0&rev=19
2025-05-20 20:46:00 +00:00
198094bae9 - Update to 65.1
* #2414: Correctly handle flex columns split between pages
  * 1b24ad9: Include padding in outer size of item elements
  * #2419: Set main tag as block by default
  * #2415: Fix support of replaced block box as flex items
  * 83da2fe0: Fix margins and padding for rtl lists
  * #2429, #1076, #2431: Fix page groups
- Bump cssselect2_min_version to 0.8.0

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-weasyprint?expand=0&rev=42
2025-05-20 14:46:05 +00:00
60115e0d4d Accepting request 1252394 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1252394
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-weasyprint?expand=0&rev=18
2025-03-12 14:27:41 +00:00
991064406a Accepting request 1250341 from home:glaubitz:branches:devel:languages:python
- Update to 64.1
  * #2368: Fix ascent and descent font values
  * #2370: Avoid endless recursion for variables in nested functions
  * #2275: Use correct containing block to render waiting children
  * #2375: Ensure that we handle text-anchor only on text content elements
  * #2090: Only create font temporary folder when adding fonts
  * #2383: Fix grid-template-areas validation and allow uppercase
    identifiers for grid lines

OBS-URL: https://build.opensuse.org/request/show/1250341
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-weasyprint?expand=0&rev=40
2025-03-10 18:49:06 +00:00
d96a54143d Accepting request 1244903 from devel:languages:python
- update to 64.0:
  * #2338: Allow custom RDF metadata for PDF/A and eInvoices
  * #123, #2345: Handle small-caps synthesis
  * #2343: Support outline-offset
  * #2361: Support text-underline-offset and text-decoration-
    thickness
  * #2296: Don’t crash with tables with rounded corners split
    between pages
  * #2360: Fix gradients with non-RGB colors
  * #2355, #2358: Align png emojis to the surrounding text
  * #2353: Fix alignment of SVG text with multiple nested text-
    anchor values
  * #2350: Fix logging restoration in capture_logs
  * #2341: Fix page groups
  * #2314: Use CSS 'image-rendering' attribute for images in SVGs
  * #2332: Fix opacity for translated SVG elements
  * #2329: Refactor text.line_break.get_log_attrs
  * #2325, #2326: Fix table overflow edge cases
  * #2347, #2364: Improve rendering speed for text
  * #2352: Add more use cases in documentation, use Furo theme

OBS-URL: https://build.opensuse.org/request/show/1244903
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-weasyprint?expand=0&rev=17
2025-02-11 20:23:57 +00:00
4c317628cc - update to 64.0:
* #2338: Allow custom RDF metadata for PDF/A and eInvoices
  * #123, #2345: Handle small-caps synthesis
  * #2343: Support outline-offset
  * #2361: Support text-underline-offset and text-decoration-
    thickness
  * #2296: Don’t crash with tables with rounded corners split
    between pages
  * #2360: Fix gradients with non-RGB colors
  * #2355, #2358: Align png emojis to the surrounding text
  * #2353: Fix alignment of SVG text with multiple nested text-
    anchor values
  * #2350: Fix logging restoration in capture_logs
  * #2341: Fix page groups
  * #2314: Use CSS 'image-rendering' attribute for images in SVGs
  * #2332: Fix opacity for translated SVG elements
  * #2329: Refactor text.line_break.get_log_attrs
  * #2325, #2326: Fix table overflow edge cases
  * #2347, #2364: Improve rendering speed for text
  * #2352: Add more use cases in documentation, use Furo theme

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-weasyprint?expand=0&rev=38
2025-02-10 21:55:36 +00:00
c72a1123fb Accepting request 1224880 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1224880
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-weasyprint?expand=0&rev=16
2024-11-18 19:02:35 +00:00
6679320109 Accepting request 1224805 from home:nkrapp:branches:devel:languages:python
- Fix runtime requirements (bsc#1233406)

OBS-URL: https://build.opensuse.org/request/show/1224805
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-weasyprint?expand=0&rev=36
2024-11-18 13:46:40 +00:00
7388b58a98 Accepting request 1221499 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1221499
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-weasyprint?expand=0&rev=15
2024-11-06 15:51:34 +00:00
a059df5bad Accepting request 1221470 from home:glaubitz:branches:devel:languages:python
- Update to 63.0
  * #2252, #895: Handle page groups, with financial support from Code & Co.
  * #1630, #2286: Support CSS Color Level 4
  * #2192: Add PDF variant for debugging purpose
  * #2208: Support submit inputs in PDF forms
  * #2139: Support mask-border-* properties
  * #1831, #2143: Support radio inputs in PDF forms
  * #2262: Avoid integer overflows when converting units from/to doubles
  * #2260: Avoid float collision with box establishing formatting context
  * #2240, #2242: Handle svg tags with no size
  * #2231, #1171, #2222, #1208: Fix several problems related to flex-direction: column
  * #2239: Don’t fail when SVG markers are undefined references
  * #2230, #2238: Set explicit flags when loading DLLs on Windows
  * #2228, #1942: Store original and PDF stream images in different cache slots
  * #2234: Apply stylesheet and other basic operations to SVG root tag
  * #2054, #2233: Keep auto margins on flex layout boxes
  * #1883: Don’t crash with empty list marker strings
  * #2216: Fix vertical alignment of out-of-flow elements in tables
  * #996, #2219: Don’t ignore absolutely positioned elements inside flex boxes
  * #2217: Don’t crash with normal column gaps
  * #1817: Don’t assume that lines break after spaces
  * #1868: Don’t break rows with atomic cells
  * #2166: Don’t display bottom border on cells in split rows
  * 61852c4: Capture fontTools logs when subsetting fonts
  * #2190: Don’t use a pattern when drawing backgrounds for no-repeat background images
  * #2185: Check that Harfbuzz version is at least 4.1.0 to subset fonts
  * #2180: Store width for all glyphs when font is not subset
  * #2183: Respect break-inside: avoid for flex items
  * #2055, #2058: Fix right-to-left tables with collapsed borders
  * #2179, #1128: Handle buggy Adobe Photoshop CMYK JPEGs

OBS-URL: https://build.opensuse.org/request/show/1221470
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-weasyprint?expand=0&rev=34
2024-11-05 15:37:24 +00:00
3 changed files with 0 additions and 95 deletions

View File

@@ -1,86 +0,0 @@
From 64ffeea2c2dca4377b7ec4e9e3cf5dfe1a9b6c0a Mon Sep 17 00:00:00 2001
From: Guillaume Ayoub <guillaume@courtbouillon.org>
Date: Wed, 31 Dec 2025 19:09:20 +0100
Subject: [PATCH 1/2] =?UTF-8?q?Don=E2=80=99t=20allow=20redirects=20with=20?=
=?UTF-8?q?deprecated=20default=5Furl=5Ffetcher=20function?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is a security fix.
When calling default_url_fetcher in a custom URL fetcher, redirects are handled by
Python and dont go though the custom URL fetcher, allowing attackers to make WeasyPrint
reach URLs forbidden by the custom URL fetcher.
See CVE-2025-68616.
---
weasyprint/urls.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Index: weasyprint-65.1/weasyprint/urls.py
===================================================================
--- weasyprint-65.1.orig/weasyprint/urls.py
+++ weasyprint-65.1/weasyprint/urls.py
@@ -10,7 +10,8 @@ import zlib
from gzip import GzipFile
from pathlib import Path
from urllib.parse import quote, unquote, urljoin, urlsplit
-from urllib.request import Request, pathname2url, urlopen
+from urllib.request import Request, pathname2url, build_opener
+from urllib import request
from . import __version__
from .logger import LOGGER
@@ -177,7 +178,8 @@ def ensure_url(string):
return string if url_is_absolute(string) else path2url(string)
-def default_url_fetcher(url, timeout=10, ssl_context=None):
+def default_url_fetcher(url, timeout=10, ssl_context=None,
+ allow_redirects=False):
"""Fetch an external resource such as an image or stylesheet.
Another callable with the same signature can be given as the
@@ -190,6 +192,8 @@ def default_url_fetcher(url, timeout=10,
The number of seconds before HTTP requests are dropped.
:param ssl.SSLContext ssl_context:
An SSL context used for HTTP requests.
+ :param bool allow_redirects:
+ Whether HTTP redirects must be followed.
:raises: An exception indicating failure, e.g. :obj:`ValueError` on
syntactically invalid URL.
:returns: A :obj:`dict` with the following keys:
@@ -214,15 +218,29 @@ def default_url_fetcher(url, timeout=10,
has to be closed manually.
"""
+
if UNICODE_SCHEME_RE.match(url):
# See https://bugs.python.org/issue34702
if url.startswith('file://'):
url = url.split('?')[0]
url = iri_to_uri(url)
- response = urlopen(
- Request(url, headers=HTTP_HEADERS), timeout=timeout,
- context=ssl_context)
+
+ # Default opener, redirects won't be followed
+ handlers = [
+ request.ProxyHandler(), request.UnknownHandler(), request.HTTPHandler(),
+ request.HTTPDefaultErrorHandler(), request.FTPHandler(),
+ request.FileHandler(), request.HTTPErrorProcessor(), request.DataHandler(),
+ request.HTTPSHandler(context=ssl_context)]
+ if allow_redirects:
+ handlers.append(request.HTTPRedirectHandler())
+
+ opener = request.OpenerDirector()
+ for handler in handlers:
+ opener.add_handler(handler)
+
+ response = opener.open(
+ Request(url, headers=HTTP_HEADERS), timeout=timeout)
response_info = response.info()
result = {
'redirected_url': response.geturl(),

View File

@@ -1,10 +1,3 @@
-------------------------------------------------------------------
Tue Jan 20 09:07:47 UTC 2026 - Daniel Garcia <daniel.garcia@suse.com>
- Add CVE-2025-68616.patch to fix server-side request forgery (SSRF)
vulnerability in default fetcher.
(bsc#1256936, CVE-2025-68616, gh#Kozea/WeasyPrint@b6a14f0f3f4c)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue May 20 12:11:26 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> Tue May 20 12:11:26 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>

View File

@@ -36,8 +36,6 @@ License: BSD-3-Clause
URL: https://github.com/Kozea/WeasyPrint URL: https://github.com/Kozea/WeasyPrint
Source: https://files.pythonhosted.org/packages/source/w/weasyprint/weasyprint-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/w/weasyprint/weasyprint-%{version}.tar.gz
Source100: python-weasyprint-rpmlintrc Source100: python-weasyprint-rpmlintrc
# PATCH-FIX-UPSTREAM CVE-2025-68616.patch Backported from gh#Kozea/WeasyPrint@b6a14f0f3f4c
Patch0: CVE-2025-68616.patch
BuildRequires: %{python_module base >= 3.9} BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module flit-core} BuildRequires: %{python_module flit-core}
BuildRequires: %{python_module pip} BuildRequires: %{python_module pip}