PackageKit Backend for Ubuntu Software Center
Internals and Feature Status
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).
- 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
- 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.
Grab lp:software-center and ./software-center-gtk3 --packagekit-backend
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
there is a packaging request on openFATE here (it also includes link to my personal OBS project)
For any questions, check with AlexEftimie, alex3f on Freenode.