Nuvola 4.4 Supports AppIndicators in Unity, elementaryOS and GNOME; Changes Versioning Scheme
Nuvola 4.4 is the fourth milestone of the current rolling series on the way towards the Nuvola 5.0 release (formerly referred to as Nuvola 4.0 or 3.2). The headline of this release is AppIndicator backend for Tray icon feature, which works not only in Unity and elementaryOS but also in GNOME.
In order to update your flatpak builds, use GNOME Software with flatpak plugin or run
flatpak update --system && flatpak update --user in terminal (without
AppIndicators in Unity, elementaryOS and GNOME
Although app indicators are mostly known from Ubuntu’s Unity desktop, they also work in elementaryOS and GNOME Shell (with AppIndicator extension) and provide superior user experience to that of legacy X11 tray icons.
To enable appindicator, open preferences (from Gear menu in Unity or elementaryOS and from AppMenu in GNOME), then proceed to Features →Tray Icon → AppIndicator Icon.
Website Data Manager
You can now easily clear cookies, cache and temporary files, IndexedDB and WebSQL databases and local storage from the Preferences dialog → tab Website Data.
New Versioning Scheme
Previous Nuvola 3.1 builds used to have version numbers like 3.1.3+54.gaff1608, which was just too long. This was later simplified to 220.127.116.11, but it was still not good enough because the 3.1 series number is rather meaningless (there will be no 3.2 release). For this reason, I decided to join the first two version numbers: (3+1).3.54 = 4.3.54. Nuvola 4.4 is, therefore, the direct successor of Nuvola 3.1.3. Nuvola 4.0, which was supposed to be released later this year, will be released as Nuvola 5.0.
In order to make life of downstream packagers easier, the version numbers of Diorite library and Nuvola SDK build system match Nuvola’s version.
Full Change Log
Nuvola 4.4 was released on May 27, 2017.
- Tray icon feature can now use AppIndicator library instead of obsolete X11 tray icons. Although app indicators are mostly known from Ubuntu’s Unity desktop, they also work in elementaryOS and GNOME Shell (with AppIndicator extension) and provide superior user experience. Issue: tiliado/nuvolaplayer#45
- Users can easily clear cookies, cache and temporary files, IndexedDB and WebSQL databases and local storage from the Preferences dialog → tab Website Data. Issue: tiliado/nuvolaplayer#331
- Versioning scheme was changed to be more compact, e.g. 4.4.1 instead of 3.1.4–1.gabcd. Nuvola 4.0 was re-targeted as Nuvola 5.0.
- Nuvola can do its own user agent quirks (i.e. to disguise itself as a different web browser) in order to work around web pages that doesn’t work with the WebKit’s user agent string. Issue: tiliado/nuvolaplayer#336
- Flatpak builds use the latest stable WebKitGTK+ 2.16.3 bringing fixes for three security vulnerabilities as well as several crashes and rendering issues.
Web App Scripts
- Google Play Music script uses own user agent quirks to work around the malfunctioning Google sign-in web page. Issue: tiliado/nuvolaplayer#336
- The build script now raises error if it is ran with Python < 3.4.
- Fixed a bug when the menus of tray icons and dock items were not updated.
- Nuvola now aborts when required data files are not found (e.g. in incomplete installation) rather they running with errors in the background.
- Obsolete test suite has been removed. A new one will be created during ongoing modernization. Issue: tiliado/nuvolaplayer#335
- Broken -L/ — log-file options were removed. Issue: tiliado/nuvolaplayer#338
- Various fixes of HTTP Remote Control feature.
Under the Hood
- Nuvola’s filesystem namespace was changed from
nuvolaruntime. The data dir is installed at PREFIX/share/nuvolaruntime, libraries were renamed to
libnuvolaruntime-*.soand binaries to
nuvola(ctl). Users' configuration, data and cache is migrated automatically.
- Nuvola’s git repository was moved to https://github.com/tiliado/nuvolaruntime.
- WebKitGTK+ >= 2.16.0 is required as all new API is now used unconditionally to make maintenance easier.
- Added optional dependency on appindicator3–0.1 >= 0.4. Use
./waf configure --noappindicatorto disable this dependency and related functionality (Tray icon feature).
--jsdir). Issue: tiliado/nuvolaplayer#341
- Nuvola no longer supports web app scripts without a desktop file.
- Test suite was reintroduced (build/run-nuvolaruntime-tests). Issue: tiliado/nuvolaplayer#335
- A lot of refactoring and removal of obsolete code and other improvements.
Nuvola SDK 4.4.0
- Versioning scheme is synchronized with Nuvola Apps Runtime.
- DBus Launcher has been ported to use the high level Start-up API of Nuvola and a data service have been removed because it is no longer used.
- Compatibility with Nuvola Player 3.0.x must be enabled with the
--compatflag passed to ./configure.
- Web apps scripts are installed into the PREFIX/share/nuvolaruntime/web_apps directory used by Nuvola 4.4+ but legacy symlinks in the PREFIX/share/nuvolaplayer3/web_apps directory are also provided for Nuvola 3.x.
- Versioning scheme is synchronized with Nuvola Apps 4.4. Library names have been changed accordingly: dioriteglib-0.3 → dioriteglib4 and dioritegtk-0.3 → dioritegtk4.
- Vala documentation is built by default. Requires valadoc >= 0.36 but can be disabled with
- Various utility functions were added. See git log for details.
Thank You for Your Support
At the time of writing, the awesome people listed bellow and a few others are Nuvola Patrons, who support the development of Nuvola Player and have access to Nuvola Player 3.1 Rolling Releases (including cross-distribution flatpak packages). Thank you all!
Andrew Allen, Bart Libert, Simon Law, Bryan Wyatt, José Antonio Rey, Christian Dannie Storgaard, Ryan Wagner, Chris Beeley, David, Andrew Azores, Andrew Kvalheim, Balázs, Ben MacLeod, Duco van Amstel, Martin Wimpress, David Wiczer, Gabriele, Nathan Warkentin.
If you are a Nuvola Patron but your name is not listed, you have to enable the “Show my name and a link to my external profile page in a list of Patrons.” option in your profile settings. Obviously, it is not enabled by default to protect privacy of our patrons.