commit: 9b153179004f60ef4a7e4fc7039bd49476ef70b9 Author: Thomas Sachau <tommy <AT> gentoo <DOT> org> AuthorDate: Sun Jan 7 12:51:29 2018 +0000 Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org> CommitDate: Sun Jan 7 12:51:29 2018 +0000 URL: https://gitweb.gentoo.org/proj/multilib-portage.git/commit/?id=9b153179
Sync portage Package-Manager: portage-2.3.6 Manifest-Sign-Key: 0xC05330B3211CA2D4 sys-apps/portage/Manifest | 13 +- sys-apps/portage/files/README.RESCUE | 2 + sys-apps/portage/files/portage-ccache.conf | 2 + sys-apps/portage/portage-2.3.7-r1.ebuild | 275 +++++++++++++++++++++++++++++ 4 files changed, 287 insertions(+), 5 deletions(-) diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest index 731f734e4..35056361e 100644 --- a/sys-apps/portage/Manifest +++ b/sys-apps/portage/Manifest @@ -1,13 +1,16 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 +AUX README.RESCUE 137 SHA256 69bea0c755eab59b6b4d90838b8551744f0b0c8eeac170b1cd13a71ee83f9ac4 SHA512 dba0f0d6d4cd140e636cc70dfb7bdb298e2f2fb040bc07b0874cac994bdbabd26bfd9361d85a0f8b9a92a185281e4901606b9e4f563afdc8867341bbe6af1cb0 WHIRLPOOL 713fcc790442999d56e13efaf536fec9954dadeda680b3642d0358311332096ddedf8b55697bd1ca620d84f0dc7d025ff7931e086c74c1f5032be72dca2ff8f5 +AUX portage-ccache.conf 60 SHA256 5175a18d3b81bd0aa499e0da6a2f44b920cf26f650e8dadea8dc2dc6551f8a39 SHA512 36427e57046118ecf982fc3b1a80a3543b5682e3eef7df5dfc8a50b261a5da56f997dd75f63c5194049aceea204c37aee638a3bc383b9f7a0eff8ac9c35f3b1c WHIRLPOOL f79ec05596e022d2d73cc18656e398cbca9c55c7ff65c51634f7ccd1a46af1845ef66649267773b93a2bcff9e1de621785231a1a18d42fff97026ff12594a3bc EBUILD portage-2.3.6-r1.ebuild 8865 SHA256 c4c300df276931854a9b35178cfa3ad517bc70cef438289b36b66d75ed4ff765 SHA512 50991bc94f2934454f5254dce47460a57d4e933a78e26cb2db9374856efff135c7d0564a52297f0416d922a22bb011ef6cc0623d17fa8b1ad9a880395c8e2f6c WHIRLPOOL de1a86c97dec170bc36f3afe548b1515ed3f84c8b79bba16edf288133391d9c1e76df388ab073921775968edc02f66852b7d70b7a339ca11c79cc3d31eabc0de +EBUILD portage-2.3.7-r1.ebuild 8865 SHA256 eda572bf020e8911795c7e51656f4dabb9553065abc9710bb6fd435b288b8ad7 SHA512 05388033a012ddcd0357406d2aa1d550e68d729decc0fb8142efd394be61aca6f46a5eb8f676a1968b8da7654d977f6ca97973990132ee125c45de1bf3e3598d WHIRLPOOL 65e0442f061f42a8e0271cfce930deaf423996b430ab115a3f812c5cc85380c7632115feeae5f5d874e17608bfe20f3b55405772d31a02ee023b1b07e4199fed MISC metadata.xml 1147 SHA256 c4832ae64ab0915c65eadca15e4540680d109c21d572464f69e218d14fe6bd8b SHA512 733193cbfc96da31252b5e4109d0b76f797e339c41eda2c1230cc1d5b0e75912177570ed0140218a7a7b85d9b8bc53e8e6931e88810269c499be87af40e6b86c WHIRLPOOL bf901ca7474f9b8358c458edad904f9c0c853187c6dc8ea0bc0c327bded60940c6f8b20f0231d78d86aa7dc5235b23d70c69f7153cca9e375fa271c7c93707b9 -----BEGIN PGP SIGNATURE----- -iLMEAQEIAB0WIQQUEEce6kYbCwkDe/sbuSpxNYmQZwUCWlH3pwAKCRAbuSpxNYmQ -Z/s+A/4w8LHGuSEgUWGuwe6c1mQeJNwdoIhQCSXha7D4FBC1uIE9uknxfe8vcxs2 -mK4y5UKBDUSXEzw6igBKVGYKMCieZtAU9y74Ggv++kSSfkSoFO/uUsS4DySk4ctb -vUNiJOw0j+/0Ibbu2lkuT3R1SJm/KF18IEmCCC3vwXomxqX7kg== -=9tA4 +iLMEAQEIAB0WIQQUEEce6kYbCwkDe/sbuSpxNYmQZwUCWlIXygAKCRAbuSpxNYmQ +Z5L8A/0fS0jXc2VB6HZeJaHroZVu708ahhwFnT2qZSAXA/o5nX+1nbvZ9KRlM/BQ +beeIBsDBNxnk970EGF4i337MiFKG/oJhELcf8qe2SQXP1F0ckZVEjIVkQgPzgM7s +YMh/F+ketJcrt77D+vTTESt1+VgNmO1uQx2183M6149q/mjL+w== +=E3Qm -----END PGP SIGNATURE----- diff --git a/sys-apps/portage/files/README.RESCUE b/sys-apps/portage/files/README.RESCUE new file mode 100644 index 000000000..70c494ebb --- /dev/null +++ b/sys-apps/portage/files/README.RESCUE @@ -0,0 +1,2 @@ +Please see http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml +for a recovery guide for a broken portage installation. diff --git a/sys-apps/portage/files/portage-ccache.conf b/sys-apps/portage/files/portage-ccache.conf new file mode 100644 index 000000000..37857fde3 --- /dev/null +++ b/sys-apps/portage/files/portage-ccache.conf @@ -0,0 +1,2 @@ +# Prevent ccache files from being cleaned +x /var/tmp/ccache diff --git a/sys-apps/portage/portage-2.3.7-r1.ebuild b/sys-apps/portage/portage-2.3.7-r1.ebuild new file mode 100644 index 000000000..e8d70e28f --- /dev/null +++ b/sys-apps/portage/portage-2.3.7-r1.ebuild @@ -0,0 +1,275 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PYTHON_COMPAT=( + pypy + python3_4 python3_5 python3_6 + python2_7 +) +PYTHON_REQ_USE='bzip2(+),threads(+)' + +inherit distutils-r1 git-2 multilib + +EGIT_REPO_URI="git://anongit.gentoo.org/proj/portage.git" +EGIT_BRANCH="multilib" +EGIT_COMMIT="16fcf4998f4b55f1697e4358c7b232e3cab56a11" +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*')] ) + >=sys-apps/abi-wrapper-1.0-r6" +# 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) + ) ) + !<app-admin/logrotate-3.8.0 + >=sys-apps/abi-wrapper-1.0-r6" +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + userland_GNU? ( >=sys-apps/coreutils-6.4 ) + )" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync + +REQUIRED_USE="epydoc? ( $(python_gen_useflags 'python2*') )" + +pkg_setup() { + use epydoc && DISTUTILS_ALL_SUBPHASE_IMPLS=( python2.7 ) +} + +python_prepare_all() { + distutils-r1_python_prepare_all + + 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 + elog "For setup instructions after switching to portage-multilib" + elog "read doc/portage-multilib-instructions inside the multilib overlay" + einfo + elog "The bin/ dir of the overlay has some scripts to switch from lib32" + elog "to MULTILIB_ABI or to add the default MULTILIB_ABI flags" + + 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 "" +}