Richard is famous enough but if you don’t know him yet, Richard Hughes is the creator of PackageKit. Actually, he is involved in much more GNOME software, but we just need his PackageKit specialism here.
This is a short interview about the issues with applications installation under various GNOME distros.
For what it’s worth and for anyone that isn’t familiar with them I am just explaining some software terms that Richard is using in his interview.
- PackageKit: PackageKit is a system designed to make installing and updating software on your computer easier. The primary design goal is to unify all the software graphical tools used in different distributions, and use some of the latest technology like PolicyKit to make the process suck less.
- Zif: Zif is a package manager for Fedora written in C that is designed to replace Yum. Richard is also Zif’s author and maintainer.
- ZYpp: Zypper (libzypp/Zypp) is the package manager of OpenSUSE. ZYpp and Zif were two of the options for Fedora to replace Yum. However Fedorians choose to go with a new package manager, DNF.
- Dpkg: The Debian Package Management Tools (dpkg, apt, aptitude, synaptic, tasksel). Ubuntu uses USC (Ubuntu Software Center) as their primary Update Manager.
- Bundle: An application bundle is a single software binary package that includes the actual Application (and all data) plus all dependencies, except the core ones (ie GLib/GTK). It is meant to solve compatibility issues between distros and between packages versions inside the same distro.
- Listaller: Listaller is a distro-agnostic 3rd-party application installer with close integration into PackageKit. It supports KDE and GNOME Platforms but GNOMEs front-end is currently a bit out-dated. It uses application-directories and the dependencies can easily be shared between two installed 3rd-party apps. The key point in Listaller is that it hooks into PackageKit, to make Listaller apps install-able, update-able and removable via native PackageKit tools. (like GNOME-PackageKit).
- Glick 2: Glick2 is a runtime and a set of tools to create application bundles for Linux made by Alexander Larsson. The bundle can be run without installation, or be installed by just putting the file in a known directory (/usr/lib/bundles or ~/.local/bundles). It is kinda similar to Linstaller, but smarter as it tries to offer full integration with the system. There is a working code and Glick2 will be discussed as a candidate primary software installer for GNOME.
- OS Tree: OSTree is a tool for developing, building, and deploying Linux-based operating systems. It is most similar to tools like dpkg and rpm in “Linux distributions”. However, it is not a package system (though one could be built on top).
- CLA: Contributor License Agreement. Richard is mentioning Canonical Contributor License Agreement (canonical.com/contributors).
All Linux based distributions are relying on free software and open standards. However the communities of the main distros (Debian/Ubuntu,Fedora, SUSE etc) while they use pretty much the same tools for their systems, they didn’t manage to end up in a standard update method. Is this the biggest issue for the Linux Desktop?
I don’t think this is the biggest issue, to me that seems like the platform fragmentation between Ubuntu and basically everyone else. It’s certainly an important issue though, and it’s quite maddening seeing how 99% of update systems are doing nearly exactly the same thing in very similar ways. It’s also a pretty bad how Fedora couldn’t use the zypp code and how Debian persists with dpkg and interactive installation. PackageKit tries to abstract out all the political and technical differences and defines a common D-Bus API, so that a client program can call UpdatePackages() and the right thing magically works when you’re running Arch, Fedora, Ubuntu or Suse.
Applications undoubtedly define the future of every “Desktop/Laptop/Tablet/Mobile” System. What is the main problems for someone to write a GNOME App, and what are the issues to deploy a GNOME App? Do you think that the current situation discourages people from creating GNOME Apps?
Well, you’ve got to define two things. First, GNOME. Is GNOME an OS, a toolkit, or a set of recommendation about the widget styles to use? I don’t think we’ve got our story straight on that yet, but with ostree and the core applications being designed by the same set of people we’re starting to see some kind of platform emerge. The other thing is how to define an application. I think it makes a lot of sense to make an application self-contained, for instance with Alex’s glick2 project or the Listaller project but then you don’t get the full integration. I think a lot of the core apps it makes sense to ship with the base platform as integrated parts rather than a shell with a few optional components.
Commercial Software is shipped usually into “bundles”, including everything. Can “bundles” also used in Open Source projects and solve the dependencies and update managers incompatibilities issues? Can this be a way for Online Unified (all distros) Software Centers?
I think the concept of a Software Center is a bit of a misnomer. It’s pretty hard to create a static blob that you can run on Ubuntu and Fedora, without including copies of every dependent library. Even if you did that, it wouldn’t integrate into the system very well, for instance, not integrating into gnome-shell or the Ubuntu HUD. I’m not sure we’ve got a good solution here yet. I think we can create a good UI to the huge number of packaged applications we have available to us
already, and that gives us a huge head-start.
USC is considered a “Killer App”. Do you think that USC played a significant role in the success of Ubuntu, or it was just one more “pros”?
The one thing Ubuntu has done right, is define the platform in a more coherent way than the other distros. The sad fact that you have to sign a CLA to contribute to USC is a major reason why it’s not being used on more distributions. Even if the code was forked, a lot of the code seems very tied into the Ubuntu ecosystem, and I can understand why they want to do that. It’s just a shame.
GNOME Software and PackageKit. Something that all GNOME users want to see.
Well, I’ve been working on gnome-software for a few weeks. We needed to do a lot of work to PackageKit for a proper user experience, for instance being able to search while updates are downloading. Fingers crossed more of the backends will be ported to the new parallel transaction model, as at the moment it’s only apt and zif that work in this way.
Commercial (either open or proprietary) Software in GNOME Software. Can be done?
I’m not planning to work on this kind of thing, although I don’t mind if someone else contributes the code. It’s not hugely interesting to me to be honest.
Don’t forget to check on Richard’s “My wife dresses to kill. She also cooks the same way.” blog :)