Il giorno mer 10 feb 2021 alle ore 20:15 Andreas K. Hüttel <
[email protected]> ha scritto:
> > Some ideas for portage enhancements:
> >
> > 1. Ability to fetch binary packages from some kind of repo.
> > 2. Ability to have multiple binary packages co-exist in a repo (local
> > or remote) with different build attributes (arch, USE, CFLAGS,
> > DEPENDS, whatever).
> > 3. Ability to pick the most appropriate binary packages to use based
> > on user preferences (with a mix of hard and soft preferences).
>
> The more definite answer should come from Zac, but I think a good part of
> this
> is already implemented. :)
>
> kind of, from make.conf manpage:
binpkg-multi-instance
Enable support for multiple binary package in‐
stances per ebuild. Having multiple instances is
useful for a number of purposes, such as retaining
builds that were built with different USE flags or
linked against different versions of libraries.
The location of any particular package within
PKGDIR can be expressed as follows:
${PKGDIR}/${CATEGORY}/${PN}/${PF}-${BUILD_ID}.xpak
The build-id starts at 1 for the first build of a
particular ebuild, and is incremented by 1 for
each new build. It is possible to share a writable
PKGDIR over NFS, and locking ensures that each
package added to PKGDIR will have a unique
build-id. It is not necessary to migrate an exist‐
ing PKGDIR to the new layout, since portage is ca‐
pable of working with a mixed PKGDIR layout, where
packages using the old layout are allowed to re‐
main in place.
The new PKGDIR layout is backward-compatible with
binhost clients running older portage, since the
file format is identical, the per-package PATH at‐
tribute in the 'Packages' index directs them to
download the file from the correct URI, and they
automatically use BUILD_TIME metadata to select
the latest builds.
There is currently no automated way to prune old
builds from PKGDIR, although it is possible to re‐
move packages manually, and then run 'emaint --fix
binhost' to update the ${PKGDIR}/Packages index.