depot/third_party/nixpkgs/pkgs/by-name/da/darktable/package.nix

171 lines
3.1 KiB
Nix

{
lib,
stdenv,
fetchurl,
libsoup_2_4,
graphicsmagick,
json-glib,
wrapGAppsHook3,
cairo,
cmake,
ninja,
curl,
perl,
desktop-file-utils,
exiv2,
glib,
glib-networking,
ilmbase,
gtk3,
intltool,
lcms2,
lensfun,
libX11,
libexif,
libgphoto2,
libjpeg,
libpng,
librsvg,
libtiff,
libjxl,
openexr_3,
osm-gps-map,
pkg-config,
sqlite,
libxslt,
openjpeg,
pugixml,
colord,
colord-gtk,
libwebp,
libsecret,
adwaita-icon-theme,
SDL2,
ocl-icd,
pcre,
gtk-mac-integration,
isocodes,
llvmPackages,
gmic,
libavif,
icu,
jasper,
libheif,
libaom,
portmidi,
lua,
}:
stdenv.mkDerivation rec {
version = "4.8.1";
pname = "darktable";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
hash = "sha256-kBsOLK7Tb7hhn99MYO37jTETS5R9MFS1xm/VXDivWZE=";
};
nativeBuildInputs = [
cmake
ninja
llvmPackages.llvm
pkg-config
intltool
perl
desktop-file-utils
wrapGAppsHook3
];
buildInputs =
[
cairo
curl
exiv2
glib
glib-networking
gtk3
ilmbase
lcms2
lensfun
libexif
libgphoto2
libjpeg
libpng
librsvg
libtiff
libjxl
openexr_3
sqlite
libxslt
libsoup_2_4
graphicsmagick
json-glib
openjpeg
pugixml
libwebp
libsecret
SDL2
adwaita-icon-theme
osm-gps-map
pcre
isocodes
gmic
libavif
icu
jasper
libheif
libaom
portmidi
lua
]
++ lib.optionals stdenv.hostPlatform.isLinux [
colord
colord-gtk
libX11
ocl-icd
]
++ lib.optional stdenv.hostPlatform.isDarwin gtk-mac-integration
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
cmakeFlags =
[
"-DBUILD_USERMANUAL=False"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DUSE_COLORD=OFF"
"-DUSE_KWALLET=OFF"
];
# darktable changed its rpath handling in commit
# 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
# binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in
# the wrappers:
preFixup =
let
libPathEnvVar = if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
libPathPrefix =
"$out/lib/darktable" + lib.optionalString stdenv.hostPlatform.isLinux ":${ocl-icd}/lib";
in
''
for f in $out/share/darktable/kernels/*.cl; do
sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
done
gappsWrapperArgs+=(
--prefix ${libPathEnvVar} ":" "${libPathPrefix}"
)
'';
meta = with lib; {
description = "Virtual lighttable and darkroom for photographers";
homepage = "https://www.darktable.org";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
flosse
mrVanDalo
paperdigits
freyacodes
];
};
}