To avoid a violation of Nuvola Player™ trademark, the default branding is set to Cloud Player. You should not set it to Nuvola Player without our permission. You may, however, use any branding that does not violate the trademark.
To change branding, pass --branding=NAME
to waf configure
, where NAME
is used to construct paths to relevant
branding files, then cp branding/default.json branding/NAME.json
and edit this file (it has comments, btw.).
Individual web apps specify their requirements in the requirements
field of the metadata.in.json
file.
It is your responsibility to make sure you ship only the scripts whose requirements can be satisfied by
your custom Nuvola build. Otherwise, they may refuse to start.
- Feature[Flash] - Adobe Flash plugin is required.
- Feature[MSE] - Media Source Extension feature is required. Use Chromium web engine or build
WebKitGTK+ with
-DENABLE_MEDIA_SOURCE=ON
and Nuvola with--webkitgtk-supports-mse
. - Feature[Widevine] - Widevine CDM plugin. Currently supported by Chromium web engine.
- Codec[MP3] - A MP3 decoder for GStreamer is required.
It should be included in the
gst-plugins-ugly
suite. - Codec[H264] - A H264 decoder for GStreamer is required.
- WebKitGTK[X.Y.Z] - A particular version of WebKitGTK+ is required.
- Chromium[X.Y.Z] - A particular version of Chromium web engine is required.
Nuvola can be built with two web engines: Chromium Embedded Framework (CEF) and WebKitGTK.
While the Chromium engine is still optional (can be disabled with --no-cef
configure option), bear in mind that
some websites no longer work with the old WebKitGTK backend (Spotify, YouTube, Mixcloud) because they dropped
Flash-based player and require HTML5 Audio with MSE or even Widevine DRM plugin.
In addition, most scripts are tested only with the Chromium backend and specify Chromium[X.Y.Z]
requirement
for that reason. If you are stuck with the WebKitGTK backend, you may remove Chromium[X.Y.Z] Feature[MSE]
requirements
to make the script run with WebKitGTK+ backend and add Feature[Flash]
to use Flash plugin for audio playback.
However, this should be done on a case-by-case basis and after careful testing.
- Python 3 >= 3.4
- Vala compiler >= 0.42.0 && < 0.43. If your system contains a different version of Vala, we cannot guarantee that Nuvola builds correctly and it may lead to memory leaks or invalid memory access. We recommend building the correct Vala version from source prior to building Nuvola. You can then throw it away as Vala compiler is not needed after Nuvola is built.
- Diorite library (version number is in sync with Nuvola)
- glib-2.0 >= 2.52.0
- gio-2.0 >= 2.52.0
- gobject-2.0 >= 2.52.0
- gtk+-3.0 >= 3.22.0
- gdk-3.0 >= 3.22.0
- gdk-x11-3.0 >= 3.22.0
- x11 >= 0.5
- json-glib-1.0 >= 0.7
- webkit2gtk-4.0 >= 2.18.0
- javascriptcoregtk-4.0 >= 2.18.0
- libnotify >= 0.7
- gstreamer >= 1.8.3 (>= 1.12 for MSE)
- libdri2 >= 1.0.0
- libdrm >= 2.2
- gee-0.8 >= 0.20.1
- libuuid
- libsecret-1 >= 0.16
- libarchive >= 3.2
- g-ir-compiler
- valalint or configure with
--no-vala-lint
- standardjs or configure with
--no-js-lint
- ValaCEF or configure with
--no-cef
- unity >= 3.0 or configure with
--no-unity
- dbusmenu-glib-0.4 >= 0.4 or configure with
--no-appindicator
- libayatana-appindicator3-0.1 >= 0.4 or configure with
--no-appindicator
- optional engine.io-client >= 3.1.0 (installed as /usr/share/javascript/engine.io-client/engine.io.js)
- optional unit.js 2.0.0 (installed as /usr/share/javascript/unitjs/unit.js) for JavaScript unit tests (included in the test service - web_apps/test subdirectory)
Nuvola uses waf build system. You are supposed to use the waf binary bundled with
Nuvola's source code. The build script wscript
may not be compatible with other versions. If you manage
to port wscript to a newer stable waf release, you may provide us with patches to be merged once we decide
to update our waf binary. Meantime, you can carry them downstream.
To find out what build parameters can be set run ./waf --help
$ ./waf --help
$ ./waf configure [--prefix=...] [--libdir=...] [--branding=...] [--no-...]
$ ./waf build
# ./waf install [--destdir=...]
# /sbin/ldconfig
# gtk-update-icon-cache ...
# gtk-update-icon-cache-3.0 ...
# ./waf uninstall [--destdir=...]
Individual Nuvola apps are maintained in nuvola-app-XXX
GitHub repositories under
Tiliado organization.
They use Nuvola SDK. Please refer to
the Build a Project Using Nuvola SDK
page in order to obtain information about dependencies and installation instructions.