Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 4698 - emerge world or system does not update all slots
Summary: emerge world or system does not update all slots
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
: 11888 13968 16639 20061 23034 24612 24672 25040 26139 26210 28380 47345 88495 97886 112933 119210 128644 129600 140293 144622 145497 159626 164634 (view as bug list)
Depends on: 93469
Blocks: 155723 19409 28423 28471 48719 147007
  Show dependency tree
 
Reported: 2002-07-08 09:45 UTC by Phil Bordelon (sunflare)
Modified: 2020-02-03 20:40 UTC (History)
48 users (show)

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


Attachments
the patch for emerge/portage.py (bugs.4698.patch,4.47 KB, patch)
2003-08-03 15:30 UTC, Masatomo Nakano (RETIRED)
Details | Diff
patch for portage.py/emerge (bugs.4698.patch,8.37 KB, patch)
2003-08-07 22:15 UTC, Masatomo Nakano (RETIRED)
Details | Diff
patch for portage.py/emerge (bugs.4698.patch,9.13 KB, patch)
2003-08-10 14:11 UTC, Masatomo Nakano (RETIRED)
Details | Diff
output of emerge -upvD world (emerge.output,3.78 KB, text/plain)
2003-08-15 00:05 UTC, Marius Mauch (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Phil Bordelon (sunflare) 2002-07-08 09:45:25 UTC
Me and drobbins were talking about this earlier this morning.  When you do an
'emerge --update foo-pkg' and foo-pkg has a number of different versions, all
slotted, it only updates the 'latest' slot--i.e. 2 instead of 1.2.  This is a
problem, since the existence of a SLOTted 1.2 version on the machine implies
that it is being used and should be updated regularly.  You can still explicitly
state the updated version, of course, but 'emerge --update' should catch all of
the updates of all of the SLOTs.

I also tentatively suggest that 'emerge --update' NOT work on packages with
SLOT="" if other SLOTs are present.  This is to enforce the current standard of
making sure that SLOT has a value other than NULL, and is another quick check
that can get rid of some developer error.  If other SLOTs are not present,
however, it should do an update as normal, since it's assumed that we simply
haven't gotten around to SLOTting those ebuilds yet.
Comment 1 Phil Bordelon (sunflare) 2002-07-08 09:46:14 UTC
cc'ing drobbins per our conversation.
Comment 2 Klaus Kusche 2002-11-02 12:47:28 UTC
Me, too, suffered from it today.
If one relies on "update world" only, it is very hard to find out which packages
are really affected and need manual updating to keep the system current (there
were four of them on my system, among them glib and gtk+).

Please make "emerge world" work on all slots!
Comment 3 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-03 04:29:56 UTC
Nick, not sure if this is still an issue.
Comment 4 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-25 14:45:46 UTC
Seems fine to me with portage-2.0.46, although it does have a small cosmetic
error ...

-----------
nosferatu env.d # emerge -up --deep world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

[ebuild    UD] x11-libs/gtk+-1.2.10-r10 [2.2.0-r0]
[ebuild    U ] x11-libs/gtk+-2.2.0-r1 [2.2.0-r0]

nosferatu env.d # 
Comment 5 Klaus Kusche 2002-12-25 14:58:29 UTC
What's --deep?

I've 2.0.46, but it is neither in the man page nor in the usage message of emerge.
Comment 6 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-26 13:26:12 UTC
Nick, I thought you added the '--deep' switch to the docs?
Comment 7 Phil Bordelon (sunflare) 2002-12-26 14:34:28 UTC
I just added --deep to the man page; someone can gladly add it to the actual
internal executable documentation.
Comment 8 SpanKY gentoo-dev 2003-02-25 15:15:54 UTC
*** Bug 13968 has been marked as a duplicate of this bug. ***
Comment 9 Hannes Mehnert (RETIRED) gentoo-dev 2003-03-03 18:10:59 UTC
*** Bug 16639 has been marked as a duplicate of this bug. ***
Comment 10 SpanKY gentoo-dev 2003-04-27 15:47:10 UTC
*** Bug 20061 has been marked as a duplicate of this bug. ***
Comment 11 Martin Holzer (RETIRED) gentoo-dev 2003-05-22 13:46:27 UTC
*** Bug 11888 has been marked as a duplicate of this bug. ***
Comment 12 Stanislav Brabec 2003-06-05 10:54:28 UTC
There should be also a way to merge only specific slot - e.g. using
emerge x11-libs/gtk+:1
or
x11-libs/gtk+/1
or something similar.

This is needed for my script revdep-debuild (gentoolkit) (see comment for bug 22161).
Comment 13 Peter Lietz 2003-07-10 11:40:06 UTC
I have the following problem with portage 2.0.48-r1:

The output of "emerge -up --deep world" correctly suggests that I update the "slot 1" version of gnome-base/gconf:

...
[ebuild    U ] gnome-base/gconf-1.0.8-r5 [2.2.0]
...

The output of "etcat -v ^gconf$" supports that as well:

*  gnome-base/gconf :
        [  I] gnome-base/gconf-1.0.8-r3 (1)
        [M~ ] gnome-base/gconf-1.0.8-r4 (1)
        [   ] gnome-base/gconf-1.0.8-r5 (1)
        [  I] gnome-base/gconf-2.2.0 (2)
        [M~ ] gnome-base/gconf-2.2.1 (2)

However, if I issue "emerge -up gconf" I get:

These are the packages that I would merge, in order:
 
Calculating dependencies ...done!

So I take it that update world acts correctly while updating a single, slotted version of a package does not.
Comment 14 SpanKY gentoo-dev 2003-07-16 15:04:59 UTC
*** Bug 24612 has been marked as a duplicate of this bug. ***
Comment 15 Martin Holzer (RETIRED) gentoo-dev 2003-07-17 07:58:18 UTC
*** Bug 24672 has been marked as a duplicate of this bug. ***
Comment 16 David D. Huff Jr. 2003-07-17 14:22:27 UTC
Apache was the last thing I wanted to have this problem.
Comment 17 Michael Stewart (vericgar) (RETIRED) gentoo-dev 2003-07-20 23:11:03 UTC
This seems related, I'm not sure if it warrents a new bug or not.

The SLOT mechanism seems to be causing confusion in many packages (Apache is an example) where you have one SLOT installed, and portage when doing an emerge -p world is wanting to install another SLOT due to a higher version number (not upgrade, but install beside it). Different SLOTs should be different upgrade paths, and that's what the documentation seems to imply:

http://www.gentoo.org/doc/en/portage-manual.xml
"Most distributions and ports systems tend to have a "freetype" package for freetype 1.x and "freetype2" for 2.x. We consider this approach a sign of a fundamentally broken package management system. We simply assigned the SLOT number 1 to the first and number 2 to the second. With this information Portage can track both versions and upgrade both versions if updates to the respective upstream branches are made."
Comment 18 SpanKY gentoo-dev 2003-07-22 20:50:06 UTC
*** Bug 25040 has been marked as a duplicate of this bug. ***
Comment 19 SpanKY gentoo-dev 2003-07-25 15:17:18 UTC
*** Bug 23034 has been marked as a duplicate of this bug. ***
Comment 20 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-03 15:29:10 UTC
I made a patch for fixing this bug.
But I'm not sure it's correct because SLOT is very complicated ;)

