Porting the icoextract package to pyproject.toml

James Lu <[email protected]> Sat, 6 Jun 2026 15:31:37 -0700
Newsgroups gmane.linux.debian.devel.python
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------Ydh6ZeeVc5CdB0ESWxEYzk5V
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

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.

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.

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.

I'd appreciate any advice on fixing up the port!

Best,
James

[1]: https://wiki.debian.org/Python/Pybuild#CUSTOMIZATION
[2]: 
https://wiki.debian.org/Python/LibraryStyleGuide#Executables_and_library_packages
--------------Ydh6ZeeVc5CdB0ESWxEYzk5V
Content-Type: text/plain; charset=UTF-8; name="icoextract-extra-files.txt"
Content-Disposition: attachment; filename="icoextract-extra-files.txt"
Content-Transfer-Encoding: base64

JCBkcGtnLWRlYiAtYyAuLi9weXRob24zLWljb2V4dHJhY3RfMC4zLjAtMV9hbGwuZGViCmRy
d3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vCmRyd3hy
LXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyLwpkcnd4
ci14ci14IHJvb3Qvcm9vdCAgICAgICAgIDAgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9iaW4v
Ci1yd3hyLXhyLXggcm9vdC9yb290ICAgICAgIDIyNiAyMDI2LTA2LTA2IDEzOjUwIC4vdXNy
L2Jpbi9pY29leHRyYWN0Ci1yd3hyLXhyLXggcm9vdC9yb290ICAgICAgIDIyNiAyMDI2LTA2
LTA2IDEzOjUwIC4vdXNyL2Jpbi9pY29saXN0CmRyd3hyLXhyLXggcm9vdC9yb290ICAgICAg
ICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi8KZHJ3eHIteHIteCByb290L3Jvb3Qg
ICAgICAgICAwIDIwMjYtMDYtMDYgMTM6NTAgLi91c3IvbGliL3B5dGhvbjMvCmRyd3hyLXhy
LXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRo
b24zL2Rpc3QtcGFja2FnZXMvCmRyd3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2
LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvCmRy
d3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xp
Yi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliLwpkcnd4ci14ci14IHJvb3Qvcm9v
dCAgICAgICAgIDAgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy9kaXN0LXBh
Y2thZ2VzL2J1aWxkL2xpYi9pY29leHRyYWN0Lwotcnctci0tci0tIHJvb3Qvcm9vdCAgICAg
IDMwNDIgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy9kaXN0LXBhY2thZ2Vz
L2J1aWxkL2xpYi9pY29leHRyYWN0L19faW5pdF9fLnB5Ci1ydy1yLS1yLS0gcm9vdC9yb290
ICAgICAgMjc1NCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFj
a2FnZXMvYnVpbGQvbGliL2ljb2V4dHJhY3QvYmFzZV9leHRyYWN0b3IucHkKLXJ3LXItLXIt
LSByb290L3Jvb3QgICAgICAgNzQ3IDIwMjYtMDYtMDYgMTM6NTAgLi91c3IvbGliL3B5dGhv
bjMvZGlzdC1wYWNrYWdlcy9idWlsZC9saWIvaWNvZXh0cmFjdC9leGNlcHRpb25zLnB5Ci1y
dy1yLS1yLS0gcm9vdC9yb290ICAgICAgNDUzMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xp
Yi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliL2ljb2V4dHJhY3QvbmVfZXh0cmFj
dG9yLnB5Ci1ydy1yLS1yLS0gcm9vdC9yb290ICAgICAgNzYxNiAyMDI2LTA2LTA2IDEzOjUw
IC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliL2ljb2V4dHJhY3Qv
cGVfZXh0cmFjdG9yLnB5CmRyd3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2
LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliL2lj
b2V4dHJhY3Qvc2NyaXB0cy8KLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAgIDQ4IDIwMjYt
MDYtMDYgMTM6NTAgLi91c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9idWlsZC9saWIv
aWNvZXh0cmFjdC9zY3JpcHRzL19faW5pdF9fLnB5Ci1ydy1yLS1yLS0gcm9vdC9yb290ICAg
ICAgMTQ5MCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2Fn
ZXMvYnVpbGQvbGliL2ljb2V4dHJhY3Qvc2NyaXB0cy9leHRyYWN0LnB5Ci1ydy1yLS1yLS0g
cm9vdC9yb290ICAgICAgMTYzMiAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24z
L2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliL2ljb2V4dHJhY3Qvc2NyaXB0cy9pY29saXN0LnB5
Ci1ydy1yLS1yLS0gcm9vdC9yb290ICAgICAgMzQyNSAyMDI2LTA2LTA2IDEzOjUwIC4vdXNy
L2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGliL2ljb2V4dHJhY3Qvc2NyaXB0
cy90aHVtYm5haWxlci5weQotcnctci0tci0tIHJvb3Qvcm9vdCAgICAgIDIwNTUgMjAyNi0w
Ni0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy9kaXN0LXBhY2thZ2VzL2J1aWxkL2xpYi9p
Y29leHRyYWN0L3R5cGVzLnB5Ci1ydy1yLS1yLS0gcm9vdC9yb290ICAgICAgICAyMiAyMDI2
LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvYnVpbGQvbGli
L2ljb2V4dHJhY3QvdmVyc2lvbi5weQpkcnd4ci14ci14IHJvb3Qvcm9vdCAgICAgICAgIDAg
MjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy9kaXN0LXBhY2thZ2VzL2ljb2V4
dHJhY3QvCi1ydy1yLS1yLS0gcm9vdC9yb290ICAgICAgMzA0MiAyMDI2LTA2LTA2IDEzOjUw
IC4vdXNyL2xpYi9weXRob24zL2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC9fX2luaXRfXy5w
eQotcnctci0tci0tIHJvb3Qvcm9vdCAgICAgIDI3NTQgMjAyNi0wNi0wNiAxMzo1MCAuL3Vz
ci9saWIvcHl0aG9uMy9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3QvYmFzZV9leHRyYWN0b3Iu
cHkKLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAgNzQ3IDIwMjYtMDYtMDYgMTM6NTAgLi91
c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9pY29leHRyYWN0L2V4Y2VwdGlvbnMucHkK
LXJ3LXItLXItLSByb290L3Jvb3QgICAgICA0NTMwIDIwMjYtMDYtMDYgMTM6NTAgLi91c3Iv
bGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9pY29leHRyYWN0L25lX2V4dHJhY3Rvci5weQot
cnctci0tci0tIHJvb3Qvcm9vdCAgICAgIDc2MTYgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9s
aWIvcHl0aG9uMy9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3QvcGVfZXh0cmFjdG9yLnB5CmRy
d3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xp
Yi9weXRob24zL2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC9zY3JpcHRzLwotcnctci0tci0t
IHJvb3Qvcm9vdCAgICAgICAgNDggMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9u
My9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3Qvc2NyaXB0cy9fX2luaXRfXy5weQotcnctci0t
ci0tIHJvb3Qvcm9vdCAgICAgIDE0OTAgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0
aG9uMy9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3Qvc2NyaXB0cy9leHRyYWN0LnB5Ci1ydy1y
LS1yLS0gcm9vdC9yb290ICAgICAgMTYzMiAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9w
eXRob24zL2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC9zY3JpcHRzL2ljb2xpc3QucHkKLXJ3
LXItLXItLSByb290L3Jvb3QgICAgICAzNDI1IDIwMjYtMDYtMDYgMTM6NTAgLi91c3IvbGli
L3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9pY29leHRyYWN0L3NjcmlwdHMvdGh1bWJuYWlsZXIu
cHkKLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAyMDU1IDIwMjYtMDYtMDYgMTM6NTAgLi91
c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9pY29leHRyYWN0L3R5cGVzLnB5Ci1ydy1y
LS1yLS0gcm9vdC9yb290ICAgICAgICAyMiAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9w
eXRob24zL2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC92ZXJzaW9uLnB5CmRyd3hyLXhyLXgg
cm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24z
L2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC0wLjMuMC5kaXN0LWluZm8vCi1ydy1yLS1yLS0g
cm9vdC9yb290ICAgICAgICAgNyAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24z
L2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC0wLjMuMC5kaXN0LWluZm8vSU5TVEFMTEVSCi1y
dy1yLS1yLS0gcm9vdC9yb290ICAgICAgNDM5NCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xp
Yi9weXRob24zL2Rpc3QtcGFja2FnZXMvaWNvZXh0cmFjdC0wLjMuMC5kaXN0LWluZm8vTUVU
QURBVEEKLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAgIDkxIDIwMjYtMDYtMDYgMTM6NTAg
Li91c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9pY29leHRyYWN0LTAuMy4wLmRpc3Qt
aW5mby9XSEVFTAotcnctci0tci0tIHJvb3Qvcm9vdCAgICAgICAxNzMgMjAyNi0wNi0wNiAx
Mzo1MCAuL3Vzci9saWIvcHl0aG9uMy9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3QtMC4zLjAu
ZGlzdC1pbmZvL2VudHJ5X3BvaW50cy50eHQKLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAg
IDI0IDIwMjYtMDYtMDYgMTM6NTAgLi91c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9p
Y29leHRyYWN0LTAuMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CmRyd3hyLXhyLXggcm9v
dC9yb290ICAgICAgICAgMCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL2xpYi9weXRob24zLjE0
Lwpkcnd4ci14ci14IHJvb3Qvcm9vdCAgICAgICAgIDAgMjAyNi0wNi0wNiAxMzo1MCAuL3Vz
ci9saWIvcHl0aG9uMy4xNC9kaXN0LXBhY2thZ2VzLwpkcnd4ci14ci14IHJvb3Qvcm9vdCAg
ICAgICAgIDAgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy4xNC9kaXN0LXBh
Y2thZ2VzL2ljb2V4dHJhY3QtMC4zLjAuZGlzdC1pbmZvLwotcnctci0tci0tIHJvb3Qvcm9v
dCAgICAgICAgIDcgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0aG9uMy4xNC9kaXN0
LXBhY2thZ2VzL2ljb2V4dHJhY3QtMC4zLjAuZGlzdC1pbmZvL0lOU1RBTExFUgotcnctci0t
ci0tIHJvb3Qvcm9vdCAgICAgICAgMTggMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9saWIvcHl0
aG9uMy4xNC9kaXN0LXBhY2thZ2VzL2ljb2V4dHJhY3QtMC4zLjAuZGlzdC1pbmZvL3RvcF9s
ZXZlbC50eHQKZHJ3eHIteHIteCByb290L3Jvb3QgICAgICAgICAwIDIwMjYtMDYtMDYgMTM6
NTAgLi91c3Ivc2hhcmUvCmRyd3hyLXhyLXggcm9vdC9yb290ICAgICAgICAgMCAyMDI2LTA2
LTA2IDEzOjUwIC4vdXNyL3NoYXJlL2RvYy8KZHJ3eHIteHIteCByb290L3Jvb3QgICAgICAg
ICAwIDIwMjYtMDYtMDYgMTM6NTAgLi91c3Ivc2hhcmUvZG9jL3B5dGhvbjMtaWNvZXh0cmFj
dC8KLXJ3LXItLXItLSByb290L3Jvb3QgICAgICAgOTY3IDIwMjYtMDYtMDYgMTM6NTAgLi91
c3Ivc2hhcmUvZG9jL3B5dGhvbjMtaWNvZXh0cmFjdC9jaGFuZ2Vsb2cuRGViaWFuLmd6Ci1y
dy1yLS1yLS0gcm9vdC9yb290ICAgICAgMTMwMSAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL3No
YXJlL2RvYy9weXRob24zLWljb2V4dHJhY3QvY2hhbmdlbG9nLmd6Ci1ydy1yLS1yLS0gcm9v
dC9yb290ICAgICAgMTY5MSAyMDI2LTA2LTA1IDIzOjE5IC4vdXNyL3NoYXJlL2RvYy9weXRo
b24zLWljb2V4dHJhY3QvY29weXJpZ2h0CmRyd3hyLXhyLXggcm9vdC9yb290ICAgICAgICAg
MCAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL3NoYXJlL21hbi8KZHJ3eHIteHIteCByb290L3Jv
b3QgICAgICAgICAwIDIwMjYtMDYtMDYgMTM6NTAgLi91c3Ivc2hhcmUvbWFuL21hbjEvCi1y
dy1yLS1yLS0gcm9vdC9yb290ICAgICAgIDQ3MyAyMDI2LTA2LTA2IDEzOjUwIC4vdXNyL3No
YXJlL21hbi9tYW4xL2ljb2V4dHJhY3QuMS5negotcnctci0tci0tIHJvb3Qvcm9vdCAgICAg
ICA0MDEgMjAyNi0wNi0wNiAxMzo1MCAuL3Vzci9zaGFyZS9tYW4vbWFuMS9pY29saXN0LjEu
Z3oK

--------------Ydh6ZeeVc5CdB0ESWxEYzk5V--