Bug 518771 - Build system and documentation issues on ARM64 Linux
Summary: Build system and documentation issues on ARM64 Linux
Status: RESOLVED NOT A BUG
Alias: None
Product: digikam
Classification: Applications
Component: Portability-Compilation (other bugs)
Version First Reported In: 9.1.0
Platform: Other Other
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-04-10 09:58 UTC by sean
Modified: 2026-04-13 05:59 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 9.1.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sean 2026-04-10 09:58:45 UTC
First, thank you very much for taking the time to read this issue. DigiKam is an excellent application, and I sincerely appreciate the work that has gone into it.

I am currently trying to use the latest DigiKam on one of my embedded ARM64 systems (Orange Pi, Ubuntu 22.04). However, I noticed that the version available via apt is quite outdated.

To work around this, I tried building DigiKam from source. During that process, I encountered several build-related issues. From the perspective of someone who would like to contribute to the project, I found the current build workflow rather difficult to navigate. I would like to share some of the issues I ran into, and I would also be happy to help improve the situation if possible.

Issues and points of confusion
Lack of official ARM64 Linux support
I could not find any official installation packages or clear build instructions specifically for ARM64 Linux.

Dependency handling is complex across platforms
For example, on Linux, after using https://github.com/cgilles/digikam-install-deps.git to install dependencies, packaging the result as an AppImage becomes problematic because some dependency paths need to point to /opt/qt6/*.

In addition, Qt6 on ARM64 has specific OS requirements. According to the Qt documentation
(https://doc.qt.io/qt-6/linux.html), ARM64 is only supported on certain Linux distributions:

Ubuntu 24.04 (GCC 13.x)
Debian 11.6 (GCC 10)
Debian 12 (GCC 12)
However, this requirement does not appear to be checked in https://github.com/cgilles/digikam-install-deps.git.

Documentation issue in the official Linux build instructions
On the following page:
https://www.digikam.org/download/git/

In the Linux section for Qt6, the instructions currently say:

bash
./bootstrap.linux
cd build
make -j4
However, cd build appears to be incorrect; it should be:

bash
cd build.qt6
Build scripts are distributed across multiple locations
In addition to the build-related scripts under ./bootstrap.xxx, there are also scripts under digikam/project/bundles. For new contributors, this makes it difficult to understand which build path should be followed.

Suggestion
I would like to suggest considering a more unified build toolchain, similar to Chromium’s approach. For example, using a single dependency-fetching tool such as depot_tools could simplify dependency management across platforms and avoid the need for different installation methods in different environments.

It would also be helpful to have a build system that clearly separates outputs for different platforms, similar to:

gn gen out/android_debug
gn gen out/ios_debug
I hope these points are useful. If there is interest in improving the build system, I would be very happy to help in any way I can.

Thank you again for your time and for your work on DigiKam.
Comment 1 caulier.gilles 2026-04-11 08:00:10 UTC
* "Dependency handling is complex across platforms
For example, on Linux, after using https://github.com/cgilles/digikam-install-deps.git to install dependencies, packaging the result as an AppImage becomes problematic because some dependency paths need to point to /opt/qt6/*."

> We install in /opt/Qt6 to not mix with the system libs. By this way, qt5 (always supported) come from /usr/, Qt6 come from /opt/. Here my main dev computer is a macbook pro M1 Silicon (arm64). I run a VM (using UTM) with Ubuntu 24.04LTS and Plasma desktop. I compile last Qt 6.11 without problem installed in /opt/qt6 and Qt5 is installed in /usr using standard packages. No problem to support arm64 at all.

* "In addition, Qt6 on ARM64 has specific OS requirements. According to the Qt documentation
(https://doc.qt.io/qt-6/linux.html), ARM64 is only supported on certain Linux distributions:

Ubuntu 24.04 (GCC 13.x)
Debian 11.6 (GCC 10)
Debian 12 (GCC 12)
However, this requirement does not appear to be checked in https://github.com/cgilles/digikam-install-deps.git."

> Fell free to provide a merge request for this feature.
Comment 2 caulier.gilles 2026-04-11 08:01:38 UTC
Git commit 7056d2d167bbec267b3fa1c22317d4b3ec2d4078 by Gilles Caulier.
Committed on 11/04/2026 at 08:01.
Pushed by cgilles into branch 'dev'.

fic build directory

M  +1    -1    content/download/git.md

https://invent.kde.org/websites/digikam-org/-/commit/7056d2d167bbec267b3fa1c22317d4b3ec2d4078
Comment 3 caulier.gilles 2026-04-13 05:58:20 UTC
In addition, Qt6 on ARM64 has specific OS requirements. According to the Qt documentation
(https://doc.qt.io/qt-6/linux.html), ARM64 is only supported on certain Linux distributions:

Ubuntu 24.04 (GCC 13.x)
Debian 11.6 (GCC 10)
Debian 12 (GCC 12)
However, this requirement does not appear to be checked in https://github.com/cgilles/digikam-install-deps.git.

> The supported configurations list given at https://doc.qt.io/qt-6/linux.html#supported-configurations especially for Arm64 are the platteforms used with the CI used by Qt team to check if compilation pass or not. Other extra configuration can works of course. Qt team must limit the test cases here. It's the same for Intel support.
Comment 4 caulier.gilles 2026-04-13 05:59:52 UTC
It would also be helpful to have a build system that clearly separates outputs for different platforms, similar to:

gn gen out/android_debug
gn gen out/ios_debug
I hope these points are useful. If there is interest in improving the build system, I would be very happy to help in any way I can.

> Definitively no. Cmake toolkit is used here to check dependencies across different platforms.