pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/graphics/py-svglib



Module Name:    pkgsrc
Committed By:   adam
Date:           Tue Nov 10 09:50:43 UTC 2026

Modified Files:
        pkgsrc/graphics/py-svglib: Makefile distinfo

Log Message:
py-svglib: updated to 2.4.0

2.4.0 (2026-11-04)

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
  thanks to @Pharex38).
- 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


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 pkgsrc/graphics/py-svglib/Makefile
cvs rdiff -u -r1.5 -r1.6 pkgsrc/graphics/py-svglib/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/graphics/py-svglib/Makefile
diff -u pkgsrc/graphics/py-svglib/Makefile:1.7 pkgsrc/graphics/py-svglib/Makefile:1.8
--- pkgsrc/graphics/py-svglib/Makefile:1.7      Sat Oct 24 09:03:40 2026
+++ pkgsrc/graphics/py-svglib/Makefile  Tue Nov 10 09:50:43 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.7 2026/10/24 09:03:40 adam Exp $
+# $NetBSD: Makefile,v 1.8 2026/11/10 09:50:43 adam Exp $
 
-DISTNAME=      svglib-2.3.2
+DISTNAME=      svglib-2.4.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    graphics python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=s/svglib/}

Index: pkgsrc/graphics/py-svglib/distinfo
diff -u pkgsrc/graphics/py-svglib/distinfo:1.5 pkgsrc/graphics/py-svglib/distinfo:1.6
--- pkgsrc/graphics/py-svglib/distinfo:1.5      Sat Oct 24 09:03:40 2026
+++ pkgsrc/graphics/py-svglib/distinfo  Tue Nov 10 09:50:43 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.5 2026/10/24 09:03:40 adam Exp $
+$NetBSD: distinfo,v 1.6 2026/11/10 09:50:43 adam Exp $
 
-BLAKE2s (svglib-2.3.2.tar.gz) = c7f4474ee258f76187888d2254e5fd4328b07ffb9d9b287a15c8aed581a77962
-SHA512 (svglib-2.3.2.tar.gz) = 114ab498304d44ce913c8d8a50c68720b0a5c4b00980c34df9197b2166291bb4831a51ff799f4b566656c03479d5f8b4b29b1822ea80f4154f2cb81ff3df3cac
-Size (svglib-2.3.2.tar.gz) = 1381814 bytes
+BLAKE2s (svglib-2.4.0.tar.gz) = 583472881c15f69e3495589f7087a061f7007ec97c3a2fe5cdb4648dc623cb3b
+SHA512 (svglib-2.4.0.tar.gz) = 195953a568492c6719a0ce2a60b04cbb2e5fb8609ae8a3dc513e16abfef682e8c1cd68d339c46df40ba01cff7816799e058871b112c57a94f33bdf54f71e5378
+Size (svglib-2.4.0.tar.gz) = 1393162 bytes



Home | Main Index | Thread Index | Old Index