Bug 455859

Summary: digiKam 7.7.0 FTBFS with Qt 5.9 (as in Ubuntu 18.04 Bionic LTS)
Product: [Applications] digikam Reporter: Rob Savoury <savoury>
Component: Portability-CompilationAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles
Priority: NOR    
Version First Reported In: 7.7.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 7.8.0
Sentry Crash Report:
Attachments: Add typedef qsizetype for older Qt

Description Rob Savoury 2022-06-23 19:28:25 UTC
Created attachment 150105 [details]
Add typedef qsizetype for older Qt

SUMMARY

digiKam 7.7.0 FTBFS with Qt 5.9 due introducing use of code requiring a newer Qt version.

STEPS TO REPRODUCE
1. Download digiKam 7.7.0 source and extract.
2. Attempt building source using pbuilder in a clean chroot with all appropriate build dependencies.
3. Build fails with errors as described below.

OBSERVED RESULT

The build fails with errors related to use of qsizetype (requires Qt >= 5.10) in this new file:
core/libs/threadimageio/engine/dmemoryinfo.cpp

EXPECTED RESULT

That the build succeeds with Qt 5.9 which is still listed as a sufficient minimum Qt build dependency (Mainpage.dox) for digiKam 7.x versions (qt5-maintenance branch).

SOFTWARE/OS VERSIONS
Windows: n/a
macOS: n/a
Linux/KDE Plasma: Ubuntu 18.04 / KDE 5.44
(available in About System)
KDE Plasma Version: 5.44
KDE Frameworks Version: 5.44
Qt Version: 5.9.5

ADDITIONAL INFORMATION

Adding the following typedef (see attached patch) -- per Qt 5.10 source in src/corelib/global/qglobal.h -- to core/libs/threadimageio/engine/dmemoryinfo.h fixes the build with Qt 5.9.x (ie. such as Qt 5.9.5 in Ubuntu 18.04 Bionic LTS):

using qsizetype = QIntegerForSizeof<std::size_t>::Signed;

Here is the relevant Qt documentation:

https://doc.qt.io/archives/qt-5.11/qtglobal.html#qsizetype-typedef

Note that although qsizetype was introduced in Qt 5.10 it was not included in the Qt 5.10 documentation page, hence linking to Qt 5.11 documentation here.
Comment 1 caulier.gilles 2022-06-25 04:08:42 UTC
Git commit 22f9fe82749caa52dd58f52efdb4447f30453f01 by Gilles Caulier.
Committed on 25/06/2022 at 04:06.
Pushed by cgilles into branch 'qt5-maintenance'.
FIXED-IN: 7.8.0

M  +2    -1    NEWS

https://invent.kde.org/graphics/digikam/commit/22f9fe82749caa52dd58f52efdb4447f30453f01
Comment 2 caulier.gilles 2022-06-25 04:11:27 UTC
Git commit 6861c91094b2190171a6ebd82d9af74633ee9f18 by Gilles Caulier, on behalf of Rob Savoury.
Committed on 25/06/2022 at 04:06.
Pushed by cgilles into branch 'qt5-maintenance'.

Fix build with older Qt

New dmemoryinfo uses qsizetype introduced in Qt 5.10 so add this typedef for a
successful build with older Qt 5.9.5 as found in Ubuntu 18.04 Bionic LTS.

M  +3    -0    core/libs/threadimageio/engine/dmemoryinfo.h

https://invent.kde.org/graphics/digikam/commit/6861c91094b2190171a6ebd82d9af74633ee9f18