From fdd11c2c2b95e721c134c7cd5f6d2e92da62aff5 Mon Sep 17 00:00:00 2001 From: "Alexander V. Nikolaev" Date: Thu, 25 Feb 2016 23:22:12 +0200 Subject: gimp: Use http link as gimp-gap sources --- pkgs/applications/graphics/gimp/plugins/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pkgs/applications/graphics') diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 702911fee744..739614653a16 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -52,7 +52,7 @@ rec { name = "gap-2.6.0"; buildInputs = [ gimp pkgconfig glib pkgs.intltool gimp.gtk ] ++ gimp.nativeBuildInputs; src = fetchurl { - url = ftp://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2; + url = http://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2; sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql"; }; patchPhase = '' -- cgit 1.4.1 From 0649c8bde74d5e0e2036a66f0cab72b9de777617 Mon Sep 17 00:00:00 2001 From: "Alexander V. Nikolaev" Date: Thu, 25 Feb 2016 23:24:45 +0200 Subject: gimp: add gimp-with-plugin derivation By default all plugins from pkgs.gimpPlugins set are enabled. Default location of plugins changed from $out/${gimp.name} to $out/lib/gimp/${majorVersion}. Resulting derivation for gimp+plugins is set as search path for plugins by default (additional tweaking in gimprc done for old plugin scheme should be removed) --- pkgs/applications/graphics/gimp/2.8.nix | 6 ++++ .../applications/graphics/gimp/plugins/default.nix | 4 +-- pkgs/applications/graphics/gimp/wrapper.nix | 33 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 ++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/graphics/gimp/wrapper.nix (limited to 'pkgs/applications/graphics') diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix index 96d6dbd52857..55e85fc5ec6b 100644 --- a/pkgs/applications/graphics/gimp/2.8.nix +++ b/pkgs/applications/graphics/gimp/2.8.nix @@ -6,6 +6,12 @@ stdenv.mkDerivation rec { name = "gimp-2.8.16"; + # This declarations for `gimp-with-plugins` wrapper, + # (used for determining $out/lib/gimp/${majorVersion}/ paths) + majorVersion = "2.0"; + targetPluginDir = "$out/lib/gimp/${majorVersion}/plug-ins"; + targetScriptDir = "$out/lib/gimp/${majorVersion}/scripts"; + src = fetchurl { url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2"; sha256 = "1dsgazia9hmab8cw3iis7s69dvqyfj5wga7ds7w2q5mms1xqbqwm"; diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 739614653a16..4084018d1d53 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -6,9 +6,7 @@ { pkgs, gimp }: let inherit (pkgs) stdenv fetchurl pkgconfig glib; - targetPluginDir = "$out/${gimp.name}-plugins"; - targetScriptDir = "$out/${gimp.name}-scripts"; - prefix = "plugin-gimp-"; + inherit (gimp) targetPluginDir targetScriptDir; pluginDerivation = a: stdenv.mkDerivation ({ prePhases = "extraLib"; diff --git a/pkgs/applications/graphics/gimp/wrapper.nix b/pkgs/applications/graphics/gimp/wrapper.nix new file mode 100644 index 000000000000..53067dc39c9a --- /dev/null +++ b/pkgs/applications/graphics/gimp/wrapper.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, buildEnv, gimp, makeWrapper, gimpPlugins, plugins ? null}: + +let +allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation") (lib.attrValues gimpPlugins); +selectedPlugins = if plugins == null then allPlugins else plugins; +extraArgs = map (x: x.wrapArgs or "") selectedPlugins; + +drv = buildEnv { + name = "gimp-with-plugins-" + (builtins.parseDrvName gimp.name).version; + + paths = [ gimp ] ++ selectedPlugins; + + 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 + wrapProgram $out/bin/$each \ + --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \ + ${toString extraArgs} + done + set +x + for each in gimp gimp-console; do + ln -sf "$each-2.8" $out/bin/$each + done + ''; + }; +in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 37f1098a823c..1bce67dbec5a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12225,6 +12225,11 @@ let gimp = gimp_2_8; + gimp-with-plugins = callPackage ../applications/graphics/gimp/wrapper.nix { + gimp = gimp_2_8; + plugins = null; # All packaged plugins enabled, if not explicit plugin list supplied + }; + gimpPlugins = recurseIntoAttrs (callPackage ../applications/graphics/gimp/plugins {}); gitAndTools = recurseIntoAttrs (callPackage ../applications/version-management/git-and-tools {}); -- cgit 1.4.1