Bug 498990 - calligra 24.12.1 fails to build on armhf with error: ‘Calligra::Sheets::Value::Value(int)’ cannot be overloaded with ‘Calligra::Sheets::Value::Value(qsizetype)’
Summary: calligra 24.12.1 fails to build on armhf with error: ‘Calligra::Sheets::Value...
Status: RESOLVED FIXED
Alias: None
Product: calligracommon
Classification: Applications
Component: general (show other bugs)
Version: 24.12.0
Platform: Ubuntu Linux
: HI grave
Target Milestone: ---
Assignee: Carl Schwan
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-22 05:20 UTC by Rik Mills
Modified: 2025-02-16 10:14 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rik Mills 2025-01-22 05:20:31 UTC
In preparing calligra 24.12.1 for upload to the Ubuntu main archive, on armhf (32bit) ONLY the build fails with the error below. The build succeeds on all other supported architectures (note we do not build on i386).

This is critical, as calligra needs to be updated in Ubuntu or be removed from the archive due to ongoing transitions.  This build failure blocks doing the update. It is also anticipated that the same situation will occur in Debian.

https://launchpadlibrarian.net/771912348/buildlog_ubuntu-plucky-armhf.calligra_1%3A24.12.1-0ubuntu1~ubuntu25.04~ppa5_BUILDING.txt.gz

In file included from /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/EWIEGA46WW/../../../../../sheets/engine/Validity.h:25,
                 from /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/EWIEGA46WW/../../../../../sheets/engine/ValidityStorage.h:11,
                 from /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/EWIEGA46WW/moc_ValidityStorage.cpp:9,
                 from /<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/mocs_compilation.cpp:8:
/<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/EWIEGA46WW/../../../../../sheets/engine/Value.h:112:14: error: ‘Calligra::Sheets::Value::Value(int)’ cannot be overloaded with ‘Calligra::Sheets::Value::Value(qsizetype)’
  112 |     explicit Value(int i);
      |              ^~~~~
/<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/sheets/engine/calligrasheetsengine_autogen/EWIEGA46WW/../../../../../sheets/engine/Value.h:106:14: note: previous declaration ‘Calligra::Sheets::Value::Value(qsizetype)’
  106 |     explicit Value(qsizetype i);
      |              ^~~~~

SOFTWARE/OS VERSIONS
Linux: Ubuntu 25.04
GCC: 14.2.0
KDE Frameworks Version:  6.10.0
Qt Version:  6.8.1
Comment 1 Rik Mills 2025-01-22 05:27:11 UTC
I guess a likely culprit is: https://invent.kde.org/office/calligra/-/commit/99f4e507a96a98cb95a37f965c6453ca920f15e3
Comment 2 Rik Mills 2025-02-10 09:00:02 UTC
A patch has been added in Debian to address this.
https://salsa.debian.org/qt-kde-team/extras/calligra/-/blob/master/debian/patches/qsizetype-overload.diff?ref_type=heads
Comment 3 Pino Toscano 2025-02-16 09:38:59 UTC
Git commit 858f76b82f22e0b4e25f12ea16af08fa60620835 by Pino Toscano.
Committed on 16/02/2025 at 09:36.
Pushed by pino into branch 'master'.

sheets: fix conflict of Value(int) and Value(qsizetype)

qsizetype is equivalent to ssize_t, meaning signed 32bit on 32bit
architectures, and thus this overload conflicts with
Value(qsizetype) version on 32bit architectures.

Hence, to fix the issue disable Value(int) on 32bit architectures,
as its job is already done by Value(qsizetype).

Updates commit 99f4e507a96a98cb95a37f965c6453ca920f15e3.

M  +2    -0    sheets/engine/Value.cpp
M  +2    -0    sheets/engine/Value.h

https://invent.kde.org/office/calligra/-/commit/858f76b82f22e0b4e25f12ea16af08fa60620835
Comment 4 Pino Toscano 2025-02-16 10:14:32 UTC
Git commit c26259c424210066c19e953a6dda12a4529408a9 by Pino Toscano.
Committed on 16/02/2025 at 09:41.
Pushed by pino into branch 'release/24.12'.

sheets: fix conflict of Value(int) and Value(qsizetype)

qsizetype is equivalent to ssize_t, meaning signed 32bit on 32bit
architectures, and thus this overload conflicts with
Value(qsizetype) version on 32bit architectures.

Hence, to fix the issue disable Value(int) on 32bit architectures,
as its job is already done by Value(qsizetype).

Updates commit 99f4e507a96a98cb95a37f965c6453ca920f15e3.
(cherry picked from commit 858f76b82f22e0b4e25f12ea16af08fa60620835)

M  +2    -0    sheets/engine/Value.cpp
M  +2    -0    sheets/engine/Value.h

https://invent.kde.org/office/calligra/-/commit/c26259c424210066c19e953a6dda12a4529408a9