Muon Suite 1.2.0 released

August 12, 2011

After six months of development, I’m proud to announce the release of the Muon Suite, version 1.2.0.

The Muon Package Management Suite is a collection of package management applications that make package management easy on Debian-based systems, whether or not you know what “package management” means. Packages for Kubuntu 11.04 “Natty Narwhal” are available in the QApt  PPA. Packages for the development version of Kubuntu 11.10 are available through the official repositories.

The focus of this release has been adding features to the existing Suite applications, as well as refining existing ones.

I would like to also thank the KDE translation team for their awesome work this cycle. The Muon Suite is now fully translated in 20 languages with 9 more languages over 70% translated. There are four new fully translated languages since 1.1.0. Awesome work all around.

What’s New

Muon Package Manager

Lots of work has been put in to refining the user interface of the Muon Package Manager to make it even more convenient and usable. Additionally, several new features have been added to give you greater control over your packages. Many of these changes also apply to the Muon Update Manager, which shares components with the Package Manager.

New features and improvements:

  • A history view like the one included with the Muon Software Center has been added as a dialog. You can access it from the “View” menu, or by using the Ctrl + H shortcut.
  • Added an option to the configuration dialog to make APT treat a package’s “Suggests” as dependencies. For those who don’t care about disk space. ;-)
  • Modifying settings that require administrator privileges to apply now turns the “Apply” button’s icon to the key icon, as in KDE’s System Settings.
  • An option has been added to control whether Muon warns you about installing untrusted packages, or disallows the installation of them entirely.

  • Multiple packages can now be selected and marked all at once by selecting them and choosing an action from the right-click menu.
  • A package in the package view can now be de-selected, hiding the details widget, by ctrl-clicking on the package.
  • Packages can be locked at their current version via the right-click menu. Locked packages have a little lock emblem on the package graphic. Additionally, a “Locked” filter has been added to the status filter box.

  • The layout of the status bar has been improved. These improvements allowed me to remove the frames around the status bar labels.

  • Space-saving improvements were made to the package detail tab widget. The sides and bottom of the tab widget frame were removed, leaving less borders around the edges. The marking buttons were moved to the line with the package short description, and the “screenshot” button was removed since most packages don’t have a screenshot, and the Muon Software Center handles this functionality much better. The support label was also moved to the package description view. The end result gives much more space to actual detail content, wasting less on chrome.

Ever been in a situation when you’ve needed to install packages on a computer without internet access? In version 1.2, the Muon Package Manager makes it easy to do this. First, mark the packages that you wish to install as normal. Go the “File” menu and select “Save Package Download List”. Next, take this file over to another computer with Muon and select “Download Packages From List” from the file menu. After pointing it to your USB stick, Muon will happily download your packages and place them on your USB stick. Lastly, take your USB drive back to your internet-less computer and go to “File -> Add Downloaded Packages”. Once this is done, you can hit “apply” and install your packages as normal.

Muon Software Center

There are several new, nifty features for the Software Center this time around.

  • Installed packages now have a checkmark emblem, as shown here.
  • The “Addons” view and “Reviews” view (more on that in a second) can now be collapsed.
  • The application launcher dialog that appears when you install new applications has been replaced by a less intrusive in-window notification, with animated appearance/disappearance. (Based on your KDE widget effects settings, not related to desktop effects.)

  • Non-application packages are now shown in PPA views, since many PPAs host software not in the Ubuntu application database.
  • Added some Debian branding love.

  • Miscellaneous optimizations to make browsing applications even faster.
The biggest feature for the Muon Software Center in 1.2 is support for the Ubuntu Ratings and Reviews API. Previously, PopCon usage statistics were used to determine ratings given to all applications in the Muon Software Center. This was really a bit unfair, though, since it could mean that a perfectly good application that wasn’t widely used would get a seemingly low amount of stars. Using the ratings from the Ubuntu application ratings server means that ratings from normal people determine how many stars an application gets.
Read Only support for full application reviews has also been implemented. I know that it kinda sucks that you can’t submit reviews from the Muon Software Center at this point, but I figured this is better than not being able to see them, either. 🙂 The reason that full read/write support is not implemented is that there is as of now not really a suitable way for C++ Qt/KDE applications to interface with the Ubuntu Single Sign On service, which is necessary to submit reviews. Work on an SSO interface was started by the unstoppable Harald Sitter during his Ubuntu One GSoC project last year, but the SSO API has since changed and the KDE SSO stuff will need a fair bit of work before it is useful again. I plan to work on this during the next release cycle to ensure full review awesomeness. As a note, this is also the reason why support for the Ubuntu Software Store has not been added yet.

QApt Utilities

Several new utilities are bundled with QApt to help seamlessly integrate package management with the desktop. These include:

The “Command Not Found” Plasma Runner

Yes, the one-and-the-same Plasma Runner that I mentioned over a year ago here. Back then QApt hadn’t had a stable release, and I didn’t really have a venue to publish it. (I could have published it by itself, but I’m lazy like that. :P) It functions exactly the same as I mentioned in the original blogpost. If you type the name of an executable that is not currently installed, this runner will suggest the package that provides this binary. This is especially useful on new installations where you may not have remembered to install something.

The QApt Deb Installer

This utility functions much like GDebi, with some bonuses like included icon support and less memory usage.

