X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/a0570377b8a890a13508bb3e9151a78bc7cde84c..3fdb2d679259f5d1541240dd4e9cedda17040bf2:/gnu/packages/image-viewers.scm diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 8303ba38f9..ccbbb3bc2d 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -2,12 +2,12 @@ ;;; 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 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, 2020 Guy Fleury Iteriteka @@ -15,6 +15,11 @@ ;;; 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 +;;; Copyright © 2021 Raghav Gururajan +;;; Copyright © 2021 jgart ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +48,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -58,8 +64,10 @@ #: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 ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages photo) @@ -67,14 +75,112 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages suckless) + #:use-module (gnu packages terminals) + #:use-module (gnu packages video) + #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu packages)) +(define-public ytfzf + (package + (name "ytfzf") + (version "1.2.0") + (home-page "https://github.com/pystardust/ytfzf") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00d416qb4109pm77ikhnmds8qng90ni2jan9kdnxz7b6sh5f61nz")) + (patches + (search-patches + ;; Prerequisite for 'patch phase. + "ytfzf-programs.patch" + ;; Disables self-update. + "ytfzf-updates.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test suite + #:modules + ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Use correct $PREFIX path. + (substitute* "Makefile" + (("/usr/bin") + (format #f "~a/bin" + (assoc-ref outputs "out")))) + ;; Use absolute path to referenced programs. + (substitute* "ytfzf" + (("guix-catimg") + (format #f "~a/bin/catimg" + (assoc-ref inputs "catimg"))) + (("guix-chafa") + (format #f "~a/bin/chafa" + (assoc-ref inputs "chafa"))) + (("guix-curl") + (format #f "~a/bin/curl" + (assoc-ref inputs "curl"))) + (("guix-dmenu") + (format #f "~a/bin/dmenu" + (assoc-ref inputs "dmenu"))) + (("guix-fzf") + (format #f "~a/bin/fzf" + (assoc-ref inputs "fzf"))) + (("guix-jp2a") + (format #f "~a/bin/jp2a" + (assoc-ref inputs "jp2a"))) + (("guix-jq") + (format #f "~a/bin/jq" + (assoc-ref inputs "jq"))) + (("guix-mpv") + (format #f "~a/bin/mpv" + (assoc-ref inputs "mpv"))) + (("guix-notify-send") + (format #f "~a/bin/notify-send" + (assoc-ref inputs "libnotify"))) + (("guix-tput") + (format #f "~a/bin/tput" + (assoc-ref inputs "ncurses"))) + (("guix-ueberzug") + (format #f "~a/bin/ueberzug" + (assoc-ref inputs "python-ueberzug"))) + (("guix-youtube-dl") + (format #f "~a/bin/youtube-dl" + (assoc-ref inputs "youtube-dl")))))) + (delete 'configure)))) ;no configure script + (inputs + `(("catimg" ,catimg) + ("chafa" ,chafa) + ("curl" ,curl) + ("dmenu" ,dmenu) + ("fzf" ,fzf) + ("jp2a" ,jp2a) + ("jq" ,jq) + ("libnotify" ,libnotify) + ("mpv" ,mpv) + ("ncurses" ,ncurses) + ("python-ueberzug" ,python-ueberzug) + ("youtube-dl" ,youtube-dl))) + (synopsis "Find and watch PeerTube or YouTube videos from the terminal") + (description "@code{ytfzf} is a POSIX script that helps you find PeerTube or +YouTube videos without requiring API and opens/downloads them using mpv/ytdl.") + (license license:gpl3+))) + (define-public feh (package (name "feh") - (version "3.4.1") + (version "3.6.3") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -82,14 +188,16 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "0yvvj1s7ayn0lwils582smwkmckdk0gij5c58g45n4xh981n693q")))) + "1d13x8hmvpdc5f5rj4l29ha7iz7wvqxjlvh6il04wq8igzrj0x23")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases (delete 'configure)) + `(#:phases (modify-phases %standard-phases (delete 'configure)) #:test-target "test" #:make-flags - (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")) - "exif=1"))) + (list ,(string-append "CC=" (cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out")) + "exif=1" + "inotify=1"))) (native-inputs `(("perl" ,perl) ("perl-test-command" ,perl-test-command))) @@ -191,7 +299,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 @@ -202,7 +310,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" @@ -211,7 +319,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) @@ -237,7 +354,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 @@ -284,16 +401,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 @@ -329,7 +446,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 @@ -337,17 +454,18 @@ 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) ("qttools" ,qttools))) (inputs - `(("qtbase" ,qtbase) + `(("qtbase" ,qtbase-5) ("qtdeclarative" ,qtdeclarative) + ("qtsvg" ,qtsvg) ("qtwebkit" ,qtwebkit) ("boost" ,boost) + ("eigen" ,eigen) ;; ("gtest" ,gtest) ("libraw" ,libraw) ("zlib" ,zlib) @@ -360,7 +478,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) @@ -483,41 +602,34 @@ 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) + `(("qtbase" ,qtbase-5) ("qtsvg" ,qtsvg) ("qtimageformats" ,qtimageformats))) (home-page "https://interversehq.com/qview/") @@ -570,7 +682,7 @@ displayed in a terminal.") (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (delete 'configure) (add-after 'install 'record-absolute-file-names @@ -584,7 +696,7 @@ displayed in a terminal.") (string-append bin "/imv-"))) #t)))) #:make-flags - (list "CC=gcc" + (list ,(string-append "CC=" (cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "CONFIGPREFIX=" (assoc-ref %outputs "out") "/etc")))) @@ -677,3 +789,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-5) + ("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+)))