Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 137416 - emerge does not create a complete dependency graph
Summary: emerge does not create a complete dependency graph
Status: RESOLVED NEEDINFO
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Other
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-06-20 14:03 UTC by Caleb Cushing
Modified: 2007-01-15 15:39 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge info (emerge.info,2.24 KB, text/plain)
2006-06-20 15:22 UTC, Caleb Cushing
Details
emerge -ped world (emerge.ped.world,280.07 KB, text/plain)
2006-06-20 16:23 UTC, Caleb Cushing
Details
emerge -ped world (emerge.ped.world,305.16 KB, text/plain)
2006-06-24 12:53 UTC, Caleb Cushing
Details
emerge info (emerge.info,2.04 KB, text/plain)
2006-09-02 11:37 UTC, Caleb Cushing
Details
emerge -pvuDNd world (emerge.pvuDNd.word,206.54 KB, text/plain)
2006-09-02 11:45 UTC, Caleb Cushing
Details
emerge -pvd cairo (emerge.pvd.cairo,1.10 KB, text/plain)
2006-09-02 11:46 UTC, Caleb Cushing
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Caleb Cushing 2006-06-20 14:03:56 UTC
last night I was trying to emerge -avuDN world and ran updates. I notice that udev-87-r1 was stable. as of that day pre my sync. but emerge -avuDN world didn't pick it up. i ran emerge -avuDN sytem and that found it fine. this is not normal behavior and may be a bug in portage.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-06-20 14:36:31 UTC
Reopen with emerge --info.
Comment 2 Caleb Cushing 2006-06-20 15:22:22 UTC
Created attachment 89672 [details]
emerge info

was going to put it on but had to wait until I got home. it's in the attachment
Comment 3 Caleb Cushing 2006-06-20 15:23:10 UTC
added emerge info
Comment 4 Zac Medico gentoo-dev 2006-06-20 16:19:05 UTC
Please attach the output of `emerge -ped world` (small d for --debug).
Comment 5 Caleb Cushing 2006-06-20 16:23:34 UTC
Created attachment 89676 [details]
emerge -ped world

This is my emerge -ped world
Comment 6 Caleb Cushing 2006-06-24 12:53:09 UTC
Created attachment 90050 [details]
emerge -ped world

hmm.. possible related problem. I added[ebuild   R   ] dev-ml/lablgtk-2.4.0  USE="opengl svg* -debug -doc -glade -gnome -gnomecanvas" 0 kB 

