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-06 17:16:31 +02:00
parent c1f1d8634b
commit ef5e212d20
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E
3 changed files with 19 additions and 35 deletions

View File

@ -58,6 +58,9 @@ following incompatible changes:</para>
<itemizedlist>
<listitem>
<para>
The <literal>clementine</literal> package points now to the free derivation.
<literal>clementineFree</literal> is removed now and <literal>clementineUnfree</literal>
points to the package which is bundled with the unfree <literal>libspotify</literal> package.
</para>
</listitem>
</itemizedlist>

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

View File

@ -1603,7 +1603,7 @@ with pkgs;
with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
};
clementineFree = clementine.free;
clementineUnfree = clementine.unfree;
ciopfs = callPackage ../tools/filesystems/ciopfs { };