diff mbox series

[meta-python,15/19] python3-svglib: Upgrade 2.3.3 -> 2.4.0

Message ID 20261110152729.1065911-15-leon.anavi@konsulko.com
State New
Headers show
Series [meta-python,01/19] python3-cachetools: Upgrade 7.2.8 -> 8.0.0 | expand

Commit Message

Leon Anavi Nov. 10, 2026, 3:27 p.m. UTC
Upgrade to release 2.4.0:

Added:

- <textPath> is now supported: text follows the <path> named by its
  href or xlink:href, with startOffset (a length or a percentage)
  and text-anchor, and styled <tspan> children. ReportLab can't
  draw text along a path, so each glyph is placed and rotated
  individually, at the point of the path under its midpoint; glyphs
  beyond the end of the path are dropped. Only paths of the same
  document can be followed, and side, method, spacing and per-glyph
  dx/dy/rotate are not supported.
- The plain opacity property is now supported, as a presentation
  attribute, in style attributes and in <style> rules, including
  percentages. Opacity composes down the tree, so a shape at 0.5
  inside a group at 0.5 is drawn at 0.25. It is applied per shape,
  so overlapping shapes inside a translucent group show through
  each other, and images are not affected.
- The CSS font shorthand is now expanded into font-style,
  font-weight, font-size and font-family, in style attributes and
  in <style> rules. Invalid shorthands are ignored.

Removed:

- Dropped support for Python 3.9 (and PyPy 3.9). pip 26.2.2, the
  new minimum safe version, requires Python 3.10 or newer.
  requires-python is now >=3.10, the 3.9 classifier is gone, and CI
  no longer tests 3.9 or PyPy 3.9.

Tooling and housekeeping:

- CI now fails if a locked or installed dependency, or the uv
  binary, is below its minimum safe version
  (scripts/check_min_versions.py).
- CI runs the lowest supported Python, 3.10, next to 3.13, 3.15 and
  PyPy 3.11. Python 3.15 is declared supported (classifier and
  tox).
- make install installs the dev dependency group (it used the dev
  extra, which doesn't exist), make uninstall no longer passes an
  option that uv pip doesn't know, and make test-dist works:
  scripts/test-dist.sh builds the wheel and tests it in a clean
  virtual environment. New: make check-versions.
- tests/test_basic.py is split into modules by topic
  (test_paths.py, test_text.py, test_text_path.py, test_use.py,
  test_gradients.py, ...). The tests that download files carry the
  pytest marker network, so pytest -m "not network" (or make
  test-fast) skips them.
- tests/test_public_api.py records the names, signatures and class
  members of svglib, svglib.svglib, svglib.utils and svglib.fonts
  in tests/public_api.json, so that restructuring the modules can't
  silently change what user code can import.
- The READMEs and notes in demos/ and tests/ are Markdown now, and
  the testing instructions describe the current uv and Makefile
  based workflow.

Fixed:

- A style attribute or <style> rule whose value contains a colon or
  a semicolon, such as cursor: url(http://example.com/c.cur), auto
  or a data URL, no longer makes svg2rlg() fail with ValueError or
  truncates the value. Declarations are now parsed with tinycss2,
  malformed ones are skipped, and !important and comments are no
  longer part of the value.
- baseline-shift on text is now also read from style attributes and
  <style> rules, and a percentage is taken relative to the font
  size instead of being used as a length in user units. A value on
  an enclosing <g> does not affect the text, as the property is not
  inherited.
- stroke-dasharray values that SVG calls invalid (any negative
  length, or a list that sums to zero) no longer produce an invalid
  PDF dash pattern and raise ValueError while rendering; they give
  a solid line. none no longer relies on a swallowed exception, and
  an odd number of values is repeated once to make it even, as the
  specification requires.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
 .../python/{python3-svglib_2.3.3.bb => python3-svglib_2.4.0.bb} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta-python/recipes-devtools/python/{python3-svglib_2.3.3.bb => python3-svglib_2.4.0.bb} (87%)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-svglib_2.3.3.bb b/meta-python/recipes-devtools/python/python3-svglib_2.4.0.bb
similarity index 87%
rename from meta-python/recipes-devtools/python/python3-svglib_2.3.3.bb
rename to meta-python/recipes-devtools/python/python3-svglib_2.4.0.bb
index 9f47ffe581..4b77e8d092 100644
--- a/meta-python/recipes-devtools/python/python3-svglib_2.3.3.bb
+++ b/meta-python/recipes-devtools/python/python3-svglib_2.4.0.bb
@@ -8,7 +8,7 @@  LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
 
 CVE_PRODUCT = "svglib"
 
-SRC_URI[sha256sum] = "1aef52f3dc651416119b55716e673995d2c9f90c86a07df0b2bcf6de26c7e0ff"
+SRC_URI[sha256sum] = "90f58628ca7e6d48b40f638ad0dab472f2994f823eb33a623c8fa28e434ce574"
 
 inherit pypi python_hatchling