Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: dd4ebbc91fde
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dfa97742d1c8
Choose a head ref
  • 5 commits
  • 3 files changed
  • 1 contributor

Commits on Nov 10, 2020

  1. Copy the full SHA
    3000a0f View commit details
  2. Copy the full SHA
    a84a2de View commit details
  3. gimpPlugins.lqrPlugin: 0.7.1 → 0.7.2

    carlobaldassi/gimp-lqr-plugin@v0.7.1...v0.7.2
    
    Also switch to GitHub upstream and use installPhase from generic builder (thanks to the pkg-config variables).
    jtojnar committed Nov 10, 2020
    Copy the full SHA
    f4c5131 View commit details

Commits on Nov 11, 2020

  1. gimpPlugins: include GIMP into the scope

    So that it can be easily overridden.
    
    Also clean up, update usage comment for this century and remove alias.
    jtojnar committed Nov 11, 2020
    1
    Copy the full SHA
    aa96bd2 View commit details
  2. Copy the full SHA
    dfa9774 View commit details
Showing with 49 additions and 37 deletions.
  1. +4 −2 pkgs/applications/graphics/gimp/default.nix
  2. +44 −34 pkgs/applications/graphics/gimp/plugins/default.nix
  3. +1 −1 pkgs/applications/graphics/gimp/wrapper.nix
6 changes: 4 additions & 2 deletions pkgs/applications/graphics/gimp/default.nix
Original file line number Diff line number Diff line change
@@ -163,8 +163,10 @@ in stdenv.mkDerivation rec {
# The declarations for `gimp-with-plugins` wrapper,
# used for determining plug-in installation paths
majorVersion = "${lib.versions.major version}.0";
targetPluginDir = "lib/gimp/${majorVersion}/plug-ins";
targetScriptDir = "share/gimp/${majorVersion}/scripts";
targetLibDir = "lib/gimp/${majorVersion}";
targetDataDir = "share/gimp/${majorVersion}";
targetPluginDir = "${targetLibDir}/plug-ins";
targetScriptDir = "${targetDataDir}/scripts";

# probably its a good idea to use the same gtk in plugins ?
gtk = gtk2;
78 changes: 44 additions & 34 deletions pkgs/applications/graphics/gimp/plugins/default.nix
Original file line number Diff line number Diff line change
@@ -1,44 +1,63 @@
# install these packages into your profile. Then add
# ~/.nix-profile/gimp-version-plugins to your plugin list you can find at
# preferences -> Folders -> Plug-ins
# same applies for the scripts
# Use `gimp-with-plugins` package for GIMP with all plug-ins.
# If you just want a subset of plug-ins, you can specify them explicitly:
# `gimp-with-plugins.override { plugins = with gimpPlugins; [ gap ]; }`.

{ config, lib, pkgs }:

{ config, pkgs, gimp }:
let
inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub;
inherit (gimp) targetPluginDir targetScriptDir;
inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub;
in

pluginDerivation = a: let
name = a.name or "${a.pname}-${a.version}";
lib.makeScope pkgs.newScope (self:

let
# Use GIMP from the scope.
inherit (self) gimp;

pluginDerivation = attrs: let
name = attrs.name or "${attrs.pname}-${attrs.version}";
in stdenv.mkDerivation ({
prePhases = "extraLib";
extraLib = ''
installScripts(){
mkdir -p $out/${targetScriptDir}/${name};
for p in "$@"; do cp "$p" -r $out/${targetScriptDir}/${name}; done
mkdir -p $out/${gimp.targetScriptDir}/${name};
for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
}
installPlugins(){
mkdir -p $out/${targetPluginDir}/${name};
for p in "$@"; do cp "$p" -r $out/${targetPluginDir}/${name}; done
mkdir -p $out/${gimp.targetPluginDir}/${name};
for p in "$@"; do cp "$p" -r $out/${gimp.targetPluginDir}/${name}; done
}
'';

# Override installation paths.
PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
}
// a
// attrs
// {
name = "gimp-plugin-${name}";
buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []);
nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []);
buildInputs = [
gimp
gimp.gtk
glib
] ++ (attrs.buildInputs or []);

nativeBuildInputs = [
pkg-config
intltool
] ++ (attrs.nativeBuildInputs or []);
}
);

scriptDerivation = {src, ...}@attrs : pluginDerivation ({
phases = [ "extraLib" "installPhase" ];
installPhase = "installScripts ${src}";
} // attrs);

in
{
# Allow overriding GIMP package in the scope.
inherit (pkgs) gimp;

stdenv.lib.makeScope pkgs.newScope (self: with self; {
gap = pluginDerivation {
/* menu:
Video
@@ -49,10 +68,6 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
};
NIX_LDFLAGS = "-lm";
patchPhase = ''
sed -e 's,^\(GIMP_PLUGIN_DIR=\).*,\1'"$out/${gimp.name}-plugins", \
-e 's,^\(GIMP_DATA_DIR=\).*,\1'"$out/share/${gimp.name}", -i configure
'';
hardeningDisable = [ "format" ];
meta = with stdenv.lib; {
description = "The GIMP Animation Package";
@@ -99,7 +114,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
version = "2.0.3";
buildInputs = with pkgs; [ fftw ];
nativeBuildInputs = with pkgs; [ autoreconfHook ];
makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/lib/gimp/2.0" ];
makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
src = fetchFromGitHub {
owner = "bootchk";
repo = "resynthesizer";
@@ -138,14 +153,14 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
Layer/Liquid Rescale
*/
pname = "lqr-plugin";
version = "0.7.1";
version = "0.7.2";
buildInputs = with pkgs; [ liblqr1 ];
src = fetchurl {
url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/gimp-lqr-plugin-${version}.tar.bz2";
sha256 = "sha256-YpgYPjHZkueJWS51QGmugXavGS+1x4o20St31qoRng4=";
src = fetchFromGitHub {
owner = "carlobaldassi";
repo = "gimp-lqr-plugin";
rev = "v${version}";
sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
};
#postInstall = ''mkdir -p $out/nix-support; echo "${liblqr1}" > "$out/nix-support/propagated-user-env-packages"'';
installPhase = "installPlugins src/gimp-lqr-plugin";
};

gmic = pkgs.gmic-qt.override {
@@ -201,9 +216,4 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
};
};

} // stdenv.lib.optionalAttrs (config.allowAliases or true) {

resynthesizer2 = resynthesizer;

})
2 changes: 1 addition & 1 deletion pkgs/applications/graphics/gimp/wrapper.nix
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

let
allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
selectedPlugins = if plugins == null then allPlugins else plugins;
selectedPlugins = lib.filter (pkg: pkg != gimpPlugins.gimp) (if plugins == null then allPlugins else plugins);
extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
versionBranch = stdenv.lib.versions.majorMinor gimp.version;