Debian Patches

Status for python-nanoemoji/0.16.0-1

Patch Description Author Forwarded Bugs Origin Last update
0001-Bundle-ninja_syntax-instead-of-the-ninja-PyPI-wheel.patch Bundle ninja_syntax instead of the ninja PyPI wheel
nanoemoji imports ninja_syntax from the "ninja" PyPI package, which is
just a wheel wrapping a prebuilt ninja binary plus a copy of ninja's own
misc/ninja_syntax.py. Debian ships the real thing in ninja-build, but
ninja-build does not install ninja_syntax.py as an importable module and
no other package provides it.

Until a python3-ninja-syntax module exists in the archive, add an
unmodified copy of misc/ninja_syntax.py from ninja 1.13.2 (Apache-2.0,
same license as nanoemoji) as nanoemoji.ninja_syntax and import that.
The ninja executable itself is still looked up on $PATH and comes from
the ninja-build package.
Boyuan Yang <byang@debian.org> not-needed debian 2026-08-21
0002-Drop-install_requires-on-PyPI-only-CLI-wrappers.patch Drop install_requires on PyPI-only CLI wrappers
"ninja", "resvg-cli" and "pngquant-cli" are PyPI wheels that only ship a
prebuilt copy of a command-line tool. Debian provides those tools in the
ninja-build, resvg and pngquant packages, which the binary package
depends on (resp. recommends) directly, so requiring the wheels would
only make dh_python3 emit dependencies on packages that do not exist.

Point the "tool not found" messages at the Debian packages too.
Boyuan Yang <byang@debian.org> not-needed 2026-08-21
0003-Ship-the-default-config-as-package-data.patch Ship the default config as package data
setup.py sets include_package_data=True, which only picks up
src/nanoemoji/data/_default.toml when setuptools_scm's file finder can
see a git checkout. Building from a release tarball therefore produces an
installation without _default.toml, and every code path going through
nanoemoji.config.load() dies with FileNotFoundError.

Declare the data file in package_data so it is installed either way.

While here, drop the package_data entry for "py.typed" in a "picosvg"
nanoemoji has neither a py.typed marker nor a picosvg package.
Boyuan Yang <byang@debian.org> no 2026-08-21
0004-Keep-the-inherited-PATH-when-running-tools-from-tests.patch Keep the inherited PATH and PYTHONPATH in the tests
test_helper.run() builds the subprocess environment from scratch, setting
PATH to the single directory holding the nanoemoji script and PYTHONPATH
to the tests directory. That only works when everything was pip-installed
into one virtualenv.

When the tests run against a build tree with the dependencies installed
system-wide, both assumptions break: ninja, resvg and pngquant live in
/usr/bin and are no longer found, and the nanoemoji package itself is
only importable through the PYTHONPATH the test runner set up, so the
nanoemoji script dies with ModuleNotFoundError.

Append the inherited values to both variables instead of dropping them.
Boyuan Yang <byang@debian.org> no 2026-08-21

All known versions for source package 'python-nanoemoji'

Links