Added switches for ipod, mtp, cd and cloud support.
The switch for ipod support, specifically, allows users to build it without libplist, wich is currently marked as insecure.
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.