Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 20878 - world file would not be properly updated by regenworld
Summary: world file would not be properly updated by regenworld
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-05-12 16:53 UTC by Danny
Modified: 2011-10-30 22:17 UTC (History)
0 users

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


Attachments
Original world file and the new working one (world.tgz,1.92 KB, application/octet-stream)
2003-05-12 17:03 UTC, Danny
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Danny 2003-05-12 16:53:57 UTC
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.
Comment 1 Danny 2003-05-12 17:03:24 UTC
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.)
Comment 2 Donovan Long 2003-05-15 12:59:56 UTC
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.
Comment 3 Marius Mauch (RETIRED) gentoo-dev 2004-01-26 10:09:35 UTC
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.
Comment 4 Danny 2004-01-27 02:52:12 UTC
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.
Comment 5 Marius Mauch (RETIRED) gentoo-dev 2004-01-27 10:03:51 UTC
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 ?
Comment 6 Danny 2004-01-28 22:10:57 UTC
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?
Comment 7 Marius Mauch (RETIRED) gentoo-dev 2004-01-28 22:33:46 UTC
A missing entry is not corruption.
Comment 8 Danny 2004-01-29 07:11:50 UTC
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.