Package Details: python-exiv2 0.9.3-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
Last Packager: spider-mario
Votes: 12
Popularity: 0.000290
First Submitted: 2016-03-19 22:15 (UTC)
Last Updated: 2021-09-18 14:01 (UTC)

Latest Comments

simon04 commented on 2020-08-18 05:09 (UTC)

@yochananmarqos, @Tio, thanks. The following worked:

$ gpg --keyserver keyserver.ubuntu.com --recv-keys 068346EEA7A91F52

Tio commented on 2020-08-16 15:33 (UTC)

It worked. Thank you sir! :)

yochananmarqos commented on 2020-08-16 15:29 (UTC)

@Tio: Use keyserver.ubuntu.com.

Tio commented on 2020-08-16 13:45 (UTC)

I can't find the key still... https://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=068346EEA7A91F52

Tio commented on 2020-08-14 22:04 (UTC)

[tio@tio-pc ~]$ gpg --keyserver pgp.mit.edu --recv-keys 068346EEA7A91F52
gpg: keyserver receive failed: No keyserver available

yochananmarqos commented on 2020-08-12 16:14 (UTC) (edited on 2020-08-12 16:14 (UTC) by yochananmarqos)

@Tio: Use a different keyserver like the wiki says:

gpg --keyserver pgp.mit.edu --recv-keys 068346EEA7A91F52

Tio commented on 2020-08-12 11:07 (UTC)

I tried to import the key but I get this error:

gpg --recv-key 068346EEA7A91F52
gpg: keyserver receive failed: General error

Tio commented on 2020-08-09 10:13 (UTC)

ok thanks

yochananmarqos commented on 2020-08-06 15:40 (UTC)

@Tio: See Makepkg: Signature checking.

Tio commented on 2020-08-06 12:44 (UTC)

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 (UTC)

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

yochananmarqos commented on 2020-08-03 03:17 (UTC)

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

spider-mario commented on 2019-12-22 17:24 (UTC)

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 (UTC)

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 (UTC) (edited on 2019-12-22 16:36 (UTC) by Kant)

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 (UTC) (edited on 2019-06-03 20:19 (UTC) by spider-mario)

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 (UTC)

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 (UTC)

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 (UTC) (edited on 2019-02-16 22:08 (UTC) by elstoc)

@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 (UTC)

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 (UTC)

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 (UTC)

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 (UTC)

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 (UTC)

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 (UTC) (edited on 2017-02-18 04:23 (UTC) by DrTebi)

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 :)

artemklevtsov commented on 2016-10-05 12:50 (UTC)

@ReedWood: thanks. Updated.

ReedWood commented on 2016-10-04 21:05 (UTC) (edited on 2016-10-05 09:14 (UTC) by ReedWood)

The pkgbuild at the end of this comment works with version 0.2.0. I simply adapted pkgver, pkgrel, and the needed changes to the naming scheme of the source tar.gz and unpacked directory. The new version does not require changes to in build() or package(). ---Start--- # Maintainer : Artem Klevtsov a.a.klevtsov@gmail.com _pkgname=python3-exiv2 pkgname=python-exiv2 pkgver=0.2.0 pkgrel=1 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' 'boost-libs' 'exiv2') makedepends=('boost') license=('GPL3') source=("http://www.py3exiv2.tuxfamily.org/releases/${_pkgname}_${pkgver}.tar.gz") md5sums=('a1d9ff06e543a68f2fa1b01a9a52e8cf') build() { cd "${srcdir}/${_pkgname}-${pkgver}" mkdir build g++ -o build/exiv2wrapper.os -c -fPIC -I/usr/include/python3.5m src/exiv2wrapper.cpp g++ -o build/exiv2wrapper_python.os -c -fPIC -I/usr/include/python3.5m src/exiv2wrapper_python.cpp g++ -o build/libexiv2python.so -shared build/exiv2wrapper.os build/exiv2wrapper_python.os -lboost_python3 -lexiv2 } package() { cd "${srcdir}/${_pkgname}-${pkgver}" mkdir -p "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2" install -D -m755 build/libexiv2python.so "${pkgdir}/usr/lib/python3.5/site-packages/libexiv2python.so" install -D -m644 src/pyexiv2/__init__.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/__init__.py" install -D -m644 src/pyexiv2/exif.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/exif.py" install -D -m644 src/pyexiv2/iptc.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/iptc.py" install -D -m644 src/pyexiv2/metadata.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/metadata.py" install -D -m644 src/pyexiv2/preview.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/preview.py" install -D -m644 src/pyexiv2/utils.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/utils.py" install -D -m644 src/pyexiv2/xmp.py "${pkgdir}/usr/lib/python3.5/site-packages/pyexiv2/xmp.py" } ---End---

artemklevtsov commented on 2016-06-27 11:40 (UTC)

@DrTebi: thanks for the report.

DrTebi commented on 2016-06-27 08:13 (UTC)

boost is also a dependency. Without it, I get this: ==> Starting build()... In file included from src/exiv2wrapper.cpp:26:0: src/exiv2wrapper.hpp:34:28: fatal error: boost/python.hpp: No such file or directory #include "boost/python.hpp" ^ compilation terminated. ==> ERROR: A failure occurred in build(). Aborting... With boost installed, the package installed successfully.