On Sat, Jun 06, 2026 at 03:31:37PM -0700, James Lu wrote:
I'm running into some issues porting my icoextract package to pyproject.toml. I've gotten it to build and function with pybuild-plugin-pyproject, but it required some hacks along the way. However, I'm not sure if I'm seeing bugs/limitations in the toolchain, or I'm using the tools in some non-standard manner.

I've staged the changes at https://salsa.debian.org/jlu/icoextract/-/tree/debian/experimental?ref_type=heads. (Disclaimer: I am also the upstream author)

1) The .deb package seems to leave behind /usr/lib/python3/dist-packages/build/lib/icoextract. I can remove it manually with an execute_after_dh_auto_install rule, but it doesn't feel like this should be necessary. I've attached what the file list looks like without the rm -rf rule.

This usually happens because the setuptools configuration in your pyproject.toml fails to exclude the "build" directory, which becomes a problem when the packaging builds for two different Python versions. The typical fix is to change this:

  [tool.setuptools.packages.find]
  exclude = ["tests"]

... to this:

  [tool.setuptools.packages.find]
  include = ["icoextract", "icoextract.*"]

2) lintian complains about additional files in /usr/lib/python3.14/dist-packages/icoextract-0.3.0.dist-info/. The rest of the source files are installed to /usr/lib/python3/dist-packages/icoextract/, which is what I expect from previous versions currently in the archive.

This is a side-effect of 1).

3) `export PYBUILD_INSTALL_ARGS=--install-scripts=debian/tmp` doesn't seem to do anything now. I think that might be because --install-scripts is a setup.py specific feature, but the wiki is still hinting at this approach for packaging programs[1][2]. In my case, I'm fine with changing python3-icoextract to contain the library & CLI utils, and making icoextract a meta-package instead. AFAICT most distros did not bother to split the package at all.

If this is still a problem after fixing 1), consider just moving the relevant files around in an execute_after_dh_auto_install rule in debian/rules. Much easier.

--
Colin Watson (he/him)                              [[email protected]]

Reply via email to