diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/Manifest index b81dc8cf27..dbeb29844a 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/Manifest @@ -1,3 +1,3 @@ -DIST portage-2.2.28.tar.bz2 969138 SHA256 da8148a1a9275c87f535679e41b1bb3a1380ba0f903b80510017517e4c5229d0 SHA512 d21bf7e7dcc0a779a13df6a959e5d4291492fce2a5525b67e9a4705888021f9c08b8d78cd32b2eb930ac5428c40383e4e46da5a7b1ed5c9c9c42314c0f1c6a0b WHIRLPOOL 1b9584b0243b46c70d0778aad57df2d3ea99e19f243280e542c29e6fed0634b72de6b203a3c296c2977d1a6e5e5250b910574176c692d2c7c27c0938528bb43d -DIST portage-2.3.3.tar.bz2 920984 SHA256 beec3923e14fb98d9992ede0b7718df594c50f366c3e58c2f0ba10102e77271f SHA512 7dec90a980ce6bb1266bb9c9c9979bc6cb8bdb4f37d8908c78cddf053979aef44424be86ea1fe16a072f6ed21b26233df84f6dd22d6f0c9435816090c675b53c WHIRLPOOL cc4a7e63b797766cc99ab712902b96e38fe22a482d7eeb3e29843a6070f6601b8bbe9c435b0a9c3cc1947e49c23291f1064f3d01c010d822dcb2686a103b4c3d -DIST portage-2.3.8.tar.bz2 938062 SHA256 19b73658dca848d215c5527d1d020c8106352007a84d7675e5efd0a7b9b48a8a SHA512 4b4b2de20323799b9b0f7a8812f939aa9a96d2744a0f65ad5287ba49744c491b55169cdb21f2885317a6a7c960d2070775ffd798f247b44eebc677c33c271eb8 WHIRLPOOL 0c576bbd8aaf8b27fa1746c863ac02b2a5f361d9011d17250ffbe4b830a8a6bf10a0aee48b5181a8aa6c55d8ad81ad411195da2a6253e9b324d3c7397053fe29 +DIST portage-2.3.40-bug-656942-bug-657436-937d0156aa06.patch 15214 BLAKE2B 0351f82cd46aa1523eb0f70109551009a422546f2fbde1beee7a18dad4ecbfc6465b3b3052a25720196950f7da81adeb66d87940f2b477fbeca27afba56fa18e SHA512 b0482b8dac8af97b841ded426001872c1c708f649dc7774bd3c7003179888fd4d126ece33d001d127b643d88b8a70b9af75bbeb36beeaca7b8ad308f92ff72e7 +DIST portage-2.3.40-bug-657436-937d0156aa06-1fc628eead43.patch 4131 BLAKE2B 1b051097ef4fb073d22b9ef3472077b4845190ec3839886f462cacbee0996dc4c036549c4beab09025e1bb42f421e5032144e90197e3aa5de08dd7d8d1c50fbb SHA512 5910469816b69afb7a0078dd3b35a5304e2c806ac03ff3949603cf4162900fd9dd1df15661b91a2181528e8406679e525308822a0f6ddf4799c79fa9652c27a9 +DIST portage-2.3.40.tar.bz2 995122 BLAKE2B 3bfadee6cf57dace32bb4a365850650e13664202f3b16bf75821ff6226e85da823785ac87875fa82bd5cf1b953d638773819495f73f471c06ffd6926518df1ac SHA512 ded128c1941664fab6bc95f05115ec08900fddaedd1b6f12afa48da024531ee8939134d49759e09995c76a95e41beafdbf5528a5b62d3bf21c826ab1ac0cd1c5 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0001-portage-repository-config.py-add-disabled-attribute-.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0001-portage-repository-config.py-add-disabled-attribute-.patch deleted file mode 100644 index f12802e19a..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0001-portage-repository-config.py-add-disabled-attribute-.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 1b8ccc0e487a523aa6d974b3ebe26548ad6502b6 Mon Sep 17 00:00:00 2001 -From: Alex Crawford -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. ---- - pym/portage/repository/config.py | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py -index a884156..a2f1a5a 100644 ---- a/pym/portage/repository/config.py -+++ b/pym/portage/repository/config.py -@@ -80,7 +80,7 @@ class RepoConfig(object): - """Stores config of one repository""" - - __slots__ = ('aliases', 'allow_missing_manifest', 'allow_provide_virtual', -- 'auto_sync', 'cache_formats', 'create_manifest', 'disable_manifest', -+ 'auto_sync', 'cache_formats', 'create_manifest', 'disabled', 'disable_manifest', - 'eapi', 'eclass_db', 'eclass_locations', 'eclass_overrides', - 'find_invalid_path_char', 'force', 'format', 'local_config', 'location', - 'main_repo', 'manifest_hashes', 'masters', 'missing_repo_name', -@@ -194,6 +194,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: -@@ -654,7 +659,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: --- -2.0.5 - diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch index d57fdbb085..d48349e1f2 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch @@ -13,12 +13,13 @@ diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index def2080..f4b5a8d 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh -@@ -101,10 +101,13 @@ __filter_readonly_variables() { - filtered_vars="$readonly_bash_vars $bash_misc_vars - $PORTAGE_READONLY_VARS $misc_garbage_vars" - +@@ -106,10 +106,14 @@ __filter_readonly_variables() { + if ___eapi_has_SYSROOT; then + filtered_vars+=" SYSROOT" + fi - # Don't filter/interfere with prefix variables unless they are - # supported by the current EAPI. ++ + # Always filter EROOT to ensure it is redefined based on ROOT + filtered_vars+=" EROOT" + @@ -27,9 +28,9 @@ index def2080..f4b5a8d 100644 if ___eapi_has_prefix_variables; then - filtered_vars+=" ED EPREFIX EROOT" + filtered_vars+=" ED EPREFIX" - fi - - if has --filter-sandbox $* ; then + if ___eapi_has_SYSROOT; then + filtered_vars+=" ESYSROOT" + fi -- 2.0.5 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-0002-backport-decompression-fixes.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-0002-backport-decompression-fixes.patch deleted file mode 100644 index ab51430792..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-0002-backport-decompression-fixes.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/pym/_emerge/BinpkgExtractorAsync.py b/pym/_emerge/BinpkgExtractorAsync.py -index e85f4ecac..07ba2a1b7 100644 ---- a/pym/_emerge/BinpkgExtractorAsync.py -+++ b/pym/_emerge/BinpkgExtractorAsync.py -@@ -74,21 +74,27 @@ class BinpkgExtractorAsync(SpawnProcess): - self._async_wait() - return - -- # Add -q to decomp_cmd opts, in order to avoid "trailing garbage -- # after EOF ignored" warning messages due to xpak trailer. -+ pkg_xpak = portage.xpak.tbz2(self.pkg_path) -+ pkg_xpak.scan() -+ - # SIGPIPE handling (128 + SIGPIPE) should be compatible with - # assert_sigpipe_ok() that's used by the ebuild unpack() helper. - self.args = [self._shell_binary, "-c", -- ("%s -cq -- %s | tar -xp %s -C %s -f - ; " + \ -- "p=(${PIPESTATUS[@]}) ; " + \ -- "if [[ ${p[0]} != 0 && ${p[0]} != %d ]] ; then " % (128 + signal.SIGPIPE) + \ -- "echo bzip2 failed with status ${p[0]} ; exit ${p[0]} ; fi ; " + \ -- "if [ ${p[1]} != 0 ] ; then " + \ -- "echo tar failed with status ${p[1]} ; exit ${p[1]} ; fi ; " + \ -+ ("cmd0=(head -c-%d -- %s) cmd1=(%s) cmd2=(tar -xp %s -C %s -f -); " + \ -+ '"${cmd0[@]}" | "${cmd1[@]}" | "${cmd2[@]}"; ' + \ -+ "p=(${PIPESTATUS[@]}) ; for i in {0..2}; do " + \ -+ "if [[ ${p[$i]} != 0 && ${p[$i]} != %d ]] ; then " + \ -+ "echo command $(eval \"echo \\\"'\\${cmd$i[*]}'\\\"\") " + \ -+ "failed with status ${p[$i]} ; exit ${p[$i]} ; fi ; done; " + \ -+ "if [ ${p[$i]} != 0 ] ; then " + \ -+ "echo command $(eval \"echo \\\"'\\${cmd$i[*]}'\\\"\") " + \ -+ "failed with status ${p[$i]} ; exit ${p[$i]} ; fi ; " + \ - "exit 0 ;") % \ -- (decomp_cmd, -+ (pkg_xpak.xpaksize, - portage._shell_quote(self.pkg_path), -+ decomp_cmd, - tar_options, -- portage._shell_quote(self.image_dir))] -+ portage._shell_quote(self.image_dir), -+ 128 + signal.SIGPIPE)] - - SpawnProcess._start(self) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-file-update.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-file-update.patch deleted file mode 100644 index 03b249a330..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-2.3.8-file-update.patch +++ /dev/null @@ -1,23 +0,0 @@ -Add support for new file command output. - ---- bin/ebuild-helpers/prepstrip -+++ bin/ebuild-helpers/prepstrip -@@ -346,7 +346,7 @@ - ${STRIP} -g "${x}" - fi - fi -- elif [[ ${f} == *"SB executable"* || ${f} == *"SB shared object"* ]] ; then -+ elif [[ ${f} == *"SB executable"* || ${f} == *"SB pie executable"* || ${f} == *"SB shared object"* ]] ; then - process_elf "${x}" "${inode_link}" ${PORTAGE_STRIP_FLAGS} - elif [[ ${f} == *"SB relocatable"* ]] ; then - process_elf "${x}" "${inode_link}" ${SAFE_STRIP_FLAGS} ---- bin/install-qa-check.d/10ignored-flags -+++ bin/install-qa-check.d/10ignored-flags -@@ -33,6 +33,7 @@ - f=$(file "${x}") || continue - [[ -z ${f} ]] && continue - if [[ ${f} == *"SB executable"* || -+ ${f} == *"SB pie executable"* || - ${f} == *"SB shared object"* ]] ; then - echo "${x}" >> "${T}"/scanelf-ignored-CFLAGS.log - fi diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-ccache.conf b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-ccache.conf new file mode 100644 index 0000000000..37857fde31 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/files/portage-ccache.conf @@ -0,0 +1,2 @@ +# Prevent ccache files from being cleaned +x /var/tmp/ccache diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/metadata.xml b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/metadata.xml index 68283d8e67..5d99599f67 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/metadata.xml +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/metadata.xml @@ -6,15 +6,27 @@ https://gitweb.gentoo.org/proj/portage.git/plain/RELEASE-NOTES https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage - + dev-portage@gentoo.org Build html API documentation with epydoc. - Use inter-process communication between portage and running ebuilds. - Use pypy-c2.0 as Python interpreter. - Use python2 as Python interpreter. - Use python3 as Python interpreter. - Preserve extended attributes (filesystem-stored metadata) when installing files. Usually only required for hardened systems. + Enable features required for Gentoo ebuild development. + Use inter-process communication between portage and + running ebuilds. + + + Compiles native "C" extensions (speedups, instead of using python + backup code). Currently includes libc-locales. + This should only be temporarily disabled for some bootstrapping + operations. Cross-compilation is not supported. + + + Enable full-tree cryptographic verification of Gentoo repository + rsync checkouts using app-portage/gemato. + + Preserve extended attributes (filesystem-stored metadata) + when installing files. Usually only required for hardened systems. + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.2.28.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.2.28.ebuild deleted file mode 100644 index db9baa2745..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.2.28.ebuild +++ /dev/null @@ -1,375 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=5 - -PYTHON_COMPAT=( - pypy - python3_4 python3_5 python3_6 - python2_7 -) -PYTHON_REQ_USE='bzip2(+)' - -inherit distutils-r1 multilib - -DESCRIPTION="Portage is the package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -LICENSE="GPL-2" -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" -SLOT="0" -IUSE="build doc epydoc +ipc linguas_ru selinux xattr" - -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 ) - epydoc? ( >=dev-python/epydoc-2.0[$(python_gen_usedep 'python2*')] )" -# 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 compgen, require bash[readline] (bug #445576). -RDEPEND=" - >=app-arch/tar-1.27 - dev-lang/python-exec:2 - !build? ( - >=sys-apps/sed-4.0.5 - app-shells/bash:0[readline] - >=app-admin/eselect-1.2 - ) - elibc_FreeBSD? ( sys-freebsd/freebsd-bin ) - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_uclibc? ( >=sys-apps/sandbox-2.2 ) - >=app-misc/pax-utils-0.1.17 - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - $(python_gen_cond_dep 'dev-python/pyxattr[${PYTHON_USEDEP}]' \ - python2_7 pypy) - ) ) - ! cnf/repos.conf - - if ! use ipc ; then - einfo "Disabling ipc..." - sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \ - -i pym/_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 [[ -n ${EPREFIX} ]] ; then - einfo "Setting portage.const.EPREFIX ..." - sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \ - -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \ - -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 ..." - 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 -print0) - - einfo "Adjusting make.globals ..." - sed -e "s|\(/usr/portage\)|${EPREFIX}\\1|" \ - -e "s|^\(PORTAGE_TMPDIR=\"\)\(/var/tmp\"\)|\\1${EPREFIX}\\2|" \ - -i cnf/make.globals || die "sed failed" - - einfo "Adjusting repos.conf ..." - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(location = \)\(/usr/portage\)|\\1${EPREFIX}\\2|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://prefix.gentooexperimental.org/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - - einfo "Adding FEATURES=force-prefix to make.globals ..." - echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \ - || die "failed to append to make.globals" - fi - - 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 -} - -python_compile_all() { - local targets=() - use doc && targets+=( docbook ) - use epydoc && targets+=( epydoc ) - - 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 ) - use epydoc && targets+=( install_epydoc ) - - # install docs - if [[ ${targets[@]} ]]; then - esetup.py "${targets[@]}" - fi - - # 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() { - # comment out sanity test until it is fixed to work - # with the new PORTAGE_PYM_PATH - #if [[ $ROOT == / ]] ; then - ## Run some minimal tests as a sanity check. - #local test_runner=$(find "${ED}" -name runTests) - #if [[ -n $test_runner && -x $test_runner ]] ; then - #einfo "Running preinst sanity tests..." - #"$test_runner" || die "preinst sanity tests failed" - #fi - #fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.1.13" || \ - { - has_version ">=${CATEGORY}/${PN}-2.2_rc0" && \ - has_version "<${CATEGORY}/${PN}-2.2.0_alpha189" - } ; then - USERPRIV_UPGRADE=true - USERSYNC_UPGRADE=true - REPOS_CONF_UPGRADE=true - REPOS_CONF_SYNC= - type -P portageq >/dev/null 2>&1 && \ - REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC) - else - USERPRIV_UPGRADE=false - USERSYNC_UPGRADE=false - REPOS_CONF_UPGRADE=false - fi -} - -get_ownership() { - case ${USERLAND} in - BSD) - stat -f '%Su:%Sg' "${1}" - ;; - *) - stat -c '%U:%G' "${1}" - ;; - esac -} - -new_config_protect() { - # Generate a ._cfg file even if the target file - # does not exist, ensuring that the user will - # notice the config change. - local basename=${1##*/} - local dirname=${1%/*} - local i=0 - while true ; do - local filename=$( - echo -n "${dirname}/._cfg" - printf "%04d" ${i} - echo -n "_${basename}" - ) - [[ -e ${filename} ]] || break - (( i++ )) - done - echo "${filename}" -} - -pkg_postinst() { - - if ${REPOS_CONF_UPGRADE} ; then - einfo "Generating repos.conf" - local repo_name= - [[ -f ${PORTDIR}/profiles/repo_name ]] && \ - repo_name=$(< "${PORTDIR}/profiles/repo_name") - if [[ -z ${REPOS_CONF_SYNC} ]] ; then - REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf") - REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* } - fi - local sync_type= - [[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git - - if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then - sync_type=cvs - REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://} - fi - - cat <<-EOF > "${T}/repos.conf" - [DEFAULT] - main-repo = ${repo_name:-gentoo} - - [${repo_name:-gentoo}] - location = ${PORTDIR:-${EPREFIX}/usr/portage} - sync-type = ${sync_type:-rsync} - sync-uri = ${REPOS_CONF_SYNC} - EOF - - [[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf" - - local dest=${EROOT:-${ROOT}}etc/portage/repos.conf - if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then - dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf - fi - # Don't install the config update if the desired repos.conf directory - # and config file exist, since users may accept it blindly and break - # their config (bug #478726). - [[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \ - mv "${T}/repos.conf" "$(new_config_protect "${dest}")" - - if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then - einfo "Generating make.conf PORTDIR setting for backward compatibility" - for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do - [[ -e ${dest} ]] && break - done - [[ -d ${dest} ]] && dest=${dest}/portdir.conf - rm -rf "${T}/make.conf" - [[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf" - cat <<-EOF >> "${T}/make.conf" - - # Set PORTDIR for backward compatibility with various tools: - # gentoo-bashcomp - bug #478444 - # euse - bug #474574 - # euses and ufed - bug #478318 - PORTDIR="${EPREFIX}/usr/portage" - EOF - mkdir -p "${dest%/*}" - mv "${T}/make.conf" "$(new_config_protect "${dest}")" - fi - fi - - local distdir=${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}} - - if ${USERSYNC_UPGRADE} && \ - [[ -d ${PORTDIR} && -w ${PORTDIR} ]] ; then - local ownership=$(get_ownership "${PORTDIR}") - if [[ -n ${ownership} ]] ; then - einfo "Adjusting PORTDIR permissions for usersync" - find "${PORTDIR}" -path "${distdir%/}" -prune -o \ - ! \( -user "${ownership%:*}" -a -group "${ownership#*:}" \) \ - -exec chown "${ownership}" {} + - fi - fi - - # Do this last, since it could take a long time if there - # are lots of live sources, and the user may be tempted - # to kill emerge while it is running. - if ${USERPRIV_UPGRADE} && \ - [[ -d ${distdir} && -w ${distdir} ]] ; then - local ownership=$(get_ownership "${distdir}") - if [[ ${ownership#*:} == portage ]] ; then - einfo "Adjusting DISTDIR permissions for userpriv" - find "${distdir}" -mindepth 1 -maxdepth 1 -type d -uid 0 \ - -exec chown -R portage:portage {} + - fi - fi - - einfo "" - einfo "This release of portage contains the new repoman code base" - einfo "This code base is still being developed. So its API's are" - einfo "not to be considered stable and are subject to change." - einfo "The code released has been tested and considered ready for use." - einfo "This however does not guarantee it to be completely bug free." - einfo "Please report any bugs you may encounter." - einfo "" -} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.3.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.3.ebuild deleted file mode 100644 index a9b8d224b0..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.3.ebuild +++ /dev/null @@ -1,286 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -PYTHON_COMPAT=( - pypy - python3_3 python3_4 python3_5 python3_6 - python2_7 -) -PYTHON_REQ_USE='bzip2(+),threads(+)' - -inherit distutils-r1 multilib - -DESCRIPTION="Portage is the package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -LICENSE="GPL-2" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" -SLOT="0" -IUSE="build doc epydoc +ipc linguas_ru +native-extensions selinux xattr" - -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 ) - epydoc? ( >=dev-python/epydoc-2.0[$(python_gen_usedep 'python2*')] )" -# 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 compgen, require bash[readline] (bug #445576). -RDEPEND=" - >=app-arch/tar-1.27 - dev-lang/python-exec:2 - !build? ( - >=sys-apps/sed-4.0.5 - app-shells/bash:0[readline] - >=app-admin/eselect-1.2 - ) - elibc_FreeBSD? ( sys-freebsd/freebsd-bin ) - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - elibc_uclibc? ( >=sys-apps/sandbox-2.2 ) - >=app-misc/pax-utils-0.1.17 - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - $(python_gen_cond_dep 'dev-python/pyxattr[${PYTHON_USEDEP}]' \ - python2_7 pypy) - ) ) - ! cnf/repos.conf - - 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 pym/_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 [[ -n ${EPREFIX} ]] ; then - einfo "Setting portage.const.EPREFIX ..." - sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \ - -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \ - -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 ..." - 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 -print0) - - einfo "Adjusting make.globals ..." - sed -e "s|\(/usr/portage\)|${EPREFIX}\\1|" \ - -e "s|^\(PORTAGE_TMPDIR=\"\)\(/var/tmp\"\)|\\1${EPREFIX}\\2|" \ - -i cnf/make.globals || die "sed failed" - - einfo "Adjusting repos.conf ..." - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(location = \)\(/usr/portage\)|\\1${EPREFIX}\\2|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - - einfo "Adding FEATURES=force-prefix to make.globals ..." - echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \ - || die "failed to append to make.globals" - fi - - 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 -} - -python_compile_all() { - local targets=() - use doc && targets+=( docbook ) - use epydoc && targets+=( epydoc ) - - 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 ) - use epydoc && targets+=( install_epydoc ) - - # install docs - if [[ ${targets[@]} ]]; then - esetup.py "${targets[@]}" - fi - - # 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() { - # comment out sanity test until it is fixed to work - # with the new PORTAGE_PYM_PATH - #if [[ $ROOT == / ]] ; then - ## Run some minimal tests as a sanity check. - #local test_runner=$(find "${ED}" -name runTests) - #if [[ -n $test_runner && -x $test_runner ]] ; then - #einfo "Running preinst sanity tests..." - #"$test_runner" || die "preinst sanity tests failed" - #fi - #fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"var/log/portage{,/elog} - fi - - if has_version ">=${CATEGORY}/${PN}-2.3.1" && \ - has_version "<${CATEGORY}/${PN}-2.3.3"; then - SYNC_DEPTH_UPGRADE=true - else - SYNC_DEPTH_UPGRADE=false - fi -} - -get_ownership() { - case ${USERLAND} in - BSD) - stat -f '%Su:%Sg' "${1}" - ;; - *) - stat -c '%U:%G' "${1}" - ;; - esac -} - -new_config_protect() { - # Generate a ._cfg file even if the target file - # does not exist, ensuring that the user will - # notice the config change. - local basename=${1##*/} - local dirname=${1%/*} - local i=0 - while true ; do - local filename=$( - echo -n "${dirname}/._cfg" - printf "%04d" ${i} - echo -n "_${basename}" - ) - [[ -e ${filename} ]] || break - (( i++ )) - done - echo "${filename}" -} - -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 "" -} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.8-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.40-r1.ebuild similarity index 78% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.8-r1.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.40-r1.ebuild index e7d05e2cc3..ac3cb5f359 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.8-r1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/portage/portage-2.3.40-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -10,15 +10,15 @@ PYTHON_COMPAT=( ) PYTHON_REQ_USE='bzip2(+),threads(+)' -inherit distutils-r1 +inherit distutils-r1 eutils systemd DESCRIPTION="Portage is the package management and distribution system for Gentoo" HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" LICENSE="GPL-2" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-fbsd" SLOT="0" -IUSE="build doc epydoc +ipc linguas_ru +native-extensions selinux xattr" +IUSE="build doc epydoc gentoo-dev +ipc +native-extensions +rsync-verify selinux xattr" DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') ) >=app-arch/tar-1.27 @@ -33,6 +33,8 @@ DEPEND="!build? ( $(python_gen_impl_dep 'ssl(+)') ) # for now, don't pull in xattr deps for other kernels. # 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=" >=app-arch/tar-1.27 dev-lang/python-exec:2 @@ -40,6 +42,13 @@ RDEPEND=" >=sys-apps/sed-4.0.5 app-shells/bash:0[readline] >=app-admin/eselect-1.2 + $(python_gen_cond_dep 'dev-python/pyblake2[${PYTHON_USEDEP}]' \ + python{2_7,3_4,3_5} pypy) + rsync-verify? ( + >=app-portage/gemato-12.1[${PYTHON_USEDEP}] + app-crypt/openpgp-keys-gentoo-release + >=app-crypt/gnupg-2.2.4-r2[ssl(-)] + ) ) elibc_FreeBSD? ( sys-freebsd/freebsd-bin ) elibc_glibc? ( >=sys-apps/sandbox-2.2 ) @@ -76,20 +85,9 @@ prefix_src_archives() { TARBALL_PV=${PV} SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2 - $(prefix_src_archives ${PN}-${TARBALL_PV}.tar.bz2)" - -PATCHES=( - # fixed upstream in 2.3.12 and up. Backports upstream commits b4b0e6b0aa and 26c0a0e31b. - "${FILESDIR}/${PN}-2.3.8-0002-backport-decompression-fixes.patch" - # upstream bug: https://bugs.gentoo.org/507284 - "${FILESDIR}/${PN}-2.3.8-0001-portage-repository-config.py-add-disabled-attribute-.patch" - # upstream bug: https://bugs.gentoo.org/490014 - "${FILESDIR}/${PN}-2.2.18-0002-environment-Filter-EROOT-for-all-EAPIs.patch" - # upstream bug: - "${FILESDIR}/${PN}-2.2.18-0003-depgraph-ensure-slot-rebuilds-happen-in-the-correct-.patch" - # support new file command output (this can be dropped when upgrading) - "${FILESDIR}/${P}-file-update.patch" -) + $(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() { use epydoc && DISTUTILS_ALL_SUBPHASE_IMPLS=( python2.7 ) @@ -98,8 +96,23 @@ pkg_setup() { 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 + epatch "${DISTDIR}/${P}-bug-656942-bug-657436-937d0156aa06.patch" \ + "${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 + einfo "Disabling --dynamic-deps by default for gentoo-dev..." + sed -e 's:\("--dynamic-deps", \)\("y"\):\1"n":' \ + -i pym/_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; then printf "[build_ext]\nportage-ext-modules=true\n" >> \ @@ -119,6 +132,11 @@ python_prepare_all() { || die "failed to append to make.globals" fi + if use build || ! use rsync-verify; then + sed -e '/^sync-rsync-verify-metamanifest/s|yes|no|' \ + -i cnf/repos.conf || die "sed failed" + fi + if [[ -n ${EPREFIX} ]] ; then einfo "Setting portage.const.EPREFIX ..." sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \ @@ -146,8 +164,9 @@ python_prepare_all() { 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 prefix-guest ; then + if use prefix-guest ; then sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ @@ -203,14 +222,22 @@ python_install_all() { distutils-r1_python_install_all local targets=() - use doc && targets+=( install_docbook ) - use epydoc && targets+=( install_epydoc ) + use doc && targets+=( + install_docbook + --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" + ) + use epydoc && targets+=( + install_epydoc + --htmldir="${EPREFIX}/usr/share/doc/${PF}/html" + ) # install docs if [[ ${targets[@]} ]]; then esetup.py "${targets[@]}" fi + systemd_dotmpfilesd "${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'