nixpkgs/pkgs/applications/graphics/digikam/default.nix

165 lines
2.9 KiB
Nix
Raw Normal View History

{ mkDerivation, config, lib, fetchpatch, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
# For `digitaglinktree`
, perl, sqlite
, qtbase
, qtxmlpatterns
, qtsvg
, qtwebengine
2023-06-13 05:23:11 +00:00
, qtnetworkauth
, akonadi-contacts
, kcalendarcore
, kconfigwidgets
, kcoreaddons
, kdoctools
, kfilemetadata
, knotifications
, knotifyconfig
, ktextwidgets
, kwidgetsaddons
, kxmlgui
, bison
, boost
, eigen
, exiv2
, ffmpeg_4
, flex
2020-09-25 08:06:48 +00:00
, graphviz
, imagemagick
, lcms2
, lensfun
, libgphoto2
, libkipi
digikam: 5.4.0 -> 5.7.0 The build for the version 5.4.0 of digiKam has been broken at the time prior to this commit, which is the main reason for this update as I don't think it makes sense to fix the build for 5.4.0 when we're going to update it anyway. A lot has changed upstream between version 5.4.0 and 5.7.0 and it's too much to be summarized here, so here are the URLs to the upstream announcements: * https://www.digikam.org/news/2017-03-14_digiKam_5.5.0_is_released/ * https://www.digikam.org/news/2017-06-21-5.6.0-release-announcement/ * https://www.digikam.org/news/2017-09-11-5.7.0_release_announcement/ On the packaging side, we now no longer have the patch that disables -fno-operator-names because the build runs fine without that patch (which didn't even apply but I didn't check why) and IMO it doesn't make sense to rebase that patch for no reason. Additionally, there were build time dependencies lurking around in propagatedBuildInputs, which is kinda pointless and the application just runs fine if those dependencies are listed in buildInputs. While looking for clues about why that might be necessary I haven't found any comment about it in the source nor a clarification within the message of the commit where this has been introduced. The commit in question is be7b7d908f82e8ab16c43ffd0e240addd6f4018a. Apart from these changes, the rest is just adding a few dependencies (kcalcore, libksane, mesa and pcre) to get less errors during cmakeConfigurePhase. I've tested digiKam by playing around within a VM using photos I netcat'ed into it and it works so far. The VM was built using: nix-build nixos --arg configuration '{ pkgs, ... }: { imports = [ ./nixos/tests/common/user-account.nix ]; environment.systemPackages = [ pkgs.digikam ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.default = "plasma5"; virtualisation.memorySize = 1024; }' -A vm What I didn't test however was whether importing from a camera would work (as I don't have one), but aside from that, the application seems to run fine compared to the fact that it didn't even build until now :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @the-kenny, @urkud, @viric, @cillianderoiste, @ttuegel Cc: @jraygauthier, @fkz, @sh01, @lsix
2017-10-19 01:04:45 +00:00
, libksane
, liblqr1
, libqtav
, libusb1
, marble
, libGL
, libGLU
2020-11-21 08:41:50 +00:00
, opencv
digikam: 5.4.0 -> 5.7.0 The build for the version 5.4.0 of digiKam has been broken at the time prior to this commit, which is the main reason for this update as I don't think it makes sense to fix the build for 5.4.0 when we're going to update it anyway. A lot has changed upstream between version 5.4.0 and 5.7.0 and it's too much to be summarized here, so here are the URLs to the upstream announcements: * https://www.digikam.org/news/2017-03-14_digiKam_5.5.0_is_released/ * https://www.digikam.org/news/2017-06-21-5.6.0-release-announcement/ * https://www.digikam.org/news/2017-09-11-5.7.0_release_announcement/ On the packaging side, we now no longer have the patch that disables -fno-operator-names because the build runs fine without that patch (which didn't even apply but I didn't check why) and IMO it doesn't make sense to rebase that patch for no reason. Additionally, there were build time dependencies lurking around in propagatedBuildInputs, which is kinda pointless and the application just runs fine if those dependencies are listed in buildInputs. While looking for clues about why that might be necessary I haven't found any comment about it in the source nor a clarification within the message of the commit where this has been introduced. The commit in question is be7b7d908f82e8ab16c43ffd0e240addd6f4018a. Apart from these changes, the rest is just adding a few dependencies (kcalcore, libksane, mesa and pcre) to get less errors during cmakeConfigurePhase. I've tested digiKam by playing around within a VM using photos I netcat'ed into it and it works so far. The VM was built using: nix-build nixos --arg configuration '{ pkgs, ... }: { imports = [ ./nixos/tests/common/user-account.nix ]; environment.systemPackages = [ pkgs.digikam ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.default = "plasma5"; virtualisation.memorySize = 1024; }' -A vm What I didn't test however was whether importing from a camera would work (as I don't have one), but aside from that, the application seems to run fine compared to the fact that it didn't even build until now :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @the-kenny, @urkud, @viric, @cillianderoiste, @ttuegel Cc: @jraygauthier, @fkz, @sh01, @lsix
2017-10-19 01:04:45 +00:00
, pcre
, threadweaver
2020-09-25 08:06:48 +00:00
, x265
2022-04-23 00:55:35 +00:00
, jasper
# For panorama and focus stacking
, enblend-enfuse
, hugin
, gnumake
, breeze-icons
, oxygen
, cudaSupport ? config.cudaSupport
, cudaPackages ? {}
}:
2017-05-16 15:56:41 +00:00
mkDerivation rec {
pname = "digikam";
2023-07-11 04:45:27 +00:00
version = "8.1.0";
src = fetchurl {
2021-12-21 23:33:48 +00:00
url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
2023-07-11 04:45:27 +00:00
hash = "sha256-BQPANORF/0JPGKZxXAp6eb5KXgyCs+vEYaIc7DdFpbM=";
};
# Fix build against exiv2 0.28.1
patches = [
(fetchpatch {
url = "https://invent.kde.org/graphics/digikam/-/commit/f5ea91a7f6c1926815ec68f3e0176d6c15b83051.patch";
hash = "sha256-5g2NaKKNKVfgW3dTO/IP/H/nZ0YAIOmdPAumy3NEaNg=";
})
];
nativeBuildInputs = [
cmake
doxygen
extra-cmake-modules
kdoctools
wrapGAppsHook
] ++ lib.optionals cudaSupport (with cudaPackages; [
cuda_nvcc
]);
buildInputs = [
bison
boost
eigen
exiv2
ffmpeg_4
flex
2020-09-25 08:06:48 +00:00
graphviz
imagemagick
lcms2
lensfun
libgphoto2
libkipi
digikam: 5.4.0 -> 5.7.0 The build for the version 5.4.0 of digiKam has been broken at the time prior to this commit, which is the main reason for this update as I don't think it makes sense to fix the build for 5.4.0 when we're going to update it anyway. A lot has changed upstream between version 5.4.0 and 5.7.0 and it's too much to be summarized here, so here are the URLs to the upstream announcements: * https://www.digikam.org/news/2017-03-14_digiKam_5.5.0_is_released/ * https://www.digikam.org/news/2017-06-21-5.6.0-release-announcement/ * https://www.digikam.org/news/2017-09-11-5.7.0_release_announcement/ On the packaging side, we now no longer have the patch that disables -fno-operator-names because the build runs fine without that patch (which didn't even apply but I didn't check why) and IMO it doesn't make sense to rebase that patch for no reason. Additionally, there were build time dependencies lurking around in propagatedBuildInputs, which is kinda pointless and the application just runs fine if those dependencies are listed in buildInputs. While looking for clues about why that might be necessary I haven't found any comment about it in the source nor a clarification within the message of the commit where this has been introduced. The commit in question is be7b7d908f82e8ab16c43ffd0e240addd6f4018a. Apart from these changes, the rest is just adding a few dependencies (kcalcore, libksane, mesa and pcre) to get less errors during cmakeConfigurePhase. I've tested digiKam by playing around within a VM using photos I netcat'ed into it and it works so far. The VM was built using: nix-build nixos --arg configuration '{ pkgs, ... }: { imports = [ ./nixos/tests/common/user-account.nix ]; environment.systemPackages = [ pkgs.digikam ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.default = "plasma5"; virtualisation.memorySize = 1024; }' -A vm What I didn't test however was whether importing from a camera would work (as I don't have one), but aside from that, the application seems to run fine compared to the fact that it didn't even build until now :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @the-kenny, @urkud, @viric, @cillianderoiste, @ttuegel Cc: @jraygauthier, @fkz, @sh01, @lsix
2017-10-19 01:04:45 +00:00
libksane
liblqr1
libqtav
libusb1
libGL
libGLU
2020-11-21 08:41:50 +00:00
opencv
digikam: 5.4.0 -> 5.7.0 The build for the version 5.4.0 of digiKam has been broken at the time prior to this commit, which is the main reason for this update as I don't think it makes sense to fix the build for 5.4.0 when we're going to update it anyway. A lot has changed upstream between version 5.4.0 and 5.7.0 and it's too much to be summarized here, so here are the URLs to the upstream announcements: * https://www.digikam.org/news/2017-03-14_digiKam_5.5.0_is_released/ * https://www.digikam.org/news/2017-06-21-5.6.0-release-announcement/ * https://www.digikam.org/news/2017-09-11-5.7.0_release_announcement/ On the packaging side, we now no longer have the patch that disables -fno-operator-names because the build runs fine without that patch (which didn't even apply but I didn't check why) and IMO it doesn't make sense to rebase that patch for no reason. Additionally, there were build time dependencies lurking around in propagatedBuildInputs, which is kinda pointless and the application just runs fine if those dependencies are listed in buildInputs. While looking for clues about why that might be necessary I haven't found any comment about it in the source nor a clarification within the message of the commit where this has been introduced. The commit in question is be7b7d908f82e8ab16c43ffd0e240addd6f4018a. Apart from these changes, the rest is just adding a few dependencies (kcalcore, libksane, mesa and pcre) to get less errors during cmakeConfigurePhase. I've tested digiKam by playing around within a VM using photos I netcat'ed into it and it works so far. The VM was built using: nix-build nixos --arg configuration '{ pkgs, ... }: { imports = [ ./nixos/tests/common/user-account.nix ]; environment.systemPackages = [ pkgs.digikam ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.default = "plasma5"; virtualisation.memorySize = 1024; }' -A vm What I didn't test however was whether importing from a camera would work (as I don't have one), but aside from that, the application seems to run fine compared to the fact that it didn't even build until now :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @the-kenny, @urkud, @viric, @cillianderoiste, @ttuegel Cc: @jraygauthier, @fkz, @sh01, @lsix
2017-10-19 01:04:45 +00:00
pcre
2020-09-25 08:06:48 +00:00
x265
2022-04-23 00:55:35 +00:00
jasper
2017-05-16 15:56:41 +00:00
qtbase
qtxmlpatterns
qtsvg
qtwebengine
2023-06-13 05:23:11 +00:00
qtnetworkauth
2017-05-16 15:56:41 +00:00
akonadi-contacts
kcalendarcore
2017-05-16 15:56:41 +00:00
kconfigwidgets
kcoreaddons
kfilemetadata
knotifications
knotifyconfig
ktextwidgets
kwidgetsaddons
kxmlgui
breeze-icons
2017-05-16 15:56:41 +00:00
marble
oxygen
2017-05-16 15:56:41 +00:00
threadweaver
] ++ lib.optionals cudaSupport (with cudaPackages; [
cuda_cudart
]);
cmakeFlags = [
"-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1"
"-DENABLE_MEDIAPLAYER=1"
"-DENABLE_QWEBENGINE=on"
"-DENABLE_APPSTYLES=on"
2022-04-23 00:55:35 +00:00
"-DCMAKE_CXX_FLAGS=-I${libksane}/include/KF5" # fix `#include <ksane_version.h>`
];
2020-11-01 14:22:55 +00:00
dontWrapGApps = true;
2017-05-16 15:56:41 +00:00
preFixup = ''
2020-11-01 14:22:55 +00:00
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
qtWrapperArgs+=(--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"
'';
2017-05-16 15:56:41 +00:00
meta = with lib; {
description = "Photo Management Program";
2017-05-16 15:56:41 +00:00
license = licenses.gpl2;
homepage = "https://www.digikam.org";
2017-05-16 15:56:41 +00:00
platforms = platforms.linux;
mainProgram = "digikam";
};
}