LINUX.ORG.RU

Библиотека libexiv2 0.27 перешла на сборку с Cmake и слегка поменяла API


0

1

https://github.com/Exiv2/exiv2 Bump Version to 0.27.0.3

В общем обновился до последней версии exiv2 а там ... пришлось править слакбилд и пару приложений: nufraw и geeqie

кусок слакбилда:

# ./configure \
#  --prefix=/usr \
#  --libdir=/usr/lib${LIBDIRSUFFIX} \
#  --sysconfdir=/etc \
#  --localstatedir=/var \
#  --mandir=/usr/man \
#  --enable-shared=yes \
#  --enable-static=no \
#  --enable-xmp \
#  --enable-video \
#  --enable-webready \
#  --without-ssh \
#  --build=$ARCH-slackware-linux || exit 1

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DCMAKE_INSTALL_MANDIR=/usr/man \
  -DBUILD_SHARED_LIBS=ON \
  -DEXIV2_ENABLE_VIDEO=ON \
    . || exit 1

nufraw 0.42

--- nufraw_exiv2.cc.orig        2016-09-05 17:24:50.000000000 +0300
+++ nufraw_exiv2.cc     2018-12-01 06:47:43.196751993 +0300
@@ -67,7 +67,7 @@
         if (exifData.empty()) {
             std::string error(uf->filename);
             error += ": No Exif data found in the file";
-            throw Exiv2::Error(1, error);
+            throw Exiv2::Error(Exiv2::kerErrorMessage, error);
         }

         /* List of tag names taken from exiv2's printSummary() in actions.cpp */

geeqie git 969791e9521aeffd61d67b3c2d17ccbff98f00d6

diff --git a/src/exiv2.cc b/src/exiv2.cc
index b3c80657..159992ca 100644
--- a/src/exiv2.cc
+++ b/src/exiv2.cc
@@ -24,6 +24,7 @@

 #include <exiv2/image.hpp>
 #include <exiv2/exif.hpp>
+#include <exiv2/exiv2.hpp>
 #include <iostream>
 #include <string>

@@ -374,7 +375,7 @@ public:
 #endif
                        Exiv2::Image *image = imageData_->image();

-                       if (!image) throw Exiv2::Error(21);
+                       if (!image) throw Exiv2::Error(Exiv2::kerGeneralError, 21);
                        image->setExifData(exifData_);
                        image->setIptcData(iptcData_);
 #if EXIV2_TEST_VERSION(0,16,0)
@@ -449,6 +450,8 @@ extern "C" {


 void exif_init(void)
+
+#define EXV_PACKAGE "exiv2"
 {
 #ifdef EXV_ENABLE_NLS
        bind_textdomain_codeset (EXV_PACKAGE, "UTF-8");

Пачти вроде разработчикам отправил, хоть это и хаки (без проверки версии).