Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/prefix:master commit in: sys-apps/portage/
Date: Fri, 14 Jan 2022 07:50:17
Message-Id: 1642146318.e1c3ede1b49379645456c4d1d4fa5b45725a1fb4.grobian@gentoo
1 commit: e1c3ede1b49379645456c4d1d4fa5b45725a1fb4
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Fri Jan 14 07:45:18 2022 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Fri Jan 14 07:45:18 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=e1c3ede1
7
8 sys-apps/portage-3.0.21: sync ebuild with gx86
9
10 Package-Manager: Portage-3.0.21-prefix, Repoman-3.0.3
11 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
12
13 sys-apps/portage/Manifest | 2 -
14 sys-apps/portage/portage-3.0.14.ebuild | 298 ---------------------------------
15 sys-apps/portage/portage-3.0.18.ebuild | 298 ---------------------------------
16 sys-apps/portage/portage-3.0.21.ebuild | 41 +++--
17 4 files changed, 25 insertions(+), 614 deletions(-)
18
19 diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
20 index 128f2ba77a..13a1d23d2a 100644
21 --- a/sys-apps/portage/Manifest
22 +++ b/sys-apps/portage/Manifest
23 @@ -1,3 +1 @@
24 -DIST prefix-portage-3.0.14.tar.bz2 1314909 BLAKE2B 5e5e0390466e5073795fece5d75800e7181f691d9fb81affdf5eb291b72a917a51976a83b9df5db6f5069a567c4c96e94e4ddb485cbff8b6827d281770006f2a SHA512 a41dee35ae3e5eb1c77801640d6cedd75a706993a38d3260348ad13d570c128101443bc761ef6f207a305c0d03aa45fb8a88c29237e116c426382f2e2fd265e6
25 -DIST prefix-portage-3.0.18.tar.bz2 1348023 BLAKE2B fe0a39611e0a4c2af60f6b73bf56a432193dd859bd3d0a7ab91d5b716b980abe55823c48fa7811bacf152ff9ebfc499792ba37ff94920d3a0d5604536a119d3c SHA512 ca0b78ceda58f225ab5f27e0998d5d9486d9f6609dc94b4471f4b5613fbdb6275c019ff994736cf9d85abb127e207e7065f00aea9f36ad6ebd36c196272cbfb1
26 DIST prefix-portage-3.0.21.tar.bz2 1339211 BLAKE2B 019cf0f3d2d1c45e7849221fc40b49e2c84949b74c8a8c74fbd2ca451a2dd075fb7b8bfec121a173ca0848c57a5a57a62d465b2957c4eb4d87f6a180299da91e SHA512 0aff5004ae80e2cd9dce740c56c3c2643ef390510c3b3821d893e5c76733d3a8d4e7648963febb29479b9ee155868ec11526a393beb3b383e741451178f39e5a
27
28 diff --git a/sys-apps/portage/portage-3.0.14.ebuild b/sys-apps/portage/portage-3.0.14.ebuild
29 deleted file mode 100644
30 index bf3300c246..0000000000
31 --- a/sys-apps/portage/portage-3.0.14.ebuild
32 +++ /dev/null
33 @@ -1,298 +0,0 @@
34 -# Copyright 1999-2021 Gentoo Authors
35 -# Distributed under the terms of the GNU General Public License v2
36 -
37 -EAPI=7
38 -
39 -DISTUTILS_USE_SETUPTOOLS=no
40 -PYTHON_COMPAT=( pypy3 python3_{7..9} )
41 -PYTHON_REQ_USE='bzip2(+),threads(+)'
42 -
43 -inherit distutils-r1 linux-info systemd prefix
44 -
45 -DESCRIPTION="Portage package manager used in Gentoo Prefix"
46 -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
47 -
48 -LICENSE="GPL-2"
49 -KEYWORDS="~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
50 -SLOT="0"
51 -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux xattr"
52 -
53 -DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
54 - >=app-arch/tar-1.27
55 - dev-lang/python-exec:2
56 - >=sys-apps/sed-4.0.5 sys-devel/patch
57 - doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
58 - apidoc? (
59 - dev-python/sphinx
60 - dev-python/sphinx-epytext
61 - )"
62 -# Require sandbox-2.2 for bug #288863.
63 -# For whirlpool hash, require python[ssl] (bug #425046).
64 -# For compgen, require bash[readline] (bug #445576).
65 -# app-portage/gemato goes without PYTHON_USEDEP since we're calling
66 -# the executable.
67 -RDEPEND="
68 - app-arch/zstd
69 - >=app-arch/tar-1.27
70 - dev-lang/python-exec:2
71 - !build? (
72 - >=sys-apps/sed-4.0.5
73 - app-shells/bash:0[readline]
74 - >=app-admin/eselect-1.2
75 - rsync-verify? (
76 - >=app-portage/gemato-14[${PYTHON_USEDEP}]
77 - >=app-crypt/openpgp-keys-gentoo-release-20180706
78 - >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
79 - )
80 - )
81 - elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
82 - elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
83 - elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
84 - kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
85 - kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
86 - kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
87 - kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
88 - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
89 - xattr? ( kernel_linux? (
90 - >=sys-apps/install-xattr-0.3
91 - ) )
92 - !<app-admin/logrotate-3.8.0
93 - !<app-portage/gentoolkit-0.4.6
94 - !<app-portage/repoman-2.3.10"
95 -PDEPEND="
96 - !build? (
97 - >=net-misc/rsync-2.6.4
98 - userland_GNU? ( >=sys-apps/coreutils-6.4 )
99 - )"
100 -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
101 -# NOTE: FEATURES=installsources requires debugedit and rsync
102 -
103 -SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives https://dev.gentoo.org/~grobian/distfiles"
104 -
105 -prefix_src_archives() {
106 - local x y
107 - for x in ${@}; do
108 - for y in ${SRC_ARCHIVES}; do
109 - echo ${y}/${x}
110 - done
111 - done
112 -}
113 -
114 -TARBALL_PV=${PV}
115 -SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
116 - $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
117 -
118 -S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
119 -
120 -pkg_pretend() {
121 - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
122 -
123 - check_extra_config
124 -}
125 -
126 -python_prepare_all() {
127 - distutils-r1_python_prepare_all
128 -
129 - eapply "${FILESDIR}"/${PN}-2.3.62-prefix-stack.patch # 658572
130 - eapply "${FILESDIR}"/${PN}-2.3.45-ebuildshell.patch # 155161
131 - if use gentoo-dev; then
132 - einfo "Disabling --dynamic-deps by default for gentoo-dev..."
133 - sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
134 - -i lib/_emerge/create_depgraph_params.py || \
135 - die "failed to patch create_depgraph_params.py"
136 -
137 - einfo "Enabling additional FEATURES for gentoo-dev..."
138 - echo 'FEATURES="${FEATURES} strict-keepdir"' \
139 - >> cnf/make.globals || die
140 - fi
141 -
142 - if use native-extensions; then
143 - printf "[build_ext]\nportage-ext-modules=true\n" >> \
144 - setup.cfg || die
145 - fi
146 -
147 - if ! use ipc ; then
148 - einfo "Disabling ipc..."
149 - sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
150 - -i lib/_emerge/AbstractEbuildProcess.py || \
151 - die "failed to patch AbstractEbuildProcess.py"
152 - fi
153 -
154 - if use xattr && use kernel_linux ; then
155 - einfo "Adding FEATURES=xattr to make.globals ..."
156 - echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
157 - || die "failed to append to make.globals"
158 - fi
159 -
160 - if use build || ! use rsync-verify; then
161 - sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
162 - -e '/^sync-webrsync-verify-signature/s|yes|no|' \
163 - -i cnf/repos.conf || die "sed failed"
164 - fi
165 -
166 - if [[ -n ${EPREFIX} ]] ; then
167 - # PREFIX LOCAL: only hack const_autotool
168 - local extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
169 - # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
170 - # tend not to update that often, as long as we are a separate ebuild
171 - # we can assume when unset, it's time for some older trick
172 - if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
173 - PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
174 - fi
175 - # We need to probe for bash in the Prefix, because it may not
176 - # exist, in which case we fall back to the currently in use
177 - # bash. This logic is necessary in particular during bootstrap,
178 - # where we pull ourselves out of a temporary place with tools
179 - local bash="${EPREFIX}/bin/bash"
180 - [[ ! -x ${bash} ]] && bash=${BASH}
181 -
182 - einfo "Adjusting sources for ${EPREFIX}"
183 - find . -type f -exec \
184 - sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
185 - -e "s|@PORTAGE_MV@|$(type -P mv)|" \
186 - -e "s|@PORTAGE_BASH@|${bash}|" \
187 - -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
188 - -e "s|@EXTRA_PATH@|${extrapath}|" \
189 - -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
190 - -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
191 - -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
192 - -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
193 - -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
194 - -e "s|@sysconfdir@|${EPREFIX}/etc|" \
195 - -i '{}' + || \
196 - die "Failed to patch sources"
197 - # We don't need the below, since setup.py deals with this (and
198 - # more) so we don't have to make this correct
199 - # -e "s|@PORTAGE_BASE@|${EPREFIX}/usr/lib/portage/${EPYTHON}|" \
200 -
201 - # remove Makefiles, or else they will get installed
202 - find . -name "Makefile.*" -delete
203 -
204 - einfo "Prefixing shebangs ..."
205 - while read -r -d $'\0' ; do
206 - local shebang=$(head -n1 "$REPLY")
207 - if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
208 - sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
209 - die "sed failed"
210 - fi
211 - done < <(find . -type f ! -name etc-update -print0)
212 -
213 - einfo "Setting gentoo_prefix as reponame for emerge-webrsync"
214 - sed -i -e 's/repo_name=gentoo/repo_name=gentoo_prefix/' \
215 - bin/emerge-webrsync || die
216 -
217 - einfo "Making absent gemato non-fatal"
218 - sed -i -e '/exitcode = 127/d' \
219 - lib/portage/sync/modules/rsync/rsync.py || die
220 - # END PREFIX LOCAL
221 - fi
222 -
223 - # PREFIX LOCAL: make.conf is written by bootstrap-prefix.sh
224 - if use !prefix ; then
225 - cd "${S}/cnf" || die
226 - if [ -f "make.conf.example.${ARCH}".diff ]; then
227 - patch make.conf.example "make.conf.example.${ARCH}".diff || \
228 - die "Failed to patch make.conf.example"
229 - else
230 - eerror ""
231 - eerror "Portage does not have an arch-specific configuration for this arch."
232 - eerror "Please notify the arch maintainer about this issue. Using generic."
233 - eerror ""
234 - fi
235 - fi
236 -}
237 -
238 -python_compile_all() {
239 - local targets=()
240 - use doc && targets+=( docbook )
241 - use apidoc && targets+=( apidoc )
242 -
243 - if [[ ${targets[@]} ]]; then
244 - esetup.py "${targets[@]}"
245 - fi
246 -}
247 -
248 -python_test() {
249 - esetup.py test
250 -}
251 -
252 -python_install() {
253 - # Install sbin scripts to bindir for python-exec linking
254 - # they will be relocated in pkg_preinst()
255 - distutils-r1_python_install \
256 - --system-prefix="${EPREFIX}/usr" \
257 - --bindir="$(python_get_scriptdir)" \
258 - --docdir="${EPREFIX}/usr/share/doc/${PF}" \
259 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
260 - --portage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" \
261 - --sbindir="$(python_get_scriptdir)" \
262 - --sysconfdir="${EPREFIX}/etc" \
263 - "${@}"
264 -}
265 -
266 -python_install_all() {
267 - distutils-r1_python_install_all
268 -
269 - local targets=()
270 - use doc && targets+=(
271 - install_docbook
272 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
273 - )
274 - use apidoc && targets+=(
275 - install_apidoc
276 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
277 - )
278 -
279 - # install docs
280 - if [[ ${targets[@]} ]]; then
281 - esetup.py "${targets[@]}"
282 - fi
283 -
284 - systemd_dotmpfilesd "${FILESDIR}"/portage-ccache.conf
285 -
286 - # Due to distutils/python-exec limitations
287 - # these must be installed to /usr/bin.
288 - local sbin_relocations='archive-conf dispatch-conf emaint env-update etc-update fixpackages regenworld'
289 - einfo "Moving admin scripts to the correct directory"
290 - dodir /usr/sbin
291 - for target in ${sbin_relocations}; do
292 - einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
293 - mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
294 - done
295 -}
296 -
297 -pkg_preinst() {
298 - python_setup
299 - local sitedir=$(python_get_sitedir)
300 - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory"
301 - env -u DISTDIR \
302 - -u PORTAGE_OVERRIDE_EPREFIX \
303 - -u PORTAGE_REPOSITORIES \
304 - -u PORTDIR \
305 - -u PORTDIR_OVERLAY \
306 - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
307 - "${PYTHON}" -m portage._compat_upgrade.default_locations || die
308 -
309 - env -u BINPKG_COMPRESS \
310 - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
311 - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
312 -
313 - # elog dir must exist to avoid logrotate error for bug #415911.
314 - # This code runs in preinst in order to bypass the mapping of
315 - # portage:portage to root:root which happens after src_install.
316 - keepdir /var/log/portage/elog
317 - # This is allowed to fail if the user/group are invalid for prefix users.
318 - if chown ${PORTAGE_USER}:${PORTAGE_GROUP} "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then
319 - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog}
320 - fi
321 -
322 - if has_version "<${CATEGORY}/${PN}-2.3.77"; then
323 - elog "The emerge --autounmask option is now disabled by default, except for"
324 - elog "portions of behavior which are controlled by the --autounmask-use and"
325 - elog "--autounmask-license options. For backward compatibility, previous"
326 - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved."
327 - elog "Users can get the old behavior simply by adding --autounmask to the"
328 - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this"
329 - elog "change, see https://bugs.gentoo.org/658648."
330 - fi
331 -}
332
333 diff --git a/sys-apps/portage/portage-3.0.18.ebuild b/sys-apps/portage/portage-3.0.18.ebuild
334 deleted file mode 100644
335 index bf3300c246..0000000000
336 --- a/sys-apps/portage/portage-3.0.18.ebuild
337 +++ /dev/null
338 @@ -1,298 +0,0 @@
339 -# Copyright 1999-2021 Gentoo Authors
340 -# Distributed under the terms of the GNU General Public License v2
341 -
342 -EAPI=7
343 -
344 -DISTUTILS_USE_SETUPTOOLS=no
345 -PYTHON_COMPAT=( pypy3 python3_{7..9} )
346 -PYTHON_REQ_USE='bzip2(+),threads(+)'
347 -
348 -inherit distutils-r1 linux-info systemd prefix
349 -
350 -DESCRIPTION="Portage package manager used in Gentoo Prefix"
351 -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
352 -
353 -LICENSE="GPL-2"
354 -KEYWORDS="~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
355 -SLOT="0"
356 -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux xattr"
357 -
358 -DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
359 - >=app-arch/tar-1.27
360 - dev-lang/python-exec:2
361 - >=sys-apps/sed-4.0.5 sys-devel/patch
362 - doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
363 - apidoc? (
364 - dev-python/sphinx
365 - dev-python/sphinx-epytext
366 - )"
367 -# Require sandbox-2.2 for bug #288863.
368 -# For whirlpool hash, require python[ssl] (bug #425046).
369 -# For compgen, require bash[readline] (bug #445576).
370 -# app-portage/gemato goes without PYTHON_USEDEP since we're calling
371 -# the executable.
372 -RDEPEND="
373 - app-arch/zstd
374 - >=app-arch/tar-1.27
375 - dev-lang/python-exec:2
376 - !build? (
377 - >=sys-apps/sed-4.0.5
378 - app-shells/bash:0[readline]
379 - >=app-admin/eselect-1.2
380 - rsync-verify? (
381 - >=app-portage/gemato-14[${PYTHON_USEDEP}]
382 - >=app-crypt/openpgp-keys-gentoo-release-20180706
383 - >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
384 - )
385 - )
386 - elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
387 - elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
388 - elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
389 - kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
390 - kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
391 - kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
392 - kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
393 - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
394 - xattr? ( kernel_linux? (
395 - >=sys-apps/install-xattr-0.3
396 - ) )
397 - !<app-admin/logrotate-3.8.0
398 - !<app-portage/gentoolkit-0.4.6
399 - !<app-portage/repoman-2.3.10"
400 -PDEPEND="
401 - !build? (
402 - >=net-misc/rsync-2.6.4
403 - userland_GNU? ( >=sys-apps/coreutils-6.4 )
404 - )"
405 -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
406 -# NOTE: FEATURES=installsources requires debugedit and rsync
407 -
408 -SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives https://dev.gentoo.org/~grobian/distfiles"
409 -
410 -prefix_src_archives() {
411 - local x y
412 - for x in ${@}; do
413 - for y in ${SRC_ARCHIVES}; do
414 - echo ${y}/${x}
415 - done
416 - done
417 -}
418 -
419 -TARBALL_PV=${PV}
420 -SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
421 - $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
422 -
423 -S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
424 -
425 -pkg_pretend() {
426 - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
427 -
428 - check_extra_config
429 -}
430 -
431 -python_prepare_all() {
432 - distutils-r1_python_prepare_all
433 -
434 - eapply "${FILESDIR}"/${PN}-2.3.62-prefix-stack.patch # 658572
435 - eapply "${FILESDIR}"/${PN}-2.3.45-ebuildshell.patch # 155161
436 - if use gentoo-dev; then
437 - einfo "Disabling --dynamic-deps by default for gentoo-dev..."
438 - sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
439 - -i lib/_emerge/create_depgraph_params.py || \
440 - die "failed to patch create_depgraph_params.py"
441 -
442 - einfo "Enabling additional FEATURES for gentoo-dev..."
443 - echo 'FEATURES="${FEATURES} strict-keepdir"' \
444 - >> cnf/make.globals || die
445 - fi
446 -
447 - if use native-extensions; then
448 - printf "[build_ext]\nportage-ext-modules=true\n" >> \
449 - setup.cfg || die
450 - fi
451 -
452 - if ! use ipc ; then
453 - einfo "Disabling ipc..."
454 - sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
455 - -i lib/_emerge/AbstractEbuildProcess.py || \
456 - die "failed to patch AbstractEbuildProcess.py"
457 - fi
458 -
459 - if use xattr && use kernel_linux ; then
460 - einfo "Adding FEATURES=xattr to make.globals ..."
461 - echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
462 - || die "failed to append to make.globals"
463 - fi
464 -
465 - if use build || ! use rsync-verify; then
466 - sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
467 - -e '/^sync-webrsync-verify-signature/s|yes|no|' \
468 - -i cnf/repos.conf || die "sed failed"
469 - fi
470 -
471 - if [[ -n ${EPREFIX} ]] ; then
472 - # PREFIX LOCAL: only hack const_autotool
473 - local extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
474 - # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
475 - # tend not to update that often, as long as we are a separate ebuild
476 - # we can assume when unset, it's time for some older trick
477 - if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
478 - PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
479 - fi
480 - # We need to probe for bash in the Prefix, because it may not
481 - # exist, in which case we fall back to the currently in use
482 - # bash. This logic is necessary in particular during bootstrap,
483 - # where we pull ourselves out of a temporary place with tools
484 - local bash="${EPREFIX}/bin/bash"
485 - [[ ! -x ${bash} ]] && bash=${BASH}
486 -
487 - einfo "Adjusting sources for ${EPREFIX}"
488 - find . -type f -exec \
489 - sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
490 - -e "s|@PORTAGE_MV@|$(type -P mv)|" \
491 - -e "s|@PORTAGE_BASH@|${bash}|" \
492 - -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|" \
493 - -e "s|@EXTRA_PATH@|${extrapath}|" \
494 - -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
495 - -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
496 - -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
497 - -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
498 - -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
499 - -e "s|@sysconfdir@|${EPREFIX}/etc|" \
500 - -i '{}' + || \
501 - die "Failed to patch sources"
502 - # We don't need the below, since setup.py deals with this (and
503 - # more) so we don't have to make this correct
504 - # -e "s|@PORTAGE_BASE@|${EPREFIX}/usr/lib/portage/${EPYTHON}|" \
505 -
506 - # remove Makefiles, or else they will get installed
507 - find . -name "Makefile.*" -delete
508 -
509 - einfo "Prefixing shebangs ..."
510 - while read -r -d $'\0' ; do
511 - local shebang=$(head -n1 "$REPLY")
512 - if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
513 - sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
514 - die "sed failed"
515 - fi
516 - done < <(find . -type f ! -name etc-update -print0)
517 -
518 - einfo "Setting gentoo_prefix as reponame for emerge-webrsync"
519 - sed -i -e 's/repo_name=gentoo/repo_name=gentoo_prefix/' \
520 - bin/emerge-webrsync || die
521 -
522 - einfo "Making absent gemato non-fatal"
523 - sed -i -e '/exitcode = 127/d' \
524 - lib/portage/sync/modules/rsync/rsync.py || die
525 - # END PREFIX LOCAL
526 - fi
527 -
528 - # PREFIX LOCAL: make.conf is written by bootstrap-prefix.sh
529 - if use !prefix ; then
530 - cd "${S}/cnf" || die
531 - if [ -f "make.conf.example.${ARCH}".diff ]; then
532 - patch make.conf.example "make.conf.example.${ARCH}".diff || \
533 - die "Failed to patch make.conf.example"
534 - else
535 - eerror ""
536 - eerror "Portage does not have an arch-specific configuration for this arch."
537 - eerror "Please notify the arch maintainer about this issue. Using generic."
538 - eerror ""
539 - fi
540 - fi
541 -}
542 -
543 -python_compile_all() {
544 - local targets=()
545 - use doc && targets+=( docbook )
546 - use apidoc && targets+=( apidoc )
547 -
548 - if [[ ${targets[@]} ]]; then
549 - esetup.py "${targets[@]}"
550 - fi
551 -}
552 -
553 -python_test() {
554 - esetup.py test
555 -}
556 -
557 -python_install() {
558 - # Install sbin scripts to bindir for python-exec linking
559 - # they will be relocated in pkg_preinst()
560 - distutils-r1_python_install \
561 - --system-prefix="${EPREFIX}/usr" \
562 - --bindir="$(python_get_scriptdir)" \
563 - --docdir="${EPREFIX}/usr/share/doc/${PF}" \
564 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" \
565 - --portage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" \
566 - --sbindir="$(python_get_scriptdir)" \
567 - --sysconfdir="${EPREFIX}/etc" \
568 - "${@}"
569 -}
570 -
571 -python_install_all() {
572 - distutils-r1_python_install_all
573 -
574 - local targets=()
575 - use doc && targets+=(
576 - install_docbook
577 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
578 - )
579 - use apidoc && targets+=(
580 - install_apidoc
581 - --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
582 - )
583 -
584 - # install docs
585 - if [[ ${targets[@]} ]]; then
586 - esetup.py "${targets[@]}"
587 - fi
588 -
589 - systemd_dotmpfilesd "${FILESDIR}"/portage-ccache.conf
590 -
591 - # Due to distutils/python-exec limitations
592 - # these must be installed to /usr/bin.
593 - local sbin_relocations='archive-conf dispatch-conf emaint env-update etc-update fixpackages regenworld'
594 - einfo "Moving admin scripts to the correct directory"
595 - dodir /usr/sbin
596 - for target in ${sbin_relocations}; do
597 - einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
598 - mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
599 - done
600 -}
601 -
602 -pkg_preinst() {
603 - python_setup
604 - local sitedir=$(python_get_sitedir)
605 - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory"
606 - env -u DISTDIR \
607 - -u PORTAGE_OVERRIDE_EPREFIX \
608 - -u PORTAGE_REPOSITORIES \
609 - -u PORTDIR \
610 - -u PORTDIR_OVERLAY \
611 - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
612 - "${PYTHON}" -m portage._compat_upgrade.default_locations || die
613 -
614 - env -u BINPKG_COMPRESS \
615 - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
616 - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
617 -
618 - # elog dir must exist to avoid logrotate error for bug #415911.
619 - # This code runs in preinst in order to bypass the mapping of
620 - # portage:portage to root:root which happens after src_install.
621 - keepdir /var/log/portage/elog
622 - # This is allowed to fail if the user/group are invalid for prefix users.
623 - if chown ${PORTAGE_USER}:${PORTAGE_GROUP} "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then
624 - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog}
625 - fi
626 -
627 - if has_version "<${CATEGORY}/${PN}-2.3.77"; then
628 - elog "The emerge --autounmask option is now disabled by default, except for"
629 - elog "portions of behavior which are controlled by the --autounmask-use and"
630 - elog "--autounmask-license options. For backward compatibility, previous"
631 - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved."
632 - elog "Users can get the old behavior simply by adding --autounmask to the"
633 - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this"
634 - elog "change, see https://bugs.gentoo.org/658648."
635 - fi
636 -}
637
638 diff --git a/sys-apps/portage/portage-3.0.21.ebuild b/sys-apps/portage/portage-3.0.21.ebuild
639 index bf3300c246..6505c08858 100644
640 --- a/sys-apps/portage/portage-3.0.21.ebuild
641 +++ b/sys-apps/portage/portage-3.0.21.ebuild
642 @@ -1,4 +1,4 @@
643 -# Copyright 1999-2021 Gentoo Authors
644 +# Copyright 1999-2022 Gentoo Authors
645 # Distributed under the terms of the GNU General Public License v2
646
647 EAPI=7
648 @@ -15,8 +15,12 @@ HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
649 LICENSE="GPL-2"
650 KEYWORDS="~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
651 SLOT="0"
652 -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux xattr"
653 +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux test xattr"
654 +RESTRICT="!test? ( test )"
655
656 +BDEPEND="
657 + app-arch/xz-utils
658 + test? ( dev-vcs/git )"
659 DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
660 >=app-arch/tar-1.27
661 dev-lang/python-exec:2
662 @@ -32,37 +36,38 @@ DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
663 # app-portage/gemato goes without PYTHON_USEDEP since we're calling
664 # the executable.
665 RDEPEND="
666 + !prefix? ( acct-user/portage )
667 app-arch/zstd
668 >=app-arch/tar-1.27
669 dev-lang/python-exec:2
670 + >=sys-apps/findutils-4.4
671 !build? (
672 >=sys-apps/sed-4.0.5
673 - app-shells/bash:0[readline]
674 + >=app-shells/bash-5.0:0[readline]
675 >=app-admin/eselect-1.2
676 rsync-verify? (
677 - >=app-portage/gemato-14[${PYTHON_USEDEP}]
678 - >=app-crypt/openpgp-keys-gentoo-release-20180706
679 + >=app-portage/gemato-14.5[${PYTHON_USEDEP}]
680 + >=sec-keys/openpgp-keys-gentoo-release-20180706
681 >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
682 )
683 )
684 - elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
685 elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
686 - elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
687 - kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
688 - kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
689 - kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
690 - kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
691 + elibc_musl? ( >=sys-apps/sandbox-2.2 )
692 + kernel_linux? ( sys-apps/util-linux )
693 + >=app-misc/pax-utils-0.1.18
694 selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
695 xattr? ( kernel_linux? (
696 >=sys-apps/install-xattr-0.3
697 ) )
698 !<app-admin/logrotate-3.8.0
699 !<app-portage/gentoolkit-0.4.6
700 - !<app-portage/repoman-2.3.10"
701 + !<app-portage/repoman-2.3.10
702 + !~app-portage/repoman-3.0.0"
703 PDEPEND="
704 !build? (
705 >=net-misc/rsync-2.6.4
706 - userland_GNU? ( >=sys-apps/coreutils-6.4 )
707 + >=sys-apps/file-5.41
708 + >=sys-apps/coreutils-6.4
709 )"
710 # coreutils-6.4 rdep is for date format in emerge-webrsync #164532
711 # NOTE: FEATURES=installsources requires debugedit and rsync
712 @@ -107,7 +112,7 @@ python_prepare_all() {
713 fi
714
715 if use native-extensions; then
716 - printf "[build_ext]\nportage-ext-modules=true\n" >> \
717 + printf "[build_ext]\nportage_ext_modules=true\n" >> \
718 setup.cfg || die
719 fi
720
721 @@ -248,7 +253,7 @@ python_install_all() {
722 esetup.py "${targets[@]}"
723 fi
724
725 - systemd_dotmpfilesd "${FILESDIR}"/portage-ccache.conf
726 + dotmpfiles "${FILESDIR}"/portage-ccache.conf
727
728 # Due to distutils/python-exec limitations
729 # these must be installed to /usr/bin.
730 @@ -273,10 +278,14 @@ pkg_preinst() {
731 PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
732 "${PYTHON}" -m portage._compat_upgrade.default_locations || die
733
734 - env -u BINPKG_COMPRESS \
735 + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \
736 PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
737 "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
738
739 + env -u FEATURES -u PORTAGE_REPOSITORIES \
740 + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
741 + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die
742 +
743 # elog dir must exist to avoid logrotate error for bug #415911.
744 # This code runs in preinst in order to bypass the mapping of
745 # portage:portage to root:root which happens after src_install.