Muon Suite 1.1.0 released

After six months of development, I’m proud to announce the release of the Muon Suite, version 1.1.0. The main focus of this release has been to add additional package management utilities to help further round out the package management experience. More specifically, Muon Suite 1.1.0 introduces the Muon Update Notifier, Update Manager, and Software Center.

Packages are available from the QApt PPA for Kubuntu 10.10, and from the official archives in the prerelease version of Kubuntu 11.04. Packages of interest are the “muon” and “muon-installer” packages. Source tarballs for QApt and Muon 1.1.0 can be found here and here, respectively.

Unfortunately, packages cannot be made for Kubuntu 10.04 since the version of APT it has is too old, and a newer version cannot be backported without complications. I did notice that the Kubuntu 10.04 PPA was out of date, (QApt/Muon 1.0.2) so I updated the packages there to QApt 1.0.4 and Muon 1.0.3, the latest releases. 🙂

In addition, I’d like to thank two new contributors for their, uhm, contributions. 🙂 Guillaume Martres is responsible for both the revamped download view and network awareness features, and Felix Geyer has contributed various patches to the project. I would also like to thank the KDE l10n team for their amazing work on translations. In this release, Muon Suite is 100% translated in 16 languages, and it is over 70% translated in 4 other languages. There are seven new fully-translated languages since 1.0.0, which is great!

What’s New

Muon Package Manager

Not to be outdone, the classic Muon Package Manager has received some spiffy improvements in 1.1.0. These include:

  • Several new status filters, such as the “Residual Configuration” filter for viewing uninstalled packages that can be purged, and the “Installed (auto-removable)” filter for viewing packages that APT thinks are obsolete/unnecessary that can be removed without harm.
  • A menu item has been added to mark all auto-removable packages for removal.

Packages marked for auto-removal

  • A progress bar to show the progress of search index rebuilds has been added.
  • Searches are automatically reloaded after a rebuild of the search index.
  • The origin of a package has been added to the “Technical Details” tab.
  • The contents of the “Installed Files” tab are now sorted alphabetically.
  • You can now sort the package view by the “Status” and “Requested Status” columns.
  • Canonical-supported packages now have a Kubuntu or Ubuntu emblem on their entry in the package view. (Depending on if you’re running Kubuntu or Ubuntu). (Visible in the above screenshot)
  • An all-new download view, offering more detailed information on the items being downloaded.

New download view

  • A configuration dialog for controlling various APT system options has been added.

Introducing the Muon Software Center

The Muon Software Center is a new utility that provides an easy way to get new applications. With a focus on applications, the user does not have to worry about “package management” at all, and its simple interface means that anyone can use it. Primary features include:

  • Categorical browsing

  • Informative details about each application

  • Easily install addons, if available

  • Browse PPAs

Showing a single PPA

  • Fast, easy search. (No knowledge of package names required)

  • Easily launch newly-installed applications

  • The history view gives a searchable, filterable overview of what you’ve installed, removed or upgraded over the past few months.

The History View

  • The queuing system allows you to browse packages while larger ones are installing

Introducing the Muon Update Notifier

Not too much to say here. The Muon Update Notifier just notifies you of updates. 🙂

These notifications are configurable from either the Muon Package Manager or the Muon Update Manager.

Muon Notifier settings

Introducing the Muon Update Manager

The Muon Update Manager is a GUI for updating your system. Updates are automatically marked, and can be installed via the toolbar button in the lefthand corner. The details tabs work much like they do in the Muon Package Manager, and the download/commit views are the same as in the Muon Package Manager, too.

The Future

For Muon Suite 1.2 I’d like to further refine all of the applications in the suite. I’d like to add more power-user features to the Muon Package Manager such as package pinning support, as well as support for configuring more APT system settings. I would like to investigate adding optional commercial software support (Ubuntu’s “App Store”) to the Muon Software Center. (Though I’ve not yet been able to figure out the magic behind that from the Ubuntu Software Center sources) The Muon Update Manager definitely needs to become more update-centric. As of now it’s just a stripped-down version of the Muon Package Manager. Hopefully for 1.2 it will become less package-manager and more update-manager.

Geeky Stuff

If you’re a developer developing a package management frontend using QApt, then QApt 1.1 will have some very nice new features. Here’s an overview of what’s new on the QApt front:

