Port all pyexiv2 apps to GExiv2
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Gramps |
Fix Released
|
Unknown
|
||||
Nautilus Image Manipulator |
Undecided
|
Unassigned | ||||
Rapid Photo Downloader | Status tracked in Pyqt | |||||
Pyqt |
High
|
Damon Lynch | ||||
SmartShine Photo |
Undecided
|
Unassigned | ||||
pyexiv2 |
Medium
|
Unassigned | ||||
creepy (Ubuntu) |
Low
|
Unassigned | ||||
flickrbackup (Ubuntu) |
Low
|
Unassigned | ||||
gexiv2 (Ubuntu) |
Low
|
Unassigned | ||||
gramps (Ubuntu) |
Medium
|
Unassigned | ||||
lazygal (Ubuntu) |
Low
|
Unassigned | ||||
phatch (Ubuntu) |
Medium
|
Unassigned | ||||
videoporama (Ubuntu) |
Low
|
Unassigned |
Bug Description
I have spoken directly with the maintainer of pyexiv2 and we have agreed that pyexiv2 is an abandoned project that will never support Python3. Therefore, anything that depends on pyexiv2 is going to be stuck on Python 2 until they port to GExiv2. GExiv2 is a clear winner in terms of simplicity, and maintainability.
Packages marked as affected by this bug were designated so because they have a dependency on the pyexiv2 package. They will need to be ported to GExiv2 before they can be ported to Python 3. Here is the popcon data for these packages, which may hopefully allow us to prioritize this work by installation popularity:
#rank name inst vote old recent no-files
6692 gramps 41836 534 41095 198 9
8296 phatch-cli 26266 734 25209 309 14
13025 videoporama 8766 120 8602 39 5
16897 rapid-photo-
19941 nautilus-
35392 creepy 591 11 563 17 0
36572 lazygal 534 11 522 1 0
65688 smartshine 60 5 22 6 27
78375 flickrbackup 26 1 25 0 0
Related branches
- Emilien Klein: Needs Information on 2013-01-01
-
Diff: 84 lines (+20/-28)1 file modifiednautilus_image_manipulator/ImageManipulations.py (+20/-28)
Changed in gexiv2 (Ubuntu): | |
assignee: | nobody → Robert Bruce Park (robru) |
status: | New → Confirmed |
Changed in pyexiv2 (Ubuntu): | |
status: | New → Confirmed |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in pyexiv2 (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in gexiv2 (Ubuntu): | |
status: | Confirmed → Triaged |
importance: | Undecided → Low |
Changed in pyexiv2 (Ubuntu): | |
importance: | Undecided → Low |
Changed in rapid-photo-downloader (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in gramps (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in creepy (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in flickrbackup (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in lazygal (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in nautilus-image-manipulator (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in phatch (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Robert Bruce Park (robru) |
Changed in smartshine (Ubuntu): | |
assignee: | nobody → Robert Bruce Park (robru) |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in videoporama (Ubuntu): | |
assignee: | nobody → Robert Bruce Park (robru) |
importance: | Undecided → Low |
status: | New → Triaged |
description: | updated |
Changed in flickrbackup (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in smartshine (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in lazygal (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in creepy (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in gramps (Ubuntu): | |
importance: | Low → Medium |
Changed in phatch (Ubuntu): | |
importance: | Low → Medium |
Changed in rapid-photo-downloader (Ubuntu): | |
importance: | Low → Medium |
Changed in creepy (Ubuntu): | |
assignee: | nobody → Rob Salmond (phro) |
Changed in flickrbackup (Ubuntu): | |
assignee: | nobody → Rob Salmond (phro) |
Changed in lazygal (Ubuntu): | |
assignee: | nobody → Rob Salmond (phro) |
Changed in smartshine (Ubuntu): | |
assignee: | nobody → Rob Salmond (phro) |
Robert Bruce Park (robru) wrote : | #1 |
Changed in flickrbackup (Ubuntu): | |
assignee: | Rob Salmond (phro) → Robert Bruce Park (robru) |
status: | Triaged → Fix Committed |
Robert Bruce Park (robru) wrote : | #2 |
Branch lp:~robru/smartshine/gexiv2 contains the port to GExiv2 for that project.
Changed in smartshine (Ubuntu): | |
assignee: | Rob Salmond (phro) → Robert Bruce Park (robru) |
status: | Triaged → Fix Committed |
Changed in pyexiv2: | |
assignee: | nobody → Robert Bruce Park (robru) |
importance: | Undecided → Medium |
status: | New → Triaged |
Robert Bruce Park (robru) wrote : | #3 |
Patch for lazygal has been emailed privately to it's maintainer.
Changed in lazygal (Ubuntu): | |
assignee: | Rob Salmond (phro) → Robert Bruce Park (robru) |
status: | Triaged → Fix Committed |
Robert Bruce Park (robru) wrote : | #4 |
This patch ports lazygal from pyexiv2 to GExiv2, with zero test failures.
Robert Bruce Park (robru) wrote : | #5 |
Patch for creepy can be found at this github pull request: https:/
Changed in creepy (Ubuntu): | |
assignee: | Rob Salmond (phro) → Robert Bruce Park (robru) |
status: | Triaged → Fix Committed |
The attachment "port-lazygal-
[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]
tags: | added: patch |
Changed in nautilus-image-manipulator (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in nautilus-image-manipulator: | |
assignee: | nobody → Robert Bruce Park (robru) |
status: | New → Fix Committed |
no longer affects: | nautilus-image-manipulator (Ubuntu) |
Changed in smartshine: | |
assignee: | nobody → Robert Bruce Park (robru) |
status: | New → Fix Committed |
no longer affects: | smartshine (Ubuntu) |
Changed in rapid: | |
assignee: | nobody → Robert Bruce Park (robru) |
status: | New → In Progress |
no longer affects: | rapid-photo-downloader (Ubuntu) |
Robert Bruce Park (robru) wrote : | #7 |
Porting of Rapid Photo Downloader is blocked because this app is still using all the old static gtk/gobject bindings, which conflict with the gobject introspection magic that is necessary to import GExiv2. The code that implements GExiv2 for rapid photo downloader is largely done, but it won't actually run correctly until the rest of rpd gets ported to the new introspection bindings.
Changed in rapid: | |
status: | In Progress → Confirmed |
I understand for all practical purposes, the introspection bindings depend
on python 3 and GTK 3. Rapid Photo Downloader currently depends on PIL,
which is not yet ported to Python 3. Ripping out PIL, converting to GTK3 +
introspection + python3 seems like a massive undertaking! And all this with
no actual practical end benefit for the user. On the other hand, if gphoto2
has an introspection binding, that would be a benefit, because finally the
user might be able to download from a camera without the nightmare of the
buggy gphoto2/gvfs bindings.
On Tue, Jan 1, 2013 at 4:02 PM, Robert Bruce Park <<email address hidden>
> wrote:
> Porting of Rapid Photo Downloader is blocked because this app is still
> using all the old static gtk/gobject bindings, which conflict with the
> gobject introspection magic that is necessary to import GExiv2. The code
> that implements GExiv2 for rapid photo downloader is largely done, but
> it won't actually run correctly until the rest of rpd gets ported to the
> new introspection bindings.
>
> ** Changed in: rapid
> Status: In Progress => Confirmed
>
> --
> You received this bug notification because you are subscribed to Rapid
> Photo Downloader.
> https:/
>
> Title:
> Port all pyexiv2 apps to GExiv2
>
> Status in Nautilus Image Manipulator:
> Fix Committed
> Status in pyexiv2, a python binding to exiv2:
> Triaged
> Status in Rapid Photo Downloader:
> Confirmed
> Status in SmartShine - automation for the photographers:
> Fix Committed
> Status in “creepy” package in Ubuntu:
> Fix Committed
> Status in “flickrbackup” package in Ubuntu:
> Fix Committed
> Status in “gexiv2” package in Ubuntu:
> Triaged
> Status in “gramps” package in Ubuntu:
> Triaged
> Status in “lazygal” package in Ubuntu:
> Fix Committed
> Status in “phatch” package in Ubuntu:
> Triaged
> Status in “pyexiv2” package in Ubuntu:
> Triaged
> Status in “videoporama” package in Ubuntu:
> Triaged
>
> Bug description:
> I have spoken directly with the maintainer of pyexiv2 and we have
> agreed that pyexiv2 is an abandoned project that will never support
> Python3. Therefore, anything that depends on pyexiv2 is going to be
> stuck on Python 2 until they port to GExiv2. GExiv2 is a clear winner
> in terms of simplicity, and maintainability.
>
> Packages marked as affected by this bug were designated so because
> they have a dependency on the pyexiv2 package. They will need to be
> ported to GExiv2 before they can be ported to Python 3. Here is the
> popcon data for these packages, which may hopefully allow us to
> prioritize this work by installation popularity:
>
> #rank name inst vote old recent no-files
> 6692 gramps 41836 534 41095 198 9
> 8296 phatch-cli 26266 734 25209 309 14
> 13025 videoporama 8766 120 8602 39 5
> 16897 rapid-photo-
> 19941 nautilus-
> 35392 creepy 591 11 563 17 0
> 36572 ...
Robert Bruce Park (robru) wrote : | #9 |
No, the introspection code has been carefully constructed to work excellently with both python 2 and python 3. The static bindings only support python 2, so sticking with the static bindings is holding you back. Porting to introspection doesn't force you to also port to python 3 immediately, what it does is *allows* you to port to Python 3 at your leisure.
The benefit to your users is that your application will continue to exist. Python 2 and GTK 2 are going away. Sure, it might be years before they're truly gone, but it will happen eventually. Imagine for a moment if your application only ran with Python 1 and GTK 1. Nobody would even be able to run it because nobody packages those old versions anymore. They're unsupported, unmaintained, and if you found a bug in the APIs, it would simply never get fixed. Python 2 and GTK 2 are slowly moving in that direction and if you don't port away from them, users will eventually lose the ability to run your program as distros stop shipping those versions.
I am not familiar with gphoto2 specifically, but yes, the introspection bindings are well maintained and if you find bugs in them, you can reasonably expect to report those and get them fixed. So yes, you'll be able to get away from the 'nightmare' of unmaintained, buggy bindings.
Robert Bruce Park (robru) wrote : | #10 |
According to their website, Videoporama is abandoned, and superceded by an alternate project written in C++.
Changed in videoporama (Ubuntu): | |
status: | Triaged → Won't Fix |
Damon Lynch (dlynch3) wrote : | #11 |
Not having to also move to python 3 does make it easier. I understand that
I would need to completely redo the glade files to move to GTK3 - is that
correct? Based on other projects, the time the transition would take in
hours would be how much? Am I looking at one week of full time work, or
more like 2 weeks, or 4 weeks or more?
I've checked the gphoto2 page, and as yet there are no introspection
bindings for it. The gvfs/libgphoto2 code has been broken since it was
first developed - it works with some cameras, and not at all with others.
It seems the Gnome developers simply do not have access to a sufficient
range of cameras, so any bugs reported are apparently not fixed. Users of
Rapid Photo Downloader blame my program, of course! There is no python
binding to libgphoto2. I guess the Shotwell developers wrote their own
wrapper code for vala.
On Tue, Jan 1, 2013 at 4:46 PM, Robert Bruce Park <<email address hidden>
> wrote:
> No, the introspection code has been carefully constructed to work
> excellently with both python 2 and python 3. The static bindings only
> support python 2, so sticking with the static bindings is holding you
> back. Porting to introspection doesn't force you to also port to python
> 3 immediately, what it does is *allows* you to port to Python 3 at your
> leisure.
>
> The benefit to your users is that your application will continue to
> exist. Python 2 and GTK 2 are going away. Sure, it might be years before
> they're truly gone, but it will happen eventually. Imagine for a moment
> if your application only ran with Python 1 and GTK 1. Nobody would even
> be able to run it because nobody packages those old versions anymore.
> They're unsupported, unmaintained, and if you found a bug in the APIs,
> it would simply never get fixed. Python 2 and GTK 2 are slowly moving in
> that direction and if you don't port away from them, users will
> eventually lose the ability to run your program as distros stop shipping
> those versions.
>
> I am not familiar with gphoto2 specifically, but yes, the introspection
> bindings are well maintained and if you find bugs in them, you can
> reasonably expect to report those and get them fixed. So yes, you'll be
> able to get away from the 'nightmare' of unmaintained, buggy bindings.
>
> --
> You received this bug notification because you are subscribed to Rapid
> Photo Downloader.
> https:/
>
> Title:
> Port all pyexiv2 apps to GExiv2
>
> Status in Nautilus Image Manipulator:
> Fix Committed
> Status in pyexiv2, a python binding to exiv2:
> Triaged
> Status in Rapid Photo Downloader:
> Confirmed
> Status in SmartShine - automation for the photographers:
> Fix Committed
> Status in “creepy” package in Ubuntu:
> Fix Committed
> Status in “flickrbackup” package in Ubuntu:
> Fix Committed
> Status in “gexiv2” package in Ubuntu:
> Triaged
> Status in “gramps” package in Ubuntu:
> Triaged
> Status in “lazygal” package in Ubuntu:
> Fix Committed
> Status in “phatch” package in Ubuntu:
> Triaged
> Status in “pyexiv2” package in Ubuntu:
> Triaged
> Status in “videoporama” package in Ubuntu:
> Triaged
>
> Bug description:
> I have s...
Robert Bruce Park (robru) wrote : | #12 |
You're right, libglade is also obsolete and you'll need to convert to GtkBuilder. Fortunately there's a script that can do that conversion for you easily. See here: http://
Tough to estimate how much work it would be. Your project is quite a bit larger than most of the others also tagged on this bug... I expect you could do it within a couple weeks of full-time effort. Fortunately there are conversion scripts that can help with the port to introspection, but it's not quite as complete as the one for gtkbuilder, so there is still some manual effort involved in that.
As for gphoto2, I just don't have any experience with that, sorry. Sounds buggy, I'd avoid it if possible ;-)
Changed in pyexiv2: | |
status: | Triaged → In Progress |
Changed in gexiv2 (Ubuntu): | |
status: | Triaged → In Progress |
no longer affects: | pyexiv2 (Ubuntu) |
Emilien Klein (emilien-klein) wrote : | #13 |
Merged in Nautilus Image Manipulator in r194 (will be released with 1.2)
Emilien Klein (emilien-klein) wrote : | #14 |
Released with Nautilus Image Manipulator v1.2
Changed in nautilus-image-manipulator: | |
status: | Fix Committed → Fix Released |
Changed in creepy (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in nautilus-image-manipulator: | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in creepy (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in videoporama (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in gramps (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in lazygal (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in flickrbackup (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in smartshine: | |
assignee: | Robert Bruce Park (robru) → nobody |
Launchpad Janitor (janitor) wrote : | #15 |
This bug was fixed in the package lazygal - 0.8-1
---------------
lazygal (0.8-1) unstable; urgency=low
[ Michal Čihař ]
* New upstream release.
- Uses new Genshi templates (Closes: #696682).
- Correctly handles wronly encoded artist in EXIF (Closes: #696648).
- Uses GExiv2 (LP: #1074028).
* Depend on GExiv2 instead of pyexiv2.
* Bump standards to 3.9.4.
* Use debhelper 9.
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.
-- Michal Čihař <email address hidden> Thu, 06 Jun 2013 12:05:08 +0200
Changed in lazygal (Ubuntu): | |
status: | Fix Committed → Fix Released |
Ross Gammon (rosco2) wrote : | #16 |
Gramps upstream have switched to GExiv2 and this change has been released in Version 4.0.0.
http://
Changed in gramps (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in gramps: | |
status: | Unknown → Fix Released |
Changed in rapid: | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in pyexiv2: | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in gexiv2 (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in phatch (Ubuntu): | |
assignee: | Robert Bruce Park (robru) → nobody |
Changed in gexiv2 (Ubuntu): | |
status: | In Progress → Fix Released |
Changed in pyexiv2: | |
status: | In Progress → Fix Committed |
Changed in rapid: | |
assignee: | nobody → Damon Lynch (dlynch3) |
importance: | Undecided → High |
status: | Confirmed → In Progress |
Changed in rapid: | |
status: | In Progress → Fix Committed |
Just waiting for upstream approval of my patch, here: https:/ /github. com/tiagovaz/ flickrbackup/ pull/1