app-portage/prefix-toolkit-11: revbump for updated startprefix script

Issue: https://github.com/gentoo/prefix-toolkit/pull/1
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
This commit is contained in:
Fabian Groffen 2025-01-13 21:02:40 +01:00
parent 14d44e4575
commit 1fc8816900
No known key found for this signature in database
GPG Key ID: CE95DA854E444293
2 changed files with 170 additions and 0 deletions

View File

@ -1 +1,2 @@
DIST prefix-toolkit-10.tar.bz2 5715 BLAKE2B fe8b4642fc4f8fa97bd8c9dc4f9e907dd0ca464ddc20e28d2888354f766fce04dd6ebc3bfae23bc776c59986c8167cc94510fb950124917874c5dde4f68cddfe SHA512 58f7fabab8ce5e2c3b2f0725733d02e340efb714ecf3556c27dbe95e7cf9c4b2f4ae658c44749cf2c62111d1135c60c333bbf93ee1c7b79ea11b908cc923c730
DIST prefix-toolkit-11.tar.bz2 5733 BLAKE2B 8077fb9c5a669d45ebec6e088d7770e149d1816db779828155857b5c5f3f90cfcc049194b683753feec997121409513a16b7f9f0b1757eabf1c011386145c018 SHA512 50e509f2c5a8cf6764820baa4d649cdb4f8a45529b116a508520cb9244f4fd6dbb728216ba853b15d118b7c7171f8913cdf7b05f84263b433f128f1f76758c3a

View File

@ -0,0 +1,169 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Utilities for users of Gentoo Prefix"
HOMEPAGE="https://prefix.gentoo.org/"
SRC_URI="https://gitweb.gentoo.org/proj/prefix/prefix-toolkit.git/snapshot/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
[[ ${PV} == 9999 ]] ||
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~riscv-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
DEPEND=""
BDEPEND="${DEPEND}
>sys-apps/portage-2.3.62
"
# In prefix-stack, these dependencies actually are the @system set,
# as we rely on the base prefix anyway for package management,
# which should have a proper @system set.
# Strictly speaking, only baselayout and gcc-config are necessary, but
# it is easier for now to install elt-patches, gentoo-functions and
# gnuconfig as well, instead of fixing all uses that expect them in
# EPREFIX rather than BROOT.
# See also: pkg_preinst
RDEPEND="${DEPEND}
prefix-stack? (
sys-devel/gcc-config
app-portage/elt-patches
sys-apps/gentoo-functions
sys-devel/gnuconfig
)
"
src_unpack() {
default
if use prefix-stack ; then
local editor pager
for editor in "${EDITOR}" {"${EPREFIX}","${BROOT}"}/bin/nano
do
[[ -x ${editor} ]] || continue
done
for pager in "${PAGER}" {"${EPREFIX}","${BROOT}"}/usr/bin/less
do
[[ -x ${pager} ]] || continue
done
printf '%s\n' "EDITOR=\"${editor}\"" "PAGER=\"${pager}\"" > 000fallback
fi
}
my_prefixify() {
local ebash eenv
if use prefix-stack ; then
ebash="${BROOT}/bin/bash"
eenv="${BROOT}/usr/bin/env"
else
ebash="${EPREFIX}/bin/bash"
eenv="${EPREFIX}/usr/bin/env"
fi
# the @=@ prevents repoman from believing we set readonly vars
sed -e "s,@GENTOO_PORTAGE_BPREFIX@,${BROOT},g" \
-e "s,@GENTOO_PORTAGE_EPREFIX@,${EPREFIX},g" \
-e "s,@GENTOO_PORTAGE_CHOST@,${CHOST},g" \
-e "s,@GENTOO_PORTAGE_EBASH@,${ebash},g" \
-e "s,@GENTOO_PORTAGE_EENV@,${eenv},g" \
-e "s,@=@,=,g" \
-i "$@" || die
}
src_configure() {
# do not eprefixify during unpack, to allow userpatches to apply
my_prefixify *
}
src_install-prefix-stack-ccwrap() {
# install toolchain wrapper.
local wrapperdir=/usr/${CHOST}/gcc-bin/${CHOST}-${PN}/${PV}
local wrappercfg=${CHOST}-${P}
exeinto $wrapperdir
doexe prefix-stack-ccwrap
local cc
for cc in \
gcc \
g++ \
cpp \
c++ \
windres \
; do
dosym prefix-stack-ccwrap $wrapperdir/${CHOST}-${cc}
dosym ${CHOST}-${cc} $wrapperdir/${cc}
done
# LDPATH is required to keep gcc-config happy :(
cat > ./${wrappercfg} <<-EOF
GCC_PATH="${EPREFIX}$wrapperdir"
LDPATH="${EPREFIX}$wrapperdir"
EOF
insinto /etc/env.d/gcc
doins ./${wrappercfg}
}
src_install() {
if use prefix-stack; then
src_install-prefix-stack-ccwrap
insinto /etc
doins prefix-stack.bash_login
insinto /etc/bash
newins prefix-stack.bashrc bashrc
newenvd prefix-stack.envd.99stack 99stack
doenvd 000fallback
keepdir /usr/share/aclocal
else
dobin prefix-stack-setup
fi
if use prefix; then
exeinto /
doexe startprefix
fi
}
pkg_preinst() {
use prefix-stack || return 0
ebegin "Purging @system package set for prefix stack"
# In prefix stack we empty out the @system set defined via make.profile,
# as we may be using some normal profile, but that @system set applies
# to the base prefix only.
# Instead, we only put ourselve into the @system set, and have additional
# @system packages in our RDEPEND.
my_lsprofile() {
(
cd -P "${1:-.}" || exit 1
[[ -r ./parent ]] &&
for p in $(<parent)
do
my_lsprofile "${p}" || exit 1
done
pwd -P
)
}
local systemset="/etc/portage/profile/packages"
dodir "${systemset%/*}"
[[ -s ${EROOT}${systemset} ]] &&
grep -v "# maintained by ${PN}" \
"${EROOT}${systemset}" \
> "${ED}${systemset}"
local p
for p in $(my_lsprofile "${EPREFIX}"/etc/portage/make.profile)
do
[[ -s ${p}/${systemset##*/} ]] || continue
awk '/^[ \t]*[^-#]/{print "-" $1 " # maintained by '"${PN}-${PVR}"'"}' \
< "${p}"/packages || die
done | sort -u >> "${ED}${systemset}"
[[ ${PIPESTATUS[@]} == "0 0" ]] || die "failed to collect for ${systemset}"
echo "*${CATEGORY}/${PN} # maintained by ${PN}-${PVR}" >> "${ED}${systemset}" || die
eend $?
}
pkg_postinst() {
use prefix-stack || return 0
[[ -x ${EROOT}/usr/bin/gcc-config ]] || return 0
"${EROOT}"/usr/bin/gcc-config ${CHOST}-${P}
}