From 436edc72f1f7a21e763f2ddb20fbb790be573f39 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 27 Apr 2010 15:49:05 -0700 Subject: In bintree.inject(), ensure that _pkgindex_entry returns local metadata rather than remote metadata. Thanks to Kenneth Waters for reporting. --- pym/portage/dbapi/bintree.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'pym') diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index caa17699f..8a7112fde 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -943,6 +943,12 @@ class binarytree(object): if not self._pkgindex_version_supported(pkgindex): pkgindex = self._new_pkgindex() + # Discard remote metadata to ensure that _pkgindex_entry + # gets the local metadata. This also updates state for future + # isremote calls. + if self._remotepkgs is not None: + self._remotepkgs.pop(cpv, None) + try: d = self._pkgindex_entry(cpv) except portage.exception.InvalidDependString: @@ -981,11 +987,6 @@ class binarytree(object): if pkgindex_lock: unlockfile(pkgindex_lock) - if self._remotepkgs is not None: - # When a remote package is downloaded and injected, - # update state so self.isremote() returns False. - self._remotepkgs.pop(cpv, None) - def _pkgindex_entry(self, cpv): """ Performs checksums and evaluates USE flag conditionals. -- cgit v1.2.3-1-g7c22