Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 91100 Details for
Bug 48195
Dep calculation does not use installed package information
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
allow installed packages to satisfy dependencies
installed_deps.patch (text/plain), 3.37 KB, created by
Zac Medico
on 2006-07-07 00:44:10 UTC
(
hide
)
Description:
allow installed packages to satisfy dependencies
Filename:
MIME Type:
Creator:
Zac Medico
Created:
2006-07-07 00:44:10 UTC
Size:
3.37 KB
patch
obsolete
>diff --git a/bin/emerge b/bin/emerge >index 6e33f00..f1b875f 100755 >--- a/bin/emerge >+++ b/bin/emerge >@@ -707,7 +707,7 @@ class depgraph: > If the package has new iuse flags or different use flags then if > --newuse is specified, we need to merge the package. """ > if merging==0 and "--newuse" in self.myopts and \ >- vardbapi.cpv_exists(mykey): >+ mytype != "installed" and vardbapi.cpv_exists(mykey): > old_use = vardbapi.aux_get(mykey, ["USE"])[0].split() > if mytype == "binary": > iuses = bindb.aux_get(mykey, ["IUSE"])[0].split() >@@ -764,6 +764,12 @@ class depgraph: > edepend["RDEPEND"]=string.join(mytbz2.getelements("RDEPEND")," ") > edepend["PDEPEND"]=string.join(mytbz2.getelements("PDEPEND")," ") > edepend["SLOT"] =mytbz2.getfile("SLOT",mypkgparts[2]) >+ elif mytype == "installed": >+ myfoo = self.trees[myroot]["vartree"].dbapi.aux_get( >+ mykey, ["RDEPEND","PDEPEND"]) >+ edepend["DEPEND"] = "" >+ edepend["RDEPEND"] = myfoo[0] >+ edepend["PDEPEND"] = myfoo[1] > elif mytype=="ebuild": > try: > mymeta = ["DEPEND","RDEPEND","PDEPEND"] >@@ -965,6 +971,7 @@ class depgraph: > > portdb = self.trees[myroot]["porttree"].dbapi > bindb = self.trees[myroot]["bintree"].dbapi >+ vartree = self.trees[myroot]["vartree"] > pkgsettings = self.pkgsettings[myroot] > > if "--debug" in self.myopts: >@@ -1048,12 +1055,32 @@ class depgraph: > old_use = bindb.aux_get(myeb_pkg, ["USE"])[0].split() > pkgsettings.setcpv(myeb_pkg) > now_use = pkgsettings["USE"].split() >- for x in iuses: >- if (old_use.count(x) and not now_use.count(x)) or (not old_use.count(x) and now_use.count(x)): >+ for useflag in iuses: >+ if (old_use.count(useflag) and \ >+ not now_use.count(useflag)) or \ >+ (not old_use.count(useflag) and \ >+ now_use.count(useflag)): > myeb_pkg = None > break > >- if (not myeb) and (not myeb_pkg): >+ myeb_inst = None >+ if not arg: >+ myeb_inst = portage.best(vartree.dbapi.match(x)) >+ if myeb_inst and "--newuse" in self.myopts: >+ iuses, old_use = \ >+ vartree.dbapi.aux_get(myeb_inst, ["IUSE","USE"]) >+ iuses = iuses.split() >+ old_use = old_use.split() >+ now_use = pkgsettings["USE"].split() >+ for useflag in iuses: >+ if (old_use.count(useflag) and \ >+ not now_use.count(useflag)) or \ >+ (not old_use.count(useflag) and \ >+ now_use.count(useflag)): >+ myeb_inst = None >+ break >+ >+ if (not myeb_inst) and (not myeb) and (not myeb_pkg): > if raise_on_missing: > raise ValueError > if not arg: >@@ -1105,7 +1132,30 @@ class depgraph: > else: > myeb_pkg = None > >- if myeb: >+ def cpvpkgsplit(cpv): >+ mysplit = portage.catpkgsplit(cpv) >+ return [mysplit[0] + "/" + mysplit[1], >+ mysplit[2], mysplit[3]] >+ >+ if myeb_inst and (myeb or myeb_pkg): >+ if myeb: >+ if portage.pkgcmp( >+ cpvpkgsplit(myeb), cpvpkgsplit(myeb_inst)) > 0: >+ myeb_inst = None >+ else: >+ myeb = None >+ else: >+ if portage.pkgcmp( >+ cpvpkgsplit(myeb_pkg), cpvpkgsplit(myeb_inst)) > 0: >+ myeb_inst = None >+ else: >+ myeb_pkg = None >+ >+ if myeb_inst: >+ binpkguseflags = \ >+ vartree.dbapi.aux_get(myeb_inst, ["USE"])[0].split() >+ myk = ["installed", myroot, myeb_inst] >+ elif myeb: > myk=["ebuild",myroot,myeb] > elif myeb_pkg: > binpkguseflags = \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 48195
:
91086
| 91100