X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/8bf8cd9b85c85be387565f6c8ca9f6c72196fb8e..afe0142e04c2257a22191ba3210fffc6dc54e28b:/gnu/packages/image-viewers.scm diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index b8b32de867..b7c1ebc829 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -2,19 +2,22 @@ ;;; Copyright © 2013, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016 Alex Kost -;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2017 Alex Griffin -;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Nikita ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 nee -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Ricardo Wurmus ;;; Copyright © 2019 Nicolas Goaziou -;;; Copyright © 2019 Guy Fleury Iteriteka +;;; Copyright © 2019, 2020 Guy Fleury Iteriteka ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2020 Peng Mei Yu ;;; Copyright © 2020 R Veera Kumar ;;; Copyright © 2020 Pierre Neidhardt +;;; Copyright © 2021 Rovanion Luckey +;;; Copyright © 2021 Xinglu Chen +;;; Copyright © 2021 Stefan Reichör ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,6 +61,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages graphics) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) #:use-module (gnu packages maths) #:use-module (gnu packages perl) @@ -74,7 +78,7 @@ (define-public feh (package (name "feh") - (version "3.3") + (version "3.6.3") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -82,14 +86,15 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "04c8cgwzkax481sz7lbzy23mk79bqmjy3qpvr7vxa4c14mc9k5gk")))) + "1d13x8hmvpdc5f5rj4l29ha7iz7wvqxjlvh6il04wq8igzrj0x23")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) #:test-target "test" #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")) - "exif=1"))) + "exif=1" + "inotify=1"))) (native-inputs `(("perl" ,perl) ("perl-test-command" ,perl-test-command))) @@ -120,77 +125,46 @@ actions.") "See 'COPYING' in the distribution.")))) (define-public geeqie - ;; The latest release, 1.4, fails to build with Exiv2 0.27.1. The upstream - ;; repo has several fixes for that, so take a snapshot. - (let ((commit "c220ddefb1b6b11b54f7598f0d44dd0723325ed4") - (revision "1")) - (package - (name "geeqie") - (version (git-version "1.4" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/BestImageViewer/geeqie") - (commit commit))) - (sha256 - (base32 - "07424nzrnwbksgalgg1a6ig2snd986w79kca1cfnv1q9kc7x2h3x")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (arguments - `( ;; Enable support for a "map" pane using GPS data. - #:configure-flags '("--enable-map") - - ;; Parallel builds fail with something like: - ;; image-load.c:143:9: error: ‘gq_marshal_VOID__INT_INT_INT_INT’ undeclared - ;; due to unexpressed makefile dependencies. - #:parallel-build? #f - - #:phases - (modify-phases %standard-phases - (add-before 'bootstrap 'pre-bootstrap - (lambda _ - (define (write-dummy-changelog port) - (display "See Git history for a change log.\n" port)) - ;; Create ChangeLog{,.html} to placate the makefile, which would - ;; otherwise require access to the Git repo. - (call-with-output-file "ChangeLog" - write-dummy-changelog) - (call-with-output-file "ChangeLog.html" - write-dummy-changelog) - - ;; Don't try to run 'git' for the version number. - (substitute* "configure.ac" - (("m4_esyscmd_s\\([^)]+\\)") - (string-append "[" ,version "]"))) - - ;; Remove references to non-existent files. - (substitute* "po/POTFILES.in" - (("^plugins/import/.*") "")) - #t))))) - (inputs - `(("clutter" ,clutter) - ("libchamplain" ,libchamplain) - ("lcms" ,lcms) - ("exiv2" ,exiv2) - ("libpng" ,libpng) - ("gtk+" ,gtk+))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("glib" ,glib "bin") ; glib-gettextize - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) - (home-page "http://www.geeqie.org/") - (synopsis "Lightweight GTK+ based image viewer") - (description - "Geeqie is a lightweight GTK+ based image viewer for Unix like operating + (package + (name "geeqie") + (version "1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BestImageViewer/geeqie") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0nf45sh3pwsv98sppcrqj81b6mdi31n1sbc7gn88m8mhpfp1qq6k")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `( ;; Enable support for a "map" pane using GPS data. + #:configure-flags '("--enable-map" + "--enable-gtk3"))) + (inputs + `(("clutter" ,clutter) + ("libchamplain" ,libchamplain) + ("lcms" ,lcms) + ("exiv2" ,exiv2) + ("libpng" ,libpng) + ("gtk+" ,gtk+))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("glib" ,glib "bin") ; glib-gettextize + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (home-page "http://www.geeqie.org/") + (synopsis "Lightweight GTK+ based image viewer") + (description + "Geeqie is a lightweight GTK+ based image viewer for Unix like operating systems. It features: EXIF, IPTC and XMP metadata browsing and editing interoperability; easy integration with other software; geeqie works on files and directories, there is no need to import images; fast preview for many raw image formats; tools for image comparison, sorting and managing photo collection. Geeqie was initially based on GQview.") - (license license:gpl2+)))) + (license license:gpl2+))) (define-public gpicview (package @@ -222,7 +196,7 @@ It is the default image viewer on LXDE desktop environment.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/muennich/sxiv.git") + (url "https://github.com/muennich/sxiv") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -233,7 +207,7 @@ It is the default image viewer on LXDE desktop environment.") `(#:tests? #f ; no check target #:make-flags (list (string-append "PREFIX=" %output) - "CC=gcc" + (string-append "CC=" ,(cc-for-target)) ;; Xft.h #includes without ‘freetype2/’. The Makefile ;; works around this by hard-coding /usr/include & $PREFIX. (string-append "CPPFLAGS=-I" @@ -242,7 +216,16 @@ It is the default image viewer on LXDE desktop environment.") "V=1") #:phases (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (delete 'configure) ; no configure script + (add-after 'install 'install-desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (install-file "sxiv.desktop" + (string-append (assoc-ref outputs "out") + "/share/applications")) + #t)) + (add-after 'install 'install-icons + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "-C" "icon" "install" make-flags)))))) (inputs `(("freetype" ,freetype) ("giflib" ,giflib) @@ -268,7 +251,7 @@ it and customize it for your needs.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/hellosiyan/Viewnior.git") + (url "https://github.com/hellosiyan/Viewnior") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -315,16 +298,16 @@ your images. Among its features are: (define-public catimg (package (name "catimg") - (version "2.6.0") + (version "2.7.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/posva/catimg.git") + (url "https://github.com/posva/catimg") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0g9ywbgy162wiam9hc3yqpq5q4gyxa8fj4jskr3fdz8z8jjaabzz")))) + (base32 "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no tests @@ -360,7 +343,7 @@ It supports JPEG, PNG and GIF formats.") (define-public luminance-hdr (package (name "luminance-hdr") - (version "2.4.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (string-append @@ -368,8 +351,7 @@ It supports JPEG, PNG and GIF formats.") version "/luminance-hdr-" version ".tar.bz2")) (sha256 (base32 - "00fldbcizrx8jcnjgq74n3zmbm27dxzl96fxa7q49689mfnlw08l")) - (patches (search-patches "luminance-hdr-qt-printer.patch")))) + "188q0l63nfasqfvwbq4mwx2vh7wsfi2bq9n5nksddspl1qz01lnp")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -377,8 +359,10 @@ It supports JPEG, PNG and GIF formats.") (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) + ("qtsvg" ,qtsvg) ("qtwebkit" ,qtwebkit) ("boost" ,boost) + ("eigen" ,eigen) ;; ("gtest" ,gtest) ("libraw" ,libraw) ("zlib" ,zlib) @@ -391,7 +375,8 @@ It supports JPEG, PNG and GIF formats.") ("gsl" ,gsl) ("libtiff" ,libtiff))) (arguments - '(#:phases + '(#:tests? #f ;XXX: some tests fail to compile + #:phases (modify-phases %standard-phases (add-after 'set-paths 'add-ilmbase-include-path (lambda* (#:key inputs #:allow-other-keys) @@ -514,38 +499,31 @@ For PDF support, install the @emph{mupdf} package.") (define-public qview (package (name "qview") - (version "3.0") + (version "4.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/jurplel/qView.git") + (url "https://github.com/jurplel/qView") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7")))) + (base32 "15n9cq7w3ckinnx38hvncxrbkv4qm4k51sal41q4y0pkvhmafhnr")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure - (lambda _ - (invoke "qmake"))) - ;; Installation process hard-codes "/usr/bin", possibly - ;; prefixed. - (add-after 'configure 'fix-install-directory (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("\\$\\(INSTALL_ROOT\\)/usr") out)) - #t))) - ;; Don't phone home or show "Checking for updates..." in the - ;; About menu. + (invoke "qmake" (string-append "PREFIX=" out))))) + ;; Don't phone home or show "Checking for updates..." in the About + ;; menu. (add-before 'build 'disable-auto-update (lambda _ (substitute* "src/qvaboutdialog.cpp" - (("ui->updateLabel->setText\\(updateText\\);") "") - (("requestUpdates\\(\\);") "")) + (("qvApp->checkUpdates\\(\\);") "") + (("updateText\\(\\);") "")) #t))))) (inputs `(("qtbase" ,qtbase) @@ -562,19 +540,21 @@ preloading.") (define-public chafa (package (name "chafa") - (version "1.2.2") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://hpjansson.org/chafa/releases/chafa-" version ".tar.xz")) (sha256 (base32 - "0aa7119514rhsak5i0kgvwllb9z74lnfzfn7dzfhs27fc8cvx1dg")))) + "18rb82bfqj1sj2g4irazx4lwq9q4b4k7my1r0q714vf9yhs41ls6")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("glib" ,glib) + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg-turbo) + ("glib" ,glib) ("imagemagick" ,imagemagick))) (synopsis "Convert images to ANSI/Unicode characters") (description @@ -706,3 +686,103 @@ brightness/contrast/gamma correction, pan with keyboard and mouse, flip, rotate left/right, jump/forward/backward images, filename filter and use it to set X desktop background.") (license license:gpl2))) + +(define-public nomacs + (package + (name "nomacs") + (version "3.16.224") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nomacs/nomacs") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05d4hqg0gl3g9s2xf1hr7mc7g4cqarcap4nzxxa51fsphw2b8x16")))) + (build-system cmake-build-system) + (arguments + `(#:build-type "Release" ; fails to build with debug info + #:configure-flags (list "-DENABLE_TRANSLATIONS=true" + "-DUSE_SYSTEM_QUAZIP=true" + "-DENABLE_OPENCV=true") + #:tests? #f ; no rule for target 'test' + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'copy-plugins + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "plugins") + "ImageLounge/plugins"))) + (add-after 'copy-plugins 'cd-to-source-dir + (lambda _ (chdir "ImageLounge") #t))))) + (inputs + `(("plugins" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nomacs/nomacs-plugins") + (commit "3.16"))) + (sha256 + (base32 + "1cpdwhfvaxm970nwdc1hc13848a85pqqi176m9xpa3krla9qskml")))) + ("exiv2" ,exiv2) + ("libraw" ,libraw) + ("libtiff" ,libtiff) + ("opencv" ,opencv) + ("python" ,python-wrapper) + ("quazip" ,quazip) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) + (synopsis "Image viewer supporting all common formats") + (description "Nomacs is a simple to use image lounge featuring +semi-transparent widgets that display additional information such as metadata, +thumbnails and histograms. It is able to browse images compressed archives +and add notes to images. + +Nomacs includes image manipulation methods for adjusting brightness, contrast, +saturation, hue, gamma, and exposure. It has a pseudo color function which +allows creating false color images. A unique feature of Nomacs is the +synchronization of multiple instances.") + (home-page "https://nomacs.org/") + (license license:gpl3+))) + +(define-public xzgv + (package + (name "xzgv") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/xzgv/" + version "/xzgv-" version ".tar.gz")) + (sha256 + (base32 "17l1xr9v07ggwga3vn0z1i4lnwjrr20rr8z1kjbw71aaijxl18i5")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'override-target-directory + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "config.mk" + (("/usr/local") (assoc-ref outputs "out"))))) + (delete 'configure) ; no configure script + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "src/xzgv" bin))))) ; just install the executable + #:tests? #f)) ; no rule for target 'test' + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+-2) + ("libexif" ,libexif))) + (home-page "https://sourceforge.net/projects/xzgv/") + (synopsis "Picture viewer for X with a thumbnail-based selector") + (description + "xzgv is a fast image viewer that provides extensive keyboard support.") + (license license:gpl2+)))