The release candidate of the Muon package management suite 1.1 is now available. As with beta 2, the main focus for the release candidate milestone was to iron out issues to make sure the 1.1.0 release rocks. (Expect 1.1.0 to be released in around 2 weeks) Packages are available for the development version of Kubuntu 11.04 as well as for Kubuntu 10.10 via the QApt PPA as usual. Packages of interest are the muon and muon-installer packages.
Here’s what’s changed since 1.1 beta 2:
- Don’t return back to the main view on the first error encountered during a commit. APT commits can continue after some errors, and we wait until it is done to show all of our errors in the first place.
- Fixed a small memory leak in the Muon Software Center where blacklisted/invalid Application pointers were never deleted.
- Add a timeout for the search index progress bar so that we don’t have a phantom progress bar hanging around if the apt-xapian-index updater dies or doesn’t send a finished signal.
- A few typos have been fixed
- Not all sizes of the application-x-deb mimetype icon in KDE 4.6+ are appropriate for an application icon. To remedy this, take the other sizes from KDE 4.5 and install them in hicolor as muon.png
- Ensure toolbar actions are re-enabled after errors during commits.
- Don’t quit if an InitError comes from the worker. If the timing is right a LockError can be reported as an InitError in the worker, and we don’t have to quit all of Muon over that.
- Fix a bug in the Muon Software Center where a menu path could not be found for a lot of installed applications.
- Fix a bug in the Muon Package Manager where the QApt backend was being reloaded twice. This speeds up reloading after installing/removing packages and fixes the busy spinner not being present during reloads.
- Fix a bug in the Muon Software Center where the search results page would show up for search terms that were too short to be accepted as searches.
- Use the more efficient Backend::areChangesMarked() function in determining whether or not to enable toolbar buttons
- Small optimization in HistoryView: Don’t create a KIcon and grab a pixmap from it for each historyItem. Do it once and use this saved pixmap for all items.
- KLocale::formatDate() is somewhat expensive, so make a cache of resulting date strings so that we can call formatDate less while setting up the HistoryView.
- Hash the past-tense states and the past-tense state strings so that we don’t have to construct a new localized string each iteration. This cuts the amount of l10n string construction in half for a nice speedup constructing the HistoryView.
- Don’t set the HistoryView items’ icons by pixmap, but rather by QIcon. QStandardItem expects a QIcon in the first place, and setting the icon by pixmap made it invoke the QIcon constructor anyways.
- Use APT’s pkgCacheFile for QApt::Cache’s cache implementation. This saves around 50 lines of code, plus we get the benefits of using the officially-sanctioned APT cache implementation that we don’t have to maintain.
- Add a Package::controlField() function to get the string data of a certain field of the package control file. It can be used to get custom data fields from packages such as GStreamer-specific fields from the GStreamer packages.
- Report whether or not an InitError comes from the worker. This way applications can know if they should quit or not.
- Use the new Package::controlField() function to get an accurate support length for supported packages, rather than hardcoding it at 18 months.
- Use Q_FOREACH explicitly to avoid potential issues with other libraries using the “foreach” keyword as a macro.