PackagekitBackend
PackageKit Backend for Ubuntu Software Center
This page describes work done by AlexEftimie during GSoC 2011, on adding a PackageKit backend to SoftwareCenter.
Internals and Feature Status
The PackageKit backend has been added as an alternative to the current AptDaemon / AptCache backend.
Several code refactoring changes have been made, but at the user level, only a --packagekit-backend command line switch is visible.
When run with --packagekit-backend, the channel pane will be populated only with generic channels loaded from database (this means no PPA, no For Purchase).
What works
- Getting packages, showing them in categories; getting detailed information about a package;
- Installing/Removing a package, and also handling dependencies changed
- Watching transaction progress and canceling transactions
What's left
- performance issues
Viewing installed software takes a significant amount of time, due to calling resolve for each package. This must be fixed by caching an all software query; also update-software-center is slow, for the same reason.
- package the appdata.xml or provide it via repository
Currently, this file is generated manually from a set of .desktop files, using XML parsing tool at http://gitorious.org/appstream/resources
- package/distribute icons
Currently, icon names for software programs are fetched from appdata.xml, but icon files are not distributed
- fix category view
The category separation in SoftwareCenter relies on software-center.menu XML; the category hierarchy specified there does not correspond exactly with categories that are extracted from .desktop files via appdata.xml. Either the menu file or the application info generator must be modified, for a perfect match between indexed applications (database) and shown categories (gui).
- proper package origin handling
When populating database using the PK backend, no package origin information will be stored; instead all packages will be nested under a generic Provided by DISTRONAME channel. A better solution should be find for getting friendly origin information from PK.
Testing
Grab lp:software-center and ./software-center-gtk3 --packagekit-backend
First run
download a test AppStream application information xml, from http://swarm.cs.pub.ro/~alexef/gsoc/appdata.xml
copy it into /usr/share/app-info/xmls/ (create the folder if it doesn't exist)
issue update-software-center --use-packagekit --appstream-only [--local] to have the database populated with data from the xml previously downloaded
run python setup.py build to generate a local ./build/ directory with resources
Dependencies
PackageKit (>=0.6.16)
pygobject (>=2.90.1)
openSUSE
there is a packaging request on openFATE here (it also includes link to my personal OBS project)
Contact details
For any questions, check with AlexEftimie, alex3f on Freenode.
SoftwareCenter/PackagekitBackend (last edited 2011-08-19 13:26:03 by 109)