On Wed, Nov 20, 2024 at 1:51 PM Trevor Gamblin via lists.openembedded.org
<[email protected]> wrote:

>
> On 2024-11-20 14:51, Ross Burton via lists.openembedded.org wrote:
> > 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 <[email protected]>
> As discussed in IRC, LGTM.

Reviewed-by: Tim Orling <[email protected]>
Let us keep sane by following the upstream distributions lead. Thank you
Ross!

>
> > ---
> >   meta/classes-recipe/python_pep517.bbclass | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/classes-recipe/python_pep517.bbclass
> b/meta/classes-recipe/python_pep517.bbclass
> > index c30674c8ec8..e8cd1923ef2 100644
> > --- a/meta/classes-recipe/python_pep517.bbclass
> > +++ b/meta/classes-recipe/python_pep517.bbclass
> > @@ -50,6 +50,8 @@ python_pep517_do_install () {
> >       fi
> >
> >       nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE}
> --interpreter "${USRBINPATH}/env ${PEP517_INSTALL_PYTHON}" --destdir=${D}
> ${PEP517_WHEEL_PATH}/*.whl
> > +
> > +    find ${D} -path *.dist-info/RECORD -delete
> >   }
> >
> >   # A manual do_install that just uses unzip for bootstrapping purposes.
> Callers should DEPEND on unzip-native.
> >
> >
> >
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#207489): 
https://lists.openembedded.org/g/openembedded-core/message/207489
Mute This Topic: https://lists.openembedded.org/mt/109691086/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to