local overlay=${EBUILD%/*}
overlay=${overlay%/*}
overlay=${overlay%/*}
- eerror "This ebuild is from an overlay: '${overlay}/'"
+ if [[ -n $PORTAGE_REPO_NAME ]] ; then
+ eerror "This ebuild is from an overlay named" \
+ "'$PORTAGE_REPO_NAME': '${overlay}/'"
+ else
+ eerror "This ebuild is from an overlay: '${overlay}/'"
+ fi
+ elif [[ -n $PORTAGE_REPO_NAME && -f "$PORTDIR"/profiles/repo_name ]] ; then
+ local portdir_repo_name=$(<"$PORTDIR"/profiles/repo_name)
+ if [[ -n $portdir_repo_name && \
+ $portdir_repo_name != $PORTAGE_REPO_NAME ]] ; then
+ eerror "This ebuild is from a repository" \
+ "named '$PORTAGE_REPO_NAME'"
+ fi
fi
eerror
tree = "porttree"
self._tree = tree
portdb = root_config.trees[tree].dbapi
- settings["EMERGE_FROM"] = pkg.type_name
- settings.backup_changes("EMERGE_FROM")
- settings.reset()
+ settings.setcpv(pkg)
+ settings.configdict["pkg"]["EMERGE_FROM"] = pkg.type_name
ebuild_path = portdb.findname(self.pkg.cpv)
self._ebuild_path = ebuild_path
debug = settings.get("PORTAGE_DEBUG") == "1"
portage.doebuild_environment(self._ebuild_path, "setup",
settings["ROOT"], settings, debug, 1, self._bintree.dbapi)
+ settings.configdict["pkg"]["EMERGE_FROM"] = pkg.type_name
# The prefetcher has already completed or it
# could be running now. If it's running now,
_env_blacklist = [
"A", "AA", "CATEGORY", "EBUILD_PHASE", "EMERGE_FROM",
"PF", "PKGUSE", "PORTAGE_CONFIGROOT", "PORTAGE_IUSE",
- "PORTAGE_USE", "ROOT"
+ "PORTAGE_REPO_NAME", "PORTAGE_USE", "ROOT"
]
_environ_whitelist = []
else:
aux_keys = [k for k in auxdbkeys \
if not k.startswith("UNUSED_")]
+ aux_keys.append("repository")
for k, v in izip(aux_keys, mydb.aux_get(self.mycpv, aux_keys)):
pkg_configdict[k] = v
+ repository = pkg_configdict.pop("repository", None)
+ if repository is not None:
+ pkg_configdict["PORTAGE_REPO_NAME"] = repository
for k in pkg_configdict:
if k != "USE":
env_configdict.pop(k, None)
mysettings["ROOT"] = myroot
mysettings["STARTDIR"] = getcwd()
-
- mysettings["PORTAGE_REPO_NAME"] = ""
- # bindbapi has no getRepositories() method
- if mydbapi and hasattr(mydbapi, "getRepositories"):
- # do we have a origin repository name for the current package
- repopath = os.sep.join(pkg_dir.split(os.path.sep)[:-2])
- for reponame in mydbapi.getRepositories():
- if mydbapi.getRepositoryPath(reponame) == repopath:
- mysettings["PORTAGE_REPO_NAME"] = reponame
- break
-
mysettings["EBUILD"] = ebuild_path
mysettings["O"] = pkg_dir
mysettings.configdict["pkg"]["CATEGORY"] = cat