Clementine consists of a large free part (the main application) and a
small part with unfree dependencies (the Spotify blob). Add a top-level
attribute for the free Clementine for users who don't want unfree
software, and so that the bulk of Clementine will be in the binary cache.
- Pass the gstreamer plugins as a list attribute instead of
individual attributes.
+ This should allow for greater customization (e.g.: a
user can add / remove plugins by overriding
the plugin list attribute).
This is the same technique as used for wrapping chrome
with gstreamer plugins.
- Moved integration of gstreamer plugins, spotify
library and clementine into a wrapper derivation.
+ This should allow a user to change the gstreamer
plugin set and activate / deactivate the spotify
plugin without triggering a whole rebuild of the
clementine sources (which is pretty long).
$ nix-env -f . -qa '*' --meta --xml --drv-path --show-trace
error: while querying the derivation named `clementine-1.2.1':
while evaluating `optional' at .../lib/lists.nix:113:20, called from .../pkgs/applications/audio/clementine/default.nix:50:22:
undefined variable `not' at .../pkgs/applications/audio/clementine/default.nix:50:32
Clementine has an optional dependency on libspotify, which is unfree.
Enabling libspotify unconditionally prevented Hydra from distributing
Clementine. Now, we optionally enable it based on
config.clementine.spotify.