summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-06 00:11:19 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-06 00:11:19 +0000
commit4956c0cc71c578dc90300f3f0b3e6eb2c629e672 (patch)
tree98f10e11f22bf3ff0347d4145a5cf9eb561cfe5c /bin
parent4a67033fd2c474e89d69903115a0594816e9a6c8 (diff)
downloadportage-4956c0cc71c578dc90300f3f0b3e6eb2c629e672.tar.gz
portage-4956c0cc71c578dc90300f3f0b3e6eb2c629e672.tar.bz2
portage-4956c0cc71c578dc90300f3f0b3e6eb2c629e672.zip
Fix emerge by ebuild path so that it works properly. (trunk r7166)
svn path=/main/branches/2.1.2/; revision=7167
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge22
1 files changed, 17 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index 0c48a3d47..837833799 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1499,13 +1499,25 @@ class depgraph:
return (0,myfavorites)
arg_atoms.append((x, "="+mykey))
elif ext==".ebuild":
- x = os.path.realpath(x)
- mykey=os.path.basename(os.path.normpath(x+"/../.."))+"/"+os.path.splitext(os.path.basename(x))[0]
+ ebuild_path = portage_util.normalize_path(os.path.abspath(x))
+ pkgdir = os.path.dirname(ebuild_path)
+ tree_root = os.path.dirname(os.path.dirname(pkgdir))
+ cp = pkgdir[len(tree_root)+1:]
+ e = portage_exception.PackageNotFound(
+ ("%s is not in a valid portage tree " + \
+ "hierarchy or does not exist") % x)
+ if not portage.isvalidatom(cp):
+ raise e
+ cat = portage.catsplit(cp)[0]
+ mykey = cat + "/" + os.path.basename(ebuild_path[:-7])
+ if not portage.isvalidatom("="+mykey):
+ raise e
ebuild_path = portdb.findname(mykey)
if ebuild_path:
- if os.path.realpath(ebuild_path) != x:
+ if ebuild_path != os.path.join(os.path.realpath(tree_root),
+ cp, os.path.basename(ebuild_path)):
print colorize("BAD", "\n*** You need to adjust PORTDIR or PORTDIR_OVERLAY to emerge this package.\n")
- sys.exit(1)
+ return 0, myfavorites
if mykey not in portdb.xmatch(
"match-visible", portage.dep_getkey(mykey)):
print colorize("BAD", "\n*** You are emerging a masked package. It is MUCH better to use")
@@ -1517,7 +1529,7 @@ class depgraph:
raise portage_exception.PackageNotFound(
"%s is not in a valid portage tree hierarchy or does not exist" % x)
if not self.create(["ebuild", myroot, mykey],
- None, "--onlydeps" not in self.myopts):
+ None, "--onlydeps" not in self.myopts, arg=x):
return (0,myfavorites)
arg_atoms.append((x, "="+mykey))
else: