diff mbox series

[bug#42542] gnu: libextractor: Update to 1.10.

Message ID 87h7tv5dhi.fsf@rohleder.de
State Accepted
Headers show
Series [bug#42542] gnu: libextractor: Update to 1.10. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Michael Rohleder July 26, 2020, 12:25 a.m. UTC
Dear guix,

After reading about the exciting dkgpg pkg, I wanted to try gnunet the
other day and noticed that libextractor doesnt build, because of some
test failures in exiv2 tests:
...
=================================================
   libextractor 1.9: src/plugins/test-suite.log
==================================================

# TOTAL: 29
# PASS:  28
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test_exiv2
================

Warning: Directory Pentax, entry 0x0004: Data area exceeds data buffer, ignoring it.
Got additional meta data of type 38 and format 1 with value `28deg 8' 18"' from plugin `exiv2'
Got additional meta data of type 40 and format 1 with value `14deg 14' 22"' from plugin `exiv2'
Did not get expected meta data of type 38 and format 1 with value `28deg 8' 17.585" ' from plugin `exiv2'
Did not get expected meta data of type 40 and format 1 with value `14deg 14' 21.713" ' from plugin `exiv2'
FAIL test_exiv2 (exit status: 1)
It seems, commit 630b75f76a did broke something here.

But because we also have exiv2-0.26, I think we could use that and drop
the patch for exiv2-0.27 (which would not only needs to be modified if
libextractor changes, but also if exiv2 changes?!).

I removed tidy-html, because its not realy recognized by configure (also
in 1.9, I think) and the configure-flag "--with-tidy" was dropped in
1.10.
giflib on the other hand seems to work in 1.10, tests are ok and the
libs for it is generated.

I am not sure if its ok to do all this in one patch, I think I could
also make 2 or 3 patches (fix build, update to 1.10, update inputs or
so), but I hope the intention is clear (and gnunet builds, which it
does) ;)

Comments

Ludovic Courtès July 26, 2020, 4:05 p.m. UTC | #1
Hello!

Michael Rohleder <mike@rohleder.de> skribis:

> After reading about the exciting dkgpg pkg, I wanted to try gnunet the
> other day and noticed that libextractor doesnt build, because of some
> test failures in exiv2 tests:
>
> ...
> =================================================
>    libextractor 1.9: src/plugins/test-suite.log
> ==================================================
>
> # TOTAL: 29
> # PASS:  28
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  1
> # XPASS: 0
> # ERROR: 0
>
> .. contents:: :depth: 2
>
> FAIL: test_exiv2
> ================
>
> Warning: Directory Pentax, entry 0x0004: Data area exceeds data buffer, ignoring it.
> Got additional meta data of type 38 and format 1 with value `28deg 8' 18"' from plugin `exiv2'
> Got additional meta data of type 40 and format 1 with value `14deg 14' 22"' from plugin `exiv2'
> Did not get expected meta data of type 38 and format 1 with value `28deg 8' 17.585" ' from plugin `exiv2'
> Did not get expected meta data of type 40 and format 1 with value `14deg 14' 21.713" ' from plugin `exiv2'
> FAIL test_exiv2 (exit status: 1)

Does upstream libextractor have a fix for that?  It would seem that the
new exiv2 rounds that geolocation meta data.

I’m not comfortable using an older exiv2 version, because this is code
that’s potentially given untrusted input, so it would be nicer if we
could fix this test!

Thanks,
Ludo’.
diff mbox series

Patch

* gnu/packages/gnunet.scm (libextractor): Update to 1.10.
[inputs]: commit 630b75f76a broke exiv2 test, so build with exiv2-0.26.
[inputs]: added giflib, removed tidy-html
* gnu/packages/patches/libextractor-exiv2.patch removed.
* gnu/local.mk: remove libextractor-exiv2.patch.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/gnunet.scm                       |  17 +--
 gnu/packages/patches/libextractor-exiv2.patch | 124 ------------------
 3 files changed, 7 insertions(+), 135 deletions(-)
 delete mode 100644 gnu/packages/patches/libextractor-exiv2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f2a7b6b984..5c92db2e05 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1207,7 +1207,6 @@  dist_patch_DATA =						\
   %D%/packages/patches/libbonobo-activation-test-race.patch	\
   %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
   %D%/packages/patches/libdrm-realpath-virtio.patch		\
-  %D%/packages/patches/libextractor-exiv2.patch			\
   %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch		\
   %D%/packages/patches/libgit2-mtime-0.patch			\
   %D%/packages/patches/libgnome-encoding.patch			\
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 979dadbe2e..77dc71a958 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -10,6 +10,7 @@ 
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -73,31 +74,30 @@ 
 (define-public libextractor
   (package
    (name "libextractor")
-   (version "1.9")
+   (version "1.10")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/libextractor/libextractor-"
                                 version ".tar.gz"))
             (sha256
              (base32
-              "1zz2zvikvfibxnk1va3kgzs7djsmiqy7bmk8y01vbsf54ryjb3zh"))
-            (patches (search-patches "libextractor-exiv2.patch"))))
+              "0mr38g7kfn3p050hd3hckbcz2yd3za6dwl1c26x2kjf7vnsi3vcy"))))
    (build-system gnu-build-system)
    ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
    ;; not to be a symbolic link to /run/shm.
    ;; FIXME:
    ;; The following dependencies are all optional, but should be
    ;; available for maximum coverage:
