Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
124 lines (98 sloc) 6.24 KB

Nuvola Build Instructions


To avoid a violation of Nuvola Apps Runtime™ trademark, the default branding is set to Web Apps Runtime. You should not set it to Nuvola Apps Runtime 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.).

Web App Requirements

Individual web apps specify their requirements in the requirements field of the 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.

Web Engines

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.


Build & Install Nuvola Runtime

Waf Build System

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=...]

Build & Install Nuvola Apps

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.

You can’t perform that action at this time.