On Monday, January 17, 2011 12:54 CET, Michael Schroeder <mls@suse.de> wrote:
On Mon, Jan 17, 2011 at 12:25:58PM +0100, Bernhard Rosenkraenzer wrote:
On Monday, January 17, 2011 11:28 CET, Michael Schroeder <mls@suse.de> wrote:
On Fri, Jan 14, 2011 at 07:29:38PM +0100, Bernhard Rosenkraenzer wrote:
On Friday, January 14, 2011 19:00 CET, "Bernhard Rosenkraenzer" <br@blankpage.ch> wrote:
Current (today's git) sat-solver, libzypp and zypper keeps telling me I need to install some packages even though they're already there and at the current version:
Found another problem that may well be related -- chances are zypper has some problem reading the installed packages from my rpmdb (rpm 5.3.6):
Does "rpmdb2solv | dumpsolv" show all packages? Are the rpm:dbid entries unique?
Yes to both -- rpmdb2solv | dumpsolv seems to work fine. Some rpm:dbids are unique but negative, is that expected?
Negative doesn't sound good, they aren't supposed to be negative. Here's a test to check if they work: rpmdb2solv > solv1 rpmdb2solv solv1 > solv2 dumpsolv solv1 | grep 'repo 0 contains' dumpsolv solv2 | grep 'repo 0 contains'
Both solv files should contain the same number of packages.
solv1: repo 0 contains 596 solvables solv2: repo 0 contains 0 solvables
If the numbers don't match, you can add a workaround to libzypp: Commenting out the following two lines in zypp/target/TargetImpl.cc:
if ( ! oldSolvFile.empty() ) cmd << " '" << oldSolvFile << "'";
Will try...
Then delete /var/cache/zypp/solv/@System/*. This should fix your problems, but it also makes the startup time a bit longer, because rpmdb2solv will no longer reuse entries from the old solv file.
That's ok for now, and can be fixed later...
(Some background: rpm:dbid is supposed to be the database id. If a package with the same id is found in the old solv file, rpmdb2solv will not retrieve and convert the rpm header, but reuse the old entry from the old solv file. Maybe the negative numbers are ok for rpm5, but the code simply can't deal with them yet. That would be easy to fix. Or maybe the dbids are used comletely different in rpm5.)
Without looking at the code yet, I'd guess the dbid data type has changed from int to unsigned int -- if it's that, the fix should be really simple. I'll take a look. ttyl bero -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org