Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 97312 Details for
Bug 147766
[PATCH] Build up a full depgraph
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Add PDEPEND info to the graph
pdepend-deps.patch (text/plain), 3.85 KB, created by
Jason Stubbs (RETIRED)
on 2006-09-18 02:13:43 UTC
(
hide
)
Description:
Add PDEPEND info to the graph
Filename:
MIME Type:
Creator:
Jason Stubbs (RETIRED)
Created:
2006-09-18 02:13:43 UTC
Size:
3.85 KB
patch
obsolete
>diff -uNr portage.newgraph/bin/emerge portage/bin/emerge >--- portage.newgraph/bin/emerge 2006-09-19 18:01:51.000000000 +0000 >+++ portage/bin/emerge 2006-09-19 18:09:54.000000000 +0000 >@@ -673,7 +673,7 @@ > "--getbinpkg" in self.myopts, > "--getbinpkgonly" in self.myopts) > >- def create(self,mybigkey,myparent=None,addme=1,myuse=None,soft_dep=False,arg=None): >+ def create(self,mybigkey,myparent=None,addme=1,myuse=None,soft_dep=False,rev_dep=False,arg=None): > """ > Fills the digraph with nodes comprised of packages to merge. > mybigkey is the package spec of the package to merge. >@@ -685,17 +685,22 @@ > #IUSE-aware emerge -> USE DEP aware depgraph > #"no downgrade" emerge > """ >- > jbigkey = " ".join(mybigkey) + " merge" > if self.digraph.hasnode(jbigkey): > if addme and jbigkey != myparent: > # Refuse to make a node depend on itself so that the we don't > # don't create a bogus circular dependency in self.altlist(). >- self.digraph.addnode(jbigkey, myparent, soft_dep=soft_dep) >+ if rev_dep and myparent: >+ self.digraph.addnode(myparent, jbigkey, soft_dep=soft_dep) >+ else: >+ self.digraph.addnode(jbigkey, myparent, soft_dep=soft_dep) > return 1 > jbigkey = " ".join(mybigkey) + " nomerge" > if self.digraph.hasnode(jbigkey): >- self.digraph.addnode(jbigkey, myparent, soft_dep=soft_dep) >+ if rev_dep and myparent: >+ self.digraph.addnode(myparent, jbigkey, soft_dep=soft_dep) >+ else: >+ self.digraph.addnode(jbigkey, myparent, soft_dep=soft_dep) > return 1 > > self.spinner.update() >@@ -777,7 +782,10 @@ > """ At this point, we have either hit a blocker and returned, found the package in the > depgraph already and returned, or we are here. Whether we are merging or not; we must > add the package to the depgraph; so we do that here. """ >- self.digraph.addnode(string.join(mybigkey),myparent,soft_dep=soft_dep) >+ if rev_dep and myparent: >+ self.digraph.addnode(myparent,string.join(mybigkey),soft_dep=soft_dep) >+ else: >+ self.digraph.addnode(string.join(mybigkey),myparent,soft_dep=soft_dep) > > """ This section determines whether we go deeper into dependencies or not. > We want to go deeper on a few occasions: >@@ -820,7 +828,7 @@ > if edepend.has_key("PDEPEND") and edepend["PDEPEND"]: > # Post Depend -- Add to the list without a parent, as it depends > # on a package being present AND must be built after that package. >- if not self.select_dep(myroot,edepend["PDEPEND"],myuse=myuse,soft_deps=True): >+ if not self.select_dep(myroot,edepend["PDEPEND"],myparent=mp,myuse=myuse,soft_deps=True,rev_deps=True): > return 0 > except ValueError, e: > pkgs = e.args[0] >@@ -983,7 +991,7 @@ > if curslot == myslot: > return match > >- def select_dep(self,myroot,depstring,myparent=None,arg=None,myuse=None,raise_on_missing=False,soft_deps=False): >+ def select_dep(self,myroot,depstring,myparent=None,arg=None,myuse=None,raise_on_missing=False,soft_deps=False,rev_deps=False): > """ Given a depstring, create the depgraph such that all dependencies are satisfied. > myroot = $ROOT from environment, where {R,P}DEPENDs are merged to. > myparent = the node whose depstring is being passed in >@@ -1174,14 +1182,14 @@ > #we are a dependency, so we want to be unconditionally added > soft_dep = soft_deps or vardb.match(x) > if not self.create(selected_pkg[0:3], myparent, >- myuse=selected_pkg[-1], soft_dep=soft_dep, arg=arg): >+ myuse=selected_pkg[-1], soft_dep=soft_dep, rev_dep=rev_deps, arg=arg): > return 0 > else: > #if mysource is not set, then we are a command-line dependency and should not be added > #if --onlydeps is specified. > if not self.create(selected_pkg[0:3], myparent, > addme=("--onlydeps" not in self.myopts), >- myuse=selected_pkg[-1], arg=arg): >+ myuse=selected_pkg[-1], rev_dep=rev_deps, arg=arg): > return 0 > > if "--debug" in self.myopts:
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 147766
:
97111
|
97113
|
97122
|
97180
|
97190
|
97292
|
97305
|
97306
|
97307
| 97312 |
97324
|
97329
|
97336
|
98131
|
98153
|
98186