From e00ec711a75c54b41227e1778e1a1629b647fc41 Mon Sep 17 00:00:00 2001 From: NullBite Date: Tue, 12 Mar 2024 17:43:03 +0000 Subject: [PATCH] Update flake.lock and fix build --- backports/default.nix | 14 +- backports/gimp-gap.nix | 342 ----------------------------------------- flake.lock | 12 +- 3 files changed, 16 insertions(+), 352 deletions(-) delete mode 100644 backports/gimp-gap.nix diff --git a/backports/default.nix b/backports/default.nix index d2b913c..5a74b8d 100644 --- a/backports/default.nix +++ b/backports/default.nix @@ -1,10 +1,16 @@ final: prev: let - inherit (final) callPackage; + inherit (final) callPackage fetchFromGitHub; 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 { - # 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; } diff --git a/backports/gimp-gap.nix b/backports/gimp-gap.nix deleted file mode 100644 index 16d5ab6..0000000 --- a/backports/gimp-gap.nix +++ /dev/null @@ -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"; - }; - }; -}) diff --git a/flake.lock b/flake.lock index 87cdcaa..160fdc7 100644 --- a/flake.lock +++ b/flake.lock @@ -80,11 +80,11 @@ ] }, "locked": { - "lastModified": 1709204054, - "narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", + "lastModified": 1710164657, + "narHash": "sha256-l64+ZjaQAVkHDVaK0VHwtXBdjcBD6nLBD+p7IfyBp/w=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f3367769a93b226c467551315e9e270c3f78b15", + "rev": "017b12de5b899ef9b64e2c035ce257bfe95b8ae2", "type": "github" }, "original": { @@ -247,11 +247,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1709356872, - "narHash": "sha256-mvxCirJbtkP0cZ6ABdwcgTk0u3bgLoIoEFIoYBvD6+4=", + "lastModified": 1710159071, + "narHash": "sha256-CT0WKgcmlcWZPZL/sSSICN/Vbm4Of0ZDgxc0GFf6sYU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "458b097d81f90275b3fdf03796f0563844926708", + "rev": "0fbcc4b2e8571f4af39be41752581ea09dd9ab06", "type": "github" }, "original": {