Package Details: python-exiv2 0.7.2-1

Git Clone URL: https://aur.archlinux.org/python-exiv2.git (read-only, click to copy)
Package Base: python-exiv2
Description: A Python 3 binding to exiv2, the C++ library for manipulation of EXIF, IPTC and XMP image metadata.
Upstream URL: https://launchpad.net/py3exiv2
Keywords: graphics python
Licenses: GPL3
Submitter: artemklevtsov
Maintainer: spider-mario (yochananmarqos)
Last Packager: spider-mario
Votes: 10
Popularity: 0.041330
First Submitted: 2016-03-19 22:15
Last Updated: 2020-08-05 19:17

Latest Comments

1 2 3 Next › Last »

yochananmarqos commented on 2020-08-06 15:40

@Tio: See Makepkg: Signature checking.

Tio commented on 2020-08-06 12:44

Error:

==> Validating source files with b2sums...
    py3exiv2-0.7.2.tar.gz ... Passed
    py3exiv2-0.7.2.tar.gz.asc ... Skipped
==> Verifying source file signatures with gpg...
    py3exiv2-0.7.2.tar.gz ... FAILED (unknown public key 068346EEA7A91F52)
==> ERROR: One or more PGP signatures could not be verified!
Failed to build python-exiv2

spider-mario commented on 2020-08-05 19:18

Thanks, updated and added you as a co-maintainer.

yochananmarqos commented on 2020-08-03 03:17

Updated PKGBUILD for 0.7.2: https://pastebin.com/RZGv6xis

spider-mario commented on 2019-12-22 17:24

Thanks for the fix, I have applied it. Once I am back from vacation, I will try to make the PKGBUILD a bit more future-proof in this regard.

Kant commented on 2019-12-22 16:46

update for python 3.8, worked for me:

# Maintainer : Chris Elston chris.elston@blueyonder.co.uk
# Contributor : Artem Klevtsov a.a.klevtsov@gmail.com

_pkgname=python3-exiv2
pkgname=python-exiv2
pkgver=0.7.1
pkgrel=2
pkgdesc="py3exiv2 is a Python3 binding to exiv2, the C++ library for manipulation of EXIF, IPTC and XMP image metadata."
url="https://launchpad.net/py3exiv2"
arch=('i686' 'x86_64')
depends=('python>=3.7' 'boost-libs' 'exiv2')
makedepends=('boost')
license=('GPL3')
source=("http://www.py3exiv2.tuxfamily.org/releases/python3-exiv2-${pkgver}.tar.gz")
sha512sums=('ece1133b8ba0566617438e38f371044df52451a2952e55f05f52f2ec5f4323fe39b797a482c5a7b5666eea35fc88d1207d16d4246e984c05a56bb2fdb421e319')

build() {
    cd "${srcdir}/${_pkgname}-${pkgver}"
    mkdir -p build
    g++ -O2 -o build/exiv2wrapper.os -c -fPIC -I/usr/include/python3.8 src/exiv2wrapper.cpp
    g++ -O2 -o build/exiv2wrapper_python.os -c -fPIC -I/usr/include/python3.8 src/exiv2wrapper_python.cpp
    g++ -O2 -o build/libexiv2python.so -shared build/exiv2wrapper.os build/exiv2wrapper_python.os -lboost_python3 -lexiv2
}

package() {
    cd "${srcdir}/${_pkgname}-${pkgver}"
    local site_packages="${pkgdir}/$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')"
    mkdir -p "${site_packages}/pyexiv2"
    install -D -m755 build/libexiv2python.so "${site_packages}/libexiv2python.so"
    install -D -m644 src/pyexiv2/__init__.py "${site_packages}/pyexiv2/__init__.py"
    install -D -m644 src/pyexiv2/exif.py "${site_packages}/pyexiv2/exif.py"
    install -D -m644 src/pyexiv2/iptc.py "${site_packages}/pyexiv2/iptc.py"
    install -D -m644 src/pyexiv2/metadata.py "${site_packages}/pyexiv2/metadata.py"
    install -D -m644 src/pyexiv2/preview.py "${site_packages}/pyexiv2/preview.py"
    install -D -m644 src/pyexiv2/utils.py "${site_packages}/pyexiv2/utils.py"
    install -D -m644 src/pyexiv2/xmp.py "${site_packages}/pyexiv2/xmp.py"
}

Kant commented on 2019-12-22 16:36

A python update changed versions so I tried to rebuild the package, but I get an error:

> makepkg
==> Making package: python-exiv2 0.7.1-1 (dom 22 dic 2019 13:30:16 -03)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading python3-exiv2-0.7.1.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 46179  100 46179    0     0  36650      0  0:00:01  0:00:01 --:--:-- 36679
==> Validating source files with sha512sums...
    python3-exiv2-0.7.1.tar.gz ... Passed
==> Extracting sources...
  -> Extracting python3-exiv2-0.7.1.tar.gz with bsdtar
==> Starting build()...
In file included from /usr/include/boost/python/detail/prefix.hpp:13,
                 from /usr/include/boost/python/args.hpp:8,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:36,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/detail/wrap_python.hpp:57:11: fatal error: pyconfig.h: No such file or directory
   57 | # include <pyconfig.h>
      |           ^~~~~~~~~~~~
compilation terminated.
==> ERROR: A failure occurred in build().
    Aborting...

spider-mario commented on 2019-06-03 20:18

It seems to have been fixed by the latest upstream update. It should work fine now. Thanks again.

spider-mario commented on 2019-05-29 07:40

Thanks for the report. I will be on vacation until the end of the week but I will try to look into it when I get back.

simon04 commented on 2019-05-27 07:53

Build fails (using dependency versions libnsl-1.2.0-1 boost-libs-1.69.0-2 exiv2-0.27.1-1 python-3.7.3-1)

==> Starting build()...
In file included from src/exiv2wrapper.cpp:27:
src/exiv2wrapper.hpp:284:39: error: variable or field ‘translateExiv2Error’ declared void
 void translateExiv2Error(Exiv2::Error const& error);
                                       ^~~~~
src/exiv2wrapper.hpp:284:33: error: ‘Error’ is not a member of ‘Exiv2’
 void translateExiv2Error(Exiv2::Error const& error);
                                 ^~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::_instantiate_image()’:
src/exiv2wrapper.cpp:64:12: error: ‘Error’ is not a member of ‘Exiv2’
     Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
            ^~~~~
src/exiv2wrapper.cpp:85:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
     catch (Exiv2::Error& err)
                   ^~~~~
src/exiv2wrapper.cpp:88:9: error: ‘error’ was not declared in this scope
         error = err;
         ^~~~~
src/exiv2wrapper.cpp:88:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp:88:17: error: ‘err’ was not declared in this scope
         error = err;
                 ^~~
src/exiv2wrapper.cpp:88:17: note: suggested alternative: ‘erf’
         error = err;
                 ^~~
                 erf
src/exiv2wrapper.cpp:93:9: error: ‘error’ was not declared in this scope
     if (error.code() == 0)
         ^~~~~
src/exiv2wrapper.cpp:93:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::readMetadata()’:
src/exiv2wrapper.cpp:150:12: error: ‘Error’ is not a member of ‘Exiv2’
     Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
            ^~~~~
src/exiv2wrapper.cpp:168:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
     catch (Exiv2::Error& err)
                   ^~~~~
src/exiv2wrapper.cpp:171:9: error: ‘error’ was not declared in this scope
         error = err;
         ^~~~~
src/exiv2wrapper.cpp:171:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp:171:17: error: ‘err’ was not declared in this scope
         error = err;
                 ^~~
src/exiv2wrapper.cpp:171:17: note: suggested alternative: ‘erf’
         error = err;
                 ^~~
                 erf
src/exiv2wrapper.cpp:177:9: error: ‘error’ was not declared in this scope
     if (error.code() != 0)
         ^~~~~
src/exiv2wrapper.cpp:177:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::writeMetadata()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:190:12: error: ‘Error’ is not a member of ‘Exiv2’
     Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
            ^~~~~
src/exiv2wrapper.cpp:204:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
     catch (Exiv2::Error& err)
                   ^~~~~
src/exiv2wrapper.cpp:207:9: error: ‘error’ was not declared in this scope
         error = err;
         ^~~~~
src/exiv2wrapper.cpp:207:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp:207:17: error: ‘err’ was not declared in this scope
         error = err;
                 ^~~
src/exiv2wrapper.cpp:207:17: note: suggested alternative: ‘erf’
         error = err;
                 ^~~
                 erf
src/exiv2wrapper.cpp:213:9: error: ‘error’ was not declared in this scope
     if (error.code() != 0)
         ^~~~~
src/exiv2wrapper.cpp:213:9: note: suggested alternative:
In file included from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from src/exiv2wrapper.hpp:35,
                 from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/args_fwd.hpp:40:13: note:   ‘boost::python::detail::error’
   namespace error
             ^~~~~
src/exiv2wrapper.cpp: In member function ‘unsigned int exiv2wrapper::Image::pixelWidth() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘unsigned int exiv2wrapper::Image::pixelHeight() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘std::__cxx11::string exiv2wrapper::Image::mimeType() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘boost::python::list exiv2wrapper::Image::exifKeys()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘const exiv2wrapper::ExifTag exiv2wrapper::Image::getExifTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:260:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                      ^~~~~
src/exiv2wrapper.cpp:260:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::deleteExifTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:280:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                      ^~~~~
src/exiv2wrapper.cpp:280:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘boost::python::list exiv2wrapper::Image::iptcKeys()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘const exiv2wrapper::IptcTag exiv2wrapper::Image::getIptcTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:318:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                      ^~~~~
src/exiv2wrapper.cpp:318:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::deleteIptcTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:338:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                      ^~~~~
src/exiv2wrapper.cpp:338:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘boost::python::list exiv2wrapper::Image::xmpKeys()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘const exiv2wrapper::XmpTag exiv2wrapper::Image::getXmpTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:382:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                      ^~~~~
src/exiv2wrapper.cpp:382:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::deleteXmpTag(std::__cxx11::string)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:406:26: error: ‘Error’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                          ^~~~~
src/exiv2wrapper.cpp:406:39: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidKey, key);
                                       ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘const string exiv2wrapper::Image::getComment() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::setComment(const string&)’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::clearComment()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘boost::python::list exiv2wrapper::Image::previews()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::Image::copyMetadata(exiv2wrapper::Image&, bool, bool, bool) const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:458:26: error: ‘Error’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                          ^~~~~
src/exiv2wrapper.cpp:458:39: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                       ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘Exiv2::ByteOrder exiv2wrapper::Image::getByteOrder() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘Exiv2::ExifThumb* exiv2wrapper::Image::_getExifThumbnail()’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘const string exiv2wrapper::Image::getIptcCharset() const’:
src/exiv2wrapper.cpp:48:34: error: ‘Error’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:34: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                  ^~~~~
src/exiv2wrapper.cpp:48:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:48:47: note: in definition of macro ‘CHECK_METADATA_READ’
     if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::ExifTag::setRawValue(const string&)’:
src/exiv2wrapper.cpp:685:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidDataset, message);
                      ^~~~~
src/exiv2wrapper.cpp:685:35: error: ‘kerInvalidDataset’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidDataset, message);
                                   ^~~~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In constructor ‘exiv2wrapper::IptcTag::IptcTag(const string&, Exiv2::IptcData*)’:
src/exiv2wrapper.cpp:807:34: error: ‘Error’ is not a member of ‘Exiv2’
                     throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                                  ^~~~~
src/exiv2wrapper.cpp:807:47: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
                     throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                                               ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: In member function ‘void exiv2wrapper::IptcTag::setRawValues(const boost::python::list&)’:
src/exiv2wrapper.cpp:835:26: error: ‘Error’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidDataset, "Tag not repeatable");
                          ^~~~~
src/exiv2wrapper.cpp:835:39: error: ‘kerInvalidDataset’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidDataset, "Tag not repeatable");
                                       ^~~~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:861:30: error: ‘Error’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerInvalidDataset, mssg);
                              ^~~~~
src/exiv2wrapper.cpp:861:43: error: ‘kerInvalidDataset’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerInvalidDataset, mssg);
                                           ^~~~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:885:30: error: ‘Error’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                              ^~~~~
src/exiv2wrapper.cpp:885:43: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                                           ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp:898:30: error: ‘Error’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                              ^~~~~
src/exiv2wrapper.cpp:898:43: error: ‘kerErrorMessage’ is not a member of ‘Exiv2’
                 throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
                                           ^~~~~~~~~~~~~~~
src/exiv2wrapper.cpp: At global scope:
src/exiv2wrapper.cpp:1208:39: error: variable or field ‘translateExiv2Error’ declared void
 void translateExiv2Error(Exiv2::Error const& error)
                                       ^~~~~
src/exiv2wrapper.cpp:1208:33: error: ‘Error’ is not a member of ‘Exiv2’
 void translateExiv2Error(Exiv2::Error const& error)
                                 ^~~~~
src/exiv2wrapper.cpp: In function ‘bool exiv2wrapper::initialiseXmpParser()’:
src/exiv2wrapper.cpp:1851:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
     catch (Exiv2::Error& error)
                   ^~~~~
src/exiv2wrapper.cpp: In function ‘void exiv2wrapper::registerXmpNs(const string&, const string&)’:
src/exiv2wrapper.cpp:1882:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
     catch (Exiv2::Error& error)
                   ^~~~~
src/exiv2wrapper.cpp:1893:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                      ^~~~~
src/exiv2wrapper.cpp:1893:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                                   ^~~~~~~~~~~~~
src/exiv2wrapper.cpp: In function ‘void exiv2wrapper::unregisterXmpNs(const string&)’:
src/exiv2wrapper.cpp:1912:23: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
         catch (Exiv2::Error& error)
                       ^~~~~
src/exiv2wrapper.cpp:1922:26: error: ‘Error’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                          ^~~~~
src/exiv2wrapper.cpp:1922:39: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
             throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                                       ^~~~~~~~~~~~~
src/exiv2wrapper.cpp:1935:22: error: ‘Error’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                      ^~~~~
src/exiv2wrapper.cpp:1935:35: error: ‘kerInvalidKey’ is not a member of ‘Exiv2’
         throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
                                   ^~~~~~~~~~~~~
==> ERROR: A failure occurred in build().
    Aborting...