repo/gentoo:master commit in: sys-apps/portage/

"Sam James" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1787076272.3e4a49b075dd6dd9d556c3d826dac3d3970fc5c7.sam@gentoo>
commit:     3e4a49b075dd6dd9d556c3d826dac3d3970fc5c7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 18 18:02:48 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Aug 18 18:04:32 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e4a49b0

sys-apps/portage: add 3.0.81.3

Matt Turner (2):
      doebuild: rebind loaded module paths for self update
      tests: cover self update with a relocated install

Sam James (5):
      ebuild.sh: allow reading ourselves in die()
      ebuild.sh: add 2 missing `local`
      ebuild.sh: inherit: strip any path components
      sync: git: don't print the key being used with --quiet
      NEWS, meson.build: prepare for portage-3.0.81.3

Ulrich Müller (1):
      isolated-functions.sh: Don't call sed in die()

Bug: https://bugs.gentoo.org/976616
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/portage/Manifest                |   1 +
 sys-apps/portage/portage-3.0.81.3.ebuild | 234 +++++++++++++++++++++++++++++++
 2 files changed, 235 insertions(+)

diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
index f2b3855faf8f..b9e0c9fc4443 100644
--- a/sys-apps/portage/Manifest
+++ b/sys-apps/portage/Manifest
@@ -1 +1,2 @@
 DIST portage-3.0.81.2.tar.bz2 1240200 BLAKE2B 80a97e7c5c679db6122a6f656d56c6a758cdb004b6f331792930050572205ae3c7d410cdcfad914250eb3b5aec6abfc1d20ba63079023731be4478f59134355a SHA512 0f4426d6de6dbf70851f8c94a5f553a71b1f8786c5da12f15bb6f8bc109be3ebe6156f52b6ccc3e1f9b722e2052eafab87a9f03da0e6a916dc54a97fd2a54cef
+DIST portage-3.0.81.3.tar.bz2 1240401 BLAKE2B c4c1c1b4a629e35e2445ffda8720c3e7cd72f96d3970de0f43c0f1c52abcc12473ff5ed974ab99006e5ac723430f1c5fc83f4565454f1779b94a4501268d6b42 SHA512 cbf2488a91046aec23cbf6b6fa3cbef708dc052d14383a4c2ab0aa5e17d322ce773dd7e9422677dcfd4b3ad2ffa27023c1b16b21842319131944c16899550313

