summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2023-12-03 10:55:35 +0100
committerFabian Groffen <grobian@gentoo.org>2023-12-03 10:55:35 +0100
commit213ae19a34cd7a54b9548d7bcedc34c1eba1a4e4 (patch)
tree846cef070926f29e7e62ad110508d9bb5cfe1c9e /sys-apps
parentsys-apps/portage-3.0.55.1: fix LinkageMapMachO error (diff)
downloadprefix-213ae19a34cd7a54b9548d7bcedc34c1eba1a4e4.tar.gz
prefix-213ae19a34cd7a54b9548d7bcedc34c1eba1a4e4.tar.bz2
prefix-213ae19a34cd7a54b9548d7bcedc34c1eba1a4e4.zip
sys-apps/portage: cleanup + update interrevisions patch
Bug: https://bugs.gentoo.org/918717 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/portage/Manifest2
-rw-r--r--sys-apps/portage/files/portage-2.3.45-ebuildshell.patch354
-rw-r--r--sys-apps/portage/files/portage-3.0.55.1-interrevisions.patch (renamed from sys-apps/portage/files/portage-3.0.30-interrevisions.patch)10
-rw-r--r--sys-apps/portage/portage-3.0.21.ebuild307
-rw-r--r--sys-apps/portage/portage-3.0.30.1-r1.ebuild305
-rw-r--r--sys-apps/portage/portage-3.0.30.1.ebuild308
-rw-r--r--sys-apps/portage/portage-3.0.55.1.ebuild4
7 files changed, 9 insertions, 1281 deletions
diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
index 996a88e823..2abec9a5f7 100644
--- a/sys-apps/portage/Manifest
+++ b/sys-apps/portage/Manifest
@@ -1,5 +1,3 @@
-DIST prefix-portage-3.0.21.tar.bz2 1339211 BLAKE2B 019cf0f3d2d1c45e7849221fc40b49e2c84949b74c8a8c74fbd2ca451a2dd075fb7b8bfec121a173ca0848c57a5a57a62d465b2957c4eb4d87f6a180299da91e SHA512 0aff5004ae80e2cd9dce740c56c3c2643ef390510c3b3821d893e5c76733d3a8d4e7648963febb29479b9ee155868ec11526a393beb3b383e741451178f39e5a
-DIST prefix-portage-3.0.30.1.tar.bz2 1476396 BLAKE2B 955db5832b1d7d19e25c4ee644f7daa0dbfc7a259ea7018f207865aa8cf5eb8e1e8e2a31c90578162e181af6c043590f239b042e652c3eb2cba9f442bbfc0476 SHA512 1ff8afbee4b204488eb0ecb4bdd216bf754ae015a3bcd298d7b6fb0dd7a671ccbf31d9a4a49be8e3182708641abe008f25df5319e135aa25363b979d49517506
DIST prefix-portage-3.0.34.2.tar.bz2 1498499 BLAKE2B 47f53e4917bdf204eb23dadd9dc821c06da07d2e5c68cf0a3de908089e4121d45542e2120e57744db1c808a156595624915956e77f547ab671b1584b2c67cf0b SHA512 121dd885a73153e780e28c2e514d4b3babc44368aa6915b2009ed0b205051c2f6c37dd3ccfe8be5ea567e7bab2f9f9b0c5c5b81c49990fbac7360261721a5bb7
DIST prefix-portage-3.0.49.tar.bz2 1421955 BLAKE2B ac6e5b512f943826d0bf06225037885a138f3810db973a60c6dbca4f80d516e3aef3054b532f42a143b35702661a3d35ee59945f745b849dcd6fefbd4ff8f3cc SHA512 dee0035e048b1bfde5859b809bf6ffa3ca0674cd1d59d9cfcc14a279d87215223a6b4497274db7e443f27fd6dd05eadb043ae6872feb8fa8523994d9946b6879
DIST prefix-portage-3.0.55.1.tar.bz2 1460599 BLAKE2B 07982a1e6af0df7c7849aeab7ed2479bb2fe7ede16183bddba93d25d8839224f87967b0aa776c2cbc124f322b69a275e628e2817c7f3e01c9353a0eeda38fea8 SHA512 5f87c84baa9d13f0ad5aa534013ef7bf8219d742f940cad8a07bfea8630615885950aa6d7cf030fe6012061504d1eeee77a3e024a1bdc2da3a02bed550816805
diff --git a/sys-apps/portage/files/portage-2.3.45-ebuildshell.patch b/sys-apps/portage/files/portage-2.3.45-ebuildshell.patch
deleted file mode 100644
index e495ee4c24..0000000000
--- a/sys-apps/portage/files/portage-2.3.45-ebuildshell.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-From 8c6b115fa0325b5bed2e1a9c4c8e8af45cdecc2e Mon Sep 17 00:00:00 2001
-From: Michael Haubenwallner <michael.haubenwallner@salomon.at>
-Date: Wed, 6 Nov 2013 12:40:05 +0100
-Subject: [PATCH 1/2] Add ebuildshell feature, bug#155161.
-
----
- bin/ebuild.sh | 146 ++++++++++++++++++++++++++++++++++-
- bin/filter-bash-environment.py | 55 +++++++++----
- bin/save-ebuild-env.sh | 2 +-
- man/make.conf.5 | 6 ++
- lib/_emerge/AbstractEbuildProcess.py | 1 +
- lib/portage/const.py | 1 +
- 6 files changed, 194 insertions(+), 17 deletions(-)
-
-diff --git a/bin/ebuild.sh b/bin/ebuild.sh
-index f76a48d8e..683a4e9c1 100755
---- a/bin/ebuild.sh
-+++ b/bin/ebuild.sh
-@@ -121,7 +121,7 @@ __qa_source() {
- __qa_call() {
- local shopts=$(shopt) OLDIFS="$IFS"
- local retval
-- "$@"
-+ __call-ebuildshell "$@"
- retval=$?
- set +e
- [[ $shopts != $(shopt) ]] &&
-@@ -547,6 +547,150 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
- unset BIN_PATH BIN BODY FUNC_SRC
- fi
-
-+__call-ebuildshell() {
-+ if ! has ebuildshell ${FEATURES}; then
-+ "$@"
-+ return $?
-+ fi
-+ local __ebuildshell_args=( "$@" )
-+ # These are the variables I have seen 'bash -i' maintaining the values for:
-+ local __ebuildshell_bash_i_vars="__ebuildshell_.*
-+ _ BASH_ARGC BASH_ARGV BASH_COMMAND BASH_LINENO BASH_SOURCE
-+ BASH_VERSINFO BASH_SUBSHELL BASHOPTS BASHPID COMP_WORDBREAKS
-+ DIRSTACK EUID FUNCNAME GROUPS HISTCMD HISTFILE LINENO PIPESTATUS
-+ PPID PS1 PS2 PS3 PS4 PWD RANDOM SECONDS SHELLOPTS UID"
-+ # Allow recursive ebuildshell, for use in multibuild.eclass and similar:
-+ local __ebuildshell_pid=${BASHPID:-$(__bashpid)}
-+ local __ebuildshell_tmpf="${T}/ebuildshell.${__ebuildshell_pid}"
-+ rm -f "${__ebuildshell_tmpf}."{ebuild,return}-{env,rovars}
-+ (
-+ cat <<-EOE
-+ # local variables of functions using recursive ebuildshell are
-+ # visible to the EXIT trap of that recursive ebuildshell. To
-+ # keep them local, we have to filter them from that recursive
-+ # ebuildshell's return-env. As 'declare -p' is unable to tell
-+ # local-ity of variables, we abuse the trace attribute for local
-+ # variables to filter them from the return-env. So we need the
-+ # local alias active before declaring any functions.
-+ # On a sidehand, this allows for copy&paste of function body
-+ # lines including the local keyword.
-+ alias local='declare -t'
-+ shopt -s expand_aliases
-+ EOE
-+ (
-+ declare -p
-+ declare -fp
-+ shopt -p
-+ [[ ${BASH_VERSINFO[0]} == 3 ]] && export
-+ ) |
-+ (
-+ # we need everything but the bash vars after 'env -i'
-+ 2>"${__ebuildshell_tmpf}.ebuild-rovars" \
-+ "${PORTAGE_PYTHON:-/tools/haubi/gentoo/s01en24/usr/bin/python}" \
-+ "${PORTAGE_BIN_PATH}"/filter-bash-environment.py \
-+ --report-readonly-variables \
-+ --preserve-readonly-attribute \
-+ "${__ebuildshell_bash_i_vars}" \
-+ || die "filter-bash-environment.py failed"
-+ )
-+ # 'declare -g' is available since bash-4.2,
-+ # https://bugs.gentoo.org/show_bug.cgi?id=155161#c35
-+ if (( ${BASH_VERSINFO[0]} > 4 )) ||
-+ (( ${BASH_VERSINFO[0]} == 4 && ${BASH_VERSINFO[1]} >= 2 ))
-+ then
-+ __ebuildshell_bash42_true=
-+ __ebuildshell_bash42_false='#bash-4.2#'
-+ else
-+ __ebuildshell_bash42_true='#bash-4.2#'
-+ __ebuildshell_bash42_false=
-+ fi
-+ # The already readonly variables, without bash maintained ones:
-+ __ebuildshell_ro_ebuild_vars=$(<"${__ebuildshell_tmpf}.ebuild-rovars")
-+ cat <<-EOE
-+ # properly quote the function arguments
-+ $(declare -p __ebuildshell_args)
-+ set -- "\${__ebuildshell_args[@]}"
-+ unset __ebuildshell_args
-+ # be informative about what to do
-+ PS1="EBUILD ${PN} $1 \$ "
-+ type $1
-+ ${__ebuildshell_bash42_false}echo 'warning: preserving variables across phases requires bash-4.2'
-+ echo "WANTED: \$@"
-+ echo "or use: \"\\\$@\""
-+ # use bash history, but not the 'user's real one
-+ HISTFILE=~/.bash_history
-+ # but do not use history-expansion with '!',
-+ # for copy&paste of function body lines containing: !
-+ set +H
-+ # this is a debugging shell already
-+ shopt -u extdebug
-+ trap - DEBUG
-+ # at exit, dump the current environment
-+ trap "
-+ unalias local
-+ unset -f __call-ebuildshell
-+ rm -f '${__ebuildshell_tmpf}.return-'*
-+ (
-+ (
-+ # declare -p does not tell the -g flag,
-+ # so we add it by aliasing declare.
-+ ${__ebuildshell_bash42_true}echo \"alias declare='declare -g'\"
-+ declare -p
-+ ${__ebuildshell_bash42_true}echo \"unalias declare\"
-+ declare -fp
-+ shopt -p | grep -v '\\(expand_aliases\\|extdebug\\)$'
-+ $([[ ${BASH_VERSINFO[0]} == 3 ]] && echo export)
-+ ) |
-+ (
-+ # We may have more readonly variables now, yet we
-+ # need to filter variables that were readonly before.
-+ # And filter local variables by their trace attribute.
-+ 2>'${__ebuildshell_tmpf}.return-rovars' \\
-+ '${PORTAGE_PYTHON:-/tools/haubi/gentoo/s01en24/usr/bin/python}' \\
-+ '${PORTAGE_BIN_PATH}'/filter-bash-environment.py \\
-+ --report-readonly-variables \\
-+ --preserve-readonly-attribute \\
-+ --filter-traced-variables \\
-+ '${__ebuildshell_bash_i_vars} \
-+ ${__ebuildshell_ro_ebuild_vars}' \\
-+ || die 'filter-bash-environment.py failed'
-+ )
-+ ) > '${__ebuildshell_tmpf}.return-env'
-+ " EXIT
-+ # can do some cleanup right now
-+ rm -f '${__ebuildshell_tmpf}.ebuild-'*
-+ EOE
-+ ) > "${__ebuildshell_tmpf}.ebuild-env"
-+
-+ # pre-fill the history with "$@"
-+ echo '"$@"' >> ~/.bash_history
-+ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} ~/.bash_history &>/dev/null
-+
-+ env -i HOME=~ ${BASH} --rcfile "${__ebuildshell_tmpf}.ebuild-env" -i
-+
-+ # The environment- and exit-status handling after leaving the ebuildshell
-+ # prompt is expected to be identical as without the ebuildshell prompt.
-+ local __ebuildshell_status=$?
-+
-+ # We might be in a recursive ebuildshell, but do not want
-+ # any aliases being active while sourcing the return-env.
-+ local __ebuildshell_orig_aliases=$(alias)
-+ unalias -a
-+ source "${__ebuildshell_tmpf}.return-env"
-+ unalias -a
-+ eval "${__ebuildshell_orig_aliases}"
-+
-+ # Portage has a whitelist of readonly variables: If an ebuild defines
-+ # additional readonly variables, their readonly attribute is removed
-+ # across ebuild phases. If we ever want to preserve the readonly
-+ # attribute of additional ebuild-defined variables across phases,
-+ # when returning from the ebuildshell their names are in
-+ # "${__ebuildshell_tmpf}.return-rovars"
-+ rm -f "${__ebuildshell_tmpf}."{ebuild,return}-{env,rovars}
-+
-+ return ${__ebuildshell_status}
-+}
-+
- # Subshell/helper die support (must export for the die helper).
- export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
- trap 'exit 1' SIGTERM
-diff --git a/bin/filter-bash-environment.py b/bin/filter-bash-environment.py
-index 06cac7214..5590dbfc4 100755
---- a/bin/filter-bash-environment.py
-+++ b/bin/filter-bash-environment.py
-@@ -12,7 +12,8 @@ func_end_re = re.compile(br'^\}$')
-
- var_assign_re = re.compile(br'(^|^declare\s+-\S+\s+|^declare\s+|^export\s+)([^=\s]+)=("|\')?.*$')
- close_quote_re = re.compile(br'(\\"|"|\')\s*$')
--readonly_re = re.compile(br'^declare\s+-(\S*)r(\S*)\s+')
-+readonly_re = re.compile(br'^declare\s+-(\S*)r(\S*)\s+([^=\s]+)')
-+trace_re = re.compile(br'^declare\s+-\S*t\S*\s+')
- # declare without assignment
- var_declare_re = re.compile(br'^declare(\s+-\S+)?\s+([^=\s]+)\s*$')
-
-@@ -27,7 +28,7 @@ def have_end_quote(quote, line):
- return close_quote_match is not None and \
- close_quote_match.group(1) == quote
-
--def filter_declare_readonly_opt(line):
-+def filter_declare_readonly_opt(line, options):
- readonly_match = readonly_re.match(line)
- if readonly_match is not None:
- declare_opts = b''
-@@ -35,14 +36,19 @@ def filter_declare_readonly_opt(line):
- group = readonly_match.group(i)
- if group is not None:
- declare_opts += group
-+ var = readonly_match.group(3)
-+ if '--report-readonly-variables' in options:
-+ getattr(sys.stderr, 'buffer', sys.stderr).write(var + b'\n')
-+ if '--preserve-readonly-attribute' in options:
-+ declare_opts += b'r'
- if declare_opts:
- line = b'declare -' + declare_opts + \
-- b' ' + line[readonly_match.end():]
-+ b' ' + var + line[readonly_match.end():]
- else:
-- line = b'declare ' + line[readonly_match.end():]
-+ line = b'declare ' + var + line[readonly_match.end():]
- return line
-
--def filter_bash_environment(pattern, file_in, file_out):
-+def filter_bash_environment(pattern, file_in, file_out, options):
- # Filter out any instances of the \1 character from variable values
- # since this character multiplies each time that the environment
- # is saved (strange bash behavior). This can eventually result in
-@@ -66,6 +72,8 @@ def filter_bash_environment(pattern, file_in, file_out):
- quote = var_assign_match.group(3)
- filter_this = pattern.match(var_assign_match.group(2)) \
- is not None
-+ if not filter_this and '--filter-traced-variables' in options:
-+ filter_this = trace_re.match(line) is not None
- # Exclude the start quote when searching for the end quote,
- # to ensure that the start quote is not misidentified as the
- # end quote (happens if there is a newline immediately after
-@@ -75,7 +83,7 @@ def filter_bash_environment(pattern, file_in, file_out):
- multi_line_quote = quote
- multi_line_quote_filter = filter_this
- if not filter_this:
-- line = filter_declare_readonly_opt(line)
-+ line = filter_declare_readonly_opt(line, options)
- file_out.write(line.replace(b"\1", b""))
- continue
- else:
-@@ -84,8 +92,10 @@ def filter_bash_environment(pattern, file_in, file_out):
- # declare without assignment
- filter_this = pattern.match(declare_match.group(2)) \
- is not None
-+ if not filter_this and '--filter-traced-variables' in options:
-+ filter_this = trace_re.match(line) is not None
- if not filter_this:
-- line = filter_declare_readonly_opt(line)
-+ line = filter_declare_readonly_opt(line, options)
- file_out.write(line)
- continue
-
-@@ -122,13 +132,28 @@ if __name__ == "__main__":
- "while leaving bash function definitions and here-documents " + \
- "intact. The PATTERN is a space separated list of variable names" + \
- " and it supports python regular expression syntax."
-- usage = "usage: %s PATTERN" % os.path.basename(sys.argv[0])
-- args = sys.argv[1:]
--
-- if '-h' in args or '--help' in args:
-- sys.stdout.write(usage + "\n")
-- sys.stdout.flush()
-- sys.exit(os.EX_OK)
-+ usage = "usage: %s [-h|<options>] PATTERN" % os.path.basename(sys.argv[0])
-+ args = []
-+ known_options = {
-+ '--report-readonly-variables':
-+ "Write names of readonly variables to stderr.",
-+ '--preserve-readonly-attribute':
-+ "Preserve the '-r' flag in 'declare -r'.",
-+ '--filter-traced-variables':
-+ "Filter out variables declared with '-t' attribute."
-+ }
-+ options = {}
-+ for arg in sys.argv[1:]:
-+ if arg in known_options.keys():
-+ options[arg] = True
-+ continue
-+ if '-h' == arg or '--help' == arg:
-+ sys.stdout.write(usage + "\n\nKnown <options>:\n\n")
-+ for option, descr in known_options.items():
-+ sys.stdout.write(" " + option + "\t" + descr + "\n")
-+ sys.stdout.flush()
-+ sys.exit(os.EX_OK)
-+ args.append(arg)
-
- if len(args) != 1:
- sys.stderr.write(usage + "\n")
-@@ -151,5 +176,5 @@ if __name__ == "__main__":
-
- var_pattern = b'^(' + b'|'.join(var_pattern) + b')$'
- filter_bash_environment(
-- re.compile(var_pattern), file_in, file_out)
-+ re.compile(var_pattern), file_in, file_out, options)
- file_out.flush()
-diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
-index bb17382d4..af35a3327 100755
---- a/bin/save-ebuild-env.sh
-+++ b/bin/save-ebuild-env.sh
-@@ -53,7 +53,7 @@ __save_ebuild_env() {
- einfo einfon ewarn eerror ebegin __eend eend KV_major \
- KV_minor KV_micro KV_to_int get_KV has \
- __has_phase_defined_up_to \
-- hasv hasq __qa_source __qa_call \
-+ hasv hasq __qa_source __qa_call __call-ebuildshell \
- addread addwrite adddeny addpredict __sb_append_var \
- use usev useq has_version portageq \
- best_version use_with use_enable register_die_hook \
-diff --git a/man/make.conf.5 b/man/make.conf.5
-index b0c1aa4f2..568f350a0 100644
---- a/man/make.conf.5
-+++ b/man/make.conf.5
-@@ -408,6 +408,12 @@ exist). Also see the related \fIunmerge\-backup\fR feature.
- Use locks to ensure that unsandboxed ebuild phases never execute
- concurrently. Also see \fIparallel\-install\fR.
- .TP
-+.B ebuildshell
-+Drop into an interactive shell for each phase function, meant for
-+debugging. Because the shell would normally be used to execute the
-+phase function, commands like src_unpack or epatch are available in the
-+interactive shell. Use `die` to terminate the merge.
-+.TP
- .B fail\-clean
- Clean up temporary files after a build failure. This is particularly useful
- if you have \fBPORTAGE_TMPDIR\fR on tmpfs. If this feature is enabled, you
-diff --git a/lib/_emerge/AbstractEbuildProcess.py b/lib/_emerge/AbstractEbuildProcess.py
-index 370cac529..a521596e5 100644
---- a/lib/_emerge/AbstractEbuildProcess.py
-+++ b/lib/_emerge/AbstractEbuildProcess.py
-@@ -181,6 +181,7 @@ class AbstractEbuildProcess(SpawnProcess):
- self.fd_pipes = {}
- null_fd = None
- if 0 not in self.fd_pipes and \
-+ "ebuildshell" not in self.settings.features and \
- self.phase not in self._phases_interactive_whitelist and \
- "interactive" not in self.settings.get("PROPERTIES", "").split():
- null_fd = os.open('/dev/null', os.O_RDONLY)
-diff --git a/lib/portage/const.py b/lib/portage/const.py
-index 3c23c85ed..d9c57f300 100644
---- a/lib/portage/const.py
-+++ b/lib/portage/const.py
-@@ -161,6 +161,7 @@ SUPPORTED_FEATURES = frozenset([
- "distlocks",
- "downgrade-backup",
- "ebuild-locks",
-+ "ebuildshell",
- "fail-clean",
- "fakeroot",
- "fixlafiles",
---
-2.16.1
-
diff --git a/sys-apps/portage/files/portage-3.0.30-interrevisions.patch b/sys-apps/portage/files/portage-3.0.55.1-interrevisions.patch
index e53fbd233a..7a3e777924 100644
--- a/sys-apps/portage/files/portage-3.0.30-interrevisions.patch
+++ b/sys-apps/portage/files/portage-3.0.55.1-interrevisions.patch
@@ -1,11 +1,11 @@
-https://bugs.gentoo.org/832062
+https://bugs.gentoo.org/918717
-add (back) inter-revision support for Prefix Portage
+allow r0X.Y revision numbers in prefix
--- a/lib/portage/versions.py
+++ b/lib/portage/versions.py
@@ -53,7 +53,9 @@
- }
+ _pkg = r"[\w+][\w+-]*?"
_v = r"(\d+)((\.\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\d*)*)"
-_rev = r"\d+"
@@ -14,8 +14,8 @@ add (back) inter-revision support for Prefix Portage
+# END_PREFIX_LOCAL
_vr = _v + "(-r(" + _rev + "))?"
- _cp = {
-@@ -287,15 +289,47 @@
+ _cp = "(" + _cat + "/" + _pkg + "(-" + _vr + ")?)"
+@@ -252,15 +254,47 @@
if rval:
return rval
diff --git a/sys-apps/portage/portage-3.0.21.ebuild b/sys-apps/portage/portage-3.0.21.ebuild
deleted file mode 100644
index 5bf406162d..0000000000
--- a/sys-apps/portage/portage-3.0.21.ebuild
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( pypy3 python3_{9..11} )
-PYTHON_REQ_USE='bzip2(+),threads(+)'
-
-inherit distutils-r1 linux-info systemd prefix
-
-DESCRIPTION="Portage package manager used in Gentoo Prefix"
-HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-SLOT="0"
-IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux test xattr"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- app-arch/xz-utils
- test? ( dev-vcs/git )"
-DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/sed-4.0.5 sys-devel/patch
- doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
- apidoc? (
- dev-python/sphinx
- dev-python/sphinx-epytext
- )"
-# Require sandbox-2.2 for bug #288863.
-# For whirlpool hash, require python[ssl] (bug #425046).
-# For compgen, require bash[readline] (bug #445576).
-# app-portage/gemato goes without PYTHON_USEDEP since we're calling
-# the executable.
-RDEPEND="
- !prefix? ( acct-user/portage )
- app-arch/zstd
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/findutils-4.4
- !build? (
- >=sys-apps/sed-4.0.5
- >=app-shells/bash-5.0:0[readline]
- >=app-admin/eselect-1.2
- rsync-verify? (
- >=app-portage/gemato-14.5[${PYTHON_USEDEP}]
- >=sec-keys/openpgp-keys-gentoo-release-20180706
- >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
- )
- )
- elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
- elibc_musl? ( >=sys-apps/sandbox-2.2 )
- kernel_linux? ( sys-apps/util-linux )
- >=app-misc/pax-utils-0.1.18
- selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
- xattr? ( kernel_linux? (
- >=sys-apps/install-xattr-0.3
- ) )
- !<app-admin/logrotate-3.8.0
- !<app-portage/gentoolkit-0.4.6
- !<app-portage/repoman-2.3.10
- !~app-portage/repoman-3.0.0"
-PDEPEND="
- !build? (
- >=net-misc/rsync-2.6.4
- >=sys-apps/file-5.41
- >=sys-apps/coreutils-6.4
- )"
-# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
-# NOTE: FEATURES=installsources requires debugedit and rsync
-
-SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives https://dev.gentoo.org/~grobian/distfiles"
-
-prefix_src_archives() {
- local x y
- for x in ${@}; do
- for y in ${SRC_ARCHIVES}; do
- echo ${y}/${x}
- done
- done
-}
-
-TARBALL_PV=${PV}
-SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
- $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
-
-S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
-
-pkg_pretend() {
- local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
-
- check_extra_config
-}
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-
- eapply "${FILESDIR}"/${PN}-2.3.62-prefix-stack.patch # 658572
- eapply "${FILESDIR}"/${PN}-2.3.45-ebuildshell.patch # 155161
- if use gentoo-dev; then
- einfo "Disabling --dynamic-deps by default for gentoo-dev..."
- sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
- -i lib/_emerge/create_depgraph_params.py || \
- die "failed to patch create_depgraph_params.py"
-
- einfo "Enabling additional FEATURES for gentoo-dev..."
- echo 'FEATURES="${FEATURES} strict-keepdir"' \
- >> cnf/make.globals || die
- fi
-
- if use native-extensions; then
- printf "[build_ext]\nportage_ext_modules=true\n" >> \
- setup.cfg || die
- fi
-
- if ! use ipc ; then
- einfo "Disabling ipc..."
- sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
- -i lib/_emerge/AbstractEbuildProcess.py || \
- die "failed to patch AbstractEbuildProcess.py"
- fi
-
- if use xattr && use kernel_linux ; then
- einfo "Adding FEATURES=xattr to make.globals ..."
- echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
- || die "failed to append to make.globals"
- fi
-
- if use build || ! use rsync-verify; then
- sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
- -e '/^sync-webrsync-verify-signature/s|yes|no|' \
- -i cnf/repos.conf || die "sed failed"
- fi
-
- if [[ -n ${EPREFIX} ]] ; then
- # PREFIX LOCAL: only hack const_autotool
- local extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
- # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
- # tend not to update that often, as long as we are a separate ebuild
- # we can assume when unset, it's time for some older trick
- if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
- PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
- fi
- # We need to probe for bash in the Prefix, because it may not
- # exist, in which case we fall back to the currently in use
- # bash. This logic is necessary in particular during bootstrap,
- # where we pull ourselves out of a temporary place with tools
- local bash="${EPREFIX}/bin/bash"
- [[ ! -x ${bash} ]] && bash=${BASH}
-
- einfo "Adjusting sources for ${EPREFIX}"
- find . -type f -exec \
- sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
- -e "s|@PORTAGE_MV@|$(type -P mv)|" \
- -e "s|@PORTAGE_BASH@|${bash}|" \
- -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
- -e "s|@EXTRA_PATH@|${extrapath}|" \
- -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
- -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
- -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
- -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@sysconfdir@|${EPREFIX}/etc|" \
- -i '{}' + || \
- die "Failed to patch sources"
- # We don't need the below, since setup.py deals with this (and
- # more) so we don't have to make this correct
- # -e "s|@PORTAGE_BASE@|${EPREFIX}/usr/lib/portage/${EPYTHON}|" \
-
- # remove Makefiles, or else they will get installed
- find . -name "Makefile.*" -delete
-
- einfo "Prefixing shebangs ..."
- while read -r -d $'\0' ; do
- local shebang=$(head -n1 "$REPLY")
- if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
- sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
- die "sed failed"
- fi
- done < <(find . -type f ! -name etc-update -print0)
-
- einfo "Setting gentoo_prefix as reponame for emerge-webrsync"
- sed -i -e 's/repo_name=gentoo/repo_name=gentoo_prefix/' \
- bin/emerge-webrsync || die
-
- einfo "Making absent gemato non-fatal"
- sed -i -e '/exitcode = 127/d' \
- lib/portage/sync/modules/rsync/rsync.py || die
- # END PREFIX LOCAL
- fi
-
- # PREFIX LOCAL: make.conf is written by bootstrap-prefix.sh
- if use !prefix ; then
- cd "${S}/cnf" || die
- if [ -f "make.conf.example.${ARCH}".diff ]; then
- patch make.conf.example "make.conf.example.${ARCH}".diff || \
- die "Failed to patch make.conf.example"
- else
- eerror ""
- eerror "Portage does not have an arch-specific configuration for this arch."
- eerror "Please notify the arch maintainer about this issue. Using generic."
- eerror ""
- fi
- fi
-}
-
-python_compile_all() {
- local targets=()
- use doc && targets+=( docbook )
- use apidoc && targets+=( apidoc )
-
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-}
-
-python_test() {
- esetup.py test
-}
-
-python_install() {
- # Install sbin scripts to bindir for python-exec linking
- # they will be relocated in pkg_preinst()
- distutils-r1_python_install \
- --system-prefix="${EPREFIX}/usr" \
- --bindir="$(python_get_scriptdir)" \
- --docdir="${EPREFIX}/usr/share/doc/${PF}" \
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
- --portage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" \
- --sbindir="$(python_get_scriptdir)" \
- --sysconfdir="${EPREFIX}/etc" \
- "${@}"
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- local targets=()
- use doc && targets+=(
- install_docbook
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
- use apidoc && targets+=(
- install_apidoc
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
-
- # install docs
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-
- dotmpfiles "${FILESDIR}"/portage-ccache.conf
-
- # Due to distutils/python-exec limitations
- # these must be installed to /usr/bin.
- local sbin_relocations='archive-conf dispatch-conf emaint env-update etc-update fixpackages regenworld'
- einfo "Moving admin scripts to the correct directory"
- dodir /usr/sbin
- for target in ${sbin_relocations}; do
- einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
- mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
- done
-}
-
-pkg_preinst() {
- 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}}" \
- "${PYTHON}" -m portage._compat_upgrade.default_locations || die
-
- env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
-
- env -u FEATURES -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die
-
- # 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_USER}:${PORTAGE_GROUP} "${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
-}
diff --git a/sys-apps/portage/portage-3.0.30.1-r1.ebuild b/sys-apps/portage/portage-3.0.30.1-r1.ebuild
deleted file mode 100644
index 6e0cfe4038..0000000000
--- a/sys-apps/portage/portage-3.0.30.1-r1.ebuild
+++ /dev/null
@@ -1,305 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( pypy3 python3_{9..11} )
-PYTHON_REQ_USE='bzip2(+),threads(+)'
-TMPFILES_OPTIONAL=1
-
-inherit distutils-r1 linux-info toolchain-funcs tmpfiles prefix
-
-DESCRIPTION="Portage package manager used in Gentoo Prefix"
-HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
-SRC_URI="https://dev.gentoo.org/~grobian/distfiles/prefix-${P}.tar.bz2"
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-SLOT="0"
-IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux test xattr"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- app-arch/xz-utils
- test? ( dev-vcs/git )"
-DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/sed-4.0.5 sys-devel/patch
- doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
- apidoc? (
- dev-python/sphinx[${PYTHON_USEDEP}]
- dev-python/sphinx-epytext[${PYTHON_USEDEP}]
- )"
-# Require sandbox-2.2 for bug #288863.
-# For whirlpool hash, require python[ssl] (bug #425046).
-# For compgen, require bash[readline] (bug #445576).
-# app-portage/gemato goes without PYTHON_USEDEP since we're calling
-# the executable.
-RDEPEND="
- !prefix? ( acct-user/portage )
- app-arch/zstd
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/findutils-4.4
- !build? (
- >=sys-apps/sed-4.0.5
- >=app-shells/bash-5.0:0[readline]
- >=app-admin/eselect-1.2
- rsync-verify? (
- >=app-portage/gemato-14.5[${PYTHON_USEDEP}]
- >=sec-keys/openpgp-keys-gentoo-release-20180706
- >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
- )
- )
- elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
- elibc_musl? ( >=sys-apps/sandbox-2.2 )
- kernel_linux? ( sys-apps/util-linux )
- >=app-misc/pax-utils-0.1.18
- selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
- xattr? ( kernel_linux? (
- >=sys-apps/install-xattr-0.3
- ) )
- !<app-admin/logrotate-3.8.0
- !<app-portage/gentoolkit-0.4.6
- !<app-portage/repoman-2.3.10
- !~app-portage/repoman-3.0.0"
-PDEPEND="
- !build? (
- >=net-misc/rsync-2.6.4
- >=sys-apps/file-5.41
- >=sys-apps/coreutils-6.4
- )"
-# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
-# NOTE: FEATURES=installsources requires debugedit and rsync
-
-S="${WORKDIR}"/prefix-${P}
-
-pkg_pretend() {
- local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
-
- if use native-extensions && tc-is-cross-compiler; then
- einfo "Disabling USE=native-extensions for cross-compilation (bug #612158)"
- fi
-
- check_extra_config
-}
-
-python_prepare_all() {
- local PATCHES=(
- "${FILESDIR}"/${PN}-3.0.30-prefix-stack.patch # 658572
- "${FILESDIR}"/${PN}-3.0.30-ebuildshell.patch # 155161
- "${FILESDIR}"/${PN}-3.0.30-interrevisions.patch # 832062
- )
-
- distutils-r1_python_prepare_all
-
- sed -e "s:^VERSION = \"HEAD\"$:VERSION = \"${PV}\":" -i lib/portage/__init__.py || die
-
- if use gentoo-dev; then
- einfo "Disabling --dynamic-deps by default for gentoo-dev..."
- sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
- -i lib/_emerge/create_depgraph_params.py || \
- die "failed to patch create_depgraph_params.py"
-
- einfo "Enabling additional FEATURES for gentoo-dev..."
- echo 'FEATURES="${FEATURES} ipc-sandbox network-sandbox strict-keepdir"' \
- >> cnf/make.globals || die
- fi
-
- if use native-extensions && ! tc-is-cross-compiler; then
- printf "[build_ext]\nportage_ext_modules=true\n" >> \
- setup.cfg || die
- fi
-
- if ! use ipc ; then
- einfo "Disabling ipc..."
- sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
- -i lib/_emerge/AbstractEbuildProcess.py || \
- die "failed to patch AbstractEbuildProcess.py"
- fi
-
- if use xattr && use kernel_linux ; then
- einfo "Adding FEATURES=xattr to make.globals ..."
- echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
- || die "failed to append to make.globals"
- fi
-
- if use build || ! use rsync-verify; then
- sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
- -e '/^sync-webrsync-verify-signature/s|yes|no|' \
- -i cnf/repos.conf || die "sed failed"
- fi
-
- if [[ -n ${EPREFIX} ]] ; then
- # PREFIX LOCAL: only hack const_autotool
- local extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
- # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
- # tend not to update that often, as long as we are a separate ebuild
- # we can assume when unset, it's time for some older trick
- if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
- PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
- fi
- # We need to probe for bash in the Prefix, because it may not
- # exist, in which case we fall back to the currently in use
- # bash. This logic is necessary in particular during bootstrap,
- # where we pull ourselves out of a temporary place with tools
- local bash="${EPREFIX}/bin/bash"
- [[ ! -x ${bash} ]] && bash=${BASH}
-
- einfo "Adjusting sources for ${EPREFIX}"
- find . -type f -exec \
- sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
- -e "s|@PORTAGE_MV@|$(type -P mv)|" \
- -e "s|@PORTAGE_BASH@|${bash}|" \
- -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
- -e "s|@EXTRA_PATH@|${extrapath}|" \
- -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
- -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
- -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
- -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@sysconfdir@|${EPREFIX}/etc|" \
- -i '{}' + || \
- die "Failed to patch sources"
- # We don't need the below, since setup.py deals with this (and
- # more) so we don't have to make this correct
- # -e "s|@PORTAGE_BASE@|${EPREFIX}/usr/lib/portage/${EPYTHON}|" \
-
- # remove Makefiles, or else they will get installed
- find . -name "Makefile.*" -delete
-
- einfo "Prefixing shebangs ..."
- while read -r -d $'\0' ; do
- local shebang=$(head -n1 "$REPLY")
- if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
- sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
- die "sed failed"
- fi
- done < <(find . -type f ! -name etc-update -print0)
-
- einfo "Setting gentoo_prefix as reponame for emerge-webrsync"
- sed -i -e 's/repo_name=gentoo/repo_name=gentoo_prefix/' \
- bin/emerge-webrsync || die
-
- einfo "Making absent gemato non-fatal"
- sed -i -e '/exitcode = 127/d' \
- lib/portage/sync/modules/rsync/rsync.py || die
- # END PREFIX LOCAL
- fi
-
- # PREFIX LOCAL: make.conf is written by bootstrap-prefix.sh
- if use !prefix ; then
- cd "${S}/cnf" || die
- if [ -f "make.conf.example.${ARCH}".diff ]; then
- patch make.conf.example "make.conf.example.${ARCH}".diff || \
- die "Failed to patch make.conf.example"
- else
- eerror ""
- eerror "Portage does not have an arch-specific configuration for this arch."
- eerror "Please notify the arch maintainer about this issue. Using generic."
- eerror ""
- fi
- fi
-}
-
-python_compile_all() {
- local targets=()
- use doc && targets+=( docbook )
- use apidoc && targets+=( apidoc )
-
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-}
-
-python_test() {
- esetup.py test
-}
-
-python_install() {
- # Install sbin scripts to bindir for python-exec linking
- # they will be relocated in pkg_preinst()
- distutils-r1_python_install \
- --system-prefix="${EPREFIX}/usr" \
- --bindir="$(python_get_scriptdir)" \
- --docdir="${EPREFIX}/usr/share/doc/${PF}" \
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
- --portage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" \
- --sbindir="$(python_get_scriptdir)" \
- --sysconfdir="${EPREFIX}/etc" \
- "${@}"
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- local targets=()
- use doc && targets+=(
- install_docbook
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
- use apidoc && targets+=(
- install_apidoc
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
-
- # install docs
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-
- dotmpfiles "${FILESDIR}"/portage-ccache.conf
-
- # Due to distutils/python-exec limitations
- # these must be installed to /usr/bin.
- local sbin_relocations='archive-conf dispatch-conf emaint env-update etc-update fixpackages regenworld'
- einfo "Moving admin scripts to the correct directory"
- dodir /usr/sbin
- for target in ${sbin_relocations}; do
- einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
- mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
- done
-}
-
-pkg_preinst() {
- if ! use build; 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}}" \
- "${PYTHON}" -m portage._compat_upgrade.default_locations || die
-
- env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
-
- env -u FEATURES -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || 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_USER}:${PORTAGE_GROUP} "${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
-}
diff --git a/sys-apps/portage/portage-3.0.30.1.ebuild b/sys-apps/portage/portage-3.0.30.1.ebuild
deleted file mode 100644
index e9c8d3257e..0000000000
--- a/sys-apps/portage/portage-3.0.30.1.ebuild
+++ /dev/null
@@ -1,308 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( pypy3 python3_{9..11} )
-PYTHON_REQ_USE='bzip2(+),threads(+)'
-
-inherit distutils-r1 linux-info systemd prefix
-
-DESCRIPTION="Portage package manager used in Gentoo Prefix"
-HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-SLOT="0"
-IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux test xattr"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- app-arch/xz-utils
- test? ( dev-vcs/git )"
-DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/sed-4.0.5 sys-devel/patch
- doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
- apidoc? (
- dev-python/sphinx
- dev-python/sphinx-epytext
- )"
-# Require sandbox-2.2 for bug #288863.
-# For whirlpool hash, require python[ssl] (bug #425046).
-# For compgen, require bash[readline] (bug #445576).
-# app-portage/gemato goes without PYTHON_USEDEP since we're calling
-# the executable.
-RDEPEND="
- !prefix? ( acct-user/portage )
- app-arch/zstd
- >=app-arch/tar-1.27
- dev-lang/python-exec:2
- >=sys-apps/findutils-4.4
- !build? (
- >=sys-apps/sed-4.0.5
- >=app-shells/bash-5.0:0[readline]
- >=app-admin/eselect-1.2
- rsync-verify? (
- >=app-portage/gemato-14.5[${PYTHON_USEDEP}]
- >=sec-keys/openpgp-keys-gentoo-release-20180706
- >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
- )
- )
- elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
- elibc_musl? ( >=sys-apps/sandbox-2.2 )
- kernel_linux? ( sys-apps/util-linux )
- >=app-misc/pax-utils-0.1.18
- selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
- xattr? ( kernel_linux? (
- >=sys-apps/install-xattr-0.3
- ) )
- !<app-admin/logrotate-3.8.0
- !<app-portage/gentoolkit-0.4.6
- !<app-portage/repoman-2.3.10
- !~app-portage/repoman-3.0.0"
-PDEPEND="
- !build? (
- >=net-misc/rsync-2.6.4
- >=sys-apps/file-5.41
- >=sys-apps/coreutils-6.4
- )"
-# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
-# NOTE: FEATURES=installsources requires debugedit and rsync
-
-SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives https://dev.gentoo.org/~grobian/distfiles"
-
-prefix_src_archives() {
- local x y
- for x in ${@}; do
- for y in ${SRC_ARCHIVES}; do
- echo ${y}/${x}
- done
- done
-}
-
-TARBALL_PV=${PV}
-SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
- $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
-
-S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
-
-pkg_pretend() {
- local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
-
- check_extra_config
-}
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
-
- eapply "${FILESDIR}"/${PN}-3.0.30-prefix-stack.patch # 658572
- eapply "${FILESDIR}"/${PN}-3.0.30-ebuildshell.patch # 155161
- eapply "${FILESDIR}"/${PN}-3.0.30-interrevisions.patch # 832062
- if use gentoo-dev; then
- einfo "Disabling --dynamic-deps by default for gentoo-dev..."
- sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
- -i lib/_emerge/create_depgraph_params.py || \
- die "failed to patch create_depgraph_params.py"
-
- einfo "Enabling additional FEATURES for gentoo-dev..."
- echo 'FEATURES="${FEATURES} strict-keepdir"' \
- >> cnf/make.globals || die
- fi
-
- if use native-extensions; then
- printf "[build_ext]\nportage_ext_modules=true\n" >> \
- setup.cfg || die
- fi
-
- if ! use ipc ; then
- einfo "Disabling ipc..."
- sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
- -i lib/_emerge/AbstractEbuildProcess.py || \
- die "failed to patch AbstractEbuildProcess.py"
- fi
-
- if use xattr && use kernel_linux ; then
- einfo "Adding FEATURES=xattr to make.globals ..."
- echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
- || die "failed to append to make.globals"
- fi
-
- if use build || ! use rsync-verify; then
- sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
- -e '/^sync-webrsync-verify-signature/s|yes|no|' \
- -i cnf/repos.conf || die "sed failed"
- fi
-
- if [[ -n ${EPREFIX} ]] ; then
- # PREFIX LOCAL: only hack const_autotool
- local extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
- # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
- # tend not to update that often, as long as we are a separate ebuild
- # we can assume when unset, it's time for some older trick
- if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
- PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
- fi
- # We need to probe for bash in the Prefix, because it may not
- # exist, in which case we fall back to the currently in use
- # bash. This logic is necessary in particular during bootstrap,
- # where we pull ourselves out of a temporary place with tools
- local bash="${EPREFIX}/bin/bash"
- [[ ! -x ${bash} ]] && bash=${BASH}
-
- einfo "Adjusting sources for ${EPREFIX}"
- find . -type f -exec \
- sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
- -e "s|@PORTAGE_MV@|$(type -P mv)|" \
- -e "s|@PORTAGE_BASH@|${bash}|" \
- -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
- -e "s|@EXTRA_PATH@|${extrapath}|" \
- -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
- -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
- -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
- -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
- -e "s|@sysconfdir@|${EPREFIX}/etc|" \
- -i '{}' + || \
- die "Failed to patch sources"
- # We don't need the below, since setup.py deals with this (and
- # more) so we don't have to make this correct
- # -e "s|@PORTAGE_BASE@|${EPREFIX}/usr/lib/portage/${EPYTHON}|" \
-
- # remove Makefiles, or else they will get installed
- find . -name "Makefile.*" -delete
-
- einfo "Prefixing shebangs ..."
- while read -r -d $'\0' ; do
- local shebang=$(head -n1 "$REPLY")
- if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
- sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
- die "sed failed"
- fi
- done < <(find . -type f ! -name etc-update -print0)
-
- einfo "Setting gentoo_prefix as reponame for emerge-webrsync"
- sed -i -e 's/repo_name=gentoo/repo_name=gentoo_prefix/' \
- bin/emerge-webrsync || die
-
- einfo "Making absent gemato non-fatal"
- sed -i -e '/exitcode = 127/d' \
- lib/portage/sync/modules/rsync/rsync.py || die
- # END PREFIX LOCAL
- fi
-
- # PREFIX LOCAL: make.conf is written by bootstrap-prefix.sh
- if use !prefix ; then
- cd "${S}/cnf" || die
- if [ -f "make.conf.example.${ARCH}".diff ]; then
- patch make.conf.example "make.conf.example.${ARCH}".diff || \
- die "Failed to patch make.conf.example"
- else
- eerror ""
- eerror "Portage does not have an arch-specific configuration for this arch."
- eerror "Please notify the arch maintainer about this issue. Using generic."
- eerror ""
- fi
- fi
-}
-
-python_compile_all() {
- local targets=()
- use doc && targets+=( docbook )
- use apidoc && targets+=( apidoc )
-
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-}
-
-python_test() {
- esetup.py test
-}
-
-python_install() {
- # Install sbin scripts to bindir for python-exec linking
- # they will be relocated in pkg_preinst()
- distutils-r1_python_install \
- --system-prefix="${EPREFIX}/usr" \
- --bindir="$(python_get_scriptdir)" \
- --docdir="${EPREFIX}/usr/share/doc/${PF}" \
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
- --portage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" \
- --sbindir="$(python_get_scriptdir)" \
- --sysconfdir="${EPREFIX}/etc" \
- "${@}"
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- local targets=()
- use doc && targets+=(
- install_docbook
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
- use apidoc && targets+=(
- install_apidoc
- --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
- )
-
- # install docs
- if [[ ${targets[@]} ]]; then
- esetup.py "${targets[@]}"
- fi
-
- dotmpfiles "${FILESDIR}"/portage-ccache.conf
-
- # Due to distutils/python-exec limitations
- # these must be installed to /usr/bin.
- local sbin_relocations='archive-conf dispatch-conf emaint env-update etc-update fixpackages regenworld'
- einfo "Moving admin scripts to the correct directory"
- dodir /usr/sbin
- for target in ${sbin_relocations}; do
- einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
- mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
- done
-}
-
-pkg_preinst() {
- 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}}" \
- "${PYTHON}" -m portage._compat_upgrade.default_locations || die
-
- env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
-
- env -u FEATURES -u PORTAGE_REPOSITORIES \
- PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
- "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die
-
- # 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_USER}:${PORTAGE_GROUP} "${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
-}
diff --git a/sys-apps/portage/portage-3.0.55.1.ebuild b/sys-apps/portage/portage-3.0.55.1.ebuild
index c64c5d2776..3f24547b1e 100644
--- a/sys-apps/portage/portage-3.0.55.1.ebuild
+++ b/sys-apps/portage/portage-3.0.55.1.ebuild
@@ -106,6 +106,10 @@ PDEPEND="
S="${WORKDIR}"/prefix-${P}
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.55.1-interrevisions.patch
+)
+
pkg_pretend() {
local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"