From 79f5ae037d6d8cd422827c61396ba4c7a649bbf5 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sat, 8 Nov 2025 22:36:58 +0100 Subject: [PATCH] findimagedupes: re-add add 2.20.1 was removed in https://github.com/NixOS/nixpkgs/commit/f93ea48c582b4608647f4decfc3e2cb4bdf2966f --- pkgs/by-name/fi/findimagedupes/package.nix | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 pkgs/by-name/fi/findimagedupes/package.nix diff --git a/pkgs/by-name/fi/findimagedupes/package.nix b/pkgs/by-name/fi/findimagedupes/package.nix new file mode 100644 index 000000000000..e3d1cd2dbb5f --- /dev/null +++ b/pkgs/by-name/fi/findimagedupes/package.nix @@ -0,0 +1,100 @@ +{ + lib, + stdenv, + fetchurl, + fetchFromGitHub, + makeWrapper, + perl, + perlPackages, + installShellFiles, +}: + +stdenv.mkDerivation rec { + pname = "findimagedupes"; + version = "2.20.1"; + + src = fetchFromGitHub { + owner = "jhnc"; + repo = "findimagedupes"; + tag = version; + hash = "sha256-LJbZGuBVksfS7nVxgrMLSeygWuy9oDmw/pD8wAyr3f0="; + }; + + nativeBuildInputs = [ + makeWrapper + installShellFiles + ]; + + buildInputs = [ + perl + ] + ++ (with perlPackages; [ + DBFile + FileMimeInfo + FileBaseDir + #GraphicsMagick + ImageMagick + Inline + InlineC + ParseRecDescent + ]); + + # compiled files (findimagedupes.so etc) are written to $DIRECTORY/lib/auto/findimagedupes + # replace GraphicsMagick with ImageMagick, because perl bindings are not yet available + postPatch = '' + substituteInPlace findimagedupes \ + --replace-fail "DIRECTORY => '/usr/local/lib/findimagedupes';" "DIRECTORY => '$out';" \ + --replace-fail "Graphics::Magick" "Image::Magick" \ + --replace-fail "my \$Id = '""';" "my \$Id = '${version}';" + ''; + + # with DIRECTORY = "/tmp": + # $ ./result/bin/findimagedupes + # /bin/sh: line 1: cc: command not found + # $ strace ./result/bin/findimagedupes 2>&1 | grep findimagedupes + # newfstatat(AT_FDCWD, "/tmp/lib/auto/findimagedupes/findimagedupes.inl", {st_mode=S_IFREG|0644, st_size=585, ...}, 0) = 0 + # newfstatat(AT_FDCWD, "/tmp/lib/auto/findimagedupes/findimagedupes.so", {st_mode=S_IFREG|0555, st_size=16400, ...}, 0) = 0 + buildPhase = " + runHook preBuild + # fix: Invalid value '$out' for config option DIRECTORY + mkdir $out + # build findimagedupes.so + # compile inline C code (perl Inline::C) on the first run + # fix: Can't open $out/config-x86_64-linux-thread-multi-5.040000 for output. Read-only file system + ${lib.getExe perl} findimagedupes + # build manpage + ${lib.getExe' perl "pod2man"} findimagedupes > findimagedupes.1 + runHook postBuild + "; + + installPhase = '' + runHook preInstall + installBin findimagedupes + installManPage findimagedupes.1 + runHook postInstall + ''; + + postFixup = '' + wrapProgram "$out/bin/findimagedupes" \ + --prefix PERL5LIB : "${ + with perlPackages; + makePerlPath [ + DBFile + FileMimeInfo + FileBaseDir + #GraphicsMagick + ImageMagick + Inline + InlineC + ParseRecDescent + ] + }" + ''; + + meta = { + homepage = "http://www.jhnc.org/findimagedupes/"; + description = "Finds visually similar or duplicate images"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ stunkymonkey ]; + }; +}