Update flake.lock and fix build

This commit is contained in:
NullBite 2024-03-12 17:43:03 +00:00
parent 2d4b93de20
commit e00ec711a7
Signed by: nullbite
GPG Key ID: 6C4D545385D4925A
3 changed files with 16 additions and 352 deletions

View File

@ -1,10 +1,16 @@
final: prev: final: prev:
let let
inherit (final) callPackage; inherit (final) callPackage fetchFromGitHub;
inherit (final.lib) recurseIntoAttrs; inherit (final.lib) recurseIntoAttrs;
gimpPlugins-gap = recurseIntoAttrs (callPackage ./gimp-gap.nix {}); gimpPlugins-gap = let
src = fetchFromGitHub {
owner = "Scrumplex";
repo = "nixpkgs";
rev = "cca25fd345f2c48de66ff0a950f4ec3f63e0420f";
hash="sha256-oat4TwOorFevUMZdBFgaQHx/UKqGW7CGMoOHVgQxVdM=";
};
in recurseIntoAttrs (callPackage "${src}/pkgs/applications/graphics/gimp/plugins" {});
in { in {
# apparently it's still broken. see https://github.com/NixOS/nixpkgs/issues/294707#issuecomment-1989857687 gimpPlugins = if prev.gimpPlugins.gap.version == "2.6.0" then gimpPlugins-gap else prev.gimpPlugins;
# gimpPlugins = if prev.gimpPlugins.gap.version == "2.6.0" then gimpPlugins-gap else prev.gimpPlugins;
} }

View File

