diff mbox series

[bug#66652] gnu: Add findimagedupes.

Message ID DM5PR03MB316305B8A64DDFDE7126EC71C5DBA@DM5PR03MB3163.namprd03.prod.outlook.com
State New
Headers show
Series [bug#66652] gnu: Add findimagedupes. | expand

Commit Message

Morgan Smith Oct. 20, 2023, 5:55 p.m. UTC
* gnu/packages/disk.scm (findimagedupes): New variable.
---
 gnu/packages/disk.scm | 59 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

--
2.41.0

Comments

Ludovic Courtès Nov. 22, 2023, 2:49 p.m. UTC | #1
Morgan Smith <Morgan.J.Smith@outlook.com> skribis:

> * gnu/packages/disk.scm (findimagedupes): New variable.

Applied, thanks!

Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 9d2e170cc0..113455eee5 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -26,6 +26,7 @@ 
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Disseminate Dissent <disseminatedissent@protonmail.com>
 ;;; Copyright © 2023 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,7 @@  (define-module (gnu packages disk)
   #:use-module (gnu packages file-systems)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -71,6 +73,7 @@  (define-module (gnu packages disk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nss)
@@ -102,6 +105,7 @@  (define-module (gnu packages disk)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system scons)
@@ -343,6 +347,61 @@  (define-public fdisk
 tables, and it understands a variety of different formats.")
     (license license:gpl3+)))
 
+(define-public findimagedupes
+  (package
+    (name "findimagedupes")
+    (version "2.20.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jhnc/findimagedupes")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zfxmc6c1z4hzsq3k85xxida1v291frq4wbmxv9cg4jmw0ddk5ic"))))
+    (build-system perl-build-system)
+    (arguments
+     (list
+      #:tests? #f
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'configure)
+                   (delete 'build)
+                   (replace 'install
+                     ;; There's no ‘make install’ target.
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (install-file "findimagedupes"
+                                     (string-append #$output "/bin"))))
+                   (add-after 'unpack 'use-image-magick
+                     ;; TODO: package perl-graphics-magick and switch this out
+                     (lambda _
+                       (substitute* "findimagedupes"
+                         (("Graphics::Magick")
+                          "Image::Magick"))))
+                   (add-after 'unpack 'set-inline-dir
+                     (lambda _
+                       (substitute* "findimagedupes"
+                         (("/usr/local")
+                          #$output))))
+                   (add-after 'install 'inline-generation
+                     (lambda _
+                       (mkdir-p (string-append #$output "/lib/findimagedupes"))
+                       (invoke (string-append #$output "/bin/findimagedupes"))))
+                   (add-after 'install 'wrap-findimagedupes
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (wrap-program (string-append #$output
+                                                    "/bin/findimagedupes")
+                         `("PERL5LIB" ":" prefix
+                           (,(getenv "PERL5LIB") ,(string-append #$output
+                                                   "/lib/perl5/site_perl")))))))))
+    (inputs (list bash-minimal perl-db-file perl-file-mimeinfo
+                  perl-image-magick perl-inline-c))
+    (home-page "https://github.com/jhnc/findimagedupes")
+    (synopsis "Find visually similar or duplicate images")
+    (description "findimagedupes compares a list of files for visual
+similarity.")
+    (license license:gpl3+)))
+
 (define-public gpart
   ;; The latest (0.3) release is from 2015 and is missing a crash fix.
   (let ((commit "ec03350a01ad69708b5a3e2d47b8e002b0eba6c9")