Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 149208

Summary: portage-2.1.2-pre1-r3 emerge -u doesn't update direct dependencies
Product: Portage Development Reporter: Colin Macdonald <cbm>
Component: Core - Ebuild SupportAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal Keywords: InVCS, REGRESSION
Priority: High    
Version: 2.1   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 147007    
Attachments: update direct dependencies of command line arguments
update direct dependencies of command line arguments

Description Colin Macdonald 2006-09-26 11:51:31 UTC
[This must be a dup but I couldn't find anything!]

--update doesn't seem to do anything in these new portage versions.  I do remember reading somewhere there was a change in behavior but I don't think it was supposed to be this drastic:

Here is an example using 2.1.2-pre1-r1:
# emerge -vup scipy

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] app-admin/eselect-blas-0.1  0 kB 
[ebuild  N    ] app-admin/eselect-cblas-0.1  0 kB 
[ebuild     U ] sci-libs/blas-atlas-3.7.11-r1 [3.7.11] USE="-debug -doc" 1,990 kB 
[ebuild  N    ] app-admin/eselect-lapack-0.1  0 kB 
[ebuild     U ] sci-libs/lapack-atlas-3.7.11-r1 [3.7.11] USE="-debug -doc -ifc" 4,934 kB 
[ebuild     U ] dev-python/numpy-1.0_rc1 [1.0_beta2] USE="lapack" 1,094 kB 
[ebuild     U ] sci-libs/scipy-0.5.1 [0.4.9] USE="fftw -debug" 4,043 kB 

and with 2.1.2-pre1-r2 (or r3)

# emerge -vup scipy

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] sci-libs/scipy-0.5.1 [0.4.9] USE="fftw -debug" 4,043 kB 

quoting emerge(1):
--update: ...
"This  will also  update  direct  dependencies which may not be what you want."

(which is not happening in my above example)

Of course there is also this, which suggests I shouldn't use --update with scipy (why not?):

"In general, use this option only in combination with the world or system target."

Perhaps related: bug #149092.
Comment 1 Zac Medico gentoo-dev 2006-09-26 12:11:47 UTC
I realize that the behavior has changed.  However, I think --deep will do what you want, and is makes sense in this case.
Comment 2 Zac Medico gentoo-dev 2006-09-26 12:17:14 UTC
Nevermind, I think I see the problem.  I make a patch.
Comment 3 Zac Medico gentoo-dev 2006-09-26 15:28:28 UTC
Created attachment 98176 [details, diff]
update direct dependencies of command line arguments

This will bring back the old behavior.  Previously we used an "empty" depgraph parameter to produce this type of behavior, but the logic was quite messy in my opinion.  I think that this is a much cleaner way to implement it.

I'm not sure if we really need the "update direct dependencies" feature anyway.  We could get rid of it and people would just have to use --deep to pull in updates of dependencies.
Comment 4 Colin Macdonald 2006-09-26 23:23:36 UTC
I'm not a big fan of --deep as it tends to put things in a strange order where the direct dependencies end up being emerged after the package itself.  See numpy in the following example:

 # emerge -vuDp scipy

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] sys-devel/binutils-config-1.9-r2 [1.8-r7] 0 kB 
[ebuild     U ] sys-devel/m4-1.4.7 [1.4.6] USE="nls" 499 kB 
[ebuild     U ] sys-apps/debianutils-2.17.1 [2.16.2] USE="-static" 127 kB 
[ebuild     U ] sys-libs/timezone-data-2006l [2006g] 336 kB 
[ebuild     U ] sci-libs/scipy-0.5.1 [0.4.9] USE="fftw -debug" 4,043 kB 
[ebuild     U ] app-admin/perl-cleaner-1.04.3 [1.04.1] 5 kB 
[ebuild     U ] dev-lang/python-2.4.3-r4 [2.4.3-r3] USE="berkdb gdbm ncurses readline ssl tk -bootstrap -build -doc -ipv6 -nocxx -ucs2" 7,827 kB 
[ebuild     U ] dev-java/java-config-2.0.30 [2.0.28-r1] 16 kB 
[ebuild  N    ] app-admin/eselect-blas-0.1  0 kB 
[ebuild  N    ] app-admin/eselect-cblas-0.1  0 kB 
[ebuild     U ] sci-libs/blas-atlas-3.7.11-r1 [3.7.11] USE="-debug -doc" 1,990 kB 
[ebuild  N    ] app-admin/eselect-lapack-0.1  0 kB 
[ebuild     U ] sci-libs/lapack-atlas-3.7.11-r1 [3.7.11] USE="-debug -doc -ifc" 4,934 kB 
[ebuild     U ] dev-python/numpy-1.0_rc1 [1.0_beta2] USE="lapack" 1,094 kB 
[ebuild     U ] x11-drivers/xf86-input-evdev-1.1.2-r2 [1.1.2-r1] USE="-debug" 220 kB 

I like to old behavior of --update because I could count on it to pull in the most recent versions of the direct dependencies without a lot of other things (and it did it in a predictable order).  For example, in this case scipy depends directly on numpy so if I'm interested in the new version of scipy then I'm probably interested in the newer numpy as well.

I suppose I wouldn't care so much if --deep put things in a more predictable order (maybe that's a separate bug).
Comment 5 Zac Medico gentoo-dev 2006-09-27 01:55:54 UTC
Created attachment 98200 [details, diff]
update direct dependencies of command line arguments

This updated patch is in svn r4541.

(In reply to comment #4)
> I'm not a big fan of --deep as it tends to put things in a strange order where
> the direct dependencies end up being emerged after the package itself.

As long as everything builds correctly and works, we shouldn't be too concerned about the specific ordering.  Anyway, the pulling in of direct dependencies seems reasonably useful, so this is fixed for the next release.
Comment 6 Colin Macdonald 2006-09-27 09:19:04 UTC
Cool!  thanks fixing and sorry about the ranting.
Comment 7 Zac Medico gentoo-dev 2006-09-27 13:45:29 UTC
This has been released in 2.1.2_pre1-r4.