@ -1,342 +0,0 @@
# 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 }:
let
inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub fetchFromGitLab;
in
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/${gimp.targetScriptDir}/${name};
for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
}
installPlugin() {
# The base name of the first argument is the plug-in name and the main executable.
# GIMP only allows a single plug-in per directory:
# https://gitlab.gnome.org/GNOME/gimp/-/commit/efae55a73e98389e38fa0e59ebebcda0abe3ee96
pluginDir=$out/${gimp.targetPluginDir}/$(basename "$1")
install -Dt "$pluginDir" "$@"
}
'';
}
// attrs
// {
name = "${gimp.pname}-plugin-${name}";
buildInputs = [
gimp
gimp.gtk
glib
] ++ (attrs.buildInputs or []);
nativeBuildInputs = [
pkg-config
intltool
] ++ (attrs.nativeBuildInputs or []);
# Override installation paths.
env = {
PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
} // attrs.env or { };
});
scriptDerivation = {src, ...}@attrs : pluginDerivation ({
prePhases = "extraLib";
dontUnpack = true;
installPhase = ''
runHook preInstall
installScripts ${src}
runHook postInstall
'';
} // attrs);
in
{
# Allow overriding GIMP package in the scope.
inherit (pkgs) gimp;
bimp = pluginDerivation rec {
/* menu:
File/Batch Image Manipulation...
*/
pname = "bimp";
version = "2.6";
src = fetchFromGitHub {
owner = "alessandrofrancesconi";
repo = "gimp-plugin-bimp";
rev = "v${version}";
hash = "sha256-IJ3+/9UwxJTRo0hUdzlOndOHwso1wGv7Q4UuhbsFkco=";
};
patches = [
# Allow overriding installation path
# https://github.com/alessandrofrancesconi/gimp-plugin-bimp/pull/311
(fetchpatch {
url = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp/commit/098edb5f70a151a3f377478fd6e0d08ed56b8ef7.patch";
sha256 = "2Afx9fmdn6ztbsll2f2j7mfffMWYWyr4BuBy9ySV6vM=";
})
];
nativeBuildInputs = with pkgs; [ which ];
installFlags = [
"SYSTEM_INSTALL_DIR=${placeholder "out"}/${gimp.targetPluginDir}/bimp"
];
installTargets = [ "install-admin" ];
meta = with lib; {
description = "Batch Image Manipulation Plugin for GIMP";
homepage = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];
};
};
gap = pluginDerivation {
/* menu:
Video
*/
pname = "gap";
version = "2.6.0-unstable-2023-05-20";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "Archive";
repo = "gimp-gap";
rev = "b2aa06cc7ee4ae1938f14640fe46b75ef5b15982";
hash = "sha256-q5TgCy0+iIfxyqJRXsKxiFrWMFSzBqC0SA9MBGTHXcA=";
};
nativeBuildInputs = with pkgs; [autoreconfHook];
hardeningDisable = [ "format" ];
env = {
NIX_LDFLAGS = "-lm";
};
meta = with lib; {
description = "The GIMP Animation Package";
homepage = "https://www.gimp.org";
# The main code is given in GPLv3, but it has ffmpeg in it, and I think ffmpeg license
# falls inside "free".
license = with licenses; [ gpl3 free ];
};
};
farbfeld = pluginDerivation rec {
pname = "farbfeld";
version = "unstable-2019-08-12";
src = fetchFromGitHub {
owner = "ids1024";
repo = "gimp-farbfeld";
rev = "5feacebf61448bd3c550dda03cd08130fddc5af4";
sha256 = "1vmw7k773vrndmfffj0m503digdjmkpcqy2r3p3i5x0qw9vkkkc6";
};
installPhase = ''
installPlugin farbfeld
'';
meta = {
description = "Gimp plug-in for the farbfeld image format";
homepage = "https://github.com/ids1024/gimp-farbfeld";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sikmir ];
};
};
fourier = pluginDerivation rec {
/* menu:
Filters/Generic/FFT Forward
Filters/Generic/FFT Inverse
*/
pname = "fourier";
version = "0.4.3";
src = fetchurl {
url = "https://www.lprp.fr/files/old-web/soft/gimp/${pname}-${version}.tar.gz";
sha256 = "0mf7f8vaqs2madx832x3kcxw3hv3w3wampvzvaps1mkf2kvrjbsn";
};
buildInputs = with pkgs; [ fftw ];
postPatch = ''
substituteInPlace Makefile --replace '$(GCC)' '$(CC)'
# The tarball contains a prebuilt binary.
make clean
'';
installPhase = ''
runHook preInstall
installPlugin fourier
runHook postInstall
'';
meta = with lib; {
description = "GIMP plug-in to do the fourier transform";
homepage = "https://people.via.ecp.fr/~remi/soft/gimp/gimp_plugin_en.php3#fourier";
license = with licenses; [ gpl3Plus ];
};
};
resynthesizer = pluginDerivation rec {
/* menu:
Edit/Fill with pattern seamless...
Filters/Enhance/Heal selection...
Filters/Enhance/Heal transparency...
Filters/Enhance/Sharpen by synthesis...
Filters/Enhance/Uncrop...
Filters/Map/Style...
Filters/Render/Texture...
*/
pname = "resynthesizer";
version = "2.0.3";
buildInputs = with pkgs; [ fftw ];
nativeBuildInputs = with pkgs; [ autoreconfHook ];
makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
src = fetchFromGitHub {
owner = "bootchk";
repo = "resynthesizer";
rev = "v${version}";
sha256 = "1jwc8bhhm21xhrgw56nzbma6fwg59gc8anlmyns7jdiw83y0zx3j";
};
meta = {
broken = !gimp.python2Support;
};
};
texturize = pluginDerivation {
pname = "texturize";
version = "2.2+unstable=2021-12-03";
src = fetchFromGitHub {
owner = "lmanul";
repo = "gimp-texturize";
rev = "9ceff0d411cda018108e5477320669b8d00d811e";
sha256 = "haYS0K3oAPlHtHB8phOCX5/gtWq9uiVQhG5ZhAFX0t0=";
};
nativeBuildInputs = with pkgs; [
meson
ninja
gettext
];
};
waveletSharpen = pluginDerivation {
/* menu:
Filters/Enhance/Wavelet sharpen
*/
pname = "wavelet-sharpen";
version = "0.1.2";
src = fetchurl {
url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
};
env = {
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: interface.o:(.bss+0xe0): multiple definition of `fimg'; plugin.o:(.bss+0x40): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
NIX_LDFLAGS = "-lm";
};
installPhase = "installPlugin src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
};
lqrPlugin = pluginDerivation rec {
/* menu:
Layer/Liquid Rescale
*/
pname = "lqr-plugin";
version = "0.7.2";
buildInputs = with pkgs; [ liblqr1 ];
src = fetchFromGitHub {
owner = "carlobaldassi";
repo = "gimp-lqr-plugin";
rev = "v${version}";
sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
};
patches = [
# Pull upstream fix for -fno-common toolchain support:
# https://github.com/carlobaldassi/gimp-lqr-plugin/pull/6
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/carlobaldassi/gimp-lqr-plugin/commit/ae3464a82e1395fc577cc94999bdc7c4a7bb35f1.patch";
sha256 = "EdjZWM6U1bhUmsOnLA8iJ4SFKuAXHIfNPzxZqel+JrY=";
})
];
};
gmic = pkgs.gmic-qt.override {
variant = "gimp";
};
gimplensfun = pluginDerivation rec {
version = "unstable-2018-10-21";
pname = "gimplensfun";
src = fetchFromGitHub {
owner = "seebk";
repo = "GIMP-Lensfun";
rev = "1c5a5c1534b5faf098b7441f8840d22835592f17";
sha256 = "1jj3n7spkjc63aipwdqsvq9gi07w13bb1v8iqzvxwzld2kxa3c8w";
};
buildInputs = with pkgs; [ lensfun gexiv2 ];
installPhase = "
installPlugin gimp-lensfun
";
meta = {
description = "GIMP plugin to correct lens distortion using the lensfun library and database";
homepage = "http://lensfun.sebastiankraft.net/";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux;
};
};
/* =============== simple script files ==================== */
# also have a look at enblend-enfuse in all-packages.nix
exposureBlend = scriptDerivation {
name = "exposure-blend";
src = fetchurl {
url = "http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm";
sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla";
};
meta.broken = true;
};
lightning = scriptDerivation {
name = "Lightning";
src = fetchurl {
url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/Lightning.scm";
sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
};
};
})

12
flake.lock generated
View File

@ -80,11 +80,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709204054, "lastModified": 1710164657,
"narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", "narHash": "sha256-l64+ZjaQAVkHDVaK0VHwtXBdjcBD6nLBD+p7IfyBp/w=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2f3367769a93b226c467551315e9e270c3f78b15", "rev": "017b12de5b899ef9b64e2c035ce257bfe95b8ae2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -247,11 +247,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1709356872, "lastModified": 1710159071,
"narHash": "sha256-mvxCirJbtkP0cZ6ABdwcgTk0u3bgLoIoEFIoYBvD6+4=", "narHash": "sha256-CT0WKgcmlcWZPZL/sSSICN/Vbm4Of0ZDgxc0GFf6sYU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "458b097d81f90275b3fdf03796f0563844926708", "rev": "0fbcc4b2e8571f4af39be41752581ea09dd9ab06",
"type": "github" "type": "github"
}, },
"original": { "original": {