diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-07-06 00:11:19 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-07-06 00:11:19 +0000 |
commit | 4956c0cc71c578dc90300f3f0b3e6eb2c629e672 (patch) | |
tree | 98f10e11f22bf3ff0347d4145a5cf9eb561cfe5c | |
parent | 4a67033fd2c474e89d69903115a0594816e9a6c8 (diff) | |
download | portage-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
-rwxr-xr-x | bin/emerge | 22 |
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: |