Hi Seth,

Am Freitag, 8. Februar 2008 schrieb seth vidal:
> On Fri, 2008-02-08 at 10:42 +0100, Hans-Peter Jansen wrote:
> > With pleasure from my side, but probably not from yours, since they're
> > a mess... Attached.
>
> okay, I see the exclude containing kernel-* in update.repo.
>
> Can you try a couple of things for me:

With pleasure.

> 1. make the line that was the exclude read:
>   exclude=opal* pwlib* wine python-qt* samba-vscan kernel*
>
>  so that is removing the - following kernel

I should have mentioned, that I had it like this primary, similar to the
other ex. The version containing the dash was the second try already.
Tried it again, with no behavioral changes.

> 2. if that doesn't work - take off the *. I want to figure out which
> piece is failing in the matching routine.

Now I made it read like this:
exclude=opal* pwlib* wine python-qt* samba-vscan kernel-bigsmp kernel-source 
kernel-syms

I.e. with the exact matches, but again, no behavioral change.

Now I excluded a package ready to update from a different repo, that 
matched as expected, even with wildcards. 

Looks like one of the exactarchlist, installonlypkgs or kernelpkgnames 
options is responsible for this issue.

While my SUSE package contains a patch from Christoph Thiel, I reverted
it temporarily to be sure, it's not the culprit:

--- yum/rpmsack.py
+++ yum/rpmsack.py
@@ -104,7 +104,7 @@
         ts = self.readOnlyTS()
         result = {}
         
-        mi = ts.dbMatch('basenames', name)
+        mi = ts.dbMatch('basenames', name.encode('us-ascii'))
         for hdr in mi:
             pkg = self._makePackageObject(hdr, mi.instance())
             if not result.has_key(pkg.pkgid):
@@ -119,7 +119,7 @@
         ts = self.readOnlyTS()
         result = {}
         tag = self.DEP_TABLE[prcotype][0]
-        mi = ts.dbMatch(tag, name)
+        mi = ts.dbMatch(tag, name.encode('us-ascii'))
         for hdr in mi:
             po = self._makePackageObject(hdr, mi.instance())
             prcotup = (name, None, (None, None, None))

but that results only in a traceback like this:

Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package kernel-syms.i586 0:2.6.18.8-0.8 set to be updated
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:])
  File "/usr/share/yum-cli/yummain.py", line 236, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 151, in main
    (result, resultmsgs) = base.buildTransaction() 
  File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 576, in 
buildTransaction
    (rescode, restring) = self.resolveDeps()
  File "/usr/lib/python2.5/site-packages/yum/depsolve.py", line 738, in 
resolveDeps
    CheckDeps, checkinstalls, checkremoves, missing = 
self._resolveRequires(errors)
  File "/usr/lib/python2.5/site-packages/yum/depsolve.py", line 824, in 
_resolveRequires
    thisneeds = self._checkInstall(txmbr)
  File "/usr/lib/python2.5/site-packages/yum/depsolve.py", line 865, in 
_checkInstall
    if req in oldreqs and self.rpmdb.getProvides(*req):
  File "/usr/lib/python2.5/site-packages/yum/rpmsack.py", line 401, in 
getProvides
    pkgs = self.searchProvides(name)
  File "/usr/lib/python2.5/site-packages/yum/rpmsack.py", line 165, in 
searchProvides
    return self.searchPrco(name, 'provides')
  File "/usr/lib/python2.5/site-packages/yum/rpmsack.py", line 140, in 
searchPrco
    mi = ts.dbMatch(tag, name)
TypeError: unknown key type

Okay, for some reason, the SUSE rpm database has a different encoding 
then. Let's ignore this for now.

Do you have more ideas on what to try next?

Thanks for your patience,
Pete
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to