guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Michael Rohleder
Subject: [bug#42542] [PATCH] gnu: libextractor: Update to 1.10.
Date: Mon, 27 Jul 2020 04:07:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hey Lodo!

Thank you for reviewing!

Ludovic Courtès <ludo@gnu.org> writes:
> 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!

Yes, exiv2 0.27.3 rounds the gps geolocation to ints, see:
https://github.com/Exiv2/exiv2/pull/1107/commits/db1be4ae8e1077949fcb6a960e93069d6a41b395#diff-f3f55183ccbe956c720c86e61f708d9f

I added a substitute for the exiv2 test as a workaround and try to
contact the upstream developer.

* gnu/packages/gnunet.scm (libextractor): Update to 1.10.
[inputs]: exiv2 update to 0.27.3 (commit 630b75f76a) rounds gps
coordinates to integer, so fixed the test.
[inputs]: added giflib, removed tidy-html
* gnu/packages/patches/libextractor-exiv2.patch removed, because
its included upstream.
* gnu/local.mk: remove libextractor-exiv2.patch.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/gnunet.scm                       |  23 ++--
 gnu/packages/patches/libextractor-exiv2.patch | 124 ------------------
 3 files changed, 14 insertions(+), 134 deletions(-)
 delete mode 100644 gnu/packages/patches/libextractor-exiv2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ef6533bd8d..f4d09a65c1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1197,7 +1197,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..8b1b0711a0 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,24 +74,22 @@
 (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)
       ("bzip2" ,bzip2)
@@ -98,6 +97,7 @@
       ("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,12 +119,18 @@
    (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
+        (add-after 'configure 'fix-exiv2-tests
+          ;; exiv2>=0.27.3 rounds geolocation
+          ;; 
https://github.com/Exiv2/exiv2/pull/1107/commits/db1be4ae8e1077949fcb6a960e93069d6a41b395#diff-f3f55183ccbe956c720c86e61f708d9f
+          (lambda _
+            (substitute* "src/plugins/test_exiv2.c"
+              (("17.585\\\\\" ") "18\\\"")
+              (("21.713\\\\\" ") "22\\\""))
+            #t))
         (add-after 'install 'move-static-libraries
           (lambda* (#:key outputs #:allow-other-keys)
             ;; Move static libraries to the "static" output.
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]