Bug 455859 - digiKam 7.7.0 FTBFS with Qt 5.9 (as in Ubuntu 18.04 Bionic LTS)
Summary: digiKam 7.7.0 FTBFS with Qt 5.9 (as in Ubuntu 18.04 Bionic LTS)
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Portability-Compilation (other bugs)
Version First Reported In: 7.7.0
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-06-23 19:28 UTC by Rob Savoury
Modified: 2022-06-25 04:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 7.8.0
Sentry Crash Report:


Attachments
Add typedef qsizetype for older Qt (791 bytes, patch)
2022-06-23 19:28 UTC, Rob Savoury
Details

Note You need to log in before you can comment on or make changes to this bug.
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