Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails with exiv2 0.28 #53700

Closed
1 of 2 tasks
ggardet opened this issue Jul 3, 2023 · 7 comments
Closed
1 of 2 tasks

Build fails with exiv2 0.28 #53700

ggardet opened this issue Jul 3, 2023 · 7 comments
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter!

Comments

@ggardet
Copy link

ggardet commented Jul 3, 2023

What is the bug or the crash?

Build fails with exiv2 0.28:

[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp: In function 'QVariant decodeXmpData(const QString&, Exiv2::XmpData::const_iterator&)':
[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp:69:40: error: 'const class Exiv2::Xmpdatum' has no member named 'toLong'
[ 2238s]    69 |         val = QVariant::fromValue( it->toLong() );
[ 2238s]       |                                        ^~~~~~
[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp:83:60: error: 'const class Exiv2::Xmpdatum' has no member named 'toLong'
[ 2238s]    83 |         val = QVariant::fromValue( static_cast< int >( it->toLong() ) );
[ 2238s]       |                                                            ^~~~~~
[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp: In function 'QVariant decodeExifData(const QString&, Exiv2::ExifData::const_iterator&)':
[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp:185:40: error: 'const class Exiv2::Exifdatum' has no member named 'toLong'
[ 2238s]   185 |         val = QVariant::fromValue( it->toLong() );
[ 2238s]       |                                        ^~~~~~
[ 2238s] /home/abuild/rpmbuild/BUILD/qgis-3.30.3/src/core/raster/qgsexiftools.cpp:199:60: error: 'const class Exiv2::Exifdatum' has no member named 'toLong'
[ 2238s]   199 |         val = QVariant::fromValue( static_cast< int >( it->toLong() ) );
[ 2238s]       |                                                            ^~~~~~

Steps to reproduce the issue

Try to build QGIS 3.30.3 against exiv2 0.28

Versions

3.30.3

Supported QGIS version

  • I'm running a supported QGIS version according to the roadmap.

New profile

Additional context

No response

@ggardet ggardet added the Bug Either a bug report, or a bug fix. Let's hope for the latter! label Jul 3, 2023
@ggardet
Copy link
Author

ggardet commented Jul 3, 2023

Likely because of Exiv2/exiv2#2062

@a17r
Copy link
Contributor

a17r commented Jul 6, 2023

See also full build.log in downstream bug report: https://bugs.gentoo.org/906470

Arch Linux use a non-upstreamed patch for >=3.30.3: https://gitlab.archlinux.org/archlinux/packaging/packages/qgis/-/blob/main/exiv2-0.28.patch

@ggardet
Copy link
Author

ggardet commented Jul 7, 2023

@a17r Thanks for the link to the patch. Would be great if you could open a PR to upstream your patch. :)

@a17r
Copy link
Contributor

a17r commented Jul 7, 2023

@ggardet well it is not my patch, but maybe @antonio-rojas would

@dhdeangelis
Copy link
Contributor

dhdeangelis commented Jul 9, 2023

Replacing toLong() with toUInt32() in qgsexiftools.cpp (*) solves the problem in Linux (openSUSE Tumbleweed). Unsure if this will work in Windows too.

(*) https://github.com/qgis/QGIS/blob/master/src/core/raster/qgsexiftools.cpp

@antonio-rojas
Copy link
Contributor

Done in #53762

@lbartoletti
Copy link
Member

Closed with #53762

Thanks @antonio-rojas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter!
Projects
None yet
Development

No branches or pull requests

5 participants