General

  • LibQApt now compiles with QT_NO_CAST_TO_ASCII and QT_NO_CAST_FROM_ASCII.
  • Compile with -fvisibility=hidden by default so that libqapt doesn’t expose symbols from libraries it links against, making life easier for packagers everywhere.

QApt::Config

The new Config class is an interface to APT’s system-wide configuration. It features a KConfig-style read/write API, and uses proper Polkit privileges for the writing of system settings. The QApt::Backend class contains a QApt::Config object by default, accessible by the Backend::config() function.

QApt::History

The QApt::History class is an interface to the APT history log files. A QList of HistoryItem objects is accessible through the historyItems() function. The HistoryItem class represents a single transaction recorded in the APT history logs. From a HistoryItem you can obtain the start date of the transaction, lists of installed/removed/upgraded/downgrades/purged packages, as well as an error string, if the transaction ended in an error.

QApt::Package

QApt::Package has gained some new features in QApt 1.1 as well.

  • The new recommendsList(), suggestsList(), enhancesList() and enhancedByList() functions return QStringLists of the names of packages that have the aforementioned relational statuses with the Package.
  • The latin1Name() and latin1Section() functions offer more efficient ways for internally dealing with package names and package sections. They return QLatin1Strings, which are cheaper to construct and compare than QStrings. This makes them ideal for sorting by package name, or for searching for a package by name.
  • The controlField() function allows you to get the value of an arbitrary field of the package’s debian/control file. This function is useful for obtaining the values of nonstandard fields, such as the “Supported” field that Ubuntu packages supported by Canonical have, or the custom GStreamer metadata fields that gstreamer plugin packages have.

QApt::Backend

  • Added a packageDownloadProgress() signal for per-package download progress reporting. This enables client applications to give more detailed information about currently-downloading packages, including parallel package downloads.
  • Added a markPackagesForAutoRemove() method that acts like apt-get autoremove, marking packages for removal that APT deems obsolete.
  • Added a new setUndoRedoCacheSize() function to QApt::Backend. This allows applications to customize the undo/redo stack size, allowing them to increase it if RAM usage is less of an issue, or decrease/eliminate the cache if RAM is tight, or the feature is otherwise unused anyways.
  • Added a saveInstalledPackagesList() function to QApt::Backend that exports a list of all installed packages to the given path. This list can be ready by Backend::readSelections() and is fully compatible with the Synaptic Package Manager.
  • Added an areChangesMarked() function to provide an easier/more efficient way to check if there are pending changes without checking the emptiness of the QApt::PackageList that Backend::markedPackages() constructs and returns.

Changelogs

For those it may interest, here are the detailed, technical changelogs for what has changed between the release candidate and final release for QApt and Muon.

Muon Suite 1.1.0

Features

  • Automatically reload searches after a rebuild of the search index is triggered

Bugfixes

  • Only show PPAs/package origins that have applications in the sidebar of the Muon Software Center
  • Fixed a bug that popped up in the 1.1 prerelease cycle that would disallow quitting an app after a user cancelled a download.
  • Fixed a crash when an error triggered a reload behind the Muon Software Center’s back (Bug 262712)

QApt 1.1.0

Features

  • Added a QString-taking overload of the Package::controlField() function
  • Use a pkgTagSection object from libapt-pkg to parse the control field instead of rolling our own.
  • Only ask for the passwords after we’re sure we can start downloading. (After untrusted dialog, disk space check, etc)

Bugfixes

  • Use pkgDepCache::GetCandidateVer() rather than CandidateVerIters throughout the QApt::Package class to make things more robust against errors due to broken/partially installed packages. (Bug 262262)
  • Fix Package::priority() not working at all due to a faulty validity check
  • The Supported package tag can also report years, not just months, so support this as well.

