deadbeef: add -with-plugins wrapper and a necessary patch

Changed files
+34 -2
pkgs
applications
audio
top-level
+8 -2
pkgs/applications/audio/deadbeef/default.nix
···
-
{ stdenv, fetchurl, intltool, pkgconfig
+
{ stdenv, fetchurl, intltool, pkgconfig, fetchpatch
# deadbeef can use either gtk2 or gtk3
, gtk2Support ? true, gtk2 ? null
, gtk3Support ? false, gtk3 ? null, gsettings_desktop_schemas ? null, makeWrapper ? null
···
name = "deadbeef-0.6.2";
src = fetchurl {
-
url = "http://garr.dl.sourceforge.net/project/deadbeef/${name}.tar.bz2";
+
url = "mirror://sourceforge/project/deadbeef/${name}.tar.bz2";
sha256 = "06jfsqyakpvq0xhah7dlyvdzh5ym3hhb4yfczczw11ijd1kbjcrl";
};
···
++ optional gtk3Support makeWrapper;
enableParallelBuilding = true;
+
+
patches = [ (fetchpatch {
+
url = "https://github.com/Alexey-Yakovenko/deadbeef/commit/e7725ea73fa1bd279a3651704870156bca8efea8.patch";
+
sha256 = "0a04l2607y3swcq9b1apffl1chdwj38jwfiizxcfmdbia4a0qlyg";
+
})
+
];
postInstall = if !gtk3Support then "" else ''
wrapProgram "$out/bin/deadbeef" \
+22
pkgs/applications/audio/deadbeef/wrapper.nix
···
+
{ stdenv, buildEnv, deadbeef, makeWrapper, plugins }:
+
+
let
+
drv = buildEnv {
+
name = "deadbeef-with-plugins-" + (builtins.parseDrvName deadbeef.name).version;
+
+
paths = [ deadbeef ] ++ plugins;
+
+
postBuild = ''
+
# TODO: This could be avoided if buildEnv could be forced to create all directories
+
if [ -L $out/bin ]; then
+
rm $out/bin
+
mkdir $out/bin
+
for i in ${deadbeef}/bin/*; do
+
ln -s $i $out/bin
+
done
+
fi
+
wrapProgram $out/bin/deadbeef \
+
--set DEADBEEF_PLUGIN_DIR "$out/lib/deadbeef"
+
'';
+
};
+
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
+4
pkgs/top-level/all-packages.nix
···
deadbeef-mpris2-plugin = callPackage ../applications/audio/deadbeef/plugins/mpris2.nix { };
+
deadbeef-with-plugins = callPackage ../applications/audio/deadbeef/wrapper.nix {
+
plugins = [];
+
};
+
dfasma = callPackage ../applications/audio/dfasma { };
dia = callPackage ../applications/graphics/dia {