Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 289004

Summary: dev-python/pyexiv2-0.3.2 (New package, deprecated upstream)
Product: Gentoo Linux Reporter: Michael Kefeder <m.kefeder>
Component: New packagesAssignee: Default Assignee for New Packages <maintainer-wanted>
Status: CONFIRMED ---    
Severity: enhancement CC: aklhfex, andreas, bruce, eugene.shalygin, fauli, karpi.web, nikoli, orzel, python, quinox_san_, sping, stefantalpalaru, thibault.hild
Priority: High Keywords: EBUILD
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://tilloy.net/dev/pyexiv2/
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 526862, 353748, 371324    
Attachments: ebuild for pyexiv2-0.1.3
New PyExiv2 build to use with Exiv2 0.19 and higher
Patch for PyExiv2 to make it compatible with Exiv2 0.19 and higher
Cleaner version of the ebuild
pyexiv2-0.2.0.ebuild
pyexiv2-0.2.1
pyexiv2-0.3.0.ebuild
Patch for building pyexiv2 0.3.0 docs
pyexiv 0.3.2
pyexiv2-0.3.2.ebuild - fix for recent boost
pyexiv2-0.3.2.ebuild - support for python ABI 2 and 3
scons_python_abi.patch - support for python ABI 2 and 3
pyexiv2-0.3.2.ebuild - support for python ABI 2 and 3 - bis
pyexiv2-0.3.2-r1.ebuild using EAPI5 and python-r1 eclass

Description Michael Kefeder 2009-10-14 06:09:30 UTC
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:
Comment 1 Michael Kefeder 2009-10-14 06:10:22 UTC
Created attachment 207055 [details]
ebuild for pyexiv2-0.1.3
Comment 2 Ceesjan Luiten 2010-01-06 17:22:17 UTC
Seconded request. The ebuild as supplied by Michael works as expected on ~amd64
Comment 3 Ceesjan Luiten 2010-01-28 11:57:31 UTC
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
Comment 4 Ceesjan Luiten 2010-01-28 11:58:25 UTC
Created attachment 217717 [details]
New PyExiv2 build to use with Exiv2 0.19 and higher
Comment 5 Ceesjan Luiten 2010-01-28 11:59:22 UTC
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
Comment 6 Ceesjan Luiten 2010-01-28 12:04:39 UTC
Created attachment 217721 [details]
Cleaner version of the ebuild
Comment 7 Chris Mayo 2010-04-16 15:19:30 UTC
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
Comment 8 Michael Kefeder 2010-04-20 19:32:08 UTC
ebuild of Chris for 0.2.0 works fine for me on amd64
thanks
Comment 9 Chris Mayo 2010-05-08 10:34:51 UTC
Created attachment 230787 [details]
pyexiv2-0.2.1

Version bump and have to actually build docs as they are not included in the tarball
Comment 10 Andreas Nyback 2011-01-10 09:50:17 UTC
Created attachment 259451 [details]
pyexiv2-0.3.0.ebuild

New version, with new download path.
Comment 11 Chris Mayo 2011-01-10 19:03:02 UTC
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).
Comment 12 Sebastian Pipping gentoo-dev 2011-05-23 19:11:10 UTC
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.
Comment 13 Christian Faulhammer (RETIRED) gentoo-dev 2011-06-13 11:32:21 UTC
Would come in handy for Gramps 3.3.0, as an optional dependency.
Comment 14 Andreas Nyback 2011-12-03 23:04:11 UTC
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...
Comment 15 Ștefan Talpalaru 2012-03-12 15:54:21 UTC
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).
Comment 16 Thibault Hild 2012-04-07 17:39:38 UTC
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.
Comment 17 Thibault Hild 2012-04-07 17:43:40 UTC
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.
Comment 18 Arfrever Frehtes Taifersar Arahesis 2012-04-07 18:26:09 UTC
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).
Comment 19 Thibault Hild 2012-04-08 15:25:42 UTC
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...
Comment 20 Thibault Hild 2012-04-09 21:45:54 UTC
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.
Comment 21 karpi 2012-09-11 17:05:29 UTC
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
>>> 
>>> 
>>>
Comment 22 Bernd Feige 2012-11-11 16:41:35 UTC
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
Comment 23 Chris Mayo 2012-12-27 17:44:37 UTC
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.
Comment 24 Paweł Stankowski 2014-10-26 00:05:35 UTC
Pyexiv2 is still used by some projects, and still exists in newest Ubuntu repository.
Comment 25 Paweł Stankowski 2014-10-26 00:07:47 UTC
Created attachment 387386 [details]
pyexiv2-0.3.2-r1.ebuild using EAPI5 and python-r1 eclass