43 # For `digitaglinktree`
48 # For panorama and focus stacking
56 url = "https://invent.kde.org/graphics/digikam-test-data.git";
57 rev = "d02dd20b23cc279792325a0f03d21688547a7a59";
59 hash = "sha256-SvsmcniDRorwu9x9OLtHD9ftgquyoE5Kl8qDgqi1XdQ=";
63 stdenv.mkDerivation (finalAttrs: {
67 src = fetchFromGitLab {
68 domain = "invent.kde.org";
71 rev = "v${finalAttrs.version}";
72 hash = "sha256-GJYlxJkvFEXppVk0yC9ojszylfAGt3eBMAjNUu60XDY=";
76 ./disable-tests-download.patch
78 # Fix build with Qt 6.8
79 # FIXME: remove in next update
81 url = "https://invent.kde.org/graphics/digikam/-/commit/a8b49ed8df676cae0f48b3369831edde2b74903e.patch";
82 hash = "sha256-93kQ/Dg/A9FR83ChyiUaRwyelE1Iq14eIecUteVbnqI=";
94 kdePackages.wrapQtAppsHook
98 # Based on <https://www.digikam.org/api/index.html#externaldeps>,
99 # but it doesn’t have everything, so you also have to check the
102 # We list non‐Qt dependencies first to override Qt’s propagated
109 # TODO: Figure out how on earth to get it to pick up libjpeg8 for
120 # Qt WebEngine uses and propagates FFmpeg, and if it’s a
121 # different version it causes linker warnings.
135 kdePackages.qtnetworkauth
138 kdePackages.qtwayland
139 kdePackages.qtwebengine
140 kdePackages.qt5compat
141 kdePackages.qtmultimedia
146 kdePackages.kwindowsystem
149 kdePackages.kcoreaddons
150 kdePackages.knotifyconfig
151 kdePackages.knotifications
152 kdePackages.threadweaver
153 kdePackages.kiconthemes
154 kdePackages.kfilemetadata
155 kdePackages.kcalendarcore
158 # libksane and akonadi-contacts do not yet work when building for
162 checkInputs = [ kdePackages.qtdeclarative ];
164 postConfigure = lib.optionalString finalAttrs.finalPackage.doCheck ''
165 ln -s ${testData} $cmakeDir/test-data
170 core/dplugins/bqm/custom/userscript/userscript.cpp \
171 core/utilities/import/backend/cameracontroller.cpp \
172 --replace-fail '"/bin/bash"' ${lib.escapeShellArg "\"${runtimeShell}\""}
176 (lib.cmakeBool "BUILD_WITH_QT6" true)
177 (lib.cmakeBool "ENABLE_KFILEMETADATASUPPORT" true)
178 #(lib.cmakeBool "ENABLE_AKONADICONTACTSUPPORT" true)
179 (lib.cmakeBool "ENABLE_MEDIAPLAYER" true)
180 (lib.cmakeBool "ENABLE_APPSTYLES" true)
183 # Tests segfault for some reason…
184 # TODO: Get them working.
187 dontWrapGApps = true;
190 qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
191 qtWrapperArgs+=(--prefix PATH : ${
199 qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${kdePackages.qtbase.qtPluginPrefix}/digikam)
200 substituteInPlace $out/bin/digitaglinktree \
201 --replace "/usr/bin/perl" "${lib.getExe perl}" \
202 --replace "/usr/bin/sqlite3" "${lib.getExe sqlite}"
206 description = "Photo management application";
207 homepage = "https://www.digikam.org/";
208 changelog = "${finalAttrs.src.meta.homepage}-/blob/master/project/NEWS.${finalAttrs.version}";
209 sourceProvenance = [ lib.sourceTypes.fromSource ];
210 license = lib.licenses.gpl2Plus;
212 platforms = lib.platforms.linux;
213 mainProgram = "digikam";