digiKam

Professional Photo Management with the Power of Open Source

Contribute


Table of Contents

🟠 Skill Level: INTERMEDIATE


To Developers

GIT Repository

Access the digiKam source code repository via the GIT page on the GitLab/KDE-Invent infrastructure.

digiKam project on gitlab


Submitting Patches

Patches must be based on the latest git/master revision (not a stable release or old beta version).

  1. Preferred Method: Create a Merge Request (MR) on GitLab/KDE-Invent using a fork of the project. Online discussions with developers are supported.
  2. Alternative Method: Generate a patch file and attach it to a Bugzilla entry:
    git diff HEAD > mydiff.patch
    

Note: Avoid using mailing lists or private emails for patch submissions.

digiKam project on gitlab


Checking for Memory Leaks

To detect memory leaks in digiKam on Linux, use Valgrind:

valgrind --tool=memcheck --leak-check=full --error-limit=no digikam

Report the output to the developers.


To Users

The easiest way to contribute is to spread the word about digiKam. You can also:


Reporting Bugs and Submitting Feature Requests

  1. Before to reporting a new entry, use the bug tracking search engine for all existing bug reports and feature requests.
  2. If no entry already exists about your topic, create a new one in the bug tracking system.


Freezes and Other Run-Time Issues

Linux Host

Run digiKam from the terminal to capture debug traces. Enable debug logging first:

export QT_LOGGING_RULES="digikam*=true"
digikam

Windows Host

Windows does not output application logs to the terminal. Use DebugView to capture logs.

If digiKam starts

  1. Go to Settings → Configure digiKam → Miscellaneous → System.
  2. Enable Internal debug logging.

digiKam Setup Miscs System

If digiKam does not start

  1. Open System Properties → Environment Variables.
  2. Add a new user variable:
    • Name: QT_LOGGING_RULES
    • Value: digikam*=true
  3. Run DebugView, then launch digiKam.

macOS Host

Run digiKam from the terminal to view debug traces:

export QT_LOGGING_RULES="digikam*=true"
/Applications/digiKam.org/digikam.app/Contents/MacOS/digikam

Dealing with Crashes in digiKam

Linux Host Using GDB

Native Package

  1. Ensure digiKam is compiled with debug symbols. Install the debug package if using a distribution package.

  2. Launch digiKam with GDB:

    gdb digikam
    (gdb) catch throw
    (gdb) run
    
  3. If digiKam crashes or freezes, generate a backtrace:

    (gdb) bt
    

    Copy the backtrace and exit GDB:

    (gdb) quit
    
  4. Share the crash report

AppImage Bundle

  1. Use the -debug version of the AppImage Download the debug version of digiKam (available on digikam.org).

  2. Make the file executable and extract the AppImage contents Open a terminal and run:

    chmod +x digikam-*-debug.appimage && ./digikam-*-debug.appimage --appimage-extract
    

    This will create a squashfs-root directory.

  3. Run the extracted AppImage in debug mode In the same terminal, execute:

    ./squashfs-root/AppRun debug
    

    digiKam will start and wait 30 seconds for the debugger to attach.

  4. Attach GDB to the process Open a second terminal and run the following command to attach the debugger:

    pid=$(pidof digikam) ; binary=$(readlink -f "/proc/$pid/exe") ; dir=$(dirname "\$binary") ; gdb "\$binary" -p \$pid -ex "set sysroot \$dir" -ex "set solib-search-path \$dir/usr/lib" -ex "catch throw" -ex "continue"
    

    GDB will automatically connect to the running digiKam process.

  5. If digiKam generate an exception Continue the execution:

    (gdb) c
    
  6. If digiKam crashes or freezes In the terminal where GDB is running:

    • Generate a backtrace:
      bt
      
    • Copy the output and exit GDB:
      quit
      
  7. Share the crash report


Windows Host

Using Visual Studio

  1. Install Visual Studio Community.
  2. Attach the debugger to the running digikam.exe process via Debug → Attach to Process.
  3. Reproduce the crash and check the Stack View for the backtrace.

Visual Studio Debugging digiKam

Using QtCreator

  1. Install QtCreator.
  2. Run digiKam in debug mode via Debug → Start Debugging → Start and Debug External Application.
  3. Enter the path to digikam.exe (e.g., C:\Program Files\digiKam\digikam.exe).

Qt Creator Debugging digiKam


macOS Host

  1. Install Xcode (includes lldb).
  2. Run digiKam in the debugger:
    lldb /Applications/digiKam.org/digikam.app/Contents/MacOS/digikam
    (lldb) r
    
  3. Reproduce the crash and generate a backtrace:
    (lldb) bt
    

Note: Use the -debug version of the PKG bundle for full debug symbols.


Application Translations

To contribute to digiKam’s internationalization:

digiKam Setup Languages Dialog


Writing and Translating the Documentation

Help with writing or translating the documentation is always welcome. The documentation uses Sphinx and ReStructuredText. Source code is hosted in a dedicated Gitlab/KdeInvents repository and propose a complete guide for the new contributors. The documentation translation use the same workflow proposed with the Application translations.

digiKam Online Documentation


Picture Samples

We need RAW, TIFF, HEIF, and JPEG files from various manufacturers (Canon, Nikon, Sony, etc.) to improve metadata support. We also welcome sample files with IPTC/XMP metadata from other applications (e.g., Adobe Photoshop).


Splash Screens and Background Photo

Photographers can submit their best photos for use as digiKam splash screens or welcome images. For details, visit this page.

digiKam Welcome Image

↑ Back to the Top ↑