Opened 7 months ago

Closed 7 months ago

Last modified 5 months ago

#13452 closed Bug Report - General (fixed)

Exiv 0.27.1 breaks the build.

Reported by: David Hampton Owned by: David Hampton
Priority: major Milestone: 31.0
Component: MythTV - General Version: Master Head
Severity: high Keywords:
Cc: Ticket locked: no

Description

The rawhide builder just upgraded exiv2 from version 0.27.0 to version 0.27.1 and the builds broke.

imagemetadata.cpp: In constructor ‘PictureMetaData::PictureMetaData(const QString&)’:
imagemetadata.cpp:313:19: error: ‘Error’ in namespace ‘Exiv2’ does not name a type
  313 |     catch (Exiv2::Error &e)
      |                   ^~~~~
In file included from /usr/include/qt5/QtCore/qcoreapplication.h:43,
                 from /usr/include/qt5/QtCore/QCoreApplication:1,
                 from imagemetadata.h:12,
                 from imagemetadata.cpp:1:
imagemetadata.cpp:315:74: error: ‘e’ was not declared in this scope
  315 |         LOG(VB_GENERAL, LOG_ERR, LOC + QString("Exiv2 exception %1").arg(e.what()));
      |                                                                          ^
imagemetadata.cpp:315:9: note: in expansion of macro ‘LOG’
  315 |         LOG(VB_GENERAL, LOG_ERR, LOC + QString("Exiv2 exception %1").arg(e.what()));
      |         ^~~
make[2]: *** [Makefile:1708: obj/imagemetadata.o] Error 1

Change History (7)

comment:1 Changed 7 months ago by dizygotheca

Exiv2 v0.21 (Dec 2010) introduced an API header "exiv2.hpp". https://www.exiv2.org/whatsnew.html

That is currently commented out in imagemetadata.cpp because it broke distros using earlier versions in Nov 2015. https://forum.mythtv.org/viewtopic.php?t=1145

Switching to that instead of "image.hpp" resolves the compilation errors (and introduces a v0.21+ requirement).

Ubuntu 16.04 - 19.04 all use v0.25. I've seen comments that v0.26 had 'security issues', so it's likely Ubuntu will jump to 0.27 at some point.

Myth appears to use v0.23 sources for the Windows build.

comment:2 Changed 7 months ago by David Hampton

Owner: set to David Hampton
Status: newassigned

comment:3 Changed 7 months ago by David Hampton <mythtv@…>

Resolution: fixed
Status: assignedclosed

In 01cb2902a1/mythtv:

Fix compilation with exiv2 > 0.27.0.

Remove an old workaround that was introduced so that MythTV would
continue to compile after the introduction of exiv2 version 0.21. The
exiv2 file this workaround required was removed in 0.27.1.

MythTV now requires upon exiv2 0.21 or better.

Fixes #13452.

comment:4 Changed 7 months ago by David Hampton <mythtv@…>

In fc79822ce4/mythtv:

Fix compilation with exiv2 > 0.27.0.

Remove an old workaround that was introduced so that MythTV would
continue to compile after the introduction of exiv2 version 0.21. The
exiv2 file this workaround required was removed in 0.27.1.

MythTV now requires upon exiv2 0.21 or better.

Fixes #13452.

comment:5 Changed 6 months ago by David Hampton <mythtv@…>

In 01cb2902a1/mythtv:

Fix compilation with exiv2 > 0.27.0.

Remove an old workaround that was introduced so that MythTV would
continue to compile after the introduction of exiv2 version 0.21. The
exiv2 file this workaround required was removed in 0.27.1.

MythTV now requires upon exiv2 0.21 or better.

Fixes #13452.

comment:6 Changed 6 months ago by David Hampton <mythtv@…>

In fc79822ce4/mythtv:

Fix compilation with exiv2 > 0.27.0.

Remove an old workaround that was introduced so that MythTV would
continue to compile after the introduction of exiv2 version 0.21. The
exiv2 file this workaround required was removed in 0.27.1.

MythTV now requires upon exiv2 0.21 or better.

Fixes #13452.

comment:7 Changed 5 months ago by David Hampton <mythtv@…>

In c667836f2a/mythtv:

Fix compilation with exiv2 > 0.27.0.

Remove an old workaround that was introduced so that MythTV would
continue to compile after the introduction of exiv2 version 0.21. The
exiv2 file this workaround required was removed in 0.27.1.

MythTV now requires upon exiv2 0.21 or better.

Fixes #13452.

(cherry picked from commit 01cb2902a100cc2fdf1d606e2d753038c353f534)

Note: See TracTickets for help on using tickets.