https://bugs.kde.org/show_bug.cgi?id=449107

            Bug ID: 449107
           Summary: digiKam 7.5.0 FTBFS with Qt 5.9.5 (as found in Ubuntu
                    Bionic 18.04)
           Product: digikam
           Version: 7.5.0
          Platform: Ubuntu Packages
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Plugin-WebService-iNaturalist
          Assignee: digikam-bugs-n...@kde.org
          Reporter: savo...@savos.tech
  Target Milestone: ---

Created attachment 145895
  --> https://bugs.kde.org/attachment.cgi?id=145895&action=edit
Change QScopedPointer get to data (fix FTBFS with Qt 5.9.5)

SUMMARY

digiKam 7.5.0 FTBFS with Qt 5.9.5 due introducing use of code requiring a newer
Qt version.

STEPS TO REPRODUCE
1. Download digiKam 7.5.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 two distinct errors:

1) due use of QScopedPointer get function (Qt >= 5.11) in this file:

core/utilities/geolocation/geoiface/tiles/abstractmarkertiler.cpp

2) due use of key_value_iterator (Qt >= 5.10) in this file (iNaturalist):

core/dplugins/generic/webservices/inaturalist/inattalker.cpp

EXPECTED RESULT

That the build succeeds with Qt 5.9.5 as Qt 5.9 is (still, for now!) listed as
a sufficient minimum Qt build dependency for digiKam.

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

Changing the QScopedPointer get call to a data call fixes the first issue, as
per bug 440313 (see attached patch). However, the use of key_value_iterator is
more complex (for myself, not a C++ or Qt programmer!) and after a couple hours
looking at how to rework the new slotTimeout function in the iNaturalist plugin
with Qt 5.9 compatible iterators it was not obvious to me what would be
functionally equivalent.

So for a successful "unofficial" Ubuntu 18.04 build at the digiKam PPA that I
maintain the temporary solution was to remove the entire new slotTimeout
function from the iNaturalist plugin, specifically removing relevant code from
these two files:

core/dplugins/generic/webservices/inaturalist/inattalker.cpp
core/dplugins/generic/webservices/inaturalist/inattalker.h

No doubt there is a way to rework slotTimeout to use Qt 5.9 compatible
iterators, such that anyone running an older system who uploads to iNaturalist
will have the new timeout functionality as well.

Official documentation of relevance for the two issues:

1) https://doc.qt.io/archives/qt-5.11/qscopedpointer.html
2) https://doc.qt.io/archives/qt-5.10/qhash.html

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to