24 Responses to Muon Suite 1.1.0 released

  1. Poborskiii says:

    libqapt-runtime package for maverick with KDE 4.6 has the same dependency bug as 1.0.95 release ;-). libqapt-runtime package from your PPA depends on libpolkit-qt-1-0, KDE 4.6 from Kubuntu Beta PPA depends on libpolkit-qt-1-1, but both packages are in conflict.

  2. manolin says:

    It’s a shame that you can’t share your amazing work with KPackageKit, maybe a Muon packagekit backend could be possible?

    Join efforts should be number 1 priority.

  3. Soul Kim says:

    I agree with Manolin. I wish Muon to be dafault KDE package manager.
    I use it in my kubuntu machine and this is someting I miss in my Fedora laptop.

    anyway, thanks for your amazing work.

  4. Soul Kim says:

    besides, a little question.
    Is there a posibility to filter only qt4 apps not to install suddenly qt3 or tons of gtk dependencies?

    • Heller says:

      Thanks a lot, it looks really great and I’m eager to use it now 🙂 !

      I second the previous comment, is there a way to filter or at least to visually show that an app is for KDE4 or Gnome ? (maybe Muon could check on which DE it is used or something ?)

      Cheers ❤

  5. avlas says:

    Hi!

    I really like muon and its different aspects: software center, updater… Thanks for this nice work.

    I’m testing it in Kubuntu Maverick and it seems that there is a couple of bugs:

    – when trying to install from the muon software center, specifically within this analogous panel: https://jontheechidna.files.wordpress.com/2011/01/softwarecenter11.png, the application doesn’t go further than “waiting”. This is different when trying to install from the categorical list, analogous to this: https://jontheechidna.files.wordpress.com/2011/01/softwarecenter10.png

    – On the other hand, the muon software center is crashing after installing or removing an application and trying to work with it again (reinstall, or remove), this again within the details panel

    Hope this helps you a bit to improve the application

    Best!

  6. Gres says:

    Hi,
    when the Muon Software Center starts at the first time it is in a very small window.

    In the menu for “About Muon Software Manager” there is no icon.

    This all in Kubuntu 10.10 with the PPA for KDE 4.5.x

    I think that the ability to install commercial / non-free software would be great. I don’t know if the store in Ubuntu has this, but what about the possibility to add commends for the apps?

  7. gil says:

    hello
    i have this problem
    may depend on the version of some libraries?
    if so what are the appropriate ones?
    thanks
    gil
    os 32 openmamba
    cmake’ (cmake-2.8.3-3mamba.i586)
    apt-devel’ (apt-devel-0.5.15lorg3.94a-3mamba.i586)
    libxapian-devel’ (libxapian-devel-1.0.9-1mamba.i586)
    polkit-qt-1-devel’ (polkit-qt-1-devel-0.96.1-1mamba.i586)

    libqapt-1.1.0

    usr/src/RPM/BUILD/libqapt-1.1.0/src/config.cpp: In member function ‘QString QApt::Config::readEntry(const QString&, const QString&) const’:
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/config.cpp:151:94: error: no matching function for call to ‘Configuration::Find(std::string, std::string)’
    /usr/include/apt-pkg/configuration.h:74:11: note: candidates are: std::string Configuration::Find(const char*, const char*) const
    /usr/include/apt-pkg/configuration.h:75:11: note: std::string Configuration::Find(std::string, const char*) const
    make[2]: *** [src/CMakeFiles/qapt.dir/config.o] Error 1
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp: In member function ‘qint64 QApt::Backend::downloadSize() const’:
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp:363:16: error: aggregate ‘pkgAcquire fetcher’ has incomplete type and cannot be defined
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp: In member function ‘void QApt::Backend::restoreCacheState(const QApt::CacheState&)’:
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp:616:5: error: ‘ActionGroup’ is not a member of ‘pkgDepCache’
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp:616:30: error: expected ‘;’ before ‘group’
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp:635:19: error: ‘class pkgDepCache’ has no member named ‘MarkAuto’
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp: In member function ‘void QApt::Backend::markPackagesForAutoRemove()’:
    /usr/src/RPM/BUILD/libqapt-1.1.0/src/backend.cpp:715:28: error: ‘struct pkgDepCache::StateCache’ has no member named ‘Garbage’
    make[2]: *** [src/CMakeFiles/qapt.dir/backend.o] Error 1
    make[1]: *** [src/CMakeFiles/qapt.dir/all] Error 2
    make: *** [all] Error 2

  8. Eckhart says:

    Nice work! 🙂

    However, playing the devil’s advocate with the okular addons screen shot:
    a. “additional document format support for Okular (okular-extra-backends)”: which additional formats exactly? And I do know that this addon list is for Okular, so stop repeating that!
    b. “Binaries for TeX Live (texlive-binaries)”: what has that got to do with Okular at all?
    c. “Unarchiver for .rar files (non-free version) (unrar)”: Okular is a document viewer, not an archiving program!
    d. “Encoding data for the poppler PDF rendering libary (poppler-data)”: the only part I get is “PDF”
    e. “The GPL GhostScript PostScript/PDF interpreter (ghostscript)”: I figure this has something to do with PDF and PS support. But doesn’t the okular description tell me that it already supports PS and PDF?
    f. “a Text-To-Speech system” (kttsd): I think I know the purpose of this one, hurray!

    [Yes, I do know that those are just the short descriptions of packages okular suggests (and maybe also those that enhance okular).]

    What the user more likely wants to see:
    a. Support for TIFF, DjVu and ePub document formats
    b. Support for inverse search in PDF documents generated via TeX
    c. Support for RAR-compressed Comic Book Archives (.cbr)
    d. Support for PDF documents with Chinese, Japanese or Korean encodings
    e. Support for converting PS documents to PDF documents
    f. Text-to-Speech support

    • Yeah, the addons are the packages that okular suggests, and packages that enhance okular. If you have the APT::Install-Recommends flag set to false in the APT settings, recommended packages are also addons.

      And yes, I agree that the descriptions of the addons could be better. I’m not sure how to handle this from a programmatic view, however. I’m currently using the package short descriptions, but those short descriptions are appropriate for a package, and changing them to suit how they look in a list of addons for Okular would probably make the short descriptions not appropriate for the packages as they stand alone.

      I am open to suggestions on how to do this. 🙂 (Maybe a new field could be added to debian/control? Perhaps “Enhances-Description” with a sentence on how this package enhances the package(s) it is marked as enhancing?)

      • Eckhart says:

        Enhances-Description, Suggests-Description etc. sound like logical choice. After all, its the relation between two packages that lacks the name, not the individual packages.

  9. Lionel Chauvin says:

    You developed two softwares for install packages: software center and package manager.
    What I don’t like with this situation is that there is no easy way to go from the software center (easy mode) to the package manager (power user mode).
    If you don’t find what you need in the first software, you must close it and open the second software. It is a bit frustrating.

    • The hope is that the average user will not need to know about the existence of the “package manager”, and that the power user will never need to use the “software center” (or at least not have to use it if he doesn’t want to.) 😛 With the Muon Package Manager you can find all the software that you would find with the Software Center, so there shouldn’t be a situation where a power user has to switch between the package manager and the software center. On the other side of things, the run-of-the-mill user (say your parents) shouldn’t ever really need the package manager, and should be satisfied with using the Software Center.

      • Lionel Chauvin says:

        “the power user will never need to use the “software center””

        Why he can’t use it for simple tasks and switch to the package manager for complex tasks ?

  10. […] Muon Suite 1.1.0 released After six months of development, I’m proud to announce the release of the Muon Suite, version 1.1.0. The main focus of this release has been to add additional package management utilities to help further round out the package management experience. More specifically, Muon Suite 1.1.0 introduces the Muon Update Notifier, Update Manager, and Software Center. […]

  11. yuri says:

    Many thanks, Jonathan! You are great!

  12. xapi says:

    There is any possibility to enable a single click in treeviews on the Muon software center independently if the KDE4 desktop is using double click? I feel it un-natural and everybody use a treeview (for example in Dolphin) with a single click, not with a double click :S
    This happen too in KDE settings but I never reported becasue I’m lazy…

  13. Vladislav Blanton says:

    Your work on Muon is incredible. As someone working on the commit-digest, I have watched your many commits and work and have been amazed at the pace and thorough thought put into the design. I look forward to catching your future commits and _really_ look forward to finally having an update-centric interface for use in KDE/Kubuntu

  14. […] Lanzado Muon Suite 1.1 Vía: Jonathan’s Blog […]

  15. […] Muon, la nuova suite di gestione di pacchetti Debian (.deb) per KDE, è un progetto giovane, molto attivo, apprezzatissimo […]

  16. […] του πακέτου (εφαρμογής).Μπορείτε να δείτε περισσότερα στο blog του κεντρικού developer (Jonathan Thomas)Muon Package Manager 1.02ΕΓΚΑΤΑΣΤΑΣΗ  MUON SUITE: Λογικά το […]

Leave a comment