[packagekit] help with conary backend

Richard Hughes hughsient at gmail.com
Sat Nov 15 02:16:35 PST 2008


On Fri, 2008-11-14 at 14:42 -0600, zodman wrote:
> Oh :) tnx for the access. But i think from now the backend are on
> development. Im send patches to kenvandine for review ( as mentor
> tasker). When backend go stable. Ken commit it. No problem from now
> about the acces the repository.

Sure, that's fine with me.

> What you say i have a problem with the resolve method. Im check it.

> Well on the resolve with pkcon works fine (without filters).
> 
> $ ./pkcon resolve pastebinit
> available   	pastebinit-0.7-1-1                   [===============]
> 
> But with filters.
> 
> zodman at cosmogirl:~/lab/dev/packagekit/pk-orig/client
> $ ./pkcon resolve --filter "installed"  pastebinit
> zodman at cosmogirl:~/lab/dev/packagekit/pk-orig/client
> $ ./pkcon resolve --filter "available"  pastebinit
> available   	pastebinit-0.7-1-1                   [===============]
> $ ./pkcon resolve --filter "~installed"  pastebinit
> available   	pastebinit-0.7-1-1                   [===============]

You can't use "available" as a filter. You can either use "installed" or
"~installed" (not installed). 'available' is just the return value
from ::Package()

Of course, this is my fault for allowing the user to specify an invalid
filter using pkcon, so I've fixed this in
baba96aaf2d564a01480c47dfe4d769e89c3b383 so that if you specify an
invalid filter it gives you an error rather than just using the elements
it recognises.

> root at cosmogirl:~/lab/dev/packagekit/pk-orig/backends/conary
> #  python conaryBackend.py  resolve ~installed pastebinit
> allow-cancel	true
> no-percentage-updates
> status	info
> allow-cancel	true
> no-percentage-updates
> status	query
> 
> package	available
> pastebinit;0.7-1-1;x86;/foresight.rpath.org at fl:2-qa/1222042924.172:0.7-1-1,1#x86
> 
> finished

This looks right.

> root at cosmogirl:~/lab/dev/packagekit/pk-orig/backends/conary
> #
> root at cosmogirl:~/lab/dev/packagekit/pk-orig/backends/conary
> #  python conaryBackend.py  resolve installed pastebinit
> allow-cancel	true
> no-percentage-updates
> status	info
> allow-cancel	true
> no-percentage-updates
> status	query
> package	available
> pastebinit;0.7-1-1;x86;/foresight.rpath.org at fl:2-qa/1222042924.172:0.7-1-1,1#x86
> 
> finished

This is the problem -- you're asking the backend for all packages that
are installed "resolve installed pastebinit" and the backend is
returning with "package available pastebinit" which is not available,
_not_ installed!

If there's nothing installed, then you don't return anything for this
function. If you look in the backend/yum/yumBackend.py code you'll see
how we did the filtering there -- I've even created a yumFilter.py
module which implements the common filter.py code. It's likely you just
want to make conaryFilter.py work correctly and copy the model from yum.

Richard.





More information about the PackageKit mailing list