Skip to content

Latest commit

 

History

History
123 lines (98 loc) · 6.23 KB

BUILD.md

File metadata and controls

123 lines (98 loc) · 6.23 KB

Nuvola Build Instructions

Branding

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.).

Web App Requirements

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.

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.

Dependencies

Build & Install Nuvola Player

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

Build

$ ./waf --help
$ ./waf configure [--prefix=...] [--libdir=...] [--branding=...] [--no-...]
$ ./waf build

Install

# ./waf install [--destdir=...]
# /sbin/ldconfig
# gtk-update-icon-cache ...
# gtk-update-icon-cache-3.0 ...

Uninstall

# ./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.