howver when I ran emerge -avuDN world it didn't find it at all. or when I ran emerge avuDN system. Note: I hadn't actually let it update yet. I'm attaching another emerge -ped world. grep-ing lablgtk comes up with nothing
Comment 7 Zac Medico gentoo-dev 2006-08-30 23:07:14 UTC
(In reply to comment #6)
> grep-ing lablgtk comes up with nothing

Is it listed in /var/lib/portage/world?
Comment 8 Caleb Cushing 2006-09-01 10:45:57 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > grep-ing lablgtk comes up with nothing
> 
> Is it listed in /var/lib/portage/world?
> 

nope. neither of them are... should they be if they were dependancies of something else? isn't udev part of system?
Comment 9 Zac Medico gentoo-dev 2006-09-01 11:05:27 UTC
(In reply to comment #8)
> nope. neither of them are... should they be if they were dependancies of
> something else? isn't udev part of system?

udev is an indirect dependency of system, and should therefore be pulled in on any deep update.  Are you able to reproduce the issue where udev updates are not pulled in?  If so, please attach an emerge --pretend --debug log for the command demonstrating that problem.

lablgtk not being in your `emerge -ped world` output generally indicates that nothing depends on it.  In that case, updates of that package will not be pulled in by deep world updates.  We may add an "all" package set (for bug 96088) that will pull in all possible updates.  I'm not sure how useful that is though.  Generally, the package should be added to the world file via `emerge --noreplace <atom>` or removed via `emerge --depclean`.
Comment 10 Caleb Cushing 2006-09-01 11:41:41 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > nope. neither of them are... should they be if they were dependancies of
> > something else? isn't udev part of system?
> 
> udev is an indirect dependency of system, and should therefore be pulled in on
> any deep update.  Are you able to reproduce the issue where udev updates are
> not pulled in?  If so, please attach an emerge --pretend --debug log for the
> command demonstrating that problem.
> 
> lablgtk not being in your `emerge -ped world` output generally indicates that
> nothing depends on it.  In that case, updates of that package will not be
> pulled in by deep world updates.  We may add an "all" package set (for bug
> 96088) that will pull in all possible updates.  I'm not sure how useful that is
> though.  Generally, the package should be added to the world file via `emerge
> --noreplace <atom>` or removed via `emerge --depclean`.
> 

real hard to say what the state of these issues are at the moment... lablgtk might not be in world because according to me it's no longer installed (didn't think to check earlier). and not sure what I needed for when I filed that part of the bug. I can't say about udev... no updates (stable) 5o it since I filed.
Comment 11 Caleb Cushing 2006-09-01 11:46:42 UTC
... world doesn't handle all? I kinda thought it did? ... if used with the  -e option.
Comment 12 Zac Medico gentoo-dev 2006-09-01 12:01:35 UTC
(In reply to comment #11)
> ... world doesn't handle all? I kinda thought it did? ... if used with the  -e
> option.

No, world includes system and packages explicitly merged by the user.  WIth --deep, it includes deep dependencies of those (such as udev).  If you're able to reproduce this, please reopen with emerge --pretend --debug output for the command that behaves unexpectedly.
Comment 13 Caleb Cushing 2006-09-02 11:37:50 UTC
Created attachment 95760 [details]
emerge info

am updating emerge info for new attachement as I'm reinstalling gentoo and encountered I think a related problem.
Comment 14 Caleb Cushing 2006-09-02 11:45:21 UTC
Created attachment 95762 [details]
emerge -pvuDNd world

ok here's the issue I'm installing gdm in this new install. 

 x11-libs/gtk+-2.8.19 failed.
cairo needs the X flag set

so I set X in the make.conf 

and run said command without d option and get a bunch of updates... I let it run... try to emerge gdm again... same thing I do an emerge -av cairo.

[ebuild   R   ] x11-libs/cairo-1.0.4  USE="X* -doc -glitz -png" 0 kB

my emerge -avuDN world should have rebuilt cairo
Comment 15 Caleb Cushing 2006-09-02 11:46:22 UTC
Created attachment 95763 [details]
emerge -pvd cairo
Comment 16 Caleb Cushing 2006-09-02 11:47:05 UTC
see prior comments - forgot to reopen on those
Comment 17 Zac Medico gentoo-dev 2006-09-02 12:05:59 UTC
(In reply to comment #14)
> ok here's the issue I'm installing gdm in this new install. 
> 
>  x11-libs/gtk+-2.8.19 failed.
> cairo needs the X flag set

Actually, you've observed the expected behavior.  Nothing that is installed depends on cairo and cairo is not in the world (or system) set, so it's not pulled into the depgraph.  If you had run `emerge -uDN gdm`, then it would have pulled cairo into the depgraph like you wanted.

Comment 18 Zac Medico gentoo-dev 2006-09-02 12:15:22 UTC
Now that I think about it, your original problem can be explained by the fact that emerge does not create a complete dependency graph.  The problem is that portage's dep_check() function does not return atoms that are already satisified, so the dependecies of those satisfied atoms may not be fully accounted for in some circumstances.  This issue is related to comments on bug 16365.
Comment 19 Caleb Cushing 2006-09-02 12:20:28 UTC
btw sorry about being an idiot (I should know better) on the last one... I'll look at the one your referring. I was actually thinking I had seen cairo pulled in by X or something else...
Comment 20 Jason Stubbs (RETIRED) gentoo-dev 2006-09-02 21:16:09 UTC
If --update and --deep are specified, portage shouldn't skip any dependencies. When the depgraph is created, a fakedb is created along with it. That fakedb is used with dep_check and only has packages added to it after matching atoms returned by prior calls to dep_check.
Comment 21 Zac Medico gentoo-dev 2006-09-02 23:03:28 UTC
(In reply to comment #20)
> If --update and --deep are specified, portage shouldn't skip any dependencies.
> When the depgraph is created, a fakedb is created along with it. That fakedb is
> used with dep_check and only has packages added to it after matching atoms
> returned by prior calls to dep_check.

Yes, that's right.  Now I don't see any way for udev to be left out unless devfsd was satisfying the dep.  We'd be able to see something like that if we had --debug ouput for the command that behaves unexpectedly...