Summary: | USE=multslot prevents greedy update of slots | ||
---|---|---|---|
Product: | Portage Development | Reporter: | emerald <dirk> |
Component: | Core - Ebuild Support | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED CANTFIX | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 32367 | ||
Bug Blocks: |
Description
emerald
2007-01-10 20:11:56 UTC
changed summary
actually i've seen similar behavior with portage 2.1.1-r2
i don't know if this behavior is wanted/expected behavior
here's what would be merged while using different options to emerge (portage 2.1.2_rc4-r8):
emerald ~ # USE="-java" emerge -puND db
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-libs/db-4.1.25_p2 USE="tcl -bootstrap -doc -java* -nocxx -test (-uclibc)" 0 kB
[ebuild R ] sys-libs/db-4.2.52_p4-r2 USE="tcl -bootstrap -doc -java* -nocxx -test" 0 kB
[ebuild R ] sys-libs/db-4.3.29-r2 USE="tcl -bootstrap -doc -java* -nocxx -test" 0 kB
[ebuild R ] sys-libs/db-3.2.9-r11 USE="-doc -java* -test" 0 kB
Total: 4 packages (4 reinstalls), Size of downloads: 0 kB
emerald ~ # USE="-java" emerge -pND db
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-libs/db-4.3.29-r2 USE="tcl -bootstrap -doc -java* -nocxx -test" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
emerald ~ #
i don't see why the -u should be required to remerge all versions of db in this case, its somehow unexpected behavior depending on the selected options
portage 2.1.1-r2:
fry ~ # emerge -Cp db
>>> These are the packages that would be unmerged:
sys-libs/db
selected: 4.3.29-r2 1.85-r3 4.2.52_p4-r2 3.2.9-r11
portage 2.1.1-r2 seems to ignore the changed use-flag of db completely, with emerge -puND sys-libs/db resp. -pND db it would always ignore db-4.2.52_p4-r2, with emerge -puND world it finally found it.
whereas for gcc neither version of portage managed to find the changed use flag for slots not being the latest, even though sys-devel/gcc is listed in world file
using --with-bdeps=y with portage 2.1.2_rc4-r8 didn't change this
(In reply to comment #1) > i don't see why the -u should be required to remerge all versions of db in this > case, its somehow unexpected behavior depending on the selected options portage-2.1.2 is the first version of portage to have greedy behavior wrt slots. Currently, the greedy behavior is only enabled by --update or one of the system/world sets. the problem is i.e for sys-devel/gcc the greedy behavior doesn't work even with world set emerald ~ # USE="gcj" emerge -auND world These are the packages that would be merged, in order: Calculating world dependencies... done! [ebuild U ] sci-libs/blas-atlas-3.7.24 [3.7.11-r1] USE="-debug -doc" 0 kB [ebuild N ] sci-libs/lapack-atlas-3.7.24 USE="-debug -doc" 0 kB [ebuild R ] cross-powerpc-unknown-linux-gnu/gcc-4.1.1-r3 USE="fortran gcj* multislot nls test (-altivec) -bootstrap -build -doc -gtk -hardened -ip28 -ip32r10k -mudflap (-multilib) (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -vanilla" 0 kB [1] [ebuild R ] cross-i686-pc-linux-gnu/gcc-4.1.1-r3 USE="fortran gcj* multislot nls test (-altivec) -bootstrap -build -doc -gtk -hardened -ip28 -ip32r10k -mudflap (-multilib) (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -vanilla" 0 kB [1] [ebuild NS ] sys-devel/gcc-3.3.6-r1 USE="doc fortran gcj gtk multislot nls objc test (-altivec) -bootstrap -boundschecking -build (-hardened) -ip28 -ip32r10k (-multilib) (-n32) (-n64) -nocxx -nopie -nossp -vanilla" 123 kB [ebuild R ] cross-armv4l-softfloat-linux-gnu/gcc-3.4.6-r2 USE="gcj* multislot nls nocxx test (-altivec) -bootstrap -boundschecking -build -doc -fortran -gtk -hardened -ip28 -ip32r10k (-multilib) (-n32) (-n64) -nopie -nossp -objc -vanilla" 0 kB [1] [ebuild N ] virtual/libstdc++-3.3 0 kB [ebuild U ] net-p2p/ktorrent-2.1_rc1 [2.1_beta1] USE="arts kdeenablefinal xinerama -debug" LINGUAS="de en_GB zh_CN zh_TW -bg -br -ca -cs -cy -da -el -es -et -eu -fr -ga -gl -hu -it -ja -km -lt -mk -ms -nb -nl -pa -pl -pt -pt_BR -ru -rw -sk -sr -sr@Latn -sv -tr -uk" 0 kB [ebuild R ] sys-devel/gcc-4.2.0_alpha20061205 USE="doc fortran gcj* gtk multislot nls objc objc++ test (-altivec) -bootstrap -build (-hardened) -ip28 -ip32r10k -mudflap (-multilib) (-n32) (-n64) -nocxx -objc-gc -vanilla" 0 kB [ebuild U ] sci-mathematics/octave-2.1.73-r2 [2.1.73-r1] USE="emacs hdf5 mpi readline zlib -debug -doc -static (-blas%*)" 0 kB the above listed gcc versions are still installed (In reply to comment #3) > the problem is i.e for sys-devel/gcc the greedy behavior doesn't work even with > world set It must be because you have USE=multislot enabled. There is currently no way to implement greedy behavior for packages that have multislot enabled. multislot is an unsanctioned hack. Dynamic slots are certainly a desirable feature but there is currently no standardized implementation for them. s/standardized// |