Summary: | sys-apps/portage: implement an ebuild generator for "ebins" which are inspired by paludis "pbins" and IUSE_RUNTIME (GLEP 62) | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Zac Medico <zmedico> |
Component: | Binary packages support | Assignee: | Portage team <dev-portage> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | gentoo, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
URL: | https://archives.gentoo.org/gentoo-dev/message/f648bd29b10a32333fd0e32d904ef2d1 | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=639376 https://bugs.gentoo.org/show_bug.cgi?id=728818 https://bugs.gentoo.org/show_bug.cgi?id=777111 https://bugs.gentoo.org/show_bug.cgi?id=777624 https://bugs.gentoo.org/show_bug.cgi?id=453618 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Zac Medico
2021-02-24 11:53:47 UTC
The ebuild generator script can take an existing $PKGDIR or unpacked image directory (like a stage3) as input, and generate an "ebin" binhost as output. It will automatically split out pre-built content bundles for installsources and splitdebug as shown in comment #0. If there is more than one build for a particular package version and USE combination, then the script will choose the package instance with latest BUILD_TIME metadata (in alignment with FEATURES=binpkg-multi-instance). For the ebuild environment used to execute ebin pkg_setup and pkg_preinst phases, we should use the regular environment.bz2 from the binary package that was built for the corresponding USE combination. The environment.bz2 will come from an xpak or gkpkg format bundle. The installsources and splitdebug bundles can also be formatted as xpak or gkpkg, in order to carry metadata (they don't need to carry environment.bz2). In order to obtain the closest possible build USE match, it would be useful for emerge to score binary packages based on how much their USE configuration differs from the local USE configuration. We can use difflib to implement this, in the same way as emerge --search uses it to implement fuzzy search. |