diff --git a/sys-apps/portage/portage-3.0.81.3.ebuild b/sys-apps/portage/portage-3.0.81.3.ebuild
new file mode 100644
index 000000000000..638ac9ec8536
--- /dev/null
+++ b/sys-apps/portage/portage-3.0.81.3.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..15} )
+PYTHON_REQ_USE='bzip2(+),threads(+)'
+TMPFILES_OPTIONAL=1
+
+inherit meson linux-info python-r1 tmpfiles
+
+DESCRIPTION="The package management and distribution system for Gentoo"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
+
+if [[ ${PV} == 9999 ]] ; then
+	EGIT_REPO_URI="
+		https://anongit.gentoo.org/git/proj/portage.git
+		https://github.com/gentoo/portage.git
+	"
+	inherit git-r3
+else
+	SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/tar-1.27
+	>=dev-build/meson-1.3.0-r1
+	>=sys-apps/sed-4.0.5
+	sys-devel/patch
+	!build? ( $(python_gen_impl_dep 'ssl(+)') )
+	apidoc? (
+		dev-python/sphinx[${PYTHON_USEDEP}]
+		dev-python/sphinx-epytext[${PYTHON_USEDEP}]
+	)
+	doc? (
+		~app-text/docbook-xml-dtd-4.4
+		app-text/xmlto
+	)
+	test? (
+		dev-python/pytest-xdist[${PYTHON_USEDEP}]
+		dev-vcs/git
+	)
+"
+# Require sandbox-2.2 for bug #288863.
+# For whirlpool hash, require python[ssl] (bug #425046).
+RDEPEND="
+	${PYTHON_DEPS}
+	>=acct-user/portage-0-r4
+	>=app-arch/tar-1.27
+	app-arch/zstd
+	>=app-misc/pax-utils-0.1.17
+	dev-lang/python-exec:2
+	>=sys-apps/baselayout-2.9
+	>=sys-apps/findutils-4.9
+	!build? (
+		>=app-admin/eselect-1.2
+		app-portage/getuto
+		>=app-shells/bash-5.3:0
+		dev-util/debugedit
+		>=sec-keys/openpgp-keys-gentoo-release-20240703
+		>=sys-apps/sed-4.0.5
+		rsync-verify? (
+			app-alternatives/gpg[ssl(-)]
+			>=app-portage/gemato-14.5[${PYTHON_USEDEP}]
+		)
+	)
+	kernel_linux? (
+		sys-apps/util-linux
+		elibc_glibc? ( >=sys-apps/sandbox-2.2 )
+		elibc_musl? ( >=sys-apps/sandbox-2.2 )
+	)
+	selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
+	xattr? ( kernel_linux? (
+		>=sys-apps/install-xattr-0.3
+	) )
+"
+# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
+# NOTE: FEATURES=installsources requires debugedit and rsync
+PDEPEND="
+	!build? (
+		>=net-misc/rsync-2.6.4
+		>=sys-apps/coreutils-6.4
+		>=sys-apps/file-5.44-r3
+	)
+"
+
+pkg_pretend() {
+	local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
+
+	check_extra_config
+}
+
+src_prepare() {
+	default
+
+	if use prefix-guest; then
+		sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \
+			-e "s|^\\[gentoo\\]|[gentoo_prefix]|" \
+			-e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \
+			-i cnf/repos.conf || die "sed failed"
+	fi
+}
+
+src_configure() {
+	local code_only=false
+	python_foreach_impl my_src_configure
+}
+
+my_src_configure() {
+	local emesonargs=(
+		-Dcode-only=${code_only}
+		-Deprefix="${EPREFIX}"
+		-Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}"
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+		$(meson_use doc)
+		$(meson_use apidoc)
+		$(meson_use gentoo-dev)
+		$(meson_use ipc)
+		$(meson_use xattr)
+	)
+
+	if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then
+		emesonargs+=( -Dnative-extensions=true )
+	else
+		emesonargs+=( -Dnative-extensions=false )
+	fi
+
+	if use build; then
+		emesonargs+=( -Drsync-verify=false )
+	else
+		emesonargs+=( $(meson_use rsync-verify) )
+	fi
+
+	meson_src_configure
+	code_only=true
+}
+
+src_compile() {
+	python_foreach_impl meson_src_compile
+}
+
+src_test() {
+	local EPYTEST_XDIST=1
+	local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+	python_foreach_impl epytest
+}
+
+src_install() {
+	python_foreach_impl my_src_install
+	dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf
+
+	local scripts
+	mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die)
+	python_replicate_script "${scripts[@]}"
+}
+
+my_src_install() {
+	local pydirs=(
+		"${D}$(python_get_sitedir)"
+		"${ED}/usr/lib/portage/${EPYTHON}"
+	)
+
+	meson_src_install
+	python_fix_shebang "${pydirs[@]}"
+	python_optimize "${pydirs[@]}"
+}
+
+pkg_preinst() {
+	if ! use build && [[ -z ${ROOT} ]]; then
+		python_setup
+		local sitedir=$(python_get_sitedir)
+		[[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory"
+		env -u DISTDIR \
+			-u PORTAGE_OVERRIDE_EPREFIX \
+			-u PORTAGE_REPOSITORIES \
+			-u PORTDIR \
+			-u PORTDIR_OVERLAY \
+			PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
+			ED="${ED}" \
+			"${PYTHON}" -m portage._compat_upgrade.default_locations || die
+
+		env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \
+			PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
+			ED="${ED}" \
+			"${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
+
+		env -u FEATURES -u PORTAGE_REPOSITORIES \
+			PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
+			ED="${ED}" \
+			"${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die
+
+		env -u BINPKG_FORMAT \
+			PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
+			ED="${ED}" \
+			"${PYTHON}" -m portage._compat_upgrade.binpkg_format || die
+	fi
+
+	# elog dir must exist to avoid logrotate error for bug #415911.
+	# This code runs in preinst in order to bypass the mapping of
+	# portage:portage to root:root which happens after src_install.
+	keepdir /var/log/portage/elog
+	# This is allowed to fail if the user/group are invalid for prefix users.
+	if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then
+		chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog}
+	fi
+
+	if has_version "<${CATEGORY}/${PN}-2.3.77"; then
+		elog "The emerge --autounmask option is now disabled by default, except for"
+		elog "portions of behavior which are controlled by the --autounmask-use and"
+		elog "--autounmask-license options. For backward compatibility, previous"
+		elog "behavior of --autounmask=y and --autounmask=n is entirely preserved."
+		elog "Users can get the old behavior simply by adding --autounmask to the"
+		elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this"
+		elog "change, see https://bugs.gentoo.org/658648."
+	fi
+}
+
+pkg_postinst() {
+	# Warn about obsolete "enotice" script, bug #867010
+	local bashrc=${EROOT}/etc/portage/profile/profile.bashrc
+	if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then
+		eerror "Obsolete 'enotice' script detected!"
+		eerror "Please remove this from ${bashrc} to avoid problems."
+		eerror "See bug 867010 for more details."
+	fi
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.