There seems to be an inconsistency in kernel-headers; emerge --world update wants to downgrade my sys-kernel/linux-headers-2.4.17-r5. > Thanks for the explanation Tod. I'm still confused though. In my own > case, I'm not merging linux-headers individually, but rather it got > merged via "emerge --world update". As far as I can tell, the problem > is that the portage tree is inconsistent. > > In order to get to a known state of affairs, I unmerged > linux-headers-2.4.17-r5 and linux-sources-2.4.17-r5, and then re-emerged > linux-headers-2.4.16-r3 and linux-sources-2.4.16-r3, following up with > an "emerge --clean rsync". So linux-headers, linux-sources and glibc > are all consistent with each other and qpkg tells me: > > bash-2.05a# qpkg -nc -I linux > sys-apps/util-linux-2.11l * > sys-kernel/linux-headers-2.4.16-r3 * > sys-kernel/linux-sources-2.4.16-r3 * > bash-2.05a# qpkg -nc -I glibc > sys-libs/glibc-2.2.4-r9 * > > Now when I consider an update, I see this: > > bash-2.05a# emerge --pretend --world update > (lots of dots deleted) > [ebuild U] sys-apps/baselayout-1.7.1-r1 to / > [ebuild U] sys-kernel/linux-headers-2.4.17-r5 to / > [ebuild U] sys-apps/devfsd-1.3.24 to / > [ebuild U] dev-util/intltool-0.15 to / > [ebuild U] media-libs/gdk-pixbuf-0.16.0-r4 to / > [ebuild U] sys-kernel/linux-sources-2.4.17-r5 to / > > If I drop the --pretend, then things will be messed up again. There > is an sys-libs/glibc/glibc-2.2.5-r1.ebuild, but it's masked. > > Am I wrong in thinking that the portage tree is inconsistent? If so, > maybe you can straighten me out. > Hi! Yes, I think that you are correct in that there is an incosistency. 'view /usr/portage/profiles/default-1.0_rc6/packages' This file is what portage uses to determine what is updated with a 'emerge update'. Basically, a package with a * in front of it is updated. (See comments at op of the file). You will notice 2 lines: #not required, since glibc depends on linux-headers and they come with the build image *sys-kernel/linux-headers But unfortunately, it still exists. I believe this is the source of the inconsistency as this line will cause a merge of the most recent linux header version while glibc-2.4.4 wants to use 2.4.16. A fix would be to just comment out that linux header line (Note your change will be overwritten with a 'emerge rsync') as the dependencies in glibc will merge linux-headers.
Yes, the current --world functionality upgrades a bit more than necessary. This bug will be addressed in the near future.
The current in-testing version of Portage has emerge --world update ripped out of it and it will be reimplemented soon in such a way as to avoid this problem. I'm marking this bug as fixed since we've already removed this code from our testing Portage.