From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Rbag8-0001GV-IJ for garchives@archives.gentoo.org; Fri, 16 Dec 2011 16:30:36 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1506C21C210; Fri, 16 Dec 2011 16:30:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id C54D221C210 for ; Fri, 16 Dec 2011 16:30:28 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2782F1B4033 for ; Fri, 16 Dec 2011 16:30:28 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 8B9F08004A for ; Fri, 16 Dec 2011 16:30:27 +0000 (UTC) From: "Thomas Sachau" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Sachau" Message-ID: <93e622fba8e61722fe5fbdab0f9c29eef7c73e6f.tommy@gentoo> Subject: [gentoo-commits] proj/portage:multilib commit in: / X-VCS-Repository: proj/portage X-VCS-Committer: tommy X-VCS-Committer-Name: Thomas Sachau X-VCS-Revision: 93e622fba8e61722fe5fbdab0f9c29eef7c73e6f Date: Fri, 16 Dec 2011 16:30:27 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: b8d8737c-71f4-479c-95c5-3e388dab5036 X-Archives-Hash: b3642b3febab10a09dc626f0c5352814 commit: 93e622fba8e61722fe5fbdab0f9c29eef7c73e6f Author: Thomas Sachau gentoo org> AuthorDate: Fri Dec 16 16:29:07 2011 +0000 Commit: Thomas Sachau gentoo org> CommitDate: Fri Dec 16 16:29:07 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D93e622fb Merge v2.2.0_alpha81 bin/chpathtool.py | 182 ++++++++++++++= ++ bin/dispatch-conf | 5 +- bin/ebuild-helpers/dobin | 5 +- bin/ebuild-helpers/dodir | 3 +- bin/ebuild-helpers/dodoc | 3 +- bin/ebuild-helpers/doexe | 3 +- bin/ebuild-helpers/dohard | 3 +- bin/ebuild-helpers/doinfo | 3 +- bin/ebuild-helpers/doins | 3 +- bin/ebuild-helpers/dolib | 3 +- bin/ebuild-helpers/doman | 3 +- bin/ebuild-helpers/domo | 3 +- bin/ebuild-helpers/dosbin | 3 +- bin/ebuild-helpers/dosed | 3 +- bin/ebuild-helpers/dosym | 3 +- bin/ebuild-helpers/ecompressdir | 3 +- bin/ebuild-helpers/fowners | 3 +- bin/ebuild-helpers/fperms | 4 +- bin/ebuild-helpers/prepall | 3 +- bin/ebuild-helpers/prepalldocs | 3 +- bin/ebuild-helpers/prepallinfo | 3 +- bin/ebuild-helpers/prepallman | 3 +- bin/ebuild-helpers/prepallstrip | 3 +- bin/ebuild-helpers/prepinfo | 3 +- bin/ebuild-helpers/preplib | 3 +- bin/ebuild-helpers/prepman | 3 +- bin/ebuild-helpers/prepstrip | 3 +- bin/ebuild-ipc.py | 38 +++- bin/ebuild.sh | 32 ++-- bin/egencache | 8 +- bin/emerge-webrsync | 2 + bin/etc-update | 10 +- bin/lock-helper.py | 1 + bin/misc-functions.sh | 24 ++- bin/phase-functions.sh | 27 ++- bin/phase-helpers.sh | 27 ++- bin/portageq | 6 +- bin/repoman | 14 +- cnf/dispatch-conf.conf | 2 +- cnf/make.conf | 8 +- cnf/make.globals | 18 +- doc/config/sets.docbook | 2 +- man/emerge.1 | 25 ++- man/fixpackages.1 | 15 ++ man/make.conf.5 | 16 ++- pym/_emerge/AbstractEbuildProcess.py | 16 ++- pym/_emerge/AsynchronousLock.py | 43 +++-- pym/_emerge/Binpkg.py | 75 ++++++- pym/_emerge/BinpkgEnvExtractor.py | 4 +- pym/_emerge/EbuildMetadataPhase.py | 23 ++- pym/_emerge/FifoIpcDaemon.py | 16 +- pym/_emerge/PipeReader.py | 35 ++-- pym/_emerge/Scheduler.py | 2 +- pym/_emerge/SpawnProcess.py | 31 ++-- pym/_emerge/SubProcess.py | 5 +- pym/_emerge/actions.py | 41 +++-- pym/_emerge/depgraph.py | 15 +- pym/_emerge/emergelog.py | 9 +- pym/_emerge/main.py | 6 +- pym/_emerge/unmerge.py | 2 +- pym/portage/__init__.py | 12 +- pym/portage/_legacy_globals.py | 1 - pym/portage/checksum.py | 29 +++ pym/portage/const.py | 25 ++- pym/portage/data.py | 182 +++++++++++---= -- pym/portage/dbapi/_MergeProcess.py | 2 +- pym/portage/dbapi/porttree.py | 44 +--- pym/portage/dbapi/vartree.py | 4 +- pym/portage/dispatch_conf.py | 10 +- pym/portage/exception.py | 4 + pym/portage/locks.py | 226 ++++++++++++++= ------ pym/portage/output.py | 15 +- .../package/ebuild/_config/LocationsManager.py | 5 +- .../package/ebuild/_config/special_env_vars.py | 8 +- pym/portage/package/ebuild/_spawn_nofetch.py | 2 +- pym/portage/package/ebuild/config.py | 115 +++++++--- pym/portage/package/ebuild/doebuild.py | 21 ++- pym/portage/package/ebuild/fetch.py | 3 +- pym/portage/package/ebuild/prepare_build_dirs.py | 3 +- pym/portage/process.py | 7 +- pym/portage/repository/config.py | 31 +++- pym/portage/tests/bin/setup_env.py | 6 +- pym/portage/tests/dbapi/test_fakedbapi.py | 4 +- pym/portage/tests/ebuild/test_doebuild_spawn.py | 5 + pym/portage/tests/ebuild/test_ipc_daemon.py | 13 +- pym/portage/tests/emerge/test_simple.py | 9 +- pym/portage/tests/locks/test_asynchronous_lock.py | 62 +++++- pym/portage/tests/locks/test_lock_nonblock.py | 17 ++- pym/portage/tests/repoman/test_simple.py | 8 +- pym/portage/tests/resolver/ResolverPlayground.py | 9 +- pym/portage/tests/util/test_getconfig.py | 2 +- pym/portage/tests/util/test_uniqueArray.py | 6 +- pym/portage/util/env_update.py | 2 +- pym/portage/util/movefile.py | 99 +++++++-- pym/portage/xpak.py | 2 +- pym/repoman/utilities.py | 2 +- 96 files changed, 1353 insertions(+), 505 deletions(-) diff --cc bin/misc-functions.sh index cb95f6a,3582889..ed77353 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@@ -17,8 -17,8 +17,9 @@@ shift $ source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}/ebuild.sh" =20 install_symlink_html_docs() { - case "$EAPI" in 0|1|2) local ED=3D${D} ;; esac + [[ " ${FEATURES} " =3D=3D *" force-prefix "* ]] || \ + case "$EAPI" in 0|1|2) local ED=3D${D} ;; esac + [[ -e "${ED}" ]] || return 0 cd "${ED}" || die "cd failed" #symlink the html documentation (if DOC_SYMLINKS_DIR is set in make.co= nf) if [ -n "${DOC_SYMLINKS_DIR}" ] ; then @@@ -148,9 -149,9 +150,10 @@@ prepcompress()=20 =20 install_qa_check() { local f i x - case "$EAPI" in 0|1|2) local ED=3D${D} ;; esac + [[ " ${FEATURES} " =3D=3D *" force-prefix "* ]] || \ + case "$EAPI" in 0|1|2) local ED=3D${D} ;; esac =20 + [[ -d "${ED}" ]] || return 0 cd "${ED}" || die "cd failed" =20 export STRIP_MASK diff --cc bin/phase-functions.sh index 9e2d275,664202a..1ac66e3 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@@ -592,13 -504,11 +596,14 @@@ dyn_install()=20 ebuild_phase pre_src_install =20 _x=3D${ED} - case "$EAPI" in 0|1|2) _x=3D${D} ;; esac + [[ " ${FEATURES} " =3D=3D *" force-prefix "* ]] || \ + case "$EAPI" in 0|1|2) _x=3D${D} ;; esac rm -rf "${D}" + is_auto-multilib && rm -rf "${D}".${ABI} mkdir -p "${_x}" unset _x + for LOOP_ABI in $(get_abi_list); do = = = = =20 + is_ebuild && { set_abi ${LOOP_ABI}; source "${T}"/environment || die = ; } =20 if [[ -d $S ]] ; then cd "${S}" @@@ -669,18 -558,22 +674,32 @@@ [[ -n $x ]] && echo "$x" > $f done fi + if has_multilib_profile ; then + local i=3D x=3D + for i in ${MULTILIB_ABIS} ; do + x+=3D" multilib_abi_${i}" + done + echo "${IUSE}${x}" > IUSE + fi echo "${USE}" > USE echo "${EAPI:-0}" > EAPI + if is_auto-multilib; then + echo "$(get_abi_order)" > MULTILIB_ABIS + fi +=20 + # Save EPREFIX, since it makes it easy to use chpathtool to + # adjust the content of a binary package so that it will + # work in a different EPREFIX from the one is was built for. + case "${EAPI:-0}" in + 0|1|2) + [[ " ${FEATURES} " =3D=3D *" force-prefix "* ]] && \ + [ -n "${EPREFIX}" ] && echo "${EPREFIX}" > EPREFIX + ;; + *) + [ -n "${EPREFIX}" ] && echo "${EPREFIX}" > EPREFIX + ;; + esac +=20 set +f =20 # local variables can leak into the saved environment. diff --cc pym/portage/package/ebuild/config.py index 985b86f,f6166c6..fbb5263 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@@ -725,20 -726,50 +728,54 @@@ class config(object) self["USERLAND"] =3D "GNU" self.backup_changes("USERLAND") =20 - for var in ("PORTAGE_INST_UID", "PORTAGE_INST_GID"): + default_inst_ids =3D { + "PORTAGE_INST_GID": "0", + "PORTAGE_INST_UID": "0", + } +=20 + if eprefix: + # For prefix environments, default to the UID and GID of + # the top-level EROOT directory. try: - self[var] =3D str(int(self.get(var, "0"))) + eroot_st =3D os.stat(eroot) + except OSError: + pass + else: + default_inst_ids["PORTAGE_INST_GID"] =3D str(eroot_st.st_gid) + default_inst_ids["PORTAGE_INST_UID"] =3D str(eroot_st.st_uid) +=20 + if "PORTAGE_USERNAME" not in self: + try: + pwd_struct =3D pwd.getpwuid(eroot_st.st_uid) + except KeyError: + pass + else: + self["PORTAGE_USERNAME"] =3D pwd_struct.pw_name + self.backup_changes("PORTAGE_USERNAME") +=20 + if "PORTAGE_GRPNAME" not in self: + try: + grp_struct =3D grp.getgrgid(eroot_st.st_gid) + except KeyError: + pass + else: + self["PORTAGE_GRPNAME"] =3D grp_struct.gr_name + self.backup_changes("PORTAGE_GRPNAME") +=20 + for var, default_val in default_inst_ids.items(): + try: + self[var] =3D str(int(self.get(var, default_val))) except ValueError: writemsg(_("!!! %s=3D'%s' is not a valid integer. " - "Falling back to '0'.\n") % (var, self[var]), + "Falling back to %s.\n") % (var, self[var], default_val), noiselevel=3D-1) - self[var] =3D "0" + self[var] =3D default_val self.backup_changes(var) =20 + #add multilib_abi internally to list of USE_EXPANDed vars + self["USE_EXPAND"] =3D "multilib_abi" + " " + self.get("USE_EXPAND",= "") + self.backup_changes("USE_EXPAND") + # initialize self.features self.regenerate() =20