clementine: provide free derivation by default

The `clementine` package is actually released under Apache license, but
requires the unfree `libspotify` package to build.

Now `nixpkgs.clementine` points to the free derivation and
`nixpkgs.clementineUnfree` has been introduced for the package bundled
with spotify support.

Fixes #38315
This commit is contained in:
Maximilian Bosch
2018-04-07 11:35:56 +02:00
parent c1f1d8634b
commit ef5e212d20
3 changed files with 19 additions and 35 deletions
+15 -34
View File
@@ -76,6 +76,8 @@ let
enableParallelBuilding = true;
passthru.unfree = unfree;
meta = with stdenv.lib; {
homepage = http://www.clementine-player.org;
description = "A multiplatform music player";
@@ -85,8 +87,8 @@ let
};
};
# Spotify blob for Clementine
blob = stdenv.mkDerivation {
# Unfree Spotify blob for Clementine
unfree = stdenv.mkDerivation {
name = "clementine-blob-${version}";
# Use the same patches and sources as Clementine
inherit src nativeBuildInputs postPatch;
@@ -95,7 +97,7 @@ let
./clementine-spotify-blob.patch
];
buildInputs = buildInputs ++ [ libspotify ];
buildInputs = buildInputs ++ [ libspotify makeWrapper gst_plugins ];
# Only build and install the Spotify blob
preBuild = ''
cd ext/clementine-spotifyblob
@@ -104,6 +106,15 @@ let
mkdir -p $out/libexec/clementine
mv $out/bin/clementine-spotifyblob $out/libexec/clementine
rmdir $out/bin
makeWrapper ${free}/bin/clementine $out/bin/clementine \
--set CLEMENTINE_SPOTIFYBLOB $out/libexec/clementine \
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
mkdir -p $out/share
for dir in applications icons kde4; do
ln -s "$free/share/$dir" "$out/share/$dir"
done
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
@@ -116,34 +127,4 @@ let
};
};
in
with stdenv.lib;
runCommand "clementine-${version}"
{
inherit blob free;
buildInputs = [ makeWrapper ] ++ gst_plugins; # for the setup-hooks
dontPatchELF = true;
dontStrip = true;
meta = {
description = "A multiplatform music player"
+ " (" + (optionalString withSpotify "with Spotify, ")
+ "with gstreamer plugins: "
+ concatStrings (intersperse ", " (map (x: x.name) gst_plugins))
+ ")";
license = licenses.gpl3Plus;
inherit (free.meta) homepage platforms maintainers;
};
}
''
mkdir -p $out/bin
makeWrapper "$free/bin/${exeName}" "$out/bin/${exeName}" \
${optionalString withSpotify "--set CLEMENTINE_SPOTIFYBLOB \"$blob/libexec/clementine\""} \
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
mkdir -p $out/share
for dir in applications icons kde4; do
ln -s "$free/share/$dir" "$out/share/$dir"
done
''
in free