Bug 244488

Summary: yum throws PackageSackError trying to upgrade libraw1394
Product: [Fedora] Fedora Reporter: Jarod Wilson <jarod>
Component: yumAssignee: James Antill <james.antill>
Status: CLOSED ERRATA QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: 7CC: dtimms, katzj, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 3.2.1-1.fc7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-06-28 01:49:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jarod Wilson 2007-06-16 01:23:17 UTC
+++ This bug was initially created as a clone of Bug #244474 +++

yum / pup die while trying to upgrade libraw1394-1.2.1-8.fc7 on an i386 system
that has kernel-xen installed. The yum error is:

--> Processing Conflict: libraw1394 conflicts kernel < 2.6.21-1.3194.fc7
Error: No Package Matching kernel.i686

kernel-xen provides kernel = 2.6.20, so this conflicts with libraw1394. I think
probably this needs to be changed to:

Requires: kernel >= 2.6.21-1.3194.fc7

Here's the traceback from pup:

Summary: TB8a9b4f2f packageSack.py:600:returnNewestByNameArch:PackageSackError:
No Package Matching kernel.i686

Traceback (most recent call last):
  File "/usr/sbin/pup", line 409, in _apply
    self.applyChanges(self.mainwin)
  File "/usr/lib/python2.5/site-packages/pirut/__init__.py", line 718, in
applyChanges
    self.checkDeps(mainwin)
  File "/usr/lib/python2.5/site-packages/pirut/__init__.py", line 481, in checkDeps
    (result, msgs) = self.buildTransaction()
  File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 549, in
buildTransaction
    (rescode, restring) = self.resolveDeps()
  File "/usr/lib/python2.5/site-packages/yum/depsolve.py", line 856, in resolveDeps
    (checkdep, missing, conflict, errormsgs) = self._processConflict(dep)
  File "/usr/lib/python2.5/site-packages/yum/depsolve.py", line 662, in
_processConflict
    po = self.pkgSack.returnNewestByNameArch((confpkg.name,confpkg.arch))[0]
  File "/usr/lib/python2.5/site-packages/yum/packageSack.py", line 308, in
returnNewestByNameArch
    return bestofeach.returnNewestByNameArch(naTup)
  File "/usr/lib/python2.5/site-packages/yum/packageSack.py", line 600, in
returnNewestByNameArch
    raise PackageSackError, 'No Package Matching %s.%s' % naTup
PackageSackError: No Package Matching kernel.i686

Local variables in innermost frame:
highdict: {}
self: <yum.packageSack.ListPackageSack object at 0xcf868ec>
naTup: ('kernel', 'i686')
where: None

-- Additional comment from jwilson on 2007-06-15 21:20 EST --
Ah. I was wondering if kernel-xen might be involved, and forgot that it Provides: kernel = 2.6.20-... 
What I got locally was...

[jarod@ares ~]$ sudo yum --enablerepo=updates-testing upgrade libraw1394
Password:
Loading "installonlyn" plugin
Setting up Upgrade Process
livna-development         100% |=========================| 2.1 kB    00:00     
primary.sqlite.bz2        100% |=========================| 100 kB    00:00     
updates-testing           100% |=========================| 1.9 kB    00:00     
primary.sqlite.bz2        100% |=========================| 200 kB    00:00     
rt                        100% |=========================|  951 B    00:00     
fedora                    100% |=========================| 2.1 kB    00:00     
primary.sqlite.bz2        100% |=========================| 3.8 MB    00:04     
updates                   100% |=========================| 1.9 kB    00:00     
primary.sqlite.bz2        100% |=========================| 361 kB    00:09     
Resolving Dependencies
--> Running transaction check
filelists.sqlite.bz2      100% |=========================| 409 kB    00:00     
---> Package libraw1394.i386 0:1.2.1-8.fc7 set to be updated
--> Processing Dependency: libraw1394 = 1.2.1-7.fc7 for package: libraw1394-devel
--> Processing Conflict: libraw1394 conflicts kernel < 2.6.21-1.3194.fc7
Error: No Package Matching kernel.i686
[jarod@ares ~]$ rpm -q kernel
kernel-2.6.21-1.3142.fc7.i686
kernel-2.6.21-1.3194.fc7.i686

...which looks correct enough.

As for the Conflicts instead of Requires on the kernel version... I just changed from Req to Conflict to 
circumvent a kernel getting pulled into buildroots that need libraw1394-devel. This is a bit of a sticky 
situation... I'm pretty sure that kernel-xen doesn't have the needed firewire support, so libraw1394 
really *does* conflict with that kernel-xen. If its flipped back to a Requires: with a sufficiently recent 
enough version, installing libraw1394 is going to pull in kernel > 2.6.21-something, which can't be 
obtained from a kernel-xen Provides:...

So what's the lesser of two evils here:

1) use a Requires:, which is going to mean people who really only wanted kernel-xen are going to have 
kernel also pulled in, but will be unable to use libraw1394 (also leads to buildroot bloat)

2) use a Conflicts:, which will leave people unable to have both kernel-xen and libraw1394 installed at 
the same time, but will eliminate buildroot bloat and prevent people from using a non-functional 
combo.

Of course, I'm just *assuming* the new firewire stack never made it into kernel-xen... (I'll check in a 
sec).

So really, we have two different issues here -- straightening out the Requires/Conflicts bit, and the fact 
that yum died a horrific death in this situation. The latter definitely shouldn't happen, so I'll clone over a 
new bug against yum. The former... Now that I think about it, I say we just drop both Requires and 
Conflicts from the libraw1394 package. The F7 GA kernel has the needed support, so anyone with this 
libraw1394 ought to have a sufficiently new enough kernel anyway. The kernel-xen case... *shrug*

-- Additional comment from jwilson on 2007-06-15 21:21 EST --
(In reply to comment #1)
[...]
> --> Processing Conflict: libraw1394 conflicts kernel < 2.6.21-1.3194.fc7
> Error: No Package Matching kernel.i686
> [jarod@ares ~]$ rpm -q kernel
> kernel-2.6.21-1.3142.fc7.i686
> kernel-2.6.21-1.3194.fc7.i686
> 
> ...which looks correct enough.

Well, actually, the Error: text could be improved a bit, since its actually the Conflict that is the problem, 
not that we don't have a matching kernel.i686.

Comment 1 Jeremy Katz 2007-06-18 21:13:40 UTC
*** Bug 244648 has been marked as a duplicate of this bug. ***

Comment 2 Jeremy Katz 2007-06-18 21:42:34 UTC
Okay, fixed up the handling of this in upstream yum; will be in yum 3.2.1

Comment 3 Fedora Update System 2007-06-21 22:03:29 UTC
yum-3.2.1-1.fc7 has been pushed to the Fedora 7 testing repository.  If problems still persist, please make note of it in this bug report.

Comment 4 Fedora Update System 2007-06-28 01:48:38 UTC
yum-3.2.1-1.fc7 has been pushed to the Fedora 7 stable repository.  If problems still persist, please make note of it in this bug report.