{ mkDerivation, lib, fetchFromGitHub, cmake, doxygen, extra-cmake-modules, wrapGAppsHook # For `digitaglinktree` , perl, sqlite , qtbase , qtxmlpatterns , qtsvg , qtwebengine , akonadi-contacts , kcalendarcore , kconfigwidgets , kcoreaddons , kdoctools , kfilemetadata , knotifications , knotifyconfig , ktextwidgets , kwidgetsaddons , kxmlgui , bison , boost , eigen , exiv2 , ffmpeg , flex , jasper ? null, withJpeg2k ? false # disable JPEG2000 support, jasper has unfixed CVE , lcms2 , lensfun , libgphoto2 , libkipi , libksane , liblqr1 , libqtav , libusb1 , marble , libGL , libGLU , opencv3 , pcre , threadweaver # For panorama and focus stacking , enblend-enfuse , hugin , gnumake , oxygen }: mkDerivation rec { pname = "digikam"; version = "6.2.0"; src = fetchFromGitHub { owner = "KDE"; repo = "digikam"; rev = "v${version}"; sha256 = "1l1nb1nwicmip2jxhn5gzr7h60igvns0zs3kzp36r6qf4wvg3v2z"; }; nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ]; buildInputs = [ bison boost eigen exiv2 ffmpeg flex lcms2 lensfun libgphoto2 libkipi libksane liblqr1 libqtav libusb1 libGL libGLU opencv3 pcre qtbase qtxmlpatterns qtsvg qtwebengine akonadi-contacts kcalendarcore kconfigwidgets kcoreaddons kfilemetadata knotifications knotifyconfig ktextwidgets kwidgetsaddons kxmlgui marble oxygen threadweaver ] ++ lib.optionals withJpeg2k [ jasper ]; enableParallelBuilding = true; cmakeFlags = [ "-DENABLE_MYSQLSUPPORT=1" "-DENABLE_INTERNALMYSQL=1" "-DENABLE_MEDIAPLAYER=1" "-DENABLE_QWEBENGINE=on" ]; preFixup = '' gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]}) gappsWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname}) substituteInPlace $out/bin/digitaglinktree \ --replace "/usr/bin/perl" "${perl}/bin/perl" \ --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3" ''; meta = with lib; { description = "Photo Management Program"; license = licenses.gpl2; homepage = https://www.digikam.org; maintainers = with maintainers; [ the-kenny ]; platforms = platforms.linux; }; }