Now I’m putting on my Kubuntu hat. As was mentioned back with the announcement of Project Timelord, Kubuntu wanted to move away from python-based tools for the default installation due to their resource-hungriness and proneness to runtime errors. Now that the Ubuntu Software Center is Ubuntu’s primary .deb installer rather than GDebi, it makes even more sense to use the QApt Deb Installer. (I know that GDebi is still being maintained, but the KDE UI is somewhat dead at any rate, with nobody to step up to give it the maintenance it deserves.)

The QApt Deb Thumbnailer

This is a thumbnailing plugin for KDE. It offers thumbnail previews of .deb files in KDE file browsers. (Dolphin, open/save dialogs, Konqueror, etc) Not much else to say, but pretty nifty if I do say so myself.

The QApt GStreamer Helper

This utility provides a helper that integrates with GStreamer’s codec installation API, which Phonon uses to automatically install missing codecs for multimedia playback. It uses QtGStreamer which makes dealing with GStreamer a whole lot easier.

The Future

For Muon Suite 1.3 I plan on polishing existing features, as well as providing some new ones. Things I have on my todo list in no particular order that may or may not get done are:

  • Support for submitting reviews to the Ubuntu Ratings and Reviews server.
  • (Optional, I know some people would prefer not to have it) Support for the Ubuntu App Store.
  • Configuration for the save on quit warning. (Impossible to re-enable once disabled)
  • Rewrite the Muon Update Manager to look less like the Muon Package Manager, and be more usable/appeal to a wider target audience skill-wise. (Read: simplification. Power users are probably already using the Muon Package Manager for upgrades already, since you can control what gets upgraded, and likely compulsively check for updates like I do. :P)
  • Further refinement of the new utilities distributed alongside LibQApt.
  • Add a magnifying glass when hovering over the screenshot thumbnail in the Muon Software Center, to signify that it can be made bigger.
  • Add an option to always be notified of dependencies to be marked for install in the Muon Package Manager. You can already can (and should) hit the review button before you hit apply, but apparently some people just like a dialog. 😛
  • More (optional) data columns in the main view of the Muon Package Manager. This has been requested before, but I have had higher priorities such as package lock support and multiple package selection, etc.
  • Currently the Muon Software Center resets to the home screen after all pending installations has finished so it can let APT reload its internals. I’m fairly sure that this is unavoidable, but I think it’d be nice if afterwards it took you back to where you were, if the package you were still exists, etc.
One thing I’ve already gotten done is a replacement for the screenshot popup dialog in the Muon Software Center.
Instead of an external dialog, it is now an overlay over the application view. It animates in nicely and can be dismissed by clicking anywhere. If possible, I’d also like to see about blurring the background behind the overlay for extra fanciness. This is was the last popup (except for the external software sources editor program, error dialogs, and such) in the Muon Software Center, keeping with my vision that popups are unwieldy and annoying.
Debian packages are still coming soon, in the Debian sense of the term. All of the dependencies are packaged, so all that’s left is to actually package and upload. The Kubuntu packages should be 95% of the way there, so all that should need to be done is to review and make changes as necessary. I’ve no specifics on when it’ll finally be “in”, but there is progress on that front. 🙂

Geeky Stuff

If you’re a developer developing a package management frontend using QApt, then QApt 1.2 will have some very nice new features, especially in regards to handling raw .deb files. Here’s an overview of what’s new on the QApt front:


The new DebFile class is an interface for information about .deb files. All debian/control fields are accessible, as well as the file list, a list of included icons, a getter for the .deb file’s md5sum, as well as functions to extract the .deb’s contents to an arbitrary location. You can do pretty much anything you’d ever want to do to a .deb file with the class. The QApt Deb Installer and Deb Thumbnailer are two good references for using this class.


This class provides detailed relational dependency information about packages and debfiles, such as depends, recommends, conflicts, replaces, breaks, etc. It is very useful for resolving dependencies with .deb files, where APT cannot be used for dependency resolution.

Both DebFile objects and Package objects have several functions returning DependencyInfo objects in 1.2.


  • Added the ability to pin and unpin packages via writing files to /etc/apt/preferences.d/. Refer to the docs in package.h for more info.
  • Added an upstreamVersion() function to the Package class to return the upstream  version of a package. Also include a static version in case we have a package version without a Package object and want the upstream version without having a Package object instantiated.
  • Added a static method “compareVersion()” to the Package class to compare the  versions of two packages, returning the standard strcmp() less than 0, 0, or greater than zero when appropriate.


  • Added Backend::saveDownloadList() to create a download list of all packages that are marked and need downloading, usable by the new downloadArchives() function.
  • Added a downloadArchives() function to download a list of archives to an arbitrary directory. The worker will emit package download signals as usual. This can be useful, for example, for downloading packages to a USB stick for a user.
  • Added Backend::addArchiveToCache(), whichs adds .deb files for the candidate versions of existing packages to the apt .deb cache. This function can be used to add .debs from e.g. a USB stick so that computers without internet connections can update packages.
  • Added an installDebFile method to QApt::Backend and the QApt Worker. This method starts the installation of the given .deb file, complete with a DebInstallStarted event signal on start, DebInstallFinished when finished, and a debInstallMessage() signal in between for dpkg output. A new error, WrongArchError, has been added to QApt::ErrorCode for when a .deb file cannot be installed due to incompatible CPU architectures for binary packages. (No multiarch support yet)

Full changelogs for both the Muon Suite and LibQApt can be found here and here.