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.
- 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.
- 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
- 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 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.
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.
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.
Yeah, I’ll have to upload the QApt package to the KDE 4.5 PPA. Thanks for the reminder. 🙂
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.
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.
besides, a little question.
Is there a posibility to filter only qt4 apps not to install suddenly qt3 or tons of gtk dependencies?
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 ❤
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!
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?
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
The APT version you are trying to use is quite old. You need to have APT 0.8.0 or higher to compile LibQApt.
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?)
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.
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.
“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 ?
[…] 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. […]
Many thanks, Jonathan! You are great!
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…
Sorry when I said “KDE settings” I was traying to say “KDE system settings”
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
[…] Lanzado Muon Suite 1.1 Vía: Jonathan’s Blog […]
[…] Muon, la nuova suite di gestione di pacchetti Debian (.deb) per KDE, è un progetto giovane, molto attivo, apprezzatissimo […]
[…] του πακέτου (εφαρμογής).Μπορείτε να δείτε περισσότερα στο blog του κεντρικού developer (Jonathan Thomas)Muon Package Manager 1.02ΕΓΚΑΤΑΣΤΑΣΗ MUON SUITE: Λογικά το […]