summaryrefslogtreecommitdiff
path: root/gnu/packages/image.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-23 21:45:21 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-23 21:45:21 -0400
commit839bb4616f13171a23ad7937bf57d0a01d61d42a (patch)
tree01de78a5ce973b9fb7ac0f9216d64f736f8e163d /gnu/packages/image.scm
parent0357bbbcd850f9220078a62da3c30358b8983765 (diff)
parentef71e3290916583973724316e815cee840c1b6d8 (diff)
Merge remote-tracking branch 'origin/master' into staging.
With resolved conflicts in: gnu/packages/ibus.scm gnu/packages/image.scm gnu/packages/lisp.scm gnu/packages/virtualization.scm
Diffstat (limited to 'gnu/packages/image.scm')
-rw-r--r--gnu/packages/image.scm154
1 files changed, 108 insertions, 46 deletions
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 2d40573668..4c0f0ae6f5 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -25,7 +25,7 @@
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
@@ -34,7 +34,7 @@
;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 ( <paren@disroot.org>
-;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2022-2023 Bruno Victal <mirai@makinata.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -601,7 +601,7 @@ collection of tools for doing simple manipulations of TIFF images.")
(define-public leptonica
(package
(name "leptonica")
- (version "1.80.0")
+ (version "1.83.1")
(source
(origin
(method git-fetch)
@@ -610,7 +610,7 @@ collection of tools for doing simple manipulations of TIFF images.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12ddln72z5l3icz0i9rpsfkg5xik8fcwcn8lb0cp3jigjxi8gvkg"))))
+ (base32 "1j7qf9flb48q0aymf0yx9rypy3bs6hfjcln08zmy8qn2qcjzrmvi"))))
(build-system gnu-build-system)
(native-inputs
(list gnuplot ;needed for test suite
@@ -619,33 +619,31 @@ collection of tools for doing simple manipulations of TIFF images.")
libtool
pkg-config))
(inputs
- `(("giflib" ,giflib)
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("libwebp" ,libwebp)
- ("openjpeg" ,openjpeg)
- ("zlib" ,zlib)))
+ (list giflib
+ libjpeg-turbo
+ libpng
+ libtiff
+ libwebp
+ openjpeg
+ zlib))
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-reg-wrapper
- (lambda _
- (substitute* "prog/reg_wrapper.sh"
- ((" /bin/sh ")
- (string-append " " (which "sh") " "))
- (("which gnuplot")
- "true"))
- #t))
- (add-after 'install 'provide-absolute-giflib-reference
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (giflib (assoc-ref inputs "giflib")))
- ;; Add an absolute reference to giflib to avoid propagation.
- (with-directory-excursion (string-append out "/lib")
- (substitute* '("liblept.la" "pkgconfig/lept.pc")
- (("-lgif") (string-append "-L" giflib "/lib -lgif"))))
- #t))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-reg-wrapper
+ (lambda _
+ (substitute* "prog/reg_wrapper.sh"
+ ((" /bin/sh ")
+ (string-append " " (which "sh") " "))
+ (("which gnuplot")
+ "true"))))
+ (add-after 'install 'provide-absolute-giflib-reference
+ (lambda _
+ (let ((giflib #$(this-package-input "giflib")))
+ ;; Add an absolute reference to giflib to avoid propagation.
+ (with-directory-excursion (string-append #$output "/lib")
+ (substitute* '("libleptonica.la" "pkgconfig/lept.pc")
+ (("-lgif") (string-append "-L" giflib "/lib -lgif"))))))))))
(home-page "http://www.leptonica.com/")
(synopsis "Library and tools for image processing and analysis")
(description
@@ -657,6 +655,39 @@ scale and pixel depth, and pixelwise masking, blending, enhancement, and
arithmetic ops.")
(license license:bsd-2)))
+(define-public leptonica-1.80
+ (package
+ (inherit leptonica)
+ (name "leptonica")
+ (version "1.80.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DanBloomberg/leptonica")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12ddln72z5l3icz0i9rpsfkg5xik8fcwcn8lb0cp3jigjxi8gvkg"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments leptonica)
+ ((#:tests? _ #t)
+ ;; The pngio_reg test fails, probably because the libpng used is
+ ;; newer.
+ #f)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'provide-absolute-giflib-reference
+ (lambda _
+ (let ((giflib #$(this-package-input "giflib")))
+ ;; Add an absolute reference to giflib to avoid propagation.
+ ;; This is the same as for the parent package, but at that
+ ;; time the file name was 'liblept.la, not libleptonica.la.
+ (with-directory-excursion (string-append #$output "/lib")
+ (substitute* '("liblept.la" "pkgconfig/lept.pc")
+ (("-lgif")
+ (string-append "-L" giflib "/lib -lgif")))))))))))))
+
(define-public jbig2dec
(package
(name "jbig2dec")
@@ -946,7 +977,7 @@ compose, and analyze GIF images.")
(format #f "EXECINPUT=~a~%" execinput)))
(invoke "sh" "testit.sh"))))))))
(native-inputs (list drm-tools)) ;for tests
- (home-page "http://libuemf.sourceforge.net/")
+ (home-page "https://libuemf.sourceforge.net/")
(synopsis "Library for working with WFM, EMF and EMF+ images")
(description "The libUEMF library is a portable C99 implementation for
reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced
@@ -1419,7 +1450,7 @@ and XMP metadata of images in various formats.")
(description "Developer's Image Library (DevIL) is a library to develop
applications with support for many types of images. DevIL can load, save,
convert, manipulate, filter and display a wide variety of image formats.")
- (home-page "http://openil.sourceforge.net")
+ (home-page "https://openil.sourceforge.net")
(license license:lgpl2.1+)))
(define-public jasper
@@ -1531,7 +1562,7 @@ differences in file encoding, image quality, and other small variations.")
(list gettext-minimal libtool perl))
(inputs
(list libjpeg-turbo libmhash libmcrypt zlib))
- (home-page "http://steghide.sourceforge.net")
+ (home-page "https://steghide.sourceforge.net")
(synopsis "`Hide' (nonconfidential) data in image or audio files")
(description
"Steghide is a program to `hide' data in various kinds of image and audio
@@ -1580,7 +1611,7 @@ specifically at this tool.")
files to a smaller size, without losing any information. This program
also converts external formats (BMP, GIF, PNM and TIFF) to optimized
PNG, and performs PNG integrity checks and corrections.")
- (home-page "http://optipng.sourceforge.net/")
+ (home-page "https://optipng.sourceforge.net/")
(license license:zlib)))
(define-public imgp
@@ -1756,7 +1787,7 @@ and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
files in the nifti-1 data format - a binary file format for storing
medical image data, e.g. magnetic resonance image (MRI) and functional MRI
(fMRI) brain images.")
- (home-page "http://niftilib.sourceforge.net")
+ (home-page "https://niftilib.sourceforge.net")
(license license:public-domain)))
(define-public gpick
@@ -2029,7 +2060,7 @@ to the standard output. It works well together with grim.")
"/share/X11/rgb.txt"))))
(inputs (list xorg-rgb libpng))
(native-inputs (list pngsuite))
- (home-page "http://sng.sourceforge.net")
+ (home-page "https://sng.sourceforge.net")
(synopsis "Markup language for representing PNG contents")
(description "SNG (Scriptable Network Graphics) is a minilanguage designed
specifically to represent the entire contents of a PNG (Portable Network
@@ -2166,14 +2197,23 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(build-system cmake-build-system)
(arguments
(list
+ #:modules '((guix build cmake-build-system)
+ (guix build utils)
+ (srfi srfi-26))
#:configure-flags
#~(list "-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
#$@(if (this-package-input "rav1e")
'("-DAVIF_CODEC_RAV1E=ON")
'())
- "-DAVIF_BUILD_TESTS=ON" "-DAVIF_BUILD_APPS=ON")
+ "-DAVIF_BUILD_TESTS=ON" "-DAVIF_ENABLE_GTEST=ON"
+ "-DAVIF_BUILD_APPS=ON" "-DAVIF_BUILD_GDK_PIXBUF=ON")
#:phases
#~(modify-phases %standard-phases
+ (add-before 'configure 'patch-thumbnailer
+ (lambda _
+ (substitute* "contrib/gdk-pixbuf/avif.thumbnailer.in"
+ (("@CMAKE_INSTALL_FULL_BINDIR@/gdk-pixbuf-thumbnailer")
+ (string-append #$gdk-pixbuf "/bin/gdk-pixbuf-thumbnailer")))))
(add-after 'install 'install-readme
(lambda _
(let ((doc (string-append #$output "/share/doc/libavif-"
@@ -2184,30 +2224,52 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(let* ((avifenc (string-append #$output "/bin/avifenc"))
(avifenc* (string-append #$output:tools "/bin/avifenc"))
(avifdec (string-append #$output "/bin/avifdec"))
- (avifdec* (string-append #$output:tools "/bin/avifdec")))
+ (avifdec* (string-append #$output:tools "/bin/avifdec"))
+
+ (thumbnailer (string-append
+ #$output
+ "/share/thumbnailers/avif.thumbnailer"))
+ (thumbnailer* (string-append
+ #$output:pixbuf-loader
+ "/share/thumbnailers/avif.thumbnailer"))
+ (pixbuf-loader (string-append
+ #$output
+ "/lib/gdk-pixbuf-2.0/2.10.0/loaders/"
+ "libpixbufloader-avif.so"))
+ (pixbuf-loader* (string-append
+ #$output:pixbuf-loader
+ "/lib/gdk-pixbuf-2.0/2.10.0/loaders/"
+ "libpixbufloader-avif.so")))
(mkdir-p (string-append #$output:tools "/bin"))
+ (for-each (compose mkdir-p
+ (cut string-append
+ #$output:pixbuf-loader <>))
+ '("/share/thumbnailers"
+ "/lib/gdk-pixbuf-2.0/2.10.0/loaders/"))
(for-each (lambda (old new)
(copy-file old new)
(delete-file old)
(chmod new #o555))
- (list avifenc avifdec)
- (list avifenc* avifdec*))))))))
- (native-inputs (list googletest))
+ (list avifenc avifdec
+ thumbnailer pixbuf-loader)
+ (list avifenc* avifdec*
+ thumbnailer* pixbuf-loader*))))))))
+ (native-inputs (list googletest pkg-config))
(inputs
(append
(if (member (%current-system) (package-transitive-supported-systems rav1e))
(list rav1e) '())
- (list dav1d libaom zlib libpng libjpeg-turbo)))
+ (list dav1d libaom zlib libpng libjpeg-turbo gdk-pixbuf)))
(outputs (list "out"
- "tools")) ; avifenc & avifdec
+ "tools" ; avifenc & avifdec
+ "pixbuf-loader"))
(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
by AOM, including with alpha.")
(home-page "https://github.com/AOMediaCodec/libavif")
- (license (list license:bsd-2 ; libavif itself
- license:expat)))) ; cJSON in the test suite
+ (license (list license:bsd-2))))
(define-public libheif
(package
@@ -2331,7 +2393,7 @@ Format) file format decoder and encoder.")
(list "intl" ; build internationalized version
"man") ; build the man page
#:tests? #f)) ; no test suite
- (home-page "http://mtpaint.sourceforge.net/")
+ (home-page "https://mtpaint.sourceforge.net/")
(synopsis "Create pixel art and manipulate digital images")
(description
"Mtpaint is a graphic editing program which uses the GTK+ toolkit.