PackageKit Web Plugin

Owen Taylor has been rocking recently. In the 0.3.x releases there’s an optional packagekit-plugin package that is a standard Mozilla plugin. It works in Firefox and Epiphany and looks something like this:

Test page shipped with PackageKit

It’s actually pretty easy to build a website that wants to install something new or run an application that is already installed.

The actual html you need is something like this:

<object type="application/x-packagekit-plugin" width="500" height="200" class="packagekit-plugin">
<param name="displayname" value="KStars"/>
<param name="packagenames" value="kdeedu kde4edu"/>
<param name="desktopnames" value="kstars"/>
</object>

You can omit displayname and desktopnames if you wish, as PackageKit can query the backend and fill in the blanks. The packagenames are queried until PackageKit finds one that matches on your system.

I’m also thinking about adding the application icon in the box as common applications usually have standard icons that PackageKit already uses for other stuff.

Of course, because this uses PackageKit, it’ll work on any distro. If you want to improve the look of the plugin or add some extra features, jump on the mailing list and give ideas. Feedback welcome.

Fedora Forums

I’ve just been banned on the Fedora Forums.

I’ve been asking users with PackageKit bugs to report them upstream on the mailing list or in bugzilla, explaining what common error messages mean, and how to fix other problems.
This, it turns out isn’t what the forums are for. I guess it’s just for uniformed users telling less informed users how to “fix” things. My mistake.

I won’t be even reading the forums anymore, and consider the couple of hours I spent on the forums answering questions and educating users about PackageKit wasted.
These are all the posts I’ve made on the forum if you want to check any of my messages. A few of them are pretty blunt, but the personal critique of my skills as a programmer and PackageKit is pretty blunt too (especially by a “Community Manager“).

Advice to developers: Don’t bother.

PackageKit support status

The entire purpose of PackageKit is to abstract out all the uninteresting packaging formats and tools into a coherent API that can be used by cool applications and tools in a cross distribution and architecture way.

Of course, this is limited by the distribution guys putting in the effort writing PackageKit backends for their system, packaging it up into packages, and then deploying it in new distributions to hapless users.

So far, we have quite a few distributions shipping PackageKit by default, and there’s every indication that a large majority will be shipping PK by the end of the year. Recently I’ve been very impressed with the work of Sebastian Heinlein integrating PK with APT. It’s been pretty difficult, as he’s been patching (rewriting?) chunks of python-apt so that the PackageKit API can be completed. For SMART, Anders F Bjorklund has also been writing huge chunks of code, which is also great.

Screenshot of some of the tools on Ubuntu (Copyright Sebastian Heinlein)

You can see how the other distributions are doing here.

PackageKit 0.3.x new features

PackageKit development keeps on trucking. After the ServicePack functionality was added in 0.3.0, we’ve got the GetDistroUpgrades functionality in the soon to be released 0.3.1 The latter allows us ask the backend if there are distro upgrades, for example, when Fedora 10 is released. By default we check for this one a week.

I’ve not really thought about the UI for the notification (and traditionally I suck at UI design), and so I welcome advice and comments from you guys. I’ve got this so far:

PackageKit UI Improvements (and 0.2.3)

Well, I’ve just released PackageKit 0.2.3 (stable) into the world. I’m going to build this for Fedora 9, as it’s a massive improvement over 0.1.12 and should have no regressions and plenty of nice features compared to that old version. It’ll sit in updates-testing for a few weeks, and if there are no problems I’ll push it to updates.

Of course, declaring the 0.2.x branch as stable allows us to all do some cool stuff on master. We’re working on making the UIs look beautiful.
Two examples are below, for installing more packages to satisfy deps, and also removing other packages if you chose something with dependants.

We’re also fixing up the file viewer to be a treeview, as a long list of files to scroll though is pretty boring. We welcome newcomers if you want to have a try at this hacking thing.