Bug 514879 - PackageKit take old package rather then from update repo
Summary: PackageKit take old package rather then from update repo
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: PackageKit
Version: 11
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Richard Hughes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-07-31 07:55 UTC by Alexey Kuznetsov
Modified: 2009-09-13 08:25 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-09-13 08:25:46 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Alexey Kuznetsov 2009-07-31 07:55:23 UTC
I've been looking further into this, RPM Fusion has both a release repo
(mirroring Fedora's repo layout, to be used at install time) and an updates
repo.

The problem is that gstreamer-plugins-bad-0.10.11-4.fc11 (from the release
repo) and gstreamer-ffmpeg-0.10.7-2.fc11.1 (from the updates repo) both provide
gstreamer0.10(encoder-video/x-xvid) the newer gstreamer-plugins-bad in updates
no longer has the provides.

For some reason packagekit decides to downgrade  gstreamer-plugins-bad rather
then install gstreamer-ffmpeg (which has the same provides).

This is a package kit bug, these Provides moving from one package to another
happens every now and then as plugings move from -bad to -good or -ugly for
example. Combine these plugin moves with having a release repo state and a
release+updates repo state and there can be 2 packages providing the same
thing,
in this scenario packagekit should not downgrade a package when there also
is another way (which does not involve downgrades) to get the same provides!



https://bugzilla.rpmfusion.org/show_bug.cgi?id=723

Comment 1 Richard Hughes 2009-07-31 12:51:49 UTC
Right, in the code I've got a comment to this affect:

/* gstreamer-ffmpeg and gstreamer-plugins-ugly both provide mp3 playback, choose one */
if (len > 1)
	egg_warning ("choosing one of the provides as more than one match");

/* always use the first one */
obj = pk_package_list_get_obj (list, 0);

In this case, I've just chosen the first item -- which ever comes first. What should happen in this case is that we don't return results which require downgrading (or are already not installed).

I'm slightly confused as the code already does:

ret = pk_client_what_provides (task->priv->client_primary, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), PK_PROVIDES_ENUM_CODEC, codec_desc, error);

So maybe we just have to make that use the NEWEST filter. I've added this in the following commit:

commit f1dfd84f1e2df4f5c886631647380f63ae9b5035
Author: Richard Hughes <richard>
Date:   Fri Jul 31 13:46:12 2009 +0100

    Only return the newest packages for mime, fonts and codec helpers and to perhaps fix rh#514879

I hope this fixes this bug. They'll be a new release in rawhide on Monday for you to test.

Comment 2 Steven M. Parrish 2009-09-13 00:54:35 UTC
Is this fixed in the current release?

-- 
Steven M. Parrish - KDE Triage Master
                  - PackageKit Triager
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers

Comment 3 Richard Hughes 2009-09-13 08:25:46 UTC
In rawhide, yes.


Note You need to log in before you can comment on or make changes to this bug.