-   ;; * libmagic (file)
    ;; * librpm (rpm)    ; investigate failure
-   ;; * libgif (giflib) ; investigate failure
+   ;; * libtidy-html (tidy-html) ; investigate failure
    (inputs
-    `(("exiv2" ,exiv2)
+    `(("exiv2" ,exiv2-0.26)
       ("bzip2" ,bzip2)
       ("flac" ,flac)
       ("ffmpeg" ,ffmpeg)
       ("file" ,file)                           ;libmagic, for the MIME plug-in
       ("glib" ,glib)
+      ("giflib" ,giflib)
       ("gstreamer" ,gstreamer)
       ("gst-plugins-base" ,gst-plugins-base)
       ("gtk+" ,gtk+)
@@ -108,7 +108,6 @@ 
       ("libmpeg2" ,libmpeg2)
       ("libmp4v2" ,libmp4v2)
       ("libsmf" ,libsmf)
-      ("tidy-html" ,tidy-html)
       ("libogg" ,libogg)
       ("libtiff" ,libtiff)
       ("libvorbis" ,libvorbis)
@@ -120,9 +119,7 @@ 
    (arguments
     `(#:configure-flags
       (list (string-append "--with-ltdl="
-                           (assoc-ref %build-inputs "libltdl"))
-            (string-append "--with-tidy="
-                           (assoc-ref %build-inputs "tidy-html")))
+                           (assoc-ref %build-inputs "libltdl")))
       #:parallel-tests? #f
       #:phases
       (modify-phases %standard-phases
diff --git a/gnu/packages/patches/libextractor-exiv2.patch b/gnu/packages/patches/libextractor-exiv2.patch
deleted file mode 100644
index b92fef3ca1..0000000000
--- a/gnu/packages/patches/libextractor-exiv2.patch
+++ /dev/null
@@ -1,124 +0,0 @@ 
-This patch allows us to build libextractor against exiv2 0.27.x.
-Adapted from this upstream commit:
-
-  commit 1ecee9a47717e36cb8a3925d011d1a6de11d631c
-  Author: Christian Grothoff <christian@grothoff.org>
-  Date:   Mon Jul 29 17:58:18 2019 +0200
-
-      importing patch from Gentoo/AS to address exiv2 build issue (#5820)
-
-diff --git a/src/plugins/exiv2_extractor.cc b/src/plugins/exiv2_extractor.cc
-index 8741d40..ef402a8 100644
---- a/src/plugins/exiv2_extractor.cc
-+++ b/src/plugins/exiv2_extractor.cc
-@@ -27,10 +27,7 @@
- #include <cassert>
- #include <cstring>
- #include <math.h>
--#include <exiv2/exif.hpp>
--#include <exiv2/error.hpp>
--#include <exiv2/image.hpp>
--#include <exiv2/futils.hpp>
-+#include <exiv2/exiv2.hpp>
- 
- /**
-  * Enable debugging to get error messages.
-@@ -180,7 +177,7 @@ public:
-    *
-    * @return -1 on error
-    */
--#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
-+#if EXIV2_TEST_VERSION(0,26,0)
-   virtual size_t size (void) const;
- #else
-   virtual long int size (void) const;
-@@ -316,7 +313,11 @@ ExtractorIO::getb ()
-   const unsigned char *r;
- 
-   if (1 != ec->read (ec->cls, &data, 1))
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-     throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
-   r = (const unsigned char *) data;
-   return *r;
- }
-@@ -371,7 +372,11 @@ ExtractorIO::putb (Exiv2::byte data)
- void
- ExtractorIO::transfer (Exiv2::BasicIo& src)
- {
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-   throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
- }
- 
- 
-@@ -416,7 +421,11 @@ ExtractorIO::seek (long offset,
- Exiv2::byte *
- ExtractorIO::mmap (bool isWritable)
- {
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-   throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
- }
- 
- 
-@@ -449,7 +458,7 @@ ExtractorIO::tell (void) const
-  *
-  * @return -1 on error
-  */
--#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
-+#if EXIV2_TEST_VERSION(0,26,0)
- size_t
- #else
- long int
-@@ -504,7 +513,11 @@ ExtractorIO::eof () const
- std::string
- ExtractorIO::path () const
- {
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-   throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
- }
- 
- 
-@@ -517,7 +530,11 @@ ExtractorIO::path () const
- std::wstring
- ExtractorIO::wpath () const
- {
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-   throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
- }
- #endif
- 
-@@ -531,7 +548,11 @@ Exiv2::BasicIo::AutoPtr
- ExtractorIO::temporary () const
- {
-   fprintf (stderr, "throwing temporary error\n");
-+#if EXIV2_TEST_VERSION(0,27,0)
-+    throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
-+#else
-   throw Exiv2::BasicError<char> (42 /* error code */);
-+#endif
- }
- 
- 
-@@ -697,7 +718,7 @@ EXTRACTOR_exiv2_extract_method (struct EXTRACTOR_ExtractContext *ec)
- {
-   try
-     {
--#if EXIV2_MAKE_VERSION(0,23,0) <= EXIV2_VERSION
-+#if !EXIV2_TEST_VERSION(0,24,0)
-       Exiv2::LogMsg::setLevel (Exiv2::LogMsg::mute);
- #endif
-       std::auto_ptr<Exiv2::BasicIo> eio(new ExtractorIO (ec));
-- 
2.27.0