gimp: add version to derivation, use symlinkJoin for a wrapper

This commit is contained in:
Nikolay Amiantov 2016-04-26 15:26:45 +03:00
parent 41b6a17826
commit d04dafd64e
2 changed files with 8 additions and 14 deletions

View File

@ -4,7 +4,8 @@
, python, pygtk, libart_lgpl, libexif, gettext, xorg, wrapPython }: , python, pygtk, libart_lgpl, libexif, gettext, xorg, wrapPython }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gimp-2.8.16"; name = "gimp-${version}";
version = "2.8.16";
# This declarations for `gimp-with-plugins` wrapper, # This declarations for `gimp-with-plugins` wrapper,
# (used for determining $out/lib/gimp/${majorVersion}/ paths) # (used for determining $out/lib/gimp/${majorVersion}/ paths)

View File

@ -1,24 +1,18 @@
{ stdenv, lib, buildEnv, gimp, makeWrapper, gimpPlugins, plugins ? null}: { stdenv, lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, plugins ? null}:
let let
allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation") (lib.attrValues gimpPlugins); allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation") (lib.attrValues gimpPlugins);
selectedPlugins = if plugins == null then allPlugins else plugins; selectedPlugins = if plugins == null then allPlugins else plugins;
extraArgs = map (x: x.wrapArgs or "") selectedPlugins; extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
drv = buildEnv { in symlinkJoin {
name = "gimp-with-plugins-" + (builtins.parseDrvName gimp.name).version; name = "gimp-with-plugins-${gimp.version}";
paths = [ gimp ] ++ selectedPlugins; paths = [ gimp ] ++ selectedPlugins;
buildInputs = [ makeWrapper ];
postBuild = '' 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 ${gimp}/bin/*; do
ln -s $i $out/bin
done
fi
for each in gimp-2.8 gimp-console-2.8; do for each in gimp-2.8 gimp-console-2.8; do
wrapProgram $out/bin/$each \ wrapProgram $out/bin/$each \
--set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \ --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \
@ -29,5 +23,4 @@ drv = buildEnv {
ln -sf "$each-2.8" $out/bin/$each ln -sf "$each-2.8" $out/bin/$each
done done
''; '';
}; }
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })