Bug 512862 - digikam failed to start
Summary: digikam failed to start
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Portability-Runtime (other bugs)
Version First Reported In: 8.8.0
Platform: Neon Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-02 11:59 UTC by pipapo
Modified: 2025-12-02 21:18 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description pipapo 2025-12-02 11:59:30 UTC
Description:
When launching digiKam (native package under KDE Neon), the application immediately aborts with:
ASSERT failure in KCatalogPrivate::setupGettextEnv: "You need to instantiate a Q*Application before using KCatalog", file kcatalog.cpp, line 306

Steps to reproduce:
1. Use KDE Neon (latest)
2. Install digiKam from Neon repository (apt install digikam)
3. Run 'digikam' from terminal

Expected result:
digiKam GUI starts normally.

Actual result:
Immediate abort with assertion message (as above).

digikam Version: 4:8.8.0-0zneon+24.04+noble+release+build27

Operating System: KDE neon User Edition
KDE Plasma Version: 6.5.3
KDE Frameworks Version: 6.20.0
Qt Version: 6.10.0
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-8665U CPU @ 1.90GHz
Memory: 32 GiB of RAM (31.0 GiB usable)
Graphics Processor: Intel® UHD Graphics 620

Please let me know if you need logs, backtraces or other diagnostic data — I’m happy to help.
Comment 1 caulier.gilles 2025-12-02 12:12:41 UTC
Sounds like you use Snap package. Please report this problem to the NEON team as given here :

https://www.digikam.org/download/binary/#linux-sandbox
Comment 2 Maik Qualmann 2025-12-02 12:13:37 UTC
Yes, the message appears at program startup; I've already tried to narrow down the problem.
Apparently, an ASSERT statement is being triggered, and Neo is configured to terminate the program when this happens.
So, we're using a string to be translated before the actual QApplication is created.

Please create a GDB backtrace.

gdb digikam
r + Enter
...Crash...
bt + Enter

Maik
Comment 3 pipapo 2025-12-02 15:54:25 UTC
(In reply to caulier.gilles from comment #1)
> Sounds like you use Snap package. Please report this problem to the NEON
> team as given here :
> 
> https://www.digikam.org/download/binary/#linux-sandbox

I installed it with apt.
Comment 4 caulier.gilles 2025-12-02 15:59:06 UTC
Please get a GDB backtrace as explained here :

https://www.digikam.org/contribute/#native-package
Comment 5 pipapo 2025-12-02 16:08:11 UTC
(In reply to Maik Qualmann from comment #2)
> Yes, the message appears at program startup; I've already tried to narrow
> down the problem.
> Apparently, an ASSERT statement is being triggered, and Neo is configured to
> terminate the program when this happens.
> So, we're using a string to be translated before the actual QApplication is
> created.
> 
> Please create a GDB backtrace.
> 
> gdb digikam
> r + Enter
> ...Crash...
> bt + Enter
> 
> Maik

Here's what I get in the Terminal. I hope this is usefull.

(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff364527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff36288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff433e1c3 in qAbort () at /usr/src/qt6-base-6.10.0-0zneon+24.04+noble+release+build138/src/corelib/global/qassert.cpp:46
#6  qt_maybe_message_fatal<QString&> (message=..., context=<optimized out>, msgType=QtFatalMsg)
at /usr/src/qt6-base-6.10.0-0zneon+24.04+noble+release+build138/src/corelib/global/qlogging.cpp:2165
#7  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
(msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7ffff404df08 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=ap@entry=0x7fffffffd0e8)
at /usr/src/qt6-base-6.10.0-0zneon+24.04+noble+release+build138/src/corelib/global/qlogging.cpp:412
#8  0x00007ffff433fa89 in QMessageLogger::fatal (this=<optimized out>, msg=0x7ffff404df08 "ASSERT failure in %s: \"%s\", file %s, line %d")
at /usr/src/qt6-base-6.10.0-0zneon+24.04+noble+release+build138/src/corelib/global/qlogging.cpp:901
#9  0x00007ffff432a541 in qt_assert_x
(where=where@entry=0x7ffff6eaa9a8 "KCatalogPrivate::setupGettextEnv", what=what@entry=0x7ffff6eaa968 "You need to instantiate a Q*Application before using KCatalog", file=file@entry=0x7ffff6ead241 "./src/i18n/kcatalog.cpp", line=line@entry=306)
at /usr/src/qt6-base-6.10.0-0zneon+24.04+noble+release+build138/src/corelib/global/qassert.cpp:122
#10 0x00007ffff6e49872 in KCatalogPrivate::setupGettextEnv (this=0x555555add020) at /usr/src/kf6-ki18n-6.20.0-0zneon+24.04+noble+release+build34/src/i18n/kcatalog.cpp:306
#11 0x00007ffff6e63f22 in KCatalog::translate (this=0x555555add640, msgctxt=..., msgid=...) at /usr/include/c++/13/bits/unique_ptr.h:199
#12 0x00007ffff6e59d4f in KLocalizedStringPrivate::translateRaw (msgstr=..., language=..., n=0, msgid_plural=..., msgid=..., msgctxt=..., languages=..., domain=...)
at /usr/src/kf6-ki18n-6.20.0-0zneon+24.04+noble+release+build34/src/i18n/klocalizedstring.cpp:466
#13 KLocalizedStringPrivate::toString
(this=0x555555adb7e0, domain=<optimized out>, languages=<optimized out>, format=Kuit::UndefinedFormat, isArgument=isArgument@entry=false)
at /usr/src/kf6-ki18n-6.20.0-0zneon+24.04+noble+release+build34/src/i18n/klocalizedstring.cpp:534
#14 0x00007ffff6e5a445 in KLocalizedString::toString (this=this@entry=0x7fffffffd770)
at /usr/src/kf6-ki18n-6.20.0-0zneon+24.04+noble+release+build34/src/i18n/klocalizedstring.cpp:481
#15 0x00007ffff5da6e08 in i18ndc (domain=<optimized out>, context=<optimized out>, text=<optimized out>) at /usr/include/KF6/KI18n/klocalizedstring.h:1546
#16 0x00007ffff5cdf76a in __static_initialization_and_destruction_0 ()
at /usr/src/digikam-4:8.8.0-0zneon+24.04+noble+release+build27/core/libs/dialogs/libsinfodlg_p.cpp:21
#17 _GLOBAL__sub_I_libsinfodlg_p.cpp(void) () at /usr/src/digikam-4:8.8.0-0zneon+24.04+noble+release+build27/core/libs/dialogs/libsinfodlg_p.cpp:111
#18 0x00007ffff7fca71f in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd978, env=env@entry=0x7fffffffd988) at ./elf/dl-init.c:74
#19 0x00007ffff7fca824 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>) at ./elf/dl-init.c:120
#20 _dl_init (main_map=0x7ffff7ffe2e0, argc=1, argv=0x7fffffffd978, env=0x7fffffffd988) at ./elf/dl-init.c:121
#21 0x00007ffff7fe45a0 in _dl_start_user () at /lib64/ld-linux-x86-64.so.2
#22 0x0000000000000001 in ??? ()
#23 0x00007fffffffddd3 in ??? ()
#24 0x0000000000000000 in ??? ()
Comment 6 Maik Qualmann 2025-12-02 16:22:43 UTC
Yes, that's clear, they are the static strings for "Yes" and "No" in the component dialog.

Maik
Comment 7 Maik Qualmann 2025-12-02 21:18:35 UTC
Git commit 8cd515299607b47952a8cba5807117de52ba6f1c by Maik Qualmann.
Committed on 02/12/2025 at 21:17.
Pushed by mqualmann into branch 'master'.

fix access to translation before a QApplication was created
FIXED-IN: 8.9.0

M  +1    -1    NEWS
M  +9    -9    core/libs/dialogs/libsinfodlg_features.cpp
M  +12   -12   core/libs/dialogs/libsinfodlg_libraries.cpp
M  +13   -13   core/libs/dialogs/libsinfodlg_opencv.cpp
M  +11   -3    core/libs/dialogs/libsinfodlg_p.cpp
M  +2    -2    core/libs/dialogs/libsinfodlg_p.h

https://invent.kde.org/graphics/digikam/-/commit/8cd515299607b47952a8cba5807117de52ba6f1c