Please test it and do feedback.
Comment 21 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-03 15:30:40 UTC
Created attachment 15446 [details, diff]
the patch for emerge/portage.py
Comment 22 SpanKY gentoo-dev 2003-08-07 16:14:54 UTC
*** Bug 26139 has been marked as a duplicate of this bug. ***
Comment 23 Marius Mauch (RETIRED) gentoo-dev 2003-08-07 19:54:33 UTC
I have some problems with the patch, I'll show you some examples (only the important parts):

Without patch:

# emerge -p =sys-devel/gcc-2.95.3-r7
!!! all ebuilds that could satisfy "=sys-devel/gcc-2.95.3-r7" have been masked.

# emerge -p /usr/portage/sys-devel/gcc/gcc-2.95.3-r7.ebuild
[ebuild     U ] sys-devel/gcc-2.95.3-r7 [3.2.3-r1] 

# emerge -p apache
[ebuild  N    ] net-www/apache-2.0.47  

With patch:
# emerge -p =sys-devel/gcc-2.95.3-r7
(nothing)

# emerge /usr/portage/sys-devel/gcc/gcc-2.95.3-r7.ebuild
[ebuild     U-] sys-devel/gcc-2.95.3-r7  

# emerge -p apache
[ebuild  N    ] net-www/apache-1.3.28  
[ebuild  N    ] net-www/apache-2.0.47  

So the output for the gcc thing is wrong and inconsistent, and I don't like behavior for apache:
It is nice to show that there are two SLOTs available, but IMO there are few people actually using both versions parallel and the behavior is not consistent with dependency handling. I'd prefer portage to abort in such a situation (when two SLOTs are available with no preference) and print a message that the user has to choose a specific version. It would also confuse people that don't know about SLOT as there is no indication in the output.
Comment 24 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-07 22:15:04 UTC
hi, Marius
Thank you for reply.

I fixed a bug that emerge is normal end when a package doesn't exist.

And I modified as you said about second problem, which i don't think problem.
I'm not sure which is best solution.

Examples, (English message is just sample. I'm not native English, as you know)
# emerge -p apache

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[multi B     ] net-www/apache-1.3.28 [1]
[multi B     ] net-www/apache-2.0.47 [2]

You need to select one version
Example, "emerge =net-www/apache-2.0.47"
You can install both of them, if you emerge twice.
Comment 25 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-07 22:15:35 UTC
Created attachment 15727 [details, diff]
patch for portage.py/emerge
Comment 26 Marius Mauch (RETIRED) gentoo-dev 2003-08-09 17:55:06 UTC
hmm, the blocking stuff is nice, but there are still several problems:
- all kernel versions are slotted, so we get the blocking message for every kernel emerge
- the gcc problem in my last post still exists
- when I want to emerge a SLOTed without -p, the error message uses tha lowest available version
- I get a traceback on emerge -ep world:
\Traceback (most recent call last):
  File "/usr/bin/emerge", line 2065, in ?
    if not mydepgraph.xcreate(myaction):
  File "/usr/bin/emerge", line 989, in xcreate
    if not self.create(myk):
  File "/usr/bin/emerge", line 682, in create
    if not self.select_dep("/",mydep["/"],myparent=mp):
  File "/usr/bin/emerge", line 885, in select_dep
    if not self.create(myk,myparent):
  File "/usr/bin/emerge", line 682, in create
    if not self.select_dep("/",mydep["/"],myparent=mp):
  File "/usr/bin/emerge", line 885, in select_dep
    if not self.create(myk,myparent):
  File "/usr/bin/emerge", line 695, in create
    if not self.select_dep(myroot,edepend["PDEPEND"]):
  File "/usr/bin/emerge", line 805, in select_dep
    print "\nemerge: there are no masked or unmasked ebuilds to satisfy "+arg+"."
TypeError: cannot concatenate 'str' and 'NoneType' objects
Comment 27 Stanislav Brabec 2003-08-10 05:42:29 UTC
Please make also possible to update specific slot only, for example by:
emerge -n -u net-www/apache:1

This feature will be very useful for revdep-rebuild.
Comment 28 Martin Holzer (RETIRED) gentoo-dev 2003-08-10 06:30:59 UTC
*** Bug 26210 has been marked as a duplicate of this bug. ***
Comment 29 SpanKY gentoo-dev 2003-08-10 12:27:35 UTC
i dont see how doing :1 and -1* is any easier ... 
plus, i dont really see how revdep-rebuild would benefit from the change ... 
Comment 30 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-10 14:11:11 UTC
Created attachment 15866 [details, diff]
patch for portage.py/emerge

>- all kernel versions are slotted, so we get the blocking message for every
kernel emerge

Is this a problem?

>- the gcc problem in my last post still exists
Fixed

>- when I want to emerge a SLOTed without -p, the error message uses tha lowest
available version

Which package is it?

>- I get a traceback on emerge -ep world:
Fixed
Comment 31 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-11 23:47:35 UTC
hi, Stanislav

I thought a way to specify SLOT by emerge before.
example
# emerge apache:1
DEPEND="net-www/apache:1"
etc...

But if we discuss it here, this bug will be complicated.
I think we should discuss about this in another new bug.
Comment 32 Stanislav Brabec 2003-08-14 13:52:51 UTC
emerge apache:1 does not work for me:
Calculating dependencies
emerge: there are no masked or unmasked ebuilds to satisfy "apache:1".
 
!!! Error calculating dependencies. Please correct.

Separate bug, which explains, why revdep-rebuild needs SLOTted emerge command: see bug 22161. I have added new comment.
Comment 33 Marius Mauch (RETIRED) gentoo-dev 2003-08-15 00:03:46 UTC
>>- all kernel versions are slotted, so we get the blocking message for every
>>  kernel emerge
> Is this a problem?

It is a problem as either world updates would not include kernel updates anymore or world updates will break unless you update your kernel before. Both cases would be very irritating and annoying for users. The main issue is that EVERY single version is in its own SLOT.
Ok, that's the theory, the actual results are even more confusing. See the attachment of the output of emerge -upvD world with patched and unpatched portage. Why is it upgrading ac-sources to a different SLOT, downgrading nautilus and gdm and upgrading gdm later?

>>- when I want to emerge a SLOTed package without -p, the error message uses
>>  the lowest available version
> Which package is it?

Tested with mm-sources and other packages (don't remember all of them).
Comment 34 Marius Mauch (RETIRED) gentoo-dev 2003-08-15 00:05:38 UTC
Created attachment 16126 [details]
output of emerge -upvD world
Comment 35 Masatomo Nakano (RETIRED) gentoo-dev 2003-08-30 15:01:59 UTC
I think it's this story.

1. You already installed gnome-1.4.
2. There is gnome-1.4-r3 in Portage tree.
3. emerge will install gnome-1.4-r3 even if gnome-2.* is installed.
4. gnome-base/gnome-1.4-r3 depends on "<gnome-base/gdm-2.4"
5. you already installed gdm-2.4.1.4
6. gdm has no SLOT(all SLOT="0")
7. then emerge will merge gdm-2.2.5.4 and unmerge gdm-2.4.1.4

The patched emerge is correct, I think. The unpatched ebuild will not do No3-7.

And I think it's also gnome ebuilds bug because gnome-base/gnome
has SLOT but gnome-base/{gdm,nautilus} have no SLOT.

What do you think?
Comment 36 Marius Mauch (RETIRED) gentoo-dev 2003-09-11 13:53:55 UTC
I think you're right about the gnome/gdm stuff, a lot of the gnome/gtk stuff doesn't use SLOTs where it should. The kernel thing is still confusing me though, why does it upgrade to a different SLOT ?
Comment 37 Daniel Robbins (RETIRED) gentoo-dev 2003-09-11 16:10:56 UTC
kernel sources? because kernel sources can co-exist on disk. Slots are for packages that can co-exist with other versions of the same package on disk (and still function correctly.)
Comment 38 Marius Mauch (RETIRED) gentoo-dev 2003-09-11 16:31:51 UTC
Sure they can, I'm wondering how the patch affects kernels or other things were each version is in a different SLOT. As I understand it packages should only be upgraded in their own slot. But I've found a possible explanation for this: Maybe the kernel ws an exception because it was in the world file. But on the contrary mm-sources was upgraded without the patch, but not with the patch :-/ So I have one kernel package upgraded and one not upgraded which is clearly incorrect.
Comment 39 Dirk Heinrichs 2004-06-17 01:32:54 UTC
While you're at it: IMHO emerge -update also should _not_ install packages from currently not installed slots. i.e. I use ~x86 and "emerge -DUu world" wants to upgrade KDE 3.2.2 -> 3.2.3 in slot 3.2 and install new kde 3.3.0_alpha1 packages in slot 3.3. The latter shouldn't only happen if the version from the new slot is a dependency of a new version of an allready installed package.

Comment 40 Jason Stubbs (RETIRED) gentoo-dev 2005-04-11 07:02:21 UTC
*** Bug 88495 has been marked as a duplicate of this bug. ***
Comment 41 Carsten Lohrke (RETIRED) gentoo-dev 2005-07-14 05:26:56 UTC
Please take into account that there can be slot issues with one and the same
package and it's slotted (second level) dependencies, too. >> Bug 98425
Comment 42 Jason Stubbs (RETIRED) gentoo-dev 2005-10-07 08:10:44 UTC
*** Bug 28380 has been marked as a duplicate of this bug. ***
Comment 43 Jason Stubbs (RETIRED) gentoo-dev 2005-10-07 09:10:07 UTC
*** Bug 47345 has been marked as a duplicate of this bug. ***
Comment 44 Jason Stubbs (RETIRED) gentoo-dev 2005-10-23 04:05:55 UTC
*** Bug 97886 has been marked as a duplicate of this bug. ***
Comment 45 Jakub Moc (RETIRED) gentoo-dev 2005-11-18 10:04:05 UTC
*** Bug 112933 has been marked as a duplicate of this bug. ***
Comment 46 Joe Wells 2006-01-05 15:15:55 UTC
What is the status of this bug?  Is there any plan to ever fix it?

Because "emerge --update --deep world" doesn't seem to update older slots,
is there any alternative command that will find all such older slots that
need updating and update them?  (Or maybe also determine that some older
slots are no longer needed and recommend their removal?)
Comment 47 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-01-05 19:47:32 UTC
(In reply to comment #46)
> What is the status of this bug?  Is there any plan to ever fix it?
> 
> Because "emerge --update --deep world" doesn't seem to update older slots,
> is there any alternative command that will find all such older slots that
> need updating and update them?  (Or maybe also determine that some older
> slots are no longer needed and recommend their removal?)
> 

There is no alternative and it depends on a new resolver.  We have plans for a new resolver, but no code yet.
Comment 48 Marius Mauch (RETIRED) gentoo-dev 2006-01-16 09:38:22 UTC
*** Bug 119210 has been marked as a duplicate of this bug. ***
Comment 49 Phil Richards 2006-01-17 11:25:00 UTC
Just got tripped up with this with gcc (slots 3.4 and 4.0).  Sigh.  That'll teach me to not read up on known slot problems.

I only realised there was a problem when I did "equery l gcc" and found that my 3.4 gcc installation was actually masked (or, more precisely, didn't exist in portage any more).
Comment 50 Jakub Moc (RETIRED) gentoo-dev 2006-03-30 09:07:23 UTC
*** Bug 128118 has been marked as a duplicate of this bug. ***
Comment 51 Oldrich Jedlicka 2006-03-30 09:10:48 UTC
Is there some new status of this item in new portage? I cannot see any difference - for example sun-jdk 1.4 is still ignored in updates, if you have 1.5 installed. Some plans to have it?
Comment 52 Jakub Moc (RETIRED) gentoo-dev 2006-04-03 08:43:57 UTC
*** Bug 128644 has been marked as a duplicate of this bug. ***
Comment 53 Jakub Moc (RETIRED) gentoo-dev 2006-04-11 09:15:02 UTC
*** Bug 129600 has been marked as a duplicate of this bug. ***
Comment 54 Ian P. Christian 2006-06-17 15:07:25 UTC
I've just had this problem - I have a KDE installed in slot 7, and found that slot 3.5 hasn't been updated for sometime. attempting to move to GCC 4.1.1 resulting in revdep-rebuilt trying to emerge --oneshot a whole load of KDE-3.5 packages that are no longer in portage, despite the fact I've been regular with my emerge --update's.

The fact that this problem with slots not being upgraded isn't mentioned at all in the emerge man page worries me a little - this issue could result in outdated packages on your system, and this in turn surely could result in security issues being present. (take for example in my case, the various security issues in KDM -  the KDE login manager).

Anyway, I solved my problem doing this (i'm sure htis command could be improved upon, effeciency wans't in mind here, I just wanted to get it done ;) )

# equery list --duplicates | grep "\(3.5\)" | grep kde-base | sed "s/\(.*-3.5\).*/\1/" | sed "s/\(.*\)/=\1*/" | xargs emerge --update -pv 
 
Comment 55 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-07-13 15:59:11 UTC
Missed the bug's fourth birthday :(
Comment 56 Richard Garand 2006-07-13 16:44:54 UTC
(In reply to comment #55)
> Missed the bug's fourth birthday :(

Fear not, there will be many more to come... it's still a "new" bug.
Comment 57 Jakub Moc (RETIRED) gentoo-dev 2006-07-14 02:53:58 UTC
*** Bug 140293 has been marked as a duplicate of this bug. ***
Comment 58 Phil Bordelon (sunflare) 2006-07-14 15:36:30 UTC
Surely one of the portage developers would love to take on this delightful task?  If only in honour of its fourth birthday?  I really /did/ have a conversation with drobbins back then about how it was incorrect behaviour ... :)
Comment 59 Marius Mauch (RETIRED) gentoo-dev 2006-07-14 19:07:02 UTC
dep resolver donations are welcome.
Comment 60 Zac Medico gentoo-dev 2006-07-15 00:39:19 UTC
In the case of `emerge -uD world`, it seems like we'd need support for slot deps in the world set. The alternative would be to simply use an "all" package set (bug 96088) to pull in the lower slots.

The case of `emerge -u <atom>` is relatively easy to support since it only needs to see which slots are matched by the command (depending on which slots are installed) and pull in the appropriate updates.
Comment 61 Jakub Moc (RETIRED) gentoo-dev 2006-07-16 00:21:48 UTC
*** Bug 140591 has been marked as a duplicate of this bug. ***
Comment 62 Jakub Moc (RETIRED) gentoo-dev 2006-08-21 04:17:10 UTC
*** Bug 144622 has been marked as a duplicate of this bug. ***
Comment 63 Jakub Moc (RETIRED) gentoo-dev 2006-08-29 10:19:18 UTC
*** Bug 145497 has been marked as a duplicate of this bug. ***
Comment 64 Jakub Moc (RETIRED) gentoo-dev 2006-09-10 12:31:33 UTC
*** Bug 147093 has been marked as a duplicate of this bug. ***
Comment 65 Doug Goldstein (RETIRED) gentoo-dev 2006-09-18 08:40:20 UTC
According to Brian Harring, it's not the highest SLOT it's the highest package version.
Comment 66 Doug Goldstein (RETIRED) gentoo-dev 2006-09-18 08:44:11 UTC
Enjoy your bug spam. (Sorry)
Comment 67 Horst Schirmeier 2006-09-19 11:39:25 UTC
Just curious, when is this going to be fixed? This "feature" is a PITA on my current revdep-rebuild run (due to libssl/libcrypto ABI breakage), _many_

emerge: there are no ebuilds to satisfy "=foo/bar-1.2.3-r4".

to be resolved manually by emerging the newest ebuild in that slot (and having to re-run revdep-rebuild each time, or manually edit the .revdep-rebuild tmp files).

This bug is really annoying, and as it is in bugzilla for more than four years(!) now, I wonder whether it will be adressed some day (there were already patches for earlier Portage versions, see attachment list!) or whether the Portage team's efforts continue going into groundbreaking features like configurable colouring (see current GWN).
Comment 68 Zac Medico gentoo-dev 2006-09-19 11:54:56 UTC
For those wondering when this bug will be fixed, please note that bug 93469 is a dependency that is blocking progress on this bug.
Comment 69 Phil Richards 2006-09-19 12:18:20 UTC
Hmm, wrt Comment #68: I can see that the two are related, but I can't see that SLOT dependencies *have* to be done first.

If I have SLOT a and SLOT b of a package installed (b > a), then this bug is (as far as my understanding, and also fitting in with the new exciting summary line) all about the fact that updates to SLOT a do not get picked up properly.  That has got nothing to do with SLOT dependencies (although having SLOT dependencies may make this problem go away).
Comment 70 Zac Medico gentoo-dev 2006-09-19 12:52:30 UTC
(In reply to comment #69)
> Hmm, wrt Comment #68: I can see that the two are related, but I can't see that
> SLOT dependencies *have* to be done first.

The problem is that packages are pulled into the dependency graph as dependency atoms.  Without slot support in the dependency atoms, it's impossible to restrict an upgrade to a specific slot.  This results in the highest slot being pulled in when the highest version within a lower slot would have been the desired behavior.
Comment 71 Zac Medico gentoo-dev 2006-10-04 23:51:16 UTC
This is fixed in svn r4595.
Comment 72 Zac Medico gentoo-dev 2006-10-05 16:18:32 UTC
This has been released in 2.1.2_pre2-r4.
Comment 73 Phil Bordelon (sunflare) 2006-10-05 16:22:46 UTC
And it only took a little over four years!  Yeah!  Thanks, guys.  You rock.  (I'm not being sarcastic with that; this has been a personal pet peeve of mine since I was a dev, hence the bug.)
Comment 74 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-10-06 11:36:59 UTC
Sorry to spoil the fun, but doesn't seem 100% fixed to me.
World looks fine:
# emerge -up world
Calculating world dependencies... done!
[ebuild     U ] dev-java/sun-jdk-1.6.0.0_beta101 [1.6.0.0_beta100]

But package directly...

# emerge -p sun-jdk
Calculating dependencies... done!
[ebuild   Rf  ] dev-java/sun-jdk-1.7.0.0_alpha01

# emerge -up sun-jdk
Calculating dependencies... done!
(nothing to merge)

Tested with 2.1.2_pre2-r4 and -r5.
Comment 75 Zac Medico gentoo-dev 2006-10-06 11:50:03 UTC
(In reply to comment #74)
> # emerge -up sun-jdk
> Calculating dependencies... done!
> (nothing to merge)

I think that behavior is fine.  Otherwise we'd be treating sun-jdk as a "greedy" atom (matching all slots instead of the highest version).  If you're not using the world or system set, then you should run a command like `emerge -up sun-jdk:1.6`.
Comment 76 Zac Medico gentoo-dev 2006-10-06 12:35:43 UTC
We could add a --greedy option to enable greedy matches on atoms, but that would be a separate bug.  The world and system sets are greedy by nature.
Comment 77 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-10-06 12:47:32 UTC
Well, I don't see why not make it greedy by default? Original comment 0 talks about 'emerge --update foo-pkg' and you in comment 60 say it's easy :)
Comment 78 Zac Medico gentoo-dev 2006-10-06 13:04:30 UTC
(In reply to comment #77)
> Well, I don't see why not make it greedy by default? Original comment 0 talks
> about 'emerge --update foo-pkg' and you in comment 60 say it's easy :)

So, --update should imply --greedy?  It's never been greedy like that before, so it will probably catch lots of people by surprise.  We'll have to provide a way for them to disable the greedy behavior, as well.  We could make it an option similar to --with-bdeps, having y and n choices.
Comment 79 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-10-06 14:46:46 UTC
(In reply to comment #78)
> So, --update should imply --greedy?  It's never been greedy like that before,
> so it will probably catch lots of people by surprise.

So? World update also wasn't greedy before, and now it is. So why not make package update consistent. I honestly don't believe anybody would mind or be badly surprised that package updates properly when he asks it to update.
Comment 80 Zac Medico gentoo-dev 2006-10-06 15:01:37 UTC
The meaning of this bug has become too overloaded over the years.  I'm closing this as fixed via the greedy behavior of system and world sets.  Any additional greedy behavior should be treated as a separate feature request (a different bug).
Comment 81 Michiel de Bruijne 2006-10-07 02:34:47 UTC
(In reply to comment #80)
> Any additional greedy behavior should be treated as a separate feature request (a different bug).

Your wish is my command ;-) bug #150361

Comment 82 Jakub Moc (RETIRED) gentoo-dev 2007-01-01 11:08:32 UTC
*** Bug 159626 has been marked as a duplicate of this bug. ***
Comment 83 Jakub Moc (RETIRED) gentoo-dev 2007-01-31 08:43:12 UTC
*** Bug 164634 has been marked as a duplicate of this bug. ***