Bug 444296

Summary: digiKam starts but does not open a window. Showfoto does the same.
Product: [Applications] digikam Reporter: Tom van Dijk <tomvdijk>
Component: Bundle-WindowsAssignee: Tom van Dijk <tomvdijk>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, metzpinguin, null, tomvdijk
Priority: NOR    
Version First Reported In: 7.3.0   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In: 7.7.0
Sentry Crash Report:
Attachments: dbgview log file
list of windows background processes

Description Tom van Dijk 2021-10-23 21:45:56 UTC
SUMMARY



STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 caulier.gilles 2021-10-24 03:00:51 UTC
Which Windows version do you use exactly ?
Comment 2 Tom van Dijk 2021-10-24 09:25:54 UTC
Windows 10

Verstuurd vanaf mijn iPhone

> Op 24 okt. 2021 om 05:00 heeft bugzilla_noreply@kde.org het volgende geschreven:
> 
> https://bugs.kde.org/show_bug.cgi?id=444296
> 
> caulier.gilles@gmail.com changed:
> 
>           What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                 CC|                            |caulier.gilles@gmail.com
>          Component|general                     |Bundle-Windows
> 
> --- Comment #1 from caulier.gilles@gmail.com ---
> Which Windows version do you use exactly ?
> 
> -- 
> You are receiving this mail because:
> You reported the bug.
Comment 3 caulier.gilles 2021-10-24 09:32:59 UTC
Ok. there is nothing special about Windows 10 and later. digiKam is compiled for Windows >= 7.x compatibility.

Please install DebugView from Microsoft to get digiKam debug traces and follow instructions on this page for Windows host :

https://digikam.org/contribute/

Gilles Caulier
Comment 4 Tom van Dijk 2021-10-24 13:36:05 UTC
I have uploaded the dbgview.log file. 
For your info my system has a NAS system and I am using OneDrive.
The software is installed on a local drive.
regards,
Tom
Comment 5 Tom van Dijk 2021-10-24 13:39:07 UTC
Created attachment 142816 [details]
dbgview log file
Comment 6 Tom van Dijk 2021-10-24 13:40:36 UTC
Created attachment 142818 [details]
list of windows background processes
Comment 7 Maik Qualmann 2021-10-24 14:41:44 UTC
Did you try to start digiKam while the DebugView program was started? There is no entry at all from digiKam, all entries come from other programs. Which anti-virus program do you use?

Maik
Comment 8 Tom van Dijk 2021-10-24 15:15:45 UTC
Yes I did. I have just tried it again and  there are no entries.
I do see digiKam in the list of background processes, but I don't get the icon in the windows taskbar.
I'm using Kapsersky anti-virus, I have tried to start digiKam with the Kaspersky app disabled but that did not change anything.
Comment 9 Tom van Dijk 2021-10-25 21:14:36 UTC
Yes I did. I have just tried it again and  there are no entries.
I do see digiKam in the list of background processes, but I don't get the icon in the windows taskbar.
I'm using Kapsersky anti-virus, I have tried to start digiKam with the Kaspersky app disabled but that did not change anything.

-----Oorspronkelijk bericht-----
Van: Maik Qualmann <bugzilla_noreply@kde.org> 
Verzonden: zondag 24 oktober 2021 16:42
Aan: tomvdijk@home.nl
Onderwerp: [digikam] [Bug 444296] digiKam starts but does not open a window. Showfoto does the same.

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

--- Comment #7 from Maik Qualmann <metzpinguin@gmail.com> --- Did you try to start digiKam while the DebugView program was started? There is no entry at all from digiKam, all entries come from other programs. Which anti-virus program do you use?

Maik

--
You are receiving this mail because:
You are on the CC list for the bug.
You reported the bug.
You are the assignee for the bug.=
Comment 10 Maik Qualmann 2021-10-26 06:00:08 UTC
We won't find a solution here. I remember we had the same problem with a user some time ago. His problem only existed on one user account, the problem did not occur on other user accounts.

Maik
Comment 11 Maik Qualmann 2021-10-26 06:05:22 UTC
Since no debug messages appear, which are output immediately after the start, I suspect that Windows digiKam loaded but did not start, for whatever reason ...

Maik
Comment 12 Tom van Dijk 2021-10-28 12:16:59 UTC
I have added another user account on my PC and the program worked OK.
This new user did not have access to the NAS server. Is that where the problem may exist?
Regards,
Tom

-----Oorspronkelijk bericht-----
Van: Maik Qualmann <bugzilla_noreply@kde.org> 
Verzonden: dinsdag 26 oktober 2021 8:00
Aan: tomvdijk@home.nl
Onderwerp: [digikam] [Bug 444296] digiKam starts but does not open a window. Showfoto does the same.

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

--- Comment #10 from Maik Qualmann <metzpinguin@gmail.com> --- We won't find a solution here. I remember we had the same problem with a user some time ago. His problem only existed on one user account, the problem did not occur on other user accounts.

Maik

--
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
You reported the bug.=
Comment 13 Maik Qualmann 2021-10-28 12:40:21 UTC
It will not be related to access to a network drive.
I could imagine that you have installed another software that is also based on Qt and that software has set path variables or something similar. But it is difficult to give help from outside how you can look for the cause.

Maik
Comment 14 caulier.gilles 2021-12-13 10:14:29 UTC
Tom,

Stable digiKam 7.4.0 Windows Installer is published. Please check if problem is
reproducible.

Thanks in advance

Gilles Caulier
Comment 15 caulier.gilles 2022-01-07 04:35:16 UTC
Git commit 081966f3b2f1c236bc994c19a4cd9e7e82018271 by Gilles Caulier.
Committed on 06/01/2022 at 17:38.
Pushed by cgilles into branch 'master'.

Update DrMingw to last stable 0.9.4

M  +22   -42   project/bundles/3rdparty/ext_drmingw/CMakeLists.txt
M  +29   -15   project/bundles/3rdparty/ext_drmingw/drmingw-coreonly.patch
M  +4    -3    project/bundles/mxe/01-build-mxe.sh
M  +4    -1    project/bundles/mxe/04-build-installer.sh
M  +2    -1    project/bundles/mxe/rll.py

https://invent.kde.org/graphics/digikam/commit/081966f3b2f1c236bc994c19a4cd9e7e82018271

diff --git a/project/bundles/3rdparty/ext_drmingw/CMakeLists.txt b/project/bundles/3rdparty/ext_drmingw/CMakeLists.txt
index ae74fbb15b..6ffe0cd1bd 100644
--- a/project/bundles/3rdparty/ext_drmingw/CMakeLists.txt
+++ b/project/bundles/3rdparty/ext_drmingw/CMakeLists.txt
@@ -11,20 +11,24 @@ set(PREFIX_ext_drmingw "${EXTPREFIX}")
 # Compile DrMingw source code

 ExternalProject_Add(ext_drmingw
+
     DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
-    URL https://github.com/jrfonseca/drmingw/archive/0.9.2.tar.gz
-    URL_MD5 08f6ab4587deeea2406a69a115d7a8c7
+
+    GIT_REPOSITORY https://github.com/jrfonseca/drmingw.git
+    GIT_TAG 0.9.4

     INSTALL_DIR ${EXTPREFIX_drmingw}

     PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/drmingw-coreonly.patch

-    CONFIGURE_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../../../../bootstrap.mxe <SOURCE_DIR>/. &&
-                      <SOURCE_DIR>/bootstrap.mxe ${MXE_BUILDROOT} RelWithDebInfo -DBUILD_TESTING=OFF
+    CONFIGURE_COMMAND git submodule update --init &&
+                      cp ${CMAKE_CURRENT_SOURCE_DIR}/../../../../bootstrap.mxe <SOURCE_DIR>/. &&
+                      <SOURCE_DIR>/bootstrap.mxe ${MXE_BUILDROOT} RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_PythonInterp=1 -DCMAKE_DISABLE_FIND_PACKAGE_WinDbg=1

     BUILD_COMMAND cd <SOURCE_DIR>/build.mxe && $(MAKE)

-    INSTALL_COMMAND cd <SOURCE_DIR>/build.mxe && make install/fast
+    INSTALL_COMMAND cd <SOURCE_DIR>/build.mxe && make install/fast &&
+                    ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/build.mxe/thirdparty/libz.dll ${PREFIX_ext_drmingw}/bin/

     UPDATE_COMMAND ""
     BUILD_IN_SOURCE 1
@@ -33,44 +37,20 @@ ExternalProject_Add(ext_drmingw

 # Deploying DrMingw run-time dependencies

-if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
-
-    # 64 bits
-
-    ExternalProject_Add(ext_drmingw_deps
-        DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
-        URL https://github.com/jrfonseca/drmingw/releases/download/0.9.2/drmingw-0.9.2-win64.7z
-        URL_HASH MD5=687f29c0c6dc961890e7b4277a87c8a2
-
-        INSTALL_DIR ${PREFIX_ext_drmingw}
-        CONFIGURE_COMMAND ""
-        BUILD_COMMAND ""
-        INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/dbghelp.dll ${PREFIX_ext_drmingw}/bin/
-                COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.dll ${PREFIX_ext_drmingw}/bin/
-                COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.yes ${PREFIX_ext_drmingw}/bin/
-
-        UPDATE_COMMAND ""
-   )
-
-else()
-
-    # 32 bits
-
-    ExternalProject_Add(ext_drmingw_deps
-        DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
-        URL https://github.com/jrfonseca/drmingw/releases/download/0.9.2/drmingw-0.9.2-win32.7z
-        URL_HASH MD5=78783e43b3509041b86597add2b8c028
-
-        INSTALL_DIR ${PREFIX_ext_drmingw}
-        CONFIGURE_COMMAND ""
-        BUILD_COMMAND ""
-        INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/dbghelp.dll ${PREFIX_ext_drmingw}/bin/
-                COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.dll ${PREFIX_ext_drmingw}/bin/
-                COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.yes ${PREFIX_ext_drmingw}/bin/
+ExternalProject_Add(ext_drmingw_deps
+    DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
+    URL https://github.com/jrfonseca/drmingw/releases/download/0.9.3/drmingw-0.9.3-win64.7z
+    URL_HASH MD5=f2a2e62a0214fe43525cf380d639b927

-        UPDATE_COMMAND ""
-    )
+    INSTALL_DIR ${PREFIX_ext_drmingw}
+    CONFIGURE_COMMAND ""
+    BUILD_COMMAND ""
+    INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/dbghelp.dll ${PREFIX_ext_drmingw}/bin/
+            COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/dbgcore.dll ${PREFIX_ext_drmingw}/bin/
+            COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.dll ${PREFIX_ext_drmingw}/bin/
+            COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/bin/symsrv.yes ${PREFIX_ext_drmingw}/bin/

-endif()
+    UPDATE_COMMAND ""
+)

 add_dependencies(ext_drmingw ext_drmingw_deps)
diff --git a/project/bundles/3rdparty/ext_drmingw/drmingw-coreonly.patch b/project/bundles/3rdparty/ext_drmingw/drmingw-coreonly.patch
index c6f4d7055d..1169d1ed7c 100644
--- a/project/bundles/3rdparty/ext_drmingw/drmingw-coreonly.patch
+++ b/project/bundles/3rdparty/ext_drmingw/drmingw-coreonly.patch
@@ -1,8 +1,35 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b2bdb35..733bc95 100644
+index 9dad199..77b72f8 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -157,8 +157,8 @@ set (MGWHELP_IMPLIB ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libmgwhelp.a)
+@@ -64,16 +64,16 @@ add_compiler_flags (-fno-strict-aliasing)
+ include (StaticCRT)
+
+ # Avoid Posix threads
+-execute_process (
+-    COMMAND "${CMAKE_COMMAND}" -E echo "#include <thread>\n#ifdef _GLIBCXX_HAS_GTHREADS\n#error _GLIBCXX_HAS_GTHREADS\n#endif"
+-    COMMAND "${CMAKE_CXX_COMPILER}" -x c++ -E -
+-    RESULT_VARIABLE STATUS_CXX11_THREADS
+-    OUTPUT_QUIET
+-    ERROR_QUIET
+-)
+-if (NOT STATUS_CXX11_THREADS EQUAL 0)
+-    message (SEND_ERROR "Win32 threads recommended.")
+-endif ()
++#execute_process (
++#    COMMAND "${CMAKE_COMMAND}" -E echo "#include <thread>\n#ifdef _GLIBCXX_HAS_GTHREADS\n#error _GLIBCXX_HAS_GTHREADS\n#endif"
++#    COMMAND "${CMAKE_CXX_COMPILER}" -x c++ -E -
++#    RESULT_VARIABLE STATUS_CXX11_THREADS
++#    OUTPUT_QUIET
++#    ERROR_QUIET
++#)
++#if (NOT STATUS_CXX11_THREADS EQUAL 0)
++#    message (SEND_ERROR "Win32 threads recommended.")
++#endif ()
+
+ # Enable stack protection
+ # XXX: Broken on https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86832
+@@ -145,8 +145,8 @@ set (MGWHELP_IMPLIB ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libmgwhelp.a)
  set (EXCHNDL_IMPLIB ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libexchndl.a)

  add_subdirectory (src)
@@ -13,16 +40,3 @@ index b2bdb35..733bc95 100644


  ##############################################################################
-diff --git a/thirdparty/zlib/CMakeLists.txt b/thirdparty/zlib/CMakeLists.txt
-index bf66809..c2f3ccf 100644
---- a/thirdparty/zlib/CMakeLists.txt
-+++ b/thirdparty/zlib/CMakeLists.txt
-@@ -5,7 +5,7 @@ else ()
-     add_definitions (-DHAVE_UNISTD_H)
- endif ()
-
--add_library (z EXCLUDE_FROM_ALL
-+add_library (z STATIC
-     adler32.c
-     compress.c
-     crc32.c
diff --git a/project/bundles/mxe/01-build-mxe.sh b/project/bundles/mxe/01-build-mxe.sh
index 7791ff44a0..a9f9b30360 100755
--- a/project/bundles/mxe/01-build-mxe.sh
+++ b/project/bundles/mxe/01-build-mxe.sh
@@ -40,7 +40,7 @@ ORIG_PATH="$PATH"
 ORIG_WD="`pwd`"

 export PATH=$MXE_BUILDROOT/usr/bin:$MXE_INSTALL_PREFIX/qt5/bin:$PATH
-
+if [ ] ; then
 ###############################################################################################
 # Check if a previous bundle already exist

@@ -144,7 +144,7 @@ make MXE_TARGETS=$MXE_BUILD_TARGETS \
 echo -e "\n"

 #     gdb \
-
+fi
 #################################################################################################

 echo -e "\n"
@@ -182,8 +182,9 @@ ${MXE_BUILD_TARGETS}-cmake $ORIG_WD/../3rdparty \
 # Low level libraries
 # NOTE: The order to compile each component here is very important.

-${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_opencv     -- -j$CPU_CORES
+#${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_opencv     -- -j$CPU_CORES
 #${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_libgphoto2 -- -j$CPU_CORES
+
 ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_drmingw    -- -j$CPU_CORES

 #################################################################################################
diff --git a/project/bundles/mxe/04-build-installer.sh b/project/bundles/mxe/04-build-installer.sh
index cff78c7176..fd37007fd6 100755
--- a/project/bundles/mxe/04-build-installer.sh
+++ b/project/bundles/mxe/04-build-installer.sh
@@ -148,10 +148,13 @@ cp -r $MXE_INSTALL_PREFIX/bin/OpenAL32.dll                              $BUNDLED
 echo -e "\n---------- DrMinGw run-time"
 cp -r $MXE_INSTALL_PREFIX/bin/exchndl.dll                               $BUNDLEDIR/             2>/dev/null
 cp -r $MXE_INSTALL_PREFIX/bin/mgwhelp.dll                               $BUNDLEDIR/             2>/dev/null
-cp -r $MXE_INSTALL_PREFIX/bin/dbghelp.dll                               $BUNDLEDIR/             2>/dev/null
+cp -r $MXE_INSTALL_PREFIX/bin/dbgcore.dll                               $BUNDLEDIR/             2>/dev/null
 cp -r $MXE_INSTALL_PREFIX/bin/symsrv.dll                                $BUNDLEDIR/             2>/dev/null
 cp -r $MXE_INSTALL_PREFIX/bin/symsrv.yes                                $BUNDLEDIR/             2>/dev/null

+# Do not include this file from DrMinGW as it require extra devel dll from Microsoft at run-time.
+#cp -r $MXE_INSTALL_PREFIX/bin/dbghelp.dll                               $BUNDLEDIR/             2>/dev/null
+
 echo -e "\n---------- Copy executables with recursive dependencies in bundle directory\n"

 # Executables and plugins shared libraries dependencies scan ---------------------------------
diff --git a/project/bundles/mxe/rll.py b/project/bundles/mxe/rll.py
index 30d2895d30..1766fd02cb 100755
--- a/project/bundles/mxe/rll.py
+++ b/project/bundles/mxe/rll.py
@@ -90,7 +90,8 @@ blacklist = [
     "dxgi.dll",
     "dwrite.dll",
     "ncrypt.dll",
-    "dbghelp.dll",      # blacklisted dll from DrMinGW as it use MSVC dll to show debg dialog.
+    "dbghelp.dll",      # blacklisted dll from DrMinGW as it use MSVC dll to show debug dialog.
+    "dbgcore.dll",      # blacklisted dll from DrMinGW.
 ]

 # -----------------------------------------------
Comment 16 caulier.gilles 2022-01-07 04:52:39 UTC
Hi Tom and happy new year,

With next 7.5.0, digiKam has an update of an helper component used to catch dysfunctions and get a backtrace. I'm not sure if your dysfunction come from here, but in case of, please try digiKam 7.5.0 pre-release installer available here :

https://files.kde.org/digikam/

Thanks in advance

Gilles Caulier
Comment 17 caulier.gilles 2022-01-07 09:14:28 UTC
Git commit 3e9677cd13537a7880acc3c7b8306735c736931e by Gilles Caulier.
Committed on 07/01/2022 at 09:11.
Pushed by cgilles into branch 'master'.

Add new env.var under Windows to allow to disable DrMinGW at run time, in case of imcompatibility with Windows 11
Related: bug 443471

M  +43   -35   core/app/utils/digikam_globals_bundles.cpp

https://invent.kde.org/graphics/digikam/commit/3e9677cd13537a7880acc3c7b8306735c736931e
Comment 18 caulier.gilles 2022-01-07 12:28:04 UTC
Hi,

I suspect that the DrMinGW code for Windows, responsible to catch crash and report information at run-time, can be not yet compatible with Windows 11. The last version published that i updated in Windows installer was published at April 2021.

The small code can be disabled with an environment variable set before to start digiKam. All technical details are explained here to add a new variable in your Windows account. In fact it just a variable name with a key.

https://www.thewindowsclub.com/system-user-environment-variables-windows

The variable is "DK_DISABLE_DRMINGW" and the value to set is "1". That all. When digiKam start, it checks if variable exists in your account. If yes, DrMinGW is not initialized.

Please verify if the new Windows 7.5.0 pre-release installer published this morning can solve this issue with and without to set this variable in your account.

https://files.kde.org/digikam/

Thanks in advance

Gilles Caulier
Comment 19 Maik Qualmann 2022-06-08 19:49:03 UTC
*** Bug 455050 has been marked as a duplicate of this bug. ***
Comment 20 caulier.gilles 2022-06-20 11:15:12 UTC
Tom,

An important re-build of 7.7.0 pre-release installer for Windows is now available here :

https://files.kde.org/digikam/

It includes plenty of internal component updates. Please check if the problem still reproducible on your computer

Best

Gilles Caulier
Comment 21 Unknown 2022-06-22 09:48:38 UTC
Bonjour,
J'ai réglé le pb en remettant complétement à neuf W11 avec formatage du C:.
Je me demande si cela ne venait pas du fait que j'avais décocher la case concernant OpenCL dans la configuration
Comment 22 caulier.gilles 2022-06-22 11:28:54 UTC
Thanks for the feedback

I close this file now...

Gilles Caulier