diff options
author | Fabian Groffen <grobian@gentoo.org> | 2025-01-13 21:02:40 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2025-01-13 21:03:36 +0100 |
commit | 1fc8816900f5911eb3cda8478dd545f5d7f060bf (patch) | |
tree | b8149d69bef12de634c8cae17c1894a10ebc4522 /app-portage | |
parent | media-libs/mesa: Make dependency on spirv-tools unconditional (diff) | |
download | gentoo-1fc8816900f5911eb3cda8478dd545f5d7f060bf.tar.gz gentoo-1fc8816900f5911eb3cda8478dd545f5d7f060bf.tar.bz2 gentoo-1fc8816900f5911eb3cda8478dd545f5d7f060bf.zip |
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>
Diffstat (limited to 'app-portage')
-rw-r--r-- | app-portage/prefix-toolkit/Manifest | 1 | ||||
-rw-r--r-- | app-portage/prefix-toolkit/prefix-toolkit-11.ebuild | 169 |
2 files changed, 170 insertions, 0 deletions
diff --git a/app-portage/prefix-toolkit/Manifest b/app-portage/prefix-toolkit/Manifest index ebd30aa764bd..d9e1c7f95653 100644 --- a/app-portage/prefix-toolkit/Manifest +++ b/app-portage/prefix-toolkit/Manifest @@ -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 diff --git a/app-portage/prefix-toolkit/prefix-toolkit-11.ebuild b/app-portage/prefix-toolkit/prefix-toolkit-11.ebuild new file mode 100644 index 000000000000..1a2fcf041b1b --- /dev/null +++ b/app-portage/prefix-toolkit/prefix-toolkit-11.ebuild @@ -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} +} |