]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
classes-recipe/python_pep517: remove all RECORD files
authorRoss Burton <ross.burton@arm.com>
Wed, 20 Nov 2024 19:51:23 +0000 (19:51 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 21 Nov 2024 12:14:20 +0000 (12:14 +0000)
commit917df5ed022f9512473fe0971db48b5253c97b85
treecae3e0920249a1839a17ac991eb97e54a88f984a
parent286d456e71ee2730c197ce394d6be2c7eeced18d
classes-recipe/python_pep517: remove all RECORD files

Python modules install metadata into a .dist-info directory, one of which
is RECORD, which contains the files that were installed and their
checksum[1].  This is typically used by pip to validate the install, or
to know what files to remove when the module is uninstalled.

This is slightly problematic when we need to do patching of installed
.py files in do_install(), as the RECORD file has already been written
at that point.

However, the RECORD files only really have a use outside of a system-
managed environment, which our python packages are.  We already have
commands to verify and remove modules (opkg, dpkg, rpm) and the RECORD
file existing simply allows people to 'sudo pip' and alter the package-
managed directories outside of the package manager.

This is not a good idea, and some other distros remove the RECORD file
to stop this possibility:
- Debian[2]
- Fedora[3]
- Gentoo[4]

We can follow for all packages which inherit python_pep517, which is the
majority of the Python packages now.

[1] https://peps.python.org/pep-0491/#the-dist-info-directory
[2] https://salsa.debian.org/python-team/tools/dh-python/-/blob/master/dhpython/fs.py?ref_type=heads#L185
[3] https://src.fedoraproject.org/rpms/pyproject-rpm-macros/blob/rawhide/f/macros.pyproject#_105
[4] https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73c49f3c00415dee99407dabba8d3b22895c9d25

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/python_pep517.bbclass