Things such as gentoolkit, tcsh, nano, and frozen-bubble were not being listed from an "emerge -up --deep world". var/cache/edb/world did not have all the packages it needed, I tried both "emerge regen world" and "regenworld" (are they the same?) and neither added the missing packages. They actually made things worse by adding "distcc", which was no longer installed, to the world file. I am running stable (X86 not ~X86). I have portage-2.0.47-r10 installed. In the end, I was able to get things working by doing this: qpkg -nc -I > var/cache/edb/world I'm not sure why the world file fell out of sync in the first place. This seems to be perhaps two bugs, not only a regenworld bug, but a bug in keeping the world file updated (however I've been told this is inevitable). Reproducible: Always Steps to Reproduce: I saved my old world file and I can reproduce the problem simply by (1) copying the old world file back, and then (2) at this point the regenworld can be executed and it still doesn't add what's needed. To actually see the problem in action I need to downgrade something first if there are no updates (easy enough to downgrade tcsh to see the problem). Actual Results: Most new ebuilds aren't listed when doing an "emerge -up --deep world". Expected Results: It should have added the missing/needed packages to the var/cache/edb/world file. The update should have found the packages. I am running stable (X86 not ~X86). I have portage-2.0.47-r10 installed. Due to the bug I only had gentoolkit-0.1.17-r11 installed, but this shouldn't be related to the bug.
Created attachment 11849 [details] Original world file and the new working one Not sure if this is at all useful, but it's the original world file that was causing the problems and the new one I created with qpkg -nc -I. Maybe you could reproduce my problem by copying my world file over yours and doing a regen world? (I listed it as binary because it is a tgz file, not text.)
I have the exact same problem on TWO separate machine here. I have explained/documented it in depth on the forum: http://forums.gentoo.org/viewtopic.php?p=323929#323929 Using QPKG -I -nc is apparantly required to keep the world file up todate.
regenworld is not a mind-reading tool, it's only for recovery if your world file is broken. The world file is not supposed to have all packages you ever installed.
Did you read the bug report Marius? When top level packages are missing from our world.db regenworld will not fix it. We didn't say we wanted everything in there, just that some things were not being added as they should be and the only way to fix it was to use "qpkg -nc -I" and put everything in to the world.db. This was indeed happening as is shown in the file I attached 6 months ago. regenworld as it was then was not finding the missing entries that belonged in world.db but the system did know which packages we had installed as was shown by the qpkg work around. Perhaps this has been fixed since then but saying that we wanted regenworld to put every package into world.db is entirely unrelated to the bug in regenworld that caused it to miss some top level packages that it should be finding. I don't know if this is still a problem as I haven't tested it lately, but marking it invalid for the wrong reasons doesn't seem to help anyone.
I stand by my action: regenworld is a recovery tool, not a maintenance tool. You don't use fsck if you think a file is missing, do you ?
The world.db file was broken/corrupt/lost in some manner, it needed to be recovered. Isn't this exactly what regenworld is suppose to do? Is there any other point to regenworld than to fix your world.db?
A missing entry is not corruption.
Heh, this is getting silly. If a truncated world file is not corrupt, surely you would need a recovery tool for a missing world file. Here are the steps I followed that show the bug (this should work about the same on any system that is currently using ACCEPT_KEYWORDS="x86", thus allowing "~x86" to have a bunch of updates): 1. ACCEPT_KEYWORDS="~x86" emerge -up --deep world | sort > out.current 2. mv /var/cache/edb/world ~/world.current 3. regenworld 4. ACCEPT_KEYWORDS="~x86" emerge -up --deep world | sort > out.regen 5. diff out.current out.regen results: 61a62 > [ebuild U ] media-libs/quicktime4linux-2.0.0-r1 [1.5.5-r1] 137a139 > [ebuild N ] dev-libs/libsigc++-1.2.5 139a142 > [ebuild N ] media-libs/imlib2-1.1.0.20040103 141a145 > [ebuild N ] media-video/ffmpeg-0.4.8 It seems when rebuilding the world file it misses some things, I'm sure this isn't intentional. However, of those missing packages only ffmpeg isn't a lib and is used on it's own. I think the reason we haven't heard any more about this bug is because there haven't been world file corruptions since portage 2.0.47 or 2.0.48 so a large amount of people haven't had to use it.