Package Details: python-exiv2 0.7.1-1

Git Clone URL: https://aur.archlinux.org/python-exiv2.git (read-only)
Package Base: python-exiv2
Description: py3exiv2 is a Python3 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
Last Packager: spider-mario
Votes: 9
Popularity: 0.151256
First Submitted: 2016-03-19 22:15
Last Updated: 2019-06-03 20:18

Latest Comments

1 2 Next › Last »

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...

elstoc commented on 2019-02-16 14:35

@VinsS I get a 404 error when trying to access the link for 0.5.0. I found version 0.6.1 but when I try to use this version I get the following error when importing the module in python:

import libexiv2python ImportError: /usr/lib/python3.7/site-packages/libexiv2python.so: undefined symbol: _ZNK12exiv2wrapper7Preview7getDataEv

So two things really. First, the error. Second, it would be good if old versions remained available for download for at least a short amount of time after a new version is created, in case nobody has packaged up the new version yet.

VinsS commented on 2019-01-31 13:20

I just released the version 0.5.0

This version fix a fatal bug introduced in exiv2-0.27

The sources: http://www.py3exiv2.tuxfamily.org/releases/python3-exiv2-0.5.0.tar.gz

Bests, Vincent

DrTebi commented on 2019-01-27 07:10

Not sure if this is a python-exiv2 problem... but I always get this error when I try to run one of my programs:

ImportError: libboost_python37.so.1.67.0: cannot open shared object file: No such file or directory

... my libboost_python version is 1.69. Once I create a symbolic link from 1.67 to 1.69, everything works fine. But that shouldn't be necessary?

I may be understanding something wrong, can someone enlighten me?

elstoc commented on 2018-09-22 21:11

Ok this should all be up to date now with v0.4.0 and latest python directory names. Enjoy.

pseyfert commented on 2018-05-29 15:03

The download link http://www.py3exiv2.tuxfamily.org/releases/python3-exiv2_0.2.0.tar.gz used in the PKGBUILD does not work (anymore?). The link to version 0.3 (posted by @VinsS) does work (NB: not only the version number changed 0.2.0→0.3.0 but also the underscore turned into a hyphen.

VinsS commented on 2018-05-18 04:33

Hi,

I've just release the version 0.3

http://www.py3exiv2.tuxfamily.org/releases/python3-exiv2-0.3.0.tar.gz

DrTebi commented on 2017-02-18 04:22

I had a few problems installing this package (version 0.2.0-1).

The PKGBUILD specified python 3.5, but as far as I know, python 3.6 is the current latest version on Arch. I changed all references to '3.5' to '3.6'. Without doing this, the package would install into the wrong 'site-packages' directory (of python 3.5).


When running `makepkg -i` I also got the following error:

In file included from /usr/include/boost/python/detail/prefix.hpp:13:0,
from /usr/include/boost/python/args.hpp:8,
from /usr/include/boost/python.hpp:11,
from src/exiv2wrapper.hpp:35,
from src/exiv2wrapper.cpp:27:
/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
# include <pyconfig.h>
^
compilation terminated.
==> ERROR: A failure occurred in build().
Aborting...

A quick search turned up this stack overflow page, which fixed the problem:
http://stackoverflow.com/questions/19810940/ubuntu-linking-boost-python-fatal-error-pyconfig-cannot-be-found

In my case it was this:
export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:/usr/include/python3.6m/"

that fixed it.

Nevertheless, thank you for maintaining this package, just needs a couple of small updates I suppose :)