Merge pull request #840 from kinvolk/krnowak/portage-update

portage update: update portage and related packages to newer versions
This commit is contained in:
Krzesimir Nowak 2021-02-15 12:47:42 +01:00 committed by GitHub
commit 80ed87957e
33 changed files with 653 additions and 183 deletions

View File

@ -0,0 +1 @@
DIST gentoolkit-0.5.0.tar.gz 3206598 BLAKE2B a379dcbbaba9d52c241fea020b87c458384e44092539947909e14fd6c63fd9cc06d076b8081874edf17fc50e80fe48ceab3400c90046867dc409e7ac39c17231 SHA512 8a5c344f3a17c4c779abbcaa35b5e3f147106dbc61310d0d1a816ec8080914271fa45c311a8feeb1bfe14195af7cf34c0b29142d6e43e2de232dae96fbd00861

View File

@ -0,0 +1,3 @@
This is a fork of app-portage/gentoolkit package. The sole reason for
having it here is to drop support for python 3.8 and 3.9 we haven't
yet packaged.

View File

@ -0,0 +1,43 @@
# https://github.com/gentoo/gentoolkit/pull/11
# https://bugs.gentoo.org/747034
diff --git a/pym/gentoolkit/metadata.py b/pym/gentoolkit/metadata.py
index 22c249e..c3dba98 100644
--- a/pym/gentoolkit/metadata.py
+++ b/pym/gentoolkit/metadata.py
@@ -73,8 +73,7 @@ class _Maintainer(object):
self.description = None
self.restrict = node.get('restrict')
self.status = node.get('status')
- maint_attrs = node.getchildren()
- for attr in maint_attrs:
+ for attr in node.iter():
setattr(self, attr.tag, attr.text)
def __repr__(self):
@@ -101,7 +100,7 @@ class _Useflag(object):
_desc = ''
if node.text:
_desc = node.text
- for child in node.getchildren():
+ for child in node.iter():
_desc += child.text if child.text else ''
_desc += child.tail if child.tail else ''
# This takes care of tabs and newlines left from the file
@@ -213,7 +212,7 @@ class MetaData(object):
if herd in ('no-herd', 'maintainer-wanted', 'maintainer-needed'):
return None
- for node in self._herdstree.getiterator('herd'):
+ for node in self._herdstree.iter('herd'):
if node.findtext('name') == herd:
return node.findtext('email')
@@ -283,7 +282,7 @@ class MetaData(object):
return self._useflags
self._useflags = []
- for node in self._xml_tree.getiterator('flag'):
+ for node in self._xml_tree.iter('flag'):
self._useflags.append(_Useflag(node))
return self._useflags

View File

@ -0,0 +1,34 @@
From f14b6198d1dd9cb7f4a83f3822e4a1782a5581e8 Mon Sep 17 00:00:00 2001
From: Brian Dolbec <dolsen@gentoo.org>
Date: Tue, 13 Oct 2020 10:04:07 -0400
Subject: [PATCH] metadata.py: Fix duplicated use flag text bug 748129
Regression from commit: 517581df206766
link: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=517581df206766fabf10273cde565e0a6dc62829
Gentoo bug: https://bugs.gentoo.org/748129
Signed-off-by: Brian Dolbec <dolsen@gentoo.org>
---
pym/gentoolkit/metadata.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/pym/gentoolkit/metadata.py b/pym/gentoolkit/metadata.py
index c3dba98..0b58392 100644
--- a/pym/gentoolkit/metadata.py
+++ b/pym/gentoolkit/metadata.py
@@ -101,8 +101,11 @@ class _Useflag(object):
if node.text:
_desc = node.text
for child in node.iter():
- _desc += child.text if child.text else ''
- _desc += child.tail if child.tail else ''
+ # prevent duplicate text
+ if child.text and child.text not in _desc:
+ _desc += child.text
+ if child.tail and not child.tail in _desc:
+ _desc += child.tail
# This takes care of tabs and newlines left from the file
self.description = re.sub(r'\s+', ' ', _desc)
--
libgit2 1.0.1

View File

@ -0,0 +1,82 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Flatcar: Based on gentoolkit-0.5.0-r2.ebuild from commit
# 8e426ccff148220423503c9a1c6c512c9b63ddfa in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/app-portage/gentoolkit/gentoolkit-0.5.0-r2.ebuild?id=8e426ccff148220423503c9a1c6c512c9b63ddfa).
EAPI=7
DISTUTILS_USE_SETUPTOOLS=no
PYTHON_COMPAT=( python3_{6,7} pypy3 )
PYTHON_REQ_USE="xml(+),threads(+)"
inherit distutils-r1
DESCRIPTION="Collection of administration scripts for Gentoo"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools"
SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
DEPEND="
sys-apps/portage[${PYTHON_USEDEP}]"
RDEPEND="${DEPEND}
sys-apps/gawk
sys-apps/gentoo-functions"
distutils_enable_tests setup.py
PATCHES=(
"${FILESDIR}"/${PN}-0.5.0-python3_9.patch
"${FILESDIR}"/${PN}-0.5.0-r1-python3_9.patch
)
python_prepare_all() {
python_setup
echo VERSION="${PVR}" "${PYTHON}" setup.py set_version
VERSION="${PVR}" "${PYTHON}" setup.py set_version
distutils-r1_python_prepare_all
}
pkg_preinst() {
if has_version "<${CATEGORY}/${PN}-0.4.0"; then
SHOW_GENTOOKIT_DEV_DEPRECATED_MSG=1
fi
}
pkg_postinst() {
# Create cache directory for revdep-rebuild
mkdir -p -m 0755 "${EROOT}"/var/cache
mkdir -p -m 0700 "${EROOT}"/var/cache/revdep-rebuild
if [[ ${SHOW_GENTOOKIT_DEV_DEPRECATED_MSG} ]]; then
elog "Starting with version 0.4.0, ebump, ekeyword and imlate are now"
elog "part of the gentoolkit package."
elog "The gentoolkit-dev package is now deprecated in favor of a single"
elog "gentoolkit package. The remaining tools from gentoolkit-dev"
elog "are now obsolete/unused with the git based tree."
fi
# Only show the elog information on a new install
if [[ ! ${REPLACING_VERSIONS} ]]; then
elog
elog "For further information on gentoolkit, please read the gentoolkit"
elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit"
elog
elog "Another alternative to equery is app-portage/portage-utils"
elog
elog "Additional tools that may be of interest:"
elog
elog " app-admin/eclean-kernel"
elog " app-portage/diffmask"
elog " app-portage/flaggie"
elog " app-portage/install-mask"
elog " app-portage/portpeek"
elog " app-portage/smart-live-rebuild"
fi
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>tools-portage@gentoo.org</email>
<name>Gentoo Portage tools team</name>
</maintainer>
<longdescription>
Gentoolkit is a collection of useful adminstration scripts particular to
the Gentoo Linux distribution. It contains rough drafts and
implementations of features that may in time make it into Portage, or
into full-fledged tools in their own right.
</longdescription>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST repoman-3.0.2.tar.bz2 88258 BLAKE2B 32c4d6750fd225cf9fc071be0ffbb38563ffdaf50f1f1ac7247ce3733bd781cd699052101df8b6565fd3d32ec6d9a54efb611b815a722b7954d8100ce01de146 SHA512 fd5b4549a0b108ed1ad37fc0766fc73db127bba8b023a74566ee0167e2a9c56c8597b83ead16522aaf84f158a9a5d0d59e4b5bcc908e6024724c087c837e1fa2

View File

@ -0,0 +1,3 @@
This is a fork of app-portage/repoman package. The sole reason for
having it here is to drop support for python 3.8 and 3.9 we haven't
yet packaged.

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<upstream>
<bugs-to>mailto:dev-portage@gentoo.org</bugs-to>
<changelog>https://gitweb.gentoo.org/proj/portage.git/plain/RELEASE-NOTES</changelog>
<doc>https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage</doc>
</upstream>
<maintainer type="project">
<email>dev-portage@gentoo.org</email>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,68 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Flatcar: Based on repoman-3.0.2.ebuild from commit
# 375d601ca5d48a81a2d03d62853fc7b7085f8210 in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/app-portage/repoman/repoman-3.0.2.ebuild?id=375d601ca5d48a81a2d03d62853fc7b7085f8210).
EAPI=7
DISTUTILS_USE_SETUPTOOLS=no
PYTHON_COMPAT=( python3_{6..7} pypy3 )
PYTHON_REQ_USE='bzip2(+)'
inherit distutils-r1
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/portage.git"
S="${WORKDIR}/${P}/repoman"
else
SRC_URI="https://dev.gentoo.org/~zmedico/portage/archives/${P}.tar.bz2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="Repoman is a Quality Assurance tool for Gentoo ebuilds"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
RDEPEND="
>=sys-apps/portage-3.0.4[${PYTHON_USEDEP}]
>=dev-python/lxml-3.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
"
DEPEND="${RDEPEND}"
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" \
--sbindir="$(python_get_scriptdir)" \
--sysconfdir="${EPREFIX}/etc" \
"${@}"
}
pkg_postinst() {
if [[ -z {REPLACING_VERSIONS} ]]; then
elog ""
elog "This release of repoman is from the new portage/repoman split"
elog "release code base."
elog "This new repoman code base is still being developed. So its API's"
elog "are not to be considered stable and are subject to change."
elog "The code released has been tested and considered ready for use."
elog "This however does not guarantee it to be completely bug free."
elog "Please report any bugs you may encounter."
elog ""
fi
}

View File

@ -1,7 +1,7 @@
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved. # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=5 EAPI=7
CROS_WORKON_PROJECT="flatcar-linux/dev-util" CROS_WORKON_PROJECT="flatcar-linux/dev-util"
CROS_WORKON_REPO="git://github.com" CROS_WORKON_REPO="git://github.com"
CROS_WORKON_LOCALNAME="dev" CROS_WORKON_LOCALNAME="dev"
@ -10,11 +10,11 @@ CROS_WORKON_LOCALDIR="src/platform"
if [[ "${PV}" == 9999 ]]; then if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~x86" KEYWORDS="~amd64 ~arm ~arm64 ~x86"
else else
CROS_WORKON_COMMIT="636b1ee0d2bbc5b69ca45484e9cbd4f8b0aea581" # flatcar-master CROS_WORKON_COMMIT="c0634204f62262288735efe069c6365ed31a5c54" # flatcar-master
KEYWORDS="amd64 arm arm64 x86" KEYWORDS="amd64 arm arm64 x86"
fi fi
PYTHON_COMPAT=( python2_7 ) PYTHON_COMPAT=( python3_6 )
inherit cros-workon python-single-r1 inherit cros-workon python-single-r1

View File

@ -0,0 +1,2 @@
DIST setuptools-46.4.0.zip 865912 BLAKE2B 452d36132f5648c79c7e1616a93ff6a39ab2f64b2864ee397b4f57e7f72c47d418ff274f5decd35b0591b09800ad2a7cbd71c283550bd0e60a4d85744a57d4ec SHA512 31e58fd1d682089a45d23aa07c3c2c4c952ca016fa4c3416b2cba979d8b57369f80baef98ce857912e506e87d6cb456497a1ce1c75a0cdf1ee25d4e753b58726
DIST setuptools-50.3.0.zip 2169216 BLAKE2B 029ea0159de270af0078a4661c696b93681b33dcc475640c7626f5a40bf1bb4759e5915948696c03b76dca10bdc4e790e2e9ef9628f41abca9a6aa48adcb72f6 SHA512 f67a2b7d639e03bf8b3815133e128902a559baf689afdd5893844ddc7c83505d727a6bb30ced1f78c4d2719dd405d2f4c527576bfa14dd9cb50c8ec4a479683e

View File

@ -0,0 +1,3 @@
This is a fork of Gentoo's dev-python/setuptools package. The sole
reason for haing it in overlay is dropping support for versions of
python3 we haven't yet packaged.

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">setuptools</remote-id>
<remote-id type="github">pypa/setuptools</remote-id>
<remote-id type="cpe">cpe:/a:python:setuptools</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,89 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Flatcar: Based on setuptools-46.4.0-r3.ebuild from commit
# fe13784be44e5167f67315bf280690004aae885e in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-python/setuptools/setuptools-46.4.0-r3.ebuild?id=fe13784be44e5167f67315bf280690004aae885e).
EAPI=7
# Set to 'manual' to avoid triggering install QA check
DISTUTILS_USE_SETUPTOOLS=manual
PYTHON_COMPAT=( python2_7 python3_{6,7} pypy3 )
PYTHON_REQ_USE="xml(+)"
inherit distutils-r1
DESCRIPTION="Collection of extensions to Distutils"
HOMEPAGE="https://github.com/pypa/setuptools https://pypi.org/project/setuptools/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
BDEPEND="
app-arch/unzip
test? (
$(python_gen_cond_dep '
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pip[${PYTHON_USEDEP}]
>=dev-python/pytest-3.7.0[${PYTHON_USEDEP}]
dev-python/pytest-fixture-config[${PYTHON_USEDEP}]
dev-python/pytest-virtualenv[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
' -3)
)
"
# installing plugins apparently breaks stuff at runtime, so let's pull
# it early
PDEPEND="
>=dev-python/certifi-2016.9.26[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/setuptools_scm[${PYTHON_USEDEP}]
' -3)"
# Force in-source build because build system modifies sources.
DISTUTILS_IN_SOURCE_BUILD=1
DOCS=( {CHANGES,README}.rst docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} )
python_prepare_all() {
# silence the py2 warning that is awfully verbose and breaks some
# packages by adding unexpected output
# (also, we know!)
sed -i -e '/py2_warn/d' pkg_resources/__init__.py || die
# disable tests requiring a network connection
rm setuptools/tests/test_packageindex.py || die
# don't run integration tests
rm setuptools/tests/test_integration.py || die
# xpass-es for me on py3
sed -e '/xfail.*710/s:(:(six.PY2, :' \
-i setuptools/tests/test_archive_util.py || die
# avoid pointless dep on flake8
sed -i -e 's:--flake8::' pytest.ini || die
distutils-r1_python_prepare_all
}
python_test() {
if ! python_is_python3; then
einfo "Tests are skipped on py2 to untangle deps"
return
fi
distutils_install_for_testing
# test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
# It tries to sandbox the test in a tempdir
HOME="${PWD}" pytest -vv ${PN} || die "Tests failed under ${EPYTHON}"
}
python_install() {
export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
distutils-r1_python_install
}

View File

@ -0,0 +1 @@
DIST catalyst-3.0.14.tar.bz2 621178 BLAKE2B 3fa87125f14661bb77432267f03c0966eff8f71f4ef334ce0a14218f7557dee270840afb79b6735a149851ed44b1ea2f6cf59d8274d74e049246d89874aa484b SHA512 938a63a83458fa5a26a4b4e62d18086ed813aec5638a9dd363ba553cb7aeb337c3b8ba0768f3b5a658aa54f2f375a7fe067279c739073d2420c3ad3a42830830

View File

@ -0,0 +1,3 @@
This is a fork of dev-util/catalyst package. The sole reason for
having it here is to drop support for python 3.8 we haven't yet
packaged.

View File

@ -0,0 +1,73 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Flatcar: Based on catalyst-3.0.14.ebuild from commit
# 78fc35f2e766117caa26928db5a0a09b8af18c3c in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-util/catalyst/catalyst-3.0.14.ebuild?id=78fc35f2e766117caa26928db5a0a09b8af18c3c).
EAPI=6
if [[ ${PV} == *9999* ]]; then
SRC_ECLASS="git-r3"
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/catalyst.git"
EGIT_BRANCH="master"
else
SRC_URI="https://gitweb.gentoo.org/proj/catalyst.git/snapshot/${P}.tar.bz2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86"
fi
PYTHON_COMPAT=( python3_{6,7} )
DISTUTILS_USE_SETUPTOOLS=no
inherit distutils-r1 ${SRC_ECLASS}
DESCRIPTION="Release metatool used for creating releases based on Gentoo Linux"
HOMEPAGE="https://wiki.gentoo.org/wiki/Catalyst"
LICENSE="GPL-2+"
SLOT="0"
IUSE="ccache doc +iso kernel_linux system-bootloader"
DEPEND="
app-text/asciidoc
>=dev-python/snakeoil-0.6.5[${PYTHON_USEDEP}]
"
RDEPEND="
>=dev-python/snakeoil-0.6.5[${PYTHON_USEDEP}]
>=dev-python/pydecomp-0.3[${PYTHON_USEDEP}]
app-arch/lbzip2
app-crypt/shash
sys-fs/dosfstools
!kernel_FreeBSD? ( || ( app-arch/tar[xattr] app-arch/libarchive[xattr] ) )
kernel_FreeBSD? ( app-arch/libarchive[xattr] )
amd64? ( >=sys-boot/syslinux-3.72 )
x86? ( >=sys-boot/syslinux-3.72 )
ccache? ( dev-util/ccache )
iso? ( virtual/cdrtools )
kernel_linux? ( app-misc/zisofs-tools >=sys-fs/squashfs-tools-2.1 )
"
PDEPEND="system-bootloader? ( >=sys-apps/memtest86+-5.01-r4
sys-boot/grub:2
amd64? ( sys-boot/grub[grub_platforms_efi-32,grub_platforms_efi-64] )
x86? ( sys-boot/grub[grub_platforms_efi-32] )
sys-boot/syslinux
sys-boot/shim )"
python_prepare_all() {
python_setup
echo VERSION="${PV}" "${PYTHON}" setup.py set_version
VERSION="${PV}" "${PYTHON}" setup.py set_version || die
distutils-r1_python_prepare_all
}
python_compile_all() {
# build the man pages and docs
emake
}
python_install_all() {
distutils-r1_python_install_all
if use doc; then
dodoc files/HOWTO.html files/docbook-xsl.css
fi
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>catalyst@gentoo.org</email>
</maintainer>
<maintainer type="project">
<email>livecd@gentoo.org</email>
<name>Gentoo LiveCD Project</name>
</maintainer>
<use>
<flag name="ccache">Enables ccache support</flag>
<flag name="iso">Pulls in the depends for building iso images</flag>
<flag name="system-bootloader">Pulls in the depends needed to setup livecd bootloader from the host system rather than using a cdtar</flag>
</use>
</pkgmetadata>

View File

@ -17,9 +17,9 @@ USE="${USE} cros_host expat -cracklib -introspection -cups -tcpd -berkdb"
USE="${USE} python_single_target_python2_7 -python_single_target_python3_6" USE="${USE} python_single_target_python2_7 -python_single_target_python3_6"
USE="${USE} python_targets_python2_7 python_targets_python3_6" USE="${USE} python_targets_python2_7 python_targets_python3_6"
# Disable Python 3 while building the SDK until we transition off Python 2. # Continue using Python 2 as the default version, but build Python 3 in SDK too.
BOOTSTRAP_USE="${BOOTSTRAP_USE} python_single_target_python2_7 -python_single_target_python3_6" BOOTSTRAP_USE="${BOOTSTRAP_USE} python_single_target_python2_7 -python_single_target_python3_6"
BOOTSTRAP_USE="${BOOTSTRAP_USE} python_targets_python2_7 -python_targets_python3_6" BOOTSTRAP_USE="${BOOTSTRAP_USE} python_targets_python2_7 python_targets_python3_6"
# Never install cron or cron jobs # Never install cron or cron jobs
USE="${USE} -cron" USE="${USE} -cron"

View File

@ -1,2 +1,7 @@
# Overwrite outdated portage-stable mask # Overwrite outdated portage-stable mask
=dev-libs/openssl-1.1.1g =dev-libs/openssl-1.1.1g
# Overwrite portage-stable mask - this package was removed in
# gentoo. We still need it, since sys-libs/libsemanage still requires
# it. When we update selinux, this can be dropped.
=dev-libs/ustr-1.0.4-r8

View File

@ -17,12 +17,9 @@ sys-devel/gettext -git
app-emulation/qemu aio caps curl ncurses png python threads uuid vhost-net virtfs vnc -xkb qemu_softmmu_targets_x86_64 qemu_softmmu_targets_aarch64 app-emulation/qemu aio caps curl ncurses png python threads uuid vhost-net virtfs vnc -xkb qemu_softmmu_targets_x86_64 qemu_softmmu_targets_aarch64
# python3 problems # python3 problems
app-portage/gentoolkit -python_targets_python3_6 app-portage/gentoolkit python_single_target_python3_6
app-portage/gentoolkit-dev -python_targets_python3_6 app-portage/repoman python_single_target_python3_6
app-portage/repoman -python_targets_python3_6 sys-apps/portage python_single_target_python3_6
dev-python/pyblake2 -python_targets_python3_6
dev-python/uritemplate -python_targets_python3_6
sys-apps/portage -python_targets_python3_6
# python3 only # python3 only
dev-util/dwarves python_single_target_python3_6 dev-util/dwarves python_single_target_python3_6
@ -119,3 +116,6 @@ sys-apps/kmod lzma
# net-libs/nghttp2 should be built with -cxx to avoid issues with boost 1.65. # net-libs/nghttp2 should be built with -cxx to avoid issues with boost 1.65.
# configure script is not able to check if Boost:ASIO library exists. # configure script is not able to check if Boost:ASIO library exists.
net-libs/nghttp2 -cxx net-libs/nghttp2 -cxx
# These (qmanifest and qtegrity) are new tools and they pull even more dependencies.
app-portage/portage-utils -qmanifest -qtegrity

View File

@ -1,2 +1,6 @@
# Never enable experimental code # Never enable experimental code
kdbus kdbus
# We default to python 3.6 for now
python_targets_python3_7
python_single_target_python3_7

View File

@ -1,3 +1,4 @@
DIST portage-2.3.40-bug-656942-bug-657436-937d0156aa06.patch 15214 BLAKE2B 0351f82cd46aa1523eb0f70109551009a422546f2fbde1beee7a18dad4ecbfc6465b3b3052a25720196950f7da81adeb66d87940f2b477fbeca27afba56fa18e SHA512 b0482b8dac8af97b841ded426001872c1c708f649dc7774bd3c7003179888fd4d126ece33d001d127b643d88b8a70b9af75bbeb36beeaca7b8ad308f92ff72e7 DIST portage-2.3.89-bug-718578.patch 1325 BLAKE2B 7a3bc520274617736eac2e3d078e90d151bdb5d8615f6217a499c0f5d4c80813f2c753e7902cf34482df0725ad0b43a38707764c8be14aae9f7ca34f0bd8721f SHA512 6f1c5d7b42beb8078c45cccbad2bd65374b69af92521d9be3beb6784477ca5bcdd75d8e762b239e44e3121e6fe5e3a040c92c9b61521e4a9b1d6bafee10d4c88
DIST portage-2.3.40-bug-657436-937d0156aa06-1fc628eead43.patch 4131 BLAKE2B 1b051097ef4fb073d22b9ef3472077b4845190ec3839886f462cacbee0996dc4c036549c4beab09025e1bb42f421e5032144e90197e3aa5de08dd7d8d1c50fbb SHA512 5910469816b69afb7a0078dd3b35a5304e2c806ac03ff3949603cf4162900fd9dd1df15661b91a2181528e8406679e525308822a0f6ddf4799c79fa9652c27a9 DIST portage-2.3.99.tar.bz2 1051210 BLAKE2B dd3f990dbc87e655a767ce01e1ee3f0b1d5226fa818949408e54b81a2f96e50a4215a79af42b00dc795792858c4f86453b238b14baef4f0793c937b5617534b8 SHA512 176842318a4134ce54c5aa6485fef296f5a14edd2a72421c2011973a0f1a6af39bc5398f1e9eb3b8666d5fc307589c5b91ab93c219bdedb2d307357d8ddefbf5
DIST portage-2.3.40.tar.bz2 995122 BLAKE2B 3bfadee6cf57dace32bb4a365850650e13664202f3b16bf75821ff6226e85da823785ac87875fa82bd5cf1b953d638773819495f73f471c06ffd6926518df1ac SHA512 ded128c1941664fab6bc95f05115ec08900fddaedd1b6f12afa48da024531ee8939134d49759e09995c76a95e41beafdbf5528a5b62d3bf21c826ab1ac0cd1c5 DIST portage-3.0.4.tar.bz2 1042654 BLAKE2B 6f869b2eb24f9e590bf8e01172050105a1bd9ea88657db5893133b4620231a0ddcda871d6fcc10623f7f2ef809116310c76355263819be6c3734b0ca184d5fc0 SHA512 7a0c39cd4ed65aebd84ff8bbadba29760b3aa392a0d606c5b29a1112fd0845c42f74eebb0728a069b2b097a6eb7eec2d18af615fd9edcc38f1018ae6ff686812
DIST portage-3.0.8.tar.bz2 1046968 BLAKE2B 662147c37a9e7b81030fadb4d6438b734ee57a9eb9bfcee80991d137a017aa3541565961282ebf8736db71aeb05532ffa139ff3a34a84bc9064cf74427acb666 SHA512 5f97870a11ecca30ffe8f463f87cd16a1edb52b44832c6eaba15cadcfde2b4f7edf963749e45c8043b45b38e53ee210dc913aa2d2432a2bd3928cc27c8765a85

View File

@ -0,0 +1,11 @@
This is a fork of Gentoo's sys-apps/portage package. We make the
following changes:
- Apply some patches that weren't yet merged by upstream.
- Remove mentions of python version we haven't yet packaged.
- Disable rsync_verify USE flag to avoid pulling more dependencies.
- Overwrite the `cnf/repos.conf` file, so we do not use the gentoo
repo.

View File

@ -0,0 +1,52 @@
From eeb6911796e6d602cb12c91901fb4ab1f37dca65 Mon Sep 17 00:00:00 2001
From: Alex Crawford <alex.crawford@coreos.com>
Date: Tue, 27 Oct 2020 19:43:48 +0100
Subject: [PATCH 1/3] portage/repository/config.py: add disabled attribute to
repos.conf
This flag allows a repos.conf file to disable a previously-defined repository.
https://bugs.gentoo.org/507284
---
lib/portage/repository/config.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
index f7c956d..28ec102 100644
--- a/lib/portage/repository/config.py
+++ b/lib/portage/repository/config.py
@@ -77,6 +77,7 @@ class RepoConfig:
'clone_depth',
'create_manifest',
'disable_manifest',
+ 'disabled',
'eapi',
'eclass_db',
'eclass_locations',
@@ -275,6 +276,11 @@ class RepoConfig:
location = None
self.location = location
+ disabled = repo_opts.get('disabled')
+ if disabled is not None:
+ disabled = disabled.strip().lower() == 'true'
+ self.disabled = disabled or False
+
missing = True
self.name = name
if self.location is not None:
@@ -754,7 +760,10 @@ class RepoConfigLoader:
# Do this before expanding aliases, so that location_map and
# treemap consistently map unaliased names whenever available.
for repo_name, repo in list(prepos.items()):
- if repo.location is None:
+ if repo.disabled:
+ del prepos[repo_name]
+ continue
+ elif repo.location is None:
if repo_name != 'DEFAULT':
# Skip this warning for repoman (bug #474578).
if settings.local_config and paths:
--
2.26.2

View File

@ -1,21 +1,23 @@
From f1ca1359c9cc2bd9e867305e1b07506d3d6722cc Mon Sep 17 00:00:00 2001 From 9e7ba8e73d8e043a91d215af4b4fcdb8e37921f5 Mon Sep 17 00:00:00 2001
From: Michael Marineau <mike@marineau.org> From: Michael Marineau <mike@marineau.org>
Date: Sun, 20 Jul 2014 20:27:43 -0700 Date: Tue, 27 Oct 2020 19:47:20 +0100
Subject: [PATCH 2/4] environment: Filter EROOT for all EAPIs Subject: [PATCH 2/3] environment: Filter EROOT for all EAPIs
This variable is often defined in older EAPIs with "${EROOT:=$ROOT}" This variable is often defined in older EAPIs with "${EROOT:=$ROOT}"
but it should never be preserved since ROOT may change. Bug #490014 but it should never be preserved since ROOT may change. Bug #490014
https://bugs.gentoo.org/490014
--- ---
bin/phase-functions.sh | 9 ++++++--- bin/phase-functions.sh | 10 +++++++---
1 file changed, 6 insertions(+), 3 deletions(-) 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index def2080..f4b5a8d 100644 index 90e622e..ec7b18b 100644
--- a/bin/phase-functions.sh --- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh +++ b/bin/phase-functions.sh
@@ -106,10 +106,14 @@ __filter_readonly_variables() { @@ -107,10 +107,14 @@ __filter_readonly_variables() {
if ___eapi_has_SYSROOT; then if ___eapi_has_BROOT; then
filtered_vars+=" SYSROOT" filtered_vars+=" BROOT"
fi fi
- # Don't filter/interfere with prefix variables unless they are - # Don't filter/interfere with prefix variables unless they are
- # supported by the current EAPI. - # supported by the current EAPI.
@ -32,5 +34,5 @@ index def2080..f4b5a8d 100644
filtered_vars+=" ESYSROOT" filtered_vars+=" ESYSROOT"
fi fi
-- --
2.0.5 2.26.2

View File

@ -1,18 +1,18 @@
From a4329f54504afedc0840d42faf5f15a158fdaada Mon Sep 17 00:00:00 2001 From 91f1cc6fa46e149094a7021f43b10bd13d39b7d9 Mon Sep 17 00:00:00 2001
From: Michael Marineau <mike@marineau.org> From: Michael Marineau <mike@marineau.org>
Date: Mon, 27 Apr 2015 18:33:11 -0700 Date: Tue, 27 Oct 2020 19:50:07 +0100
Subject: [PATCH 3/4] depgraph: ensure slot rebuilds happen in the correct root Subject: [PATCH 3/3] depgraph: ensure slot rebuilds happen in the correct root
https://bugs.gentoo.org/show_bug.cgi?id=520112 https://bugs.gentoo.org/520112
--- ---
pym/_emerge/depgraph.py | 8 ++++---- lib/_emerge/depgraph.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-) 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index 37292a6..e3ce8d2 100644 index 0bb0352..3d1cdbc 100644
--- a/pym/_emerge/depgraph.py --- a/lib/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py
@@ -3950,13 +3950,13 @@ class depgraph(object): @@ -4384,13 +4384,13 @@ class depgraph:
a favorite list.""" a favorite list."""
debug = "--debug" in self._frozen_config.myopts debug = "--debug" in self._frozen_config.myopts
onlydeps = "--onlydeps" in self._frozen_config.myopts onlydeps = "--onlydeps" in self._frozen_config.myopts
@ -27,9 +27,9 @@ index 37292a6..e3ce8d2 100644
+ pkgsettings = self._frozen_config.pkgsettings[myroot] + pkgsettings = self._frozen_config.pkgsettings[myroot]
+ pprovideddict = pkgsettings.pprovideddict + pprovideddict = pkgsettings.pprovideddict
+ virtuals = pkgsettings.getvirtuals() + virtuals = pkgsettings.getvirtuals()
for atom in arg.pset.getAtoms(): for atom in sorted(arg.pset.getAtoms()):
self._spinner_update() self._spinner_update()
dep = Dependency(atom=atom, onlydeps=onlydeps, dep = Dependency(atom=atom, onlydeps=onlydeps,
-- --
2.0.5 2.26.2

View File

@ -0,0 +1,2 @@
Please see https://wiki.gentoo.org/wiki/Project:Portage/Fixing_broken_portage
for a recovery guide for a broken portage installation.

View File

@ -1,47 +0,0 @@
From 1b8ccc0e487a523aa6d974b3ebe26548ad6502b6 Mon Sep 17 00:00:00 2001
From: Alex Crawford <alex.crawford@coreos.com>
Date: Mon, 14 Apr 2014 12:43:56 -0700
Subject: [PATCH 1/4] portage/repository/config.py: add disabled attribute to
repos.conf
This flag allows a repos.conf file to disable a previously-defined repository.
Updated 03-Nov-17 for portage 2.3.8
---
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index b65ed97ce..f3e2f112b 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -76,7 +76,7 @@ class RepoConfig(object):
__slots__ = ('aliases', 'allow_missing_manifest', 'allow_provide_virtual',
'auto_sync', 'cache_formats', 'clone_depth',
- 'create_manifest', 'disable_manifest',
+ 'create_manifest', 'disable_manifest', 'disabled',
'eapi', 'eclass_db', 'eclass_locations', 'eclass_overrides',
'find_invalid_path_char', 'force', 'format', 'local_config', 'location',
'main_repo', 'manifest_hashes', 'masters', 'missing_repo_name',
@@ -198,6 +198,11 @@ class RepoConfig(object):
location = None
self.location = location
+ disabled = repo_opts.get('disabled')
+ if disabled is not None:
+ disabled = disabled.strip().lower() == 'true'
+ self.disabled = disabled or False
+
missing = True
self.name = name
if self.location is not None:
@@ -651,7 +656,10 @@ class RepoConfigLoader(object):
# Do this before expanding aliases, so that location_map and
# treemap consistently map unaliased names whenever available.
for repo_name, repo in list(prepos.items()):
- if repo.location is None:
+ if repo.disabled:
+ del prepos[repo_name]
+ continue
+ elif repo.location is None:
if repo_name != 'DEFAULT':
# Skip this warning for repoman (bug #474578).
if settings.local_config and paths:

View File

@ -5,12 +5,13 @@
<bugs-to>mailto:dev-portage@gentoo.org</bugs-to> <bugs-to>mailto:dev-portage@gentoo.org</bugs-to>
<changelog>https://gitweb.gentoo.org/proj/portage.git/plain/RELEASE-NOTES</changelog> <changelog>https://gitweb.gentoo.org/proj/portage.git/plain/RELEASE-NOTES</changelog>
<doc>https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage</doc> <doc>https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage</doc>
<remote-id type="cpe">cpe:/a:gentoo:portage</remote-id>
</upstream> </upstream>
<maintainer type="project"> <maintainer type="project">
<email>dev-portage@gentoo.org</email> <email>dev-portage@gentoo.org</email>
</maintainer> </maintainer>
<use> <use>
<flag name="epydoc">Build html API documentation with epydoc.</flag> <flag name="apidoc">Build html API documentation with sphinx-apidoc.</flag>
<flag name="gentoo-dev">Enable features required for Gentoo ebuild development.</flag> <flag name="gentoo-dev">Enable features required for Gentoo ebuild development.</flag>
<flag name="ipc">Use inter-process communication between portage and <flag name="ipc">Use inter-process communication between portage and
running ebuilds. running ebuilds.

View File

@ -1,67 +1,70 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=5 # Flatcar: Based on portage-3.0.8.ebuild from commit
# be7749525a3958edbcecee314d0e1c294222f87f in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-apps/portage/portage-3.0.8.ebuild?id=be7749525a3958edbcecee314d0e1c294222f87f).
PYTHON_COMPAT=( EAPI=7
pypy
python3_4 python3_5 python3_6 DISTUTILS_USE_SETUPTOOLS=no
python2_7 PYTHON_COMPAT=( pypy3 python3_{6..7} )
)
PYTHON_REQ_USE='bzip2(+),threads(+)' PYTHON_REQ_USE='bzip2(+),threads(+)'
inherit distutils-r1 eutils systemd inherit distutils-r1 linux-info tmpfiles prefix
DESCRIPTION="Portage is the package management and distribution system for Gentoo" DESCRIPTION="Portage is the package management and distribution system for Gentoo"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage"
LICENSE="GPL-2" LICENSE="GPL-2"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-fbsd" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86"
SLOT="0" SLOT="0"
IUSE="build doc epydoc gentoo-dev +ipc +native-extensions rsync-verify selinux xattr" IUSE="apidoc build doc gentoo-dev +ipc +native-extensions rsync-verify selinux test xattr"
RESTRICT="!test? ( test )"
BDEPEND="test? ( dev-vcs/git )"
DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') ) DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') )
>=app-arch/tar-1.27 >=app-arch/tar-1.27
dev-lang/python-exec:2 dev-lang/python-exec:2
>=sys-apps/sed-4.0.5 sys-devel/patch >=sys-apps/sed-4.0.5 sys-devel/patch
doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 ) doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
epydoc? ( >=dev-python/epydoc-2.0[$(python_gen_usedep 'python2*')] )" apidoc? (
dev-python/sphinx
dev-python/sphinx-epytext
)"
# Require sandbox-2.2 for bug #288863. # Require sandbox-2.2 for bug #288863.
# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
# quite slow, so it's not considered in the dependencies as an alternative to
# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
# for now, don't pull in xattr deps for other kernels.
# For whirlpool hash, require python[ssl] (bug #425046). # For whirlpool hash, require python[ssl] (bug #425046).
# For compgen, require bash[readline] (bug #445576). # For compgen, require bash[readline] (bug #445576).
# app-portage/gemato goes without PYTHON_USEDEP since we're calling # app-portage/gemato goes without PYTHON_USEDEP since we're calling
# the executable. # the executable.
RDEPEND=" RDEPEND="
app-arch/zstd
>=app-arch/tar-1.27 >=app-arch/tar-1.27
dev-lang/python-exec:2 dev-lang/python-exec:2
>=sys-apps/findutils-4.4
!build? ( !build? (
>=sys-apps/sed-4.0.5 >=sys-apps/sed-4.0.5
app-shells/bash:0[readline] app-shells/bash:0[readline]
>=app-admin/eselect-1.2 >=app-admin/eselect-1.2
$(python_gen_cond_dep 'dev-python/pyblake2[${PYTHON_USEDEP}]' \
python{2_7,3_4,3_5} pypy)
rsync-verify? ( rsync-verify? (
>=app-portage/gemato-12.1[${PYTHON_USEDEP}] >=app-portage/gemato-14.5[${PYTHON_USEDEP}]
app-crypt/openpgp-keys-gentoo-release >=app-crypt/openpgp-keys-gentoo-release-20180706
>=app-crypt/gnupg-2.2.4-r2[ssl(-)] >=app-crypt/gnupg-2.2.4-r2[ssl(-)]
) )
) )
elibc_FreeBSD? ( sys-freebsd/freebsd-bin )
elibc_glibc? ( >=sys-apps/sandbox-2.2 ) elibc_glibc? ( >=sys-apps/sandbox-2.2 )
elibc_musl? ( >=sys-apps/sandbox-2.2 ) elibc_musl? ( >=sys-apps/sandbox-2.2 )
elibc_uclibc? ( >=sys-apps/sandbox-2.2 ) elibc_uclibc? ( >=sys-apps/sandbox-2.2 )
kernel_linux? ( sys-apps/util-linux )
>=app-misc/pax-utils-0.1.17 >=app-misc/pax-utils-0.1.17
selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] )
xattr? ( kernel_linux? ( xattr? ( kernel_linux? (
>=sys-apps/install-xattr-0.3 >=sys-apps/install-xattr-0.3
$(python_gen_cond_dep 'dev-python/pyxattr[${PYTHON_USEDEP}]' \
python2_7 pypy)
) ) ) )
!<app-admin/logrotate-3.8.0" !<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=" PDEPEND="
!build? ( !build? (
>=net-misc/rsync-2.6.4 >=net-misc/rsync-2.6.4
@ -70,8 +73,6 @@ PDEPEND="
# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 # coreutils-6.4 rdep is for date format in emerge-webrsync #164532
# NOTE: FEATURES=installsources requires debugedit and rsync # NOTE: FEATURES=installsources requires debugedit and rsync
REQUIRED_USE="epydoc? ( $(python_gen_useflags 'python2*') )"
SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives" SRC_ARCHIVES="https://dev.gentoo.org/~zmedico/portage/archives"
prefix_src_archives() { prefix_src_archives() {
@ -85,41 +86,35 @@ prefix_src_archives() {
TARBALL_PV=${PV} TARBALL_PV=${PV}
SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2 SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2
$(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2) $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2)"
https://github.com/gentoo/portage/compare/b7f94fccf4163364ab7b4c4f0dcd42b8847f03e0...937d0156aa060bdba9095313dedbb62e0a993aea.patch -> ${P}-bug-656942-bug-657436-937d0156aa06.patch
https://github.com/gentoo/portage/compare/937d0156aa060bdba9095313dedbb62e0a993aea...1fc628eead43fa5da4b142479aa004ded8acceab.patch -> ${P}-bug-657436-937d0156aa06-1fc628eead43.patch"
pkg_setup() { PATCHES=(
use epydoc && DISTUTILS_ALL_SUBPHASE_IMPLS=( python2.7 ) "${FILESDIR}/0001-portage-repository-config.py-add-disabled-attribute-.patch"
"${FILESDIR}/0002-environment-Filter-EROOT-for-all-EAPIs.patch"
"${FILESDIR}/0003-depgraph-ensure-slot-rebuilds-happen-in-the-correct-.patch"
)
pkg_pretend() {
local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS"
check_extra_config
} }
python_prepare_all() { python_prepare_all() {
distutils-r1_python_prepare_all distutils-r1_python_prepare_all
# CoreOS does not use the gentoo repo, silence oodles of errors about it:
echo "# no defaults, configuration is in /etc" > cnf/repos.conf echo "# no defaults, configuration is in /etc" > cnf/repos.conf
# upstream bug: https://bugs.gentoo.org/507284
epatch "${FILESDIR}/${PN}-2.3.8-0001-portage-repository-config.py-add-disabled-attribute-.patch"
# upstream bug: https://bugs.gentoo.org/490014
epatch "${FILESDIR}/${PN}-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch"
# upstream bug:
epatch "${FILESDIR}/${PN}-2.2.18-0003-depgraph-ensure-slot-rebuilds-happen-in-the-correct-.patch"
epatch "${DISTDIR}/${P}-bug-656942-bug-657436-937d0156aa06.patch" \ sed -e "s:^VERSION = \"HEAD\"$:VERSION = \"${PV}\":" -i lib/portage/__init__.py || die
"${DISTDIR}/${P}-bug-657436-937d0156aa06-1fc628eead43.patch"
# apply 4fb5ef2ce2cb
sed -i "s:\\((self._poll_obj, 'close'\\)):\\1, None):" \
pym/portage/util/_eventloop/EventLoop.py || die
if use gentoo-dev; then if use gentoo-dev; then
einfo "Disabling --dynamic-deps by default for gentoo-dev..." einfo "Disabling --dynamic-deps by default for gentoo-dev..."
sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \ sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \
-i pym/_emerge/create_depgraph_params.py || \ -i lib/_emerge/create_depgraph_params.py || \
die "failed to patch create_depgraph_params.py" die "failed to patch create_depgraph_params.py"
einfo "Enabling additional FEATURES for gentoo-dev..." einfo "Enabling additional FEATURES for gentoo-dev..."
echo 'FEATURES="${FEATURES} ipc-sandbox network-sandbox strict-keepdir"' \ echo 'FEATURES="${FEATURES} strict-keepdir"' \
>> cnf/make.globals || die >> cnf/make.globals || die
fi fi
@ -131,7 +126,7 @@ python_prepare_all() {
if ! use ipc ; then if ! use ipc ; then
einfo "Disabling ipc..." einfo "Disabling ipc..."
sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \ sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
-i pym/_emerge/AbstractEbuildProcess.py || \ -i lib/_emerge/AbstractEbuildProcess.py || \
die "failed to patch AbstractEbuildProcess.py" die "failed to patch AbstractEbuildProcess.py"
fi fi
@ -143,19 +138,14 @@ python_prepare_all() {
if use build || ! use rsync-verify; then if use build || ! use rsync-verify; then
sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \ sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \
-e '/^sync-webrsync-verify-signature/s|yes|no|' \
-i cnf/repos.conf || die "sed failed" -i cnf/repos.conf || die "sed failed"
fi fi
if [[ -n ${EPREFIX} ]] ; then if [[ -n ${EPREFIX} ]] ; then
einfo "Setting portage.const.EPREFIX ..." einfo "Setting portage.const.EPREFIX ..."
sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \ hprefixify -e "s|^(EPREFIX[[:space:]]*=[[:space:]]*\").*|\1${EPREFIX}\"|" \
-e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \ -w "/_BINARY/" lib/portage/const.py
-e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
-e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
-i pym/portage/const.py || \
die "Failed to patch portage.const.EPREFIX"
einfo "Prefixing shebangs ..." einfo "Prefixing shebangs ..."
while read -r -d $'\0' ; do while read -r -d $'\0' ; do
@ -164,17 +154,11 @@ python_prepare_all() {
sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \ sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
die "sed failed" die "sed failed"
fi fi
done < <(find . -type f -print0) done < <(find . -type f ! -name etc-update -print0)
einfo "Adjusting make.globals ..." einfo "Adjusting make.globals, repos.conf and etc-update ..."
sed -e "s|\(/usr/portage\)|${EPREFIX}\\1|" \ hprefixify cnf/{make.globals,repos.conf} bin/etc-update
-e "s|^\(PORTAGE_TMPDIR=\"\)\(/var/tmp\"\)|\\1${EPREFIX}\\2|" \
-i cnf/make.globals || die "sed failed"
einfo "Adjusting repos.conf ..."
sed -e "s|^\(location = \)\(/usr/portage\)|\\1${EPREFIX}\\2|" \
-e "s|^\(sync-openpgp-key-path = \)\(.*\)|\\1${EPREFIX}\\2|" \
-i cnf/repos.conf || die "sed failed"
if use prefix-guest ; then if use prefix-guest ; then
sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \
-e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \
@ -202,7 +186,7 @@ python_prepare_all() {
python_compile_all() { python_compile_all() {
local targets=() local targets=()
use doc && targets+=( docbook ) use doc && targets+=( docbook )
use epydoc && targets+=( epydoc ) use apidoc && targets+=( apidoc )
if [[ ${targets[@]} ]]; then if [[ ${targets[@]} ]]; then
esetup.py "${targets[@]}" esetup.py "${targets[@]}"
@ -235,8 +219,8 @@ python_install_all() {
install_docbook install_docbook
--htmldir="${EPREFIX}/usr/share/doc/${PF}/html" --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
) )
use epydoc && targets+=( use apidoc && targets+=(
install_epydoc install_apidoc
--htmldir="${EPREFIX}/usr/share/doc/${PF}/html" --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
) )
@ -245,7 +229,7 @@ python_install_all() {
esetup.py "${targets[@]}" esetup.py "${targets[@]}"
fi fi
systemd_dotmpfilesd "${FILESDIR}"/portage-ccache.conf dotmpfiles "${FILESDIR}"/portage-ccache.conf
# Due to distutils/python-exec limitations # Due to distutils/python-exec limitations
# these must be installed to /usr/bin. # these must be installed to /usr/bin.
@ -254,49 +238,42 @@ python_install_all() {
dodir /usr/sbin dodir /usr/sbin
for target in ${sbin_relocations}; do for target in ${sbin_relocations}; do
einfo "Moving /usr/bin/${target} to /usr/sbin/${target}" einfo "Moving /usr/bin/${target} to /usr/sbin/${target}"
mv "${ED}usr/bin/${target}" "${ED}usr/sbin/${target}" || die "sbin scripts move failed!" mv "${ED}/usr/bin/${target}" "${ED}/usr/sbin/${target}" || die "sbin scripts move failed!"
done done
} }
pkg_preinst() { pkg_preinst() {
# comment out sanity test until it is fixed to work python_setup
# with the new PORTAGE_PYM_PATH local sitedir=$(python_get_sitedir)
#if [[ $ROOT == / ]] ; then [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory"
## Run some minimal tests as a sanity check. env -u DISTDIR \
#local test_runner=$(find "${ED}" -name runTests) -u PORTAGE_OVERRIDE_EPREFIX \
#if [[ -n $test_runner && -x $test_runner ]] ; then -u PORTAGE_REPOSITORIES \
#einfo "Running preinst sanity tests..." -u PORTDIR \
#"$test_runner" || die "preinst sanity tests failed" -u PORTDIR_OVERLAY \
#fi PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
#fi "${PYTHON}" -m portage._compat_upgrade.default_locations || die
env -u BINPKG_COMPRESS \
PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \
"${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die
# elog dir must exist to avoid logrotate error for bug #415911. # elog dir must exist to avoid logrotate error for bug #415911.
# This code runs in preinst in order to bypass the mapping of # This code runs in preinst in order to bypass the mapping of
# portage:portage to root:root which happens after src_install. # portage:portage to root:root which happens after src_install.
keepdir /var/log/portage/elog keepdir /var/log/portage/elog
# This is allowed to fail if the user/group are invalid for prefix users. # 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 if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then
chmod g+s,ug+rwx "${ED}"var/log/portage{,/elog} chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog}
fi fi
if has_version ">=${CATEGORY}/${PN}-2.3.1" && \ if has_version "<${CATEGORY}/${PN}-2.3.77"; then
has_version "<${CATEGORY}/${PN}-2.3.3"; then elog "The emerge --autounmask option is now disabled by default, except for"
SYNC_DEPTH_UPGRADE=true elog "portions of behavior which are controlled by the --autounmask-use and"
else elog "--autounmask-license options. For backward compatibility, previous"
SYNC_DEPTH_UPGRADE=false 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 fi
} }
pkg_postinst() {
if ${SYNC_DEPTH_UPGRADE}; then
ewarn "Please note that this release no longer respects sync-depth for"
ewarn "git repositories. There have been too many problems and"
ewarn "performance issues. See bugs 552814, 559008"
fi
einfo ""
einfo "This release of portage NO LONGER contains the repoman code base."
einfo "Repoman has its own ebuild and release package."
einfo "For repoman functionality please emerge app-portage/repoman"
einfo "Please report any bugs you may encounter."
einfo ""
}