summaryrefslogtreecommitdiff
path: root/gnu/packages/image.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/image.scm')
-rw-r--r--gnu/packages/image.scm543
1 files changed, 296 insertions, 247 deletions
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 6e67c56d78..6cf171a410 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2017, 2019 Ludovic Courtès <[email protected]>
+;;; Copyright © 2013, 2017, 2019, 2021 Ludovic Courtès <[email protected]>
;;; Copyright © 2013, 2015, 2016 Andreas Enge <[email protected]>
;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <[email protected]>
;;; Copyright © 2014, 2015 Alex Kost <[email protected]>
@@ -11,7 +11,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <[email protected]>
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <[email protected]>
;;; Copyright © 2016 Eric Bavier <[email protected]>
-;;; Copyright © 2016, 2017, 2020 Arun Isaac <[email protected]>
+;;; Copyright © 2016, 2017, 2020, 2021 Arun Isaac <[email protected]>
;;; Copyright © 2016, 2017 Kei Kebreau <[email protected]>
;;; Copyright © 2017 Nikita <[email protected]>
;;; Copyright © 2017,2019,2020 Hartmut Goebel <[email protected]>
@@ -26,10 +26,12 @@
;;; Copyright © 2020 Giacomo Leidi <[email protected]>
;;; Copyright © 2020 R Veera Kumar <[email protected]>
;;; Copyright © 2020 Maxim Cournoyer <[email protected]>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email protected]>
;;; Copyright © 2020 Zhu Zihao <[email protected]>
;;; Copyright © 2020, 2021 Vinicius Monego <[email protected]>
;;; Copyright © 2021 Sharlatan Hellseher <[email protected]>
;;; Copyright © 2021 Nicolò Balzarotti <[email protected]>
+;;; Copyright © 2021 Alexandr Vityazev <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,13 +57,13 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
- #:use-module (gnu packages gcc)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gimp)
#:use-module (gnu packages gl)
@@ -90,6 +92,7 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages fonts)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -113,8 +116,8 @@
(origin
(method url-fetch)
(uri
- (string-append "https://sourceforge.net/projects/iqa/files/"
- "1.1.2%20Release/iqa_1.1.2_src.tar.gz/download"))
+ (string-append "mirror://sourceforge/iqa/"
+ version " Release" "/iqa_" version "_src.tar.gz"))
(sha256
(base32 "00mgwy031ammab6bwmd1whhvqv3fxy1cs1igabq0n3ag12zhjs77"))))
(build-system gnu-build-system)
@@ -159,7 +162,7 @@ code is Valgrind-clean and unit tested.")
`(#:configure-flags '("--disable-static")))
;; libpng.la says "-lz", so propagate it.
- (propagated-inputs `(("zlib" ,zlib)))
+ (propagated-inputs (list zlib))
(synopsis "Library for handling PNG files")
(description
@@ -223,10 +226,10 @@ library. It supports almost all PNG features and is extensible.")
(base32
"1dh0250mw9b2hx7cdmnb2blk7ddl49n6vx8zz7jdmiwxy38v4fw2"))))))
(native-inputs
- `(("libtool" ,libtool)))
+ (list libtool))
;; libpng.la says "-lz", so propagate it.
(propagated-inputs
- `(("zlib" ,zlib)))
+ (list zlib))
(synopsis "APNG patch for libpng")
(description
"APNG (Animated Portable Network Graphics) is an unofficial
@@ -281,8 +284,7 @@ APNG patch provides APNG support to libpng.")
(string-append (assoc-ref outputs "out") "/")))
#t)))))
(inputs
- `(("libpng" ,libpng)
- ("zlib" , zlib)))
+ (list libpng zlib))
(home-page "https://pmt.sourceforge.io/pngcrush")
(synopsis "Utility to compress PNG files")
(description "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}
@@ -337,7 +339,7 @@ images. It can further losslessly compress them by as much as 40%.")
(install-file "pnglite.h" include)
(install-file "README.md" doc)
#t))))))
- (inputs `(("zlib" ,zlib)))
+ (inputs (list zlib))
(home-page "https://github.com/dankar/pnglite")
(synopsis "Pretty small png library")
(description "A pretty small png library.
@@ -387,12 +389,9 @@ and other PNG optimizers.")
#:configure-flags
'("--with-openmp" "--with-lcms2")))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
- `(("libpng" ,libpng)
- ("zlib" , zlib)
- ("lcms" ,lcms)
- ("libimagequant" ,libimagequant)))
+ (list libpng zlib lcms libimagequant))
(home-page "https://pngquant.org/")
(synopsis "Utility and library for lossy compressing PNG images")
(description "pngquant is a PNG compressor that significantly reduces file
@@ -563,8 +562,7 @@ maximum quality factor.")
"1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk"))))
(build-system gnu-build-system)
(inputs
- `(("libpng" ,libpng)
- ("jasper" ,jasper)))
+ (list libpng jasper))
(arguments
`(#:tests? #t)) ; No tests.
(home-page "http://icns.sourceforge.net/")
@@ -583,7 +581,7 @@ extracting icontainer icon files.")
(define-public libtiff
(package
(name "libtiff")
- (version "4.1.0")
+ (version "4.3.0")
(source
(origin
(method url-fetch)
@@ -591,11 +589,10 @@ extracting icontainer icon files.")
version ".tar.gz"))
(sha256
(base32
- "0d46bdvxdiv59lxnb0xz9ywm8arsr6xsapi5s6y6vnys2wjz6aax"))))
- (replacement libtiff/fixed)
+ "1j3snghqjbhwmnm5vz3dr1zm68dj15mgbx1wqld7vkl7n2nfaihf"))))
(build-system gnu-build-system)
(outputs '("out"
- "doc")) ;1.3 MiB of HTML documentation
+ "doc")) ;1.8 MiB of HTML documentation
(arguments
;; Instead of using --docdir, this package has its own --with-docdir.
`(#:configure-flags
@@ -616,20 +613,6 @@ collection of tools for doing simple manipulations of TIFF images.")
"See COPYRIGHT in the distribution."))
(home-page "http://www.simplesystems.org/libtiff/")))
-(define-public libtiff/fixed
- (package
- (inherit libtiff)
- (name "libtiff")
- (version "4.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://download.osgeo.org/libtiff/tiff-"
- version ".tar.gz"))
- (sha256
- (base32
- "1jrkjv0xya9radddn8idxvs2gqzp3l2b1s8knlizmn7ad3jq817b"))))))
-
(define-public leptonica
(package
(name "leptonica")
@@ -645,11 +628,11 @@ collection of tools for doing simple manipulations of TIFF images.")
(base32 "12ddln72z5l3icz0i9rpsfkg5xik8fcwcn8lb0cp3jigjxi8gvkg"))))
(build-system gnu-build-system)
(native-inputs
- `(("gnuplot" ,gnuplot) ;needed for test suite
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ (list gnuplot ;needed for test suite
+ autoconf
+ automake
+ libtool
+ pkg-config))
(inputs
`(("giflib" ,giflib)
("libjpeg" ,libjpeg-turbo)
@@ -692,15 +675,15 @@ arithmetic ops.")
(define-public jbig2dec
(package
(name "jbig2dec")
- (version "0.18")
+ (version "0.19")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ArtifexSoftware"
"/ghostpdl-downloads/releases/download"
- "/gs951/" name "-" version ".tar.gz"))
+ "/gs9533/" name "-" version ".tar.gz"))
(sha256
(base32
- "0pigfw2v0ppvr0lbysm69gx0zsa5q2q92yrb8af2j3im6x97f6cy"))))
+ "0dwa24kjqyg9hmm40fh048sdxfpnasz43l2rm8wlkw1qbdlpd517"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--disable-static")
#:phases (modify-phases %standard-phases
@@ -718,7 +701,7 @@ arithmetic ops.")
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
- ("python" ,python-wrapper))) ;for tests
+ ("python" ,python-minimal-wrapper))) ;for tests
(synopsis "Decoder of the JBIG2 image compression format")
(description
"JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit
@@ -811,17 +794,17 @@ images of initially unknown height.")
(define-public openjpeg-data
(package
(name "openjpeg-data")
- (version "2020.05.19")
+ (version "2020.11.30")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/uclouvain/openjpeg-data")
- (commit "c5c4a8c")))
+ (commit "cd724fb1f93e6af41ebc68c4904f4bf2a4cd1e60")))
(file-name (git-file-name name version))
(sha256
- (base32 "1jp84gbhw8q5b8mhc322ql9410hjf32w9hg10x4isfa9j59mnncb"))))
+ (base32 "1q2swh4g9r9haqs075fyk42aclqcs9q51lqqzfb57lisszminpwm"))))
(build-system copy-build-system)
(synopsis "Test files for OpenJPEG")
(description "OpenJPEG-Data contains all files required to run the openjpeg
@@ -833,28 +816,49 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
(define-public openjpeg
(package
(name "openjpeg")
- (version "2.3.1")
+ (version "2.4.0")
(source
(origin
(method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/uclouvain/openjpeg")
- (commit
- (string-append "v" version))))
- (file-name
- (git-file-name "openjpeg" version))
+ (uri (git-reference
+ (url "https://github.com/uclouvain/openjpeg")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
+ (base32 "143dvy5g6v6129lzvl0r8mrgva2fppkn0zl099qmi9yi9l9h7yyf"))))
(build-system cmake-build-system)
(arguments
- '(#:tests? #f ;TODO: requires a 1.1 GiB data repository
- #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
+ `(#:configure-flags
+ (list
+ "-DBUILD_STATIC_LIBS=OFF"
+ "-DBUILD_UNIT_TESTS=ON"
+ "-DBUILD_TESTING=ON"
+ (string-append "-DOPJ_DATA_ROOT="
+ (assoc-ref %build-inputs "openjpeg-data")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ ;; To be re-enabled after upstream fixes the bug,
+ ;; https://github.com/uclouvain/openjpeg/issues/1264
+ (substitute* "tests/CMakeLists.txt"
+ (("add_subdirectory\\(nonregression\\)")
+ ""))
+ ;; These tests fail on all architectures except x86_64
+ (substitute* "tests/conformance/CMakeLists.txt"
+ ;; 4, 5, 6 fail
+ (("numFileC1P0 RANGE 1 16") "numFileC1P0 RANGE 7 16")
+ ;; 2, 3, 4, 5 fail
+ (("numFileC1P1 RANGE 1 7") "numFileC1P1 1 6 7")
+ ;; 2, 3 fail
+ (("numFileJP2 RANGE 1 9") "numFileJP2 RANGE 4 9")
+ ;; All fail
+ (("subsampling.*") "")
+ (("zoo.*") "")))))))
+ (native-inputs
+ (list openjpeg-data)) ; Files for test-suite
(inputs
- `(("lcms" ,lcms)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("zlib" ,zlib)))
+ (list lcms libpng libtiff zlib))
(synopsis "OPENJPEG Library and Applications")
(description "OpenJPEG is an implementation of JPEG 2000 codec written in C
language. It has been developed in order to promote the use of JPEG 2000, a
@@ -969,7 +973,7 @@ compose, and analyze GIF images.")
(("^EXECINPUT=.*")
(format #f "EXECINPUT=~a~%" execinput)))
(invoke "sh" "testit.sh"))))))))
- (native-inputs `(("drm-tools" ,drm-tools))) ;for tests
+ (native-inputs (list drm-tools)) ;for tests
(home-page "http://libuemf.sourceforge.net/")
(synopsis "Library for working with WFM, EMF and EMF+ images")
(description "The libUEMF library is a portable C99 implementation for
@@ -990,7 +994,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
(base32
"0cnksimmmjngdrys302ik1385sg1sj4i0gxivzldhgwd46n7x2kh"))))
(build-system gnu-build-system)
- (inputs `(("perl" ,perl))) ;package ships some perl tools
+ (inputs (list perl)) ;package ships some perl tools
(home-page "http://giflib.sourceforge.net/")
(synopsis "GIF decompression library")
(description
@@ -1062,8 +1066,7 @@ more modular, simple, and flexible.")
"1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
(build-system gnu-build-system)
(inputs
- `(("libx11" ,libx11)
- ("imlib2" ,imlib2)))
+ (list libx11 imlib2))
(home-page
;; This vanished page is universally accepted as giblib's home despite not
;; mentioning the package once.
@@ -1147,8 +1150,7 @@ supplies a generic doubly-linked list and some string functions.")
"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"))
#:tests? #f)) ; no check target
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("unzip" ,unzip)))
+ (list pkg-config unzip))
(inputs
`(("libjpeg" ,libjpeg-turbo)
("libjxr" ,libjxr)
@@ -1156,7 +1158,7 @@ supplies a generic doubly-linked list and some string functions.")
("libraw" ,libraw)
("libtiff" ,libtiff)
("libwebp" ,libwebp)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("openjpeg" ,openjpeg)
("zlib" ,zlib)))
(synopsis "Library for handling popular graphics image formats")
@@ -1167,79 +1169,87 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
(home-page "http://freeimage.sourceforge.net")))
(define-public vigra
- (package
- (name "vigra")
- (version "1.11.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/ukoethe/vigra/releases/download/"
- "Version-" (string-join (string-split version #\.) "-")
- "/vigra-" version "-src.tar.gz"))
- (patches (search-patches "vigra-python-compat.patch"))
- (sha256 (base32
- "1bqs8vx5i1bzamvv563i24gx2xxdidqyxh9iaj46mbznhc84wmm5"))))
- (build-system cmake-build-system)
- (inputs
- `(("boost" ,boost)
- ("fftw" ,fftw)
- ("fftwf" ,fftwf)
- ("hdf5" ,hdf5)
- ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
- ; to create a configure-flag
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("openexr" ,openexr)
- ("python" ,python-wrapper)
- ("python-numpy" ,python-numpy)
- ("zlib" ,zlib)))
- (native-inputs
- `(("doxygen" ,doxygen)
- ("python-nose" ,python-nose)
- ("sphinx" ,python-sphinx)))
- (arguments
- `(#:test-target "check"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-broken-tests
- (lambda _
- ;; See https://github.com/ukoethe/vigra/issues/432
- (substitute* "test/fourier/CMakeLists.txt"
- (("VIGRA_ADD_TEST.*") ""))
- ;; This test fails with Numpy 1.15:
- ;; <https://github.com/ukoethe/vigra/issues/436>.
- (substitute* "vigranumpy/test/CMakeLists.txt"
- (("test1\\.py") ""))
- #t)))
- #:configure-flags
- (list "-Wno-dev" ; suppress developer mode with lots of warnings
- (string-append "-DVIGRANUMPY_INSTALL_DIR="
- (assoc-ref %outputs "out")
- "/lib/python"
- ,(version-major+minor (package-version python))
- "/site-packages")
- ;; OpenEXR is not enabled by default.
- "-DWITH_OPENEXR=1"
- ;; Fix rounding error on 32-bit machines
- "-DCMAKE_C_FLAGS=-ffloat-store"
- ;; The header files of ilmbase are not found when included
- ;; by the header files of openexr, and an explicit flag
- ;; needs to be set.
- (string-append "-DCMAKE_CXX_FLAGS=-I"
- (assoc-ref %build-inputs "ilmbase")
- "/include/OpenEXR"
- " -ffloat-store"))))
- (synopsis "Computer vision library")
- (description
- "VIGRA stands for Vision with Generic Algorithms. It is an image
-processing and analysis library that puts its main emphasis on customizable
-algorithms and data structures. It is particularly strong for
-multi-dimensional image processing.")
- (license license:expat)
- (home-page "https://ukoethe.github.io/vigra/")
- (properties '((max-silent-time . 7200))))) ;2 hours, to avoid timing out
-
+ (let ((commit "9b514fa00a136f5fd81bb57ee9f6293c333ffc1f")
+ (revision "0"))
+ (package
+ (name "vigra")
+ (version (git-version "1.11.1" revision commit))
+ (source
+ (origin
+ ;; The last release is 1.11.1, from 2017. It's becoming more and more
+ ;; difficult to build this old release, and the upstream developers
+ ;; suggest on their home page to build from the Git repo, saying "It is
+ ;; generally safe to use the 'master' branch of the development snapshot,
+ ;; as we avoid uploading untested or incompatible changes to this branch."
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ukoethe/vigra")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 (base32
+ "1vzlypviala109imwxkp46lqhhxszf79ypfb8wxg6z7g02j7mm73"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("hdf5" ,hdf5)
+ ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
+ ; to create a configure-flag
+ ("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("openexr" ,openexr-2)
+ ("python" ,python-wrapper)
+ ;("python-numpy" ,python-numpy)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("python-nose" ,python-nose)
+ ("sphinx" ,python-sphinx)))
+ (arguments
+ `(#:test-target "check"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; See https://github.com/ukoethe/vigra/issues/432
+ (substitute* "test/fourier/CMakeLists.txt"
+ (("VIGRA_ADD_TEST.*") ""))
+ ;; This test fails with Numpy 1.15:
+ ;; <https://github.com/ukoethe/vigra/issues/436>.
+ (substitute* "vigranumpy/test/CMakeLists.txt"
+ (("test1\\.py") ""))
+ #t)))
+ #:configure-flags
+ (list "-Wno-dev" ; suppress developer mode with lots of warnings
+ (string-append "-DVIGRANUMPY_INSTALL_DIR="
+ (assoc-ref %outputs "out")
+ "/lib/python"
+ ,(version-major+minor (package-version python))
+ "/site-packages")
+ ;; Vigranumpy isn't compatible with numpy >= 1.20.
+ "-DWITH_VIGRANUMPY=0"
+ ;; OpenEXR is not enabled by default.
+ "-DWITH_OPENEXR=1"
+ ;; Fix rounding error on 32-bit machines
+ "-DCMAKE_C_FLAGS=-ffloat-store"
+ ;; The header files of ilmbase are not found when included
+ ;; by the header files of openexr, and an explicit flag
+ ;; needs to be set.
+ (string-append "-DCMAKE_CXX_FLAGS=-I"
+ (assoc-ref %build-inputs "ilmbase")
+ "/include/OpenEXR"
+ " -ffloat-store"))))
+ (synopsis "Computer vision library")
+ (description
+ "VIGRA stands for Vision with Generic Algorithms. It is an image
+ processing and analysis library that puts its main emphasis on customizable
+ algorithms and data structures. It is particularly strong for
+ multi-dimensional image processing.")
+ (license license:expat)
+ (home-page "https://ukoethe.github.io/vigra/")
+ (properties '((max-silent-time . 7200)))))) ;2 hours, to avoid timing out
(define-public vigra-c
(let* ((commit "66ff4fa5a7d4a77415caa676a45c2c6ea16562e7")
@@ -1261,12 +1271,9 @@ multi-dimensional image processing.")
(arguments
`(#:tests? #f)) ; No test target.
(native-inputs
- `(("doxygen" ,doxygen)))
+ (list doxygen))
(inputs
- `(("fftw" ,fftw)
- ("fftwf" ,fftwf)
- ("hdf5" ,hdf5)
- ("vigra" ,vigra)))
+ (list fftw fftwf hdf5 vigra))
(synopsis "C interface to the VIGRA computer vision library")
(description
"This package provides a C interface to the VIGRA C++ computer vision
@@ -1277,7 +1284,7 @@ language bindings to VIGRA.")
(define-public libwebp
(package
(name "libwebp")
- (version "1.1.0")
+ (version "1.2.0")
(source
(origin
;; No tarballs are provided for >0.6.1.
@@ -1288,7 +1295,7 @@ language bindings to VIGRA.")
(file-name (git-file-name name version))
(sha256
(base32
- "0r2yy9if0ndvpzadk39bigvsygyqnlv0xjb9w2aj6rs534mncazz"))))
+ "1rgblphsd56033w7lpkrzl7m5w0fi7wavxri1ayzlg8fhpmmqp4k"))))
(build-system gnu-build-system)
(inputs
`(("freeglut" ,freeglut)
@@ -1297,9 +1304,7 @@ language bindings to VIGRA.")
("libpng" ,libpng)
("libtiff" ,libtiff)))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
+ (list autoconf automake libtool))
(arguments
'(#:configure-flags '("--enable-libwebpmux"
"--enable-libwebpdemux"
@@ -1344,24 +1349,29 @@ channels.")
(define-public exiv2
(package
(name "exiv2")
- (version "0.27.4")
+ (version "0.27.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.exiv2.org/builds/exiv2-" version
"-Source.tar.gz"))
(sha256
- (base32 "0klhxkxvkzzzcqpzv8jb56pykq0gyhb6rk9vc2kzjahngjx6sdl4"))))
+ (base32 "1qm6bvj28l42km009nc60gffn1qhngc0m2wjlhf90si3mcc8d99m"))))
(build-system cmake-build-system)
(arguments
'(#:test-target "tests"
- #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON")))
+ #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'delete-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (for-each delete-file (find-files lib "\\.a$"))))))))
(propagated-inputs
- `(("expat" ,expat)
- ("zlib" ,zlib)))
+ (list expat zlib))
(native-inputs
- `(("googletest" ,googletest)
- ("python" ,python)))
+ (list googletest python))
(home-page "https://www.exiv2.org/")
(synopsis "Library and command-line utility to manage image metadata")
(description
@@ -1396,14 +1406,14 @@ and XMP metadata of images in various formats.")
(add-before 'configure 'change-directory
(lambda _ (chdir "DevIL") #t)))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
`(("lcms" ,lcms)
("libjpeg" ,libjpeg-turbo)
("libmng" ,libmng)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("openexr" ,openexr)
+ ("openexr" ,openexr-2)
("zlib" ,zlib)))
(synopsis "Library for manipulating many image formats")
(description "Developer's Image Library (DevIL) is a library to develop
@@ -1415,7 +1425,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
(define-public jasper
(package
(name "jasper")
- (version "2.0.32")
+ (version "2.0.33")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1424,10 +1434,10 @@ convert, manipulate, filter and display a wide variety of image formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hhggh2jxp1wn7nwzvbx2z1vi1ih8wmz4av17bljyn0c3mxjs22k"))))
+ "0p3fj89gkhd2ys5ci75cwb6p7rvb2pf52jd8c9d4g76qp846njnx"))))
(build-system cmake-build-system)
(inputs
- `(("libjpeg" ,libjpeg-turbo)))
+ (list libjpeg-turbo))
(synopsis "JPEG-2000 library")
(description "The JasPer Project is an initiative to provide a reference
implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,
@@ -1438,7 +1448,7 @@ ISO/IEC 15444-1).")
(define-public zimg
(package
(name "zimg")
- (version "2.9.3")
+ (version "3.0.3")
(source
(origin
(method git-fetch)
@@ -1447,12 +1457,10 @@ ISO/IEC 15444-1).")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1dqyrq3p8bkgvj4ci50ac342hjnhyz6xxvhiwp7wpi3v3nbj7s02"))))
+ (base32 "0pwgf1mybpa3fs13p6jryzm32vfldyql9biwaypqdcimlnlmyk20"))))
(build-system gnu-build-system)
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
+ (list autoconf automake libtool))
(synopsis "Scaling, colorspace conversion, and dithering library")
(description "Zimg implements the commonly required image processing basics
of scaling, colorspace conversion, and depth conversion. A simple API enables
@@ -1477,7 +1485,7 @@ the programmer.")
(sha256
(base32 "0yys55f9i9g3wjjg0j2m0p0k21zwnid8520a8lrr30khm4k5gibp"))))
(build-system cmake-build-system)
- (inputs `(("freeimage" ,freeimage)))
+ (inputs (list freeimage))
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'fix-tests
@@ -1556,8 +1564,7 @@ changed, making the embedding resistant against first-order statistical tests.")
#t))))
(build-system gnu-build-system)
(inputs
- `(("libpng" ,libpng)
- ("zlib" ,zlib)))
+ (list libpng zlib))
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -1597,7 +1604,7 @@ PNG, and performs PNG integrity checks and corrections.")
(rename-file "imgp.py" "imgp")
#t)))))
(inputs
- `(("python-pillow" ,python-pillow)))
+ (list python-pillow))
(home-page "https://github.com/jarun/imgp")
(synopsis "High-performance CLI batch image resizer & rotator")
(description
@@ -1656,7 +1663,7 @@ is hereby granted."))))
"0pbv6pc97kbj7ib31qcwi7lnmm9xg5y3b11aasmkhfjvf7rgdy0n"))))
(build-system cmake-build-system)
(native-inputs
- `(("nasm" ,nasm)))
+ (list nasm))
(arguments
`(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib"
"-DENABLE_STATIC=0"
@@ -1741,7 +1748,7 @@ and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
#t))
(delete 'configure))))
(inputs
- `(("zlib" ,zlib)))
+ (list zlib))
(synopsis "Library for reading and writing files in the nifti-1 format")
(description "Niftilib is a set of i/o libraries for reading and writing
files in the nifti-1 data format - a binary file format for storing
@@ -1816,7 +1823,7 @@ parsing, viewing, modifying, and saving this metadata.")
(define-public flameshot
(package
(name "flameshot")
- (version "0.8.5")
+ (version "0.10.2")
(source
(origin
(method git-fetch)
@@ -1826,13 +1833,12 @@ parsing, viewing, modifying, and saving this metadata.")
(file-name (git-file-name name version))
(sha256
(base32
- "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191"))))
+ "07n98pp5i6i51g7a4vqwbd6xarihzl7r714r2knvw2zn5mlj55dd"))))
(build-system qt-build-system)
(native-inputs
- `(("qttools" ,qttools)))
+ (list qttools))
(inputs
- `(("qtbase" ,qtbase-5)
- ("qtsvg" ,qtsvg)))
+ (list qtbase-5 qtsvg))
(arguments
`(#:tests? #f)) ;no tests
(home-page "https://github.com/flameshot-org/flameshot")
@@ -1852,7 +1858,7 @@ Features:
(define-public swappy
(package
(name "swappy")
- (version "1.2.1")
+ (version "1.4.0")
(source
(origin
(method git-fetch)
@@ -1861,15 +1867,16 @@ Features:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf"))))
+ (base32 "1s2lp3bz30svqdg6467jvncim0qgl0q1b1nqxnnci6kljbp5g0xh"))))
(build-system meson-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("scdoc" ,scdoc)
- ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
+ (list pkg-config scdoc
+ `(,glib "bin"))) ; for 'glib-compile-resources'
(inputs
- `(("gtk+" ,gtk+)
- ("libnotify" ,libnotify)))
+ (list gtk+ libnotify))
+ (propagated-inputs
+ ;; Needed to properly render the icons.
+ (list font-awesome))
(home-page "https://github.com/jtheoof/swappy")
(synopsis "Grab and edit on the fly snapshots of a Wayland compositor")
(description
@@ -1904,8 +1911,8 @@ stdout.")
(("/bin/rm")
(which "rm")))
#t)))))
- (native-inputs `(("perl" ,perl))) ; only for tests
- (inputs `(("libx11" ,libx11)))
+ (native-inputs (list perl)) ; only for tests
+ (inputs (list libx11))
(home-page "https://www.lcdf.org/gifsicle/")
(synopsis "Edit GIF images and animations")
(description "Gifsicle is a command-line GIF image manipulation tool that:
@@ -1940,9 +1947,7 @@ identical visual appearance.")
"076frk3pa16s4r1b10zgy81vdlz0385zh3ykbnkaij25jn5aqc09"))))
(build-system gnu-build-system)
(inputs
- `(("curl" ,curl)
- ("libjpeg" ,libjpeg-turbo)
- ("ncurses" ,ncurses)))
+ (list curl libjpeg-turbo ncurses))
(home-page "https://csl.name/jp2a/")
(synopsis "Convert JPEG images to ASCII")
(description
@@ -1963,12 +1968,8 @@ identical visual appearance.")
(sha256
(base32 "1l4gwvvc0zvg5b6f6w92xjhmwj7cg9hlgrf43lc7ygaz8dh6cmzg"))))
(build-system meson-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)
- ("scdoc" ,scdoc)))
- (inputs `(("cairo" ,cairo)
- ("libjpeg-turbo" ,libjpeg-turbo)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)))
+ (native-inputs (list pkg-config scdoc))
+ (inputs (list cairo libjpeg-turbo wayland wayland-protocols))
(home-page "https://github.com/emersion/grim")
(synopsis "Create screenshots from a Wayland compositor")
(description "grim can create screenshots from a Wayland compositor.")
@@ -1990,13 +1991,9 @@ identical visual appearance.")
(base32 "00dx6ds1227qnxqrw58k0am78q8fa49rgp1zingrkjcbpbi7g475"))))
(build-system meson-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("scdoc" ,scdoc)))
+ (list pkg-config scdoc))
(inputs
- `(("cairo" ,cairo)
- ("libxkbcommon" ,libxkbcommon)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)))
+ (list cairo libxkbcommon wayland wayland-protocols))
(home-page "https://github.com/emersion/slurp")
(synopsis "Select a region in a Wayland compositor")
(description "Slurp can select a region in a Wayland compositor and print it
@@ -2027,9 +2024,8 @@ to the standard output. It works well together with grim.")
(list (string-append "--with-rgbtxt="
(assoc-ref %build-inputs "xorg-rgb")
"/share/X11/rgb.txt"))))
- (inputs `(("xorg-rgb" ,xorg-rgb)
- ("libpng" ,libpng)))
- (native-inputs `(("pngsuite" ,pngsuite)))
+ (inputs (list xorg-rgb libpng))
+ (native-inputs (list pngsuite))
(home-page "http://sng.sourceforge.net")
(synopsis "Markup language for representing PNG contents")
(description "SNG (Scriptable Network Graphics) is a minilanguage designed
@@ -2057,9 +2053,7 @@ losslessly translates between SNG and PNG.")
(base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))
(build-system meson-build-system)
(native-inputs
- `(("cmake" ,cmake)
- ("doctest" ,doctest)
- ("gcc" ,gcc-8)))
+ (list cmake doctest))
(home-page "https://github.com/Nheko-Reborn/blurhash")
(synopsis "C++ blurhash encoder/decoder")
(description "Simple encoder and decoder for blurhashes. Contains a
@@ -2134,10 +2128,9 @@ wrapper with a more convenient interface on top.")
(base32 "1q66cksms4l62y0wizb8vfavhmf7kyfgcfkynil3n99s0hny1aqp"))))
(build-system gnu-build-system)
(inputs
- `(("libpng" ,libpng)
- ("perl" ,perl)))
+ (list libpng perl))
(propagated-inputs
- `(("perl-libwww" ,perl-libwww)))
+ (list perl-libwww))
(home-page "https://www.nongnu.org/icoutils/")
(synopsis "Extract and convert bitmaps from Windows icon and cursor files")
(description "Icoutils are a set of program for extracting and converting
@@ -2170,7 +2163,11 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
- "-DAVIF_CODEC_RAV1E=ON"
+ ,@(if (string-prefix? "x86_64"
+ (or (%current-target-system)
+ (%current-system)))
+ '("-DAVIF_CODEC_RAV1E=ON")
+ '())
"-DAVIF_BUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
@@ -2181,12 +2178,16 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/libavif-" ,version)))
- (install-file "../source/README.md" doc)
- #t))))))
+ (install-file "../source/README.md" doc)))))))
(inputs
`(("dav1d" ,dav1d)
("libaom" ,libaom)
- ("rav1e" ,rav1e)))
+ ;; XXX: rav1e depends on rust, which currently only works on x86_64.
+ ;; See also the related configure flag when changing this.
+ ,@(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ `(("rav1e" ,rav1e))
+ '())))
(synopsis "Encode and decode AVIF files")
(description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image
File Format}. It can encode and decode all YUV formats and bit depths supported
@@ -2212,20 +2213,14 @@ by AOM, including with alpha.")
(arguments
`(#:tests? #f)) ;no test target although there is a tests folder
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake libtool pkg-config))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf) ;optional
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)))
;; Propagated to satisfy 'libheif.pc'.
(propagated-inputs
- `(("dav1d" ,dav1d)
- ("libaom" ,libaom)
- ("libde265" ,libde265)
- ("x265" ,x265)))
+ (list dav1d libaom libde265 x265))
(home-page "https://github.com/strukturag/libheif")
(synopsis "HEIF and AVIF file format decoder and encoder")
(description
@@ -2233,6 +2228,58 @@ by AOM, including with alpha.")
Format) file format decoder and encoder.")
(license license:lgpl3+)))
+(define-public libjxl
+ (package
+ (name "libjxl")
+ (version "0.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libjxl/libjxl")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17pvc5zgm9az5hfg2p80325f42w3dqspyb03iakrwg9x4n3vjckx"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete the bundles that will not be used. libjxl bundles LCMS
+ ;; which is in Guix but there is no option to use the system package.
+ ;; This option will be introduced after version 0.6.1 and then we
+ ;; probably won't need to download the submodules.
+ '(begin
+ (for-each (lambda (directory)
+ (delete-file-recursively
+ (string-append "third_party/" directory)))
+ '("brotli" "googletest" "highway"))))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "-DJPEGXL_FORCE_SYSTEM_GTEST=true"
+ "-DJPEGXL_FORCE_SYSTEM_BROTLI=true"
+ ;; "-DJPEGXL_FORCE_SYSTEM_LCMS2=true" ; next version after 0.6.1
+ "-DJPEGXL_FORCE_SYSTEM_HWY=true")))
+ (native-inputs
+ (list asciidoc doxygen googletest pkg-config python))
+ (inputs
+ (list freeglut
+ giflib
+ google-brotli
+ google-highway
+ imath
+ ;; lcms ; next version after 0.6.1
+ libavif
+ libjpeg-turbo
+ libpng
+ libwebp
+ openexr))
+ (home-page "https://github.com/libjxl/libjxl")
+ (synopsis "JPEG XL image format reference implementation")
+ (description "This package contains a reference implementation of JPEG XL
+(encoder and decoder).")
+ (license license:bsd-3)))
+
(define-public mtpaint
(package
(name "mtpaint")
@@ -2323,16 +2370,16 @@ GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
("swig" ,swig)
("gettext" ,gettext-minimal)))
(inputs
- `(("gtk+" ,gtk+)
- ("gdk-pixbuf" ,gdk-pixbuf+svg)
- ("hicolor-icon-theme" ,hicolor-icon-theme)
- ("libmypaint" ,libmypaint)
- ("mypaint-brushes" ,mypaint-brushes)
- ("json-c" ,json-c)
- ("lcms" ,lcms)
- ("python-numpy" ,python-numpy)
- ("python-pycairo" ,python-pycairo)
- ("python-pygobject" ,python-pygobject)))
+ (list gtk+
+ librsvg
+ hicolor-icon-theme
+ libmypaint
+ mypaint-brushes
+ json-c
+ lcms
+ python-numpy
+ python-pycairo
+ python-pygobject))
(home-page "http://mypaint.org/")
(synopsis "Fast and simple painting app for artists")
(description
@@ -2343,7 +2390,7 @@ Wacom-style graphics tablets.")
(define-public phockup
(package
(name "phockup")
- (version "1.5.9")
+ (version "1.7.1")
(source
(origin
(method git-fetch)
@@ -2353,7 +2400,7 @@ Wacom-style graphics tablets.")
(file-name (git-file-name name version))
(sha256
(base32
- "13ajj0xch7yfqaaxbw0awxs0fz17n1rxir4gqh2wcgxjysqk1j2y"))))
+ "0nqd89g4ppwc96gxyh9npain7ipnzj66p6n3irsvhrpi4k54h388"))))
(build-system copy-build-system)
(arguments
`(#:install-plan '(("src" "share/phockup/")
@@ -2364,9 +2411,7 @@ Wacom-style graphics tablets.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (list "src/dependency.py" "src/exif.py")
(("exiftool")
- (string-append (assoc-ref inputs "perl-image-exiftool")
- "/bin/exiftool")))
- #t))
+ (search-input-file inputs "/bin/exiftool")))))
(add-before 'install 'check
(lambda _
(invoke "pytest")))
@@ -2375,14 +2420,18 @@ Wacom-style graphics tablets.")
(let ((out (assoc-ref outputs "out")))
(mkdir (string-append out "/bin"))
(symlink (string-append out "/share/phockup/phockup.py")
- (string-append out "/bin/phockup")))
- #t)))))
+ (string-append out "/bin/phockup")))))
+ (add-after 'install-bin 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/phockup")
+ `("GUIX_PYTHONPATH" prefix
+ ,(search-path-as-string->list
+ (getenv "GUIX_PYTHONPATH"))))))))))
(inputs
- `(("perl-image-exiftool" ,perl-image-exiftool)
- ("python" ,python)))
+ (list perl-image-exiftool python python-tqdm))
(native-inputs
- `(("python-pytest" ,python-pytest)
- ("python-pytest-mock" ,python-pytest-mock)))
+ (list python-pytest python-pytest-mock))
(home-page "https://github.com/ivandokov/phockup")
(synopsis "Organize photos and videos in folders")
(description "Phockup is a media sorting tool that uses creation date and