[PATCH 1/2] gnu: libavif: Update to 0.11.1.

  • Done
  • quality assurance status badge
Details
2 participants
  • Christopher Baines
  • Bruno Victal
Owner
unassigned
Submitted by
Bruno Victal
Severity
normal
B
B
Bruno Victal wrote on 15 Jan 2023 02:45
(address . guix-patches@gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
23872b75712660593afaa19c0498c7782e0a2b79.1673747078.git.mirai@makinata.eu
libavif commit 97306bf64266cf9571dd141f3d04492534a9deea removes
JSON-based tests along with cJSON.

Aditionally, googletest is now required to build libavif. The test target
has since changed and can be called directly from cmake, no longer being
necessary to replace 'check target.

* gnu/packages/image.scm (libavif): Update to 0.11.1.
[arguments]: Adjust configure-flags, remove 'check phase replacement.
[native-inputs]: Add googletest.
[license]: Remove expat.
---
gnu/packages/image.scm | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 195d127b31..0618c13460 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -2157,7 +2157,7 @@ (define-public icoutils
(define-public libavif
(package
(name "libavif")
- (version "0.9.2")
+ (version "0.11.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2166,7 +2166,7 @@ (define-public libavif
(file-name (git-file-name name version))
(sha256
(base32
- "1yxmgjlxm1srm98zyj79bj8r8vmg67daqnq0ggcvxknq54plkznk"))))
+ "02zmb62g0yx6rfz4w1isyzfrckv5i7dzyz26rp2mspbx9w6v8j4r"))))
(build-system cmake-build-system)
(arguments
(list
@@ -2175,13 +2175,10 @@ (define-public libavif
#$@(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")
#:phases
#~(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "./aviftest" "../source/tests/data"))))
(add-after 'install 'install-readme
(lambda _
(let ((doc (string-append #$output "/share/doc/libavif-" #$version)))
@@ -2200,6 +2197,7 @@ (define-public libavif
(chmod new #o555))
(list avifenc avifdec)
(list avifenc* avifdec*))))))))
+ (native-inputs (list googletest))
(inputs
(append
(if (member (%current-system) (package-transitive-supported-systems rav1e))
@@ -2212,8 +2210,7 @@ (define-public libavif
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

base-commit: c94708a5b4820c9253ef5774a1022fc106e7ae9a
--
2.38.1
B
B
Bruno Victal wrote on 15 Jan 2023 02:51
[PATCH 2/2] gnu: libavif: Add pixbuf-loader output.
(address . 60825@debbugs.gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
500cb9f665aa9454cc9f4e06bb631f129c0e02a5.1673747078.git.mirai@makinata.eu
* gnu/packages/image.scm (libavif)[arguments]: Build gdk-pixbuf loader.
[outputs]: Add 'pixbuf-loader' output.
[inputs]: Add gdk-pixbuf.
[native-inputs]: Add pkg-config.
---

This output builds and "should work" but it doesn't do anything because our shared-mime-info is too outdated to include image/avif.

gnu/packages/image.scm | 41 +++++++++++++++++++++++++++++++++--------
1 file changed, 33 insertions(+), 8 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 0618c13460..65f388e7bd 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -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.
;;;
@@ -2170,15 +2170,23 @@ (define-public libavif
(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_ENABLE_GTEST=ON"
- "-DAVIF_BUILD_APPS=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-" #$version)))
@@ -2188,23 +2196,40 @@ (define-public libavif
(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
--
2.38.1
C
C
Christopher Baines wrote on 11 Feb 2023 21:43
(name . Bruno Victal)(address . mirai@makinata.eu)
874jrs53ve.fsf@cbaines.net
Thanks Bruno, I fixed the lint warnings about line length in the second
patch, and pushed these to master as
d5fb87812005bf277e5b3b068773f4e7c4cc5de2.

Chris
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmPn/iVfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9Xerug//ZMU2Y7mK70TBM/Cs9Oq1Fzr93ES/VVSd
Voha7/YdYia4m56IcVncn8gUdjtrHvhe83w0P5bHo1t9I62AFMQa7y2sXMHj6Vlg
KYkvKBlRzvxUlA9iScEcqJa9rECi5YE0A2bZv88+c3BwCOiZ3p6pW0ZSlTLWMyPI
9b7b1JpEXBeOhuK0j983oG5U+/OLuhQx/xOElhwgQR6nO08dzyP8GqNkdafCuyEE
wGY07sRnR5SDqoj7uR6zkOrt8kgwRjL7M/+iDVLHfq/Lgy6viN7lURfHZXujfwHp
6uSFBZsoMhagMrnjev/7ZkxDhrFTv98HSU7SK5dbDnPyY/oj0qAvyR7dtK/yNhZc
CBySlyljTWiFTzwPYm6te67A0mA4ttFn7cFGeKBHmRAIBsCqg0btPI0WvaCyj19L
lCQyE5gjUYHbL1Z+PfEB16ihL5d/rxiIEASomTcQk9SliSLWmkcbD6TNJOjRfxzk
E8EaBOSEv8l7RK3vK74DnetlSU4ADdBT7xYWcct1d61fXyS4f4yIMUOXSMSj21FH
LArUi2CwNiMobeCNExzIvXBdztTOkXO1LJBZnQhFKf4lUdzMeNKCCAm3baqiOx8r
yhta2gSEA7PlLsAmmPALsdAXV8iLvnXrOW4D5t2opPwap3r9TNYztw4ddvLbiOgJ
sOWLObrkWsI=
=a/MI
-----END PGP SIGNATURE-----

?