There currently is no ebuild for pyexiv2 so i created one. pyexiv2 is a python binding to media-gfx/exiv2, which reads and writes EXIF information of images. Reproducible: Always Steps to Reproduce:
Created attachment 207055 [details] ebuild for pyexiv2-0.1.3
Seconded request. The ebuild as supplied by Michael works as expected on ~amd64
PyExiv2 fails to compile properly with Exiv2 0.19. Bug on launchpad with details: https://bugs.launchpad.net/pyexiv2/+bug/503272 I've updated the ebuild to use this patch. Since I have no idea how to make epatch conditional on the version of exiv2 I've changed the version number from pyexiv2 to 1.3.0-r1
Created attachment 217717 [details] New PyExiv2 build to use with Exiv2 0.19 and higher
Created attachment 217719 [details, diff] Patch for PyExiv2 to make it compatible with Exiv2 0.19 and higher Patch is an unmodified copy from the one on launchpad
Created attachment 217721 [details] Cleaner version of the ebuild
Created attachment 228041 [details] pyexiv2-0.2.0.ebuild Here's one for the much updated pyexiv-0.2.0 that requires exiv2-0.19
ebuild of Chris for 0.2.0 works fine for me on amd64 thanks
Created attachment 230787 [details] pyexiv2-0.2.1 Version bump and have to actually build docs as they are not included in the tarball
Created attachment 259451 [details] pyexiv2-0.3.0.ebuild New version, with new download path.
Created attachment 259488 [details, diff] Patch for building pyexiv2 0.3.0 docs To build the docs with sphinx >= 1.0 needs the attached patch (should work with < 1 too).
I've been working on an ebuild independently, before I stumbled upon this bug now. (In reply to comment #11) > Created attachment 259488 [details, diff] > Patch for building pyexiv2 0.3.0 docs > > To build the docs with sphinx >= 1.0 needs the attached patch (should work with > < 1 too). Thanks for that patch! An updated ebuild can be found as dev-python/pyexiv2-0.3.0-r1 can be found in the betagarden overlay.
Would come in handy for Gramps 3.3.0, as an optional dependency.
Created attachment 294649 [details] pyexiv 0.3.2 I needed 0.3.2 Had to change download path and remove the docs patch. Maybe someone who knows better then me what they are doing can bring this forward and put it in betagarden...
Created attachment 305021 [details] pyexiv2-0.3.2.ebuild - fix for recent boost This ebuild fixes a linking issue with boost-1.48.0-r1 (the python version is now part of the boost_python library name).
Created attachment 308109 [details] pyexiv2-0.3.2.ebuild - support for python ABI 2 and 3 This ebuild is a modification of the previous one in order to make it handle both python 2 and 3. Be careful that the python 3 support is obtained through using the 2to3 python tool. Both ABIs can be used at the same time. This ebuild also need an additional patch file named "scons_python_abi.patch" that I will attach in the next comment.
Created attachment 308111 [details, diff] scons_python_abi.patch - support for python ABI 2 and 3 This patch file is needed by pyexiv2-0.3.2.ebuild in order to select the python version to use when building and installing.
Usage of BOOSTLIB="boost_python-${PYTHON_ABI}" means that dependency on >=dev-libs/boost-1.48[python] is needed. s/2to3/2to3-${PYTHON_ABI}/ Documentation should be built only once (with final Python ABI).
Created attachment 308219 [details] pyexiv2-0.3.2.ebuild - support for python ABI 2 and 3 - bis Arfrever, thanks for reviewing. I did fix the following in the attached ebuild: - dependency to >=boost-1.48 - 2to3-${PYTHON_ABI} Having the pyexiv2 documentation built (USE="doc") is harder to fix as I cannot find a way to instruct "escons" to call SCons with Python 3 (this would also provide a simpler fix to the build/install process. I don't even know if SCons supports Python 3. Building the documentation fails for now...
I realized yesterday that the ebuild also needs this boost patch for pyexiv2 to work with python3: https://svn.boost.org/trac/boost/ticket/4609 I have integrated this patch to the boost 1.48.0-r1 ebuild and my test case succeeded. The same test case was returning a Boost.Python.ArgumentError as described in comment #6 of this pyexiv2 bug: https://bugs.launchpad.net/pyexiv2/+bug/824440/comments/6 The (simple) test case is: from pyexiv2 import ImageMetadata metadata = ImageMetadata("tmp/P1000107.JPG") metadata.read() tag = metadata['Exif.Image.DateTime'] print(tag.value) It returns the right tag value with the boost patch. I need to add a src_test routine to the ebuild in order to launch the test procedure provided by the pyexiv2 package.
pyexiv2 doesnot install properly for me... For python 3 it is ok, but for 2.6 is installation broken.. alnagon ~ % python3.2 Python 3.2.3 (default, Aug 24 2012, 02:55:08) [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyexiv2 >>> alnagon ~ % python2.6 Python 2.6.8 (unknown, Aug 24 2012, 18:03:05) [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyexiv2 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/site-packages/pyexiv2/__init__.py", line 60, in <module> import libexiv2python ImportError: libboost_python-1_42.so.1.42.0: cannot open shared object file: No such file or directory >>> >>> >>>
Hi, first of all thanks for the pyexiv2 support, I've used the single-ABI ebuild with current dev-lang/python-2.7.3-r2 and dev-libs/boost-1.52.0-r1 (and predecessors) without problems. Now trying the dual-ABI version, python2 works as before but python3 gives the following when actually trying to read metadata: python3.2 Python 3.2.3 (default, Jun 28 2012, 14:29:16) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyexiv2 >>> metadata=pyexiv2.ImageMetadata("img_18912.jpg") >>> metadata.read() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.2/site-packages/pyexiv2/metadata.py", line 107, in read self.__image = self._instantiate_image(self.filename) File "/usr/lib64/python3.2/site-packages/pyexiv2/metadata.py", line 79, in _instantiate_image return libexiv2python._Image(filename) Boost.Python.ArgumentError: Python argument types in _Image.__init__(_Image, bytes) did not match C++ signature: __init__(_object*, std::string, long) __init__(_object*, std::string) Appears as if the bindings would need adaptation as well? Any ideas? Regards, Bernd
pyexiv2 seems to have ceased, no release for over a year and see: https://bugs.launchpad.net/ubuntu/+source/gexiv2/+bug/1074028 N.B. I have created bug #448900 for gexiv2 0.5.0 which works for both Python 2 and 3.
Pyexiv2 is still used by some projects, and still exists in newest Ubuntu repository.
Created attachment 387386 [details] pyexiv2-0.3.2-r1.ebuild using EAPI5 and python-r1 eclass