depot/third_party/nixpkgs/pkgs/by-name/an/ansel/package.nix

187 lines
3.2 KiB
Nix

{
libsepol,
libavif,
bash,
curl,
librsvg,
libselinux,
util-linux,
libwebp,
libheif,
lib,
stdenv,
fetchFromGitHub,
libxslt,
libxml2,
cmake,
exiftool,
openexr_3,
glib,
python3Packages,
perlPackages,
lensfun,
intltool,
pkg-config,
desktop-file-utils,
libffi,
gtk3,
libjpeg,
pugixml,
pcre,
pcre2,
lcms,
sqlite,
json-glib,
jasper,
libsecret,
gmic,
icu,
colord,
colord-gtk,
libaom,
libdatrie,
libsysprof-capture,
libde265,
isocodes,
libpsl,
libepoxy,
libsoup_2_4,
exiv2,
libXtst,
libthai,
x265,
libXdmcp,
openjpeg,
libgpg-error,
libxkbcommon,
osm-gps-map,
wrapGAppsHook3,
rav1e,
dav1d,
libgcrypt,
graphicsmagick,
unstableGitUpdater,
}:
let
# requires libavif 0.x, see https://github.com/aurelienpierreeng/ansel/blob/e2c4a0a60cd80f741dd3d3c6ab72be9ac11234fb/src/CMakeLists.txt#L356
libavif_0_11 = libavif.overrideAttrs rec {
version = "0.11.1";
src = fetchFromGitHub {
owner = "AOMediaCodec";
repo = "libavif";
rev = "v${version}";
hash = "sha256-mUi0DU99XV3FzUZ8/9uJZU+W3fc6Bk6+y6Z78IRZ9Qs=";
};
};
in
stdenv.mkDerivation {
pname = "ansel";
version = "0-unstable-2024-10-28";
src = fetchFromGitHub {
owner = "aurelienpierreeng";
repo = "ansel";
rev = "7f23d9d38630629e559e76073ec4dbe71733c225";
hash = "sha256-2AEQlt75nnVD8ZFpVUEvgxRV94NtWDK0R+zVd/ytXuU=";
fetchSubmodules = true;
};
patches = [
# don't use absolute paths to binary or icon - see https://github.com/NixOS/nixpkgs/issues/308324
./fix-desktop-file.patch
];
strictDeps = true;
nativeBuildInputs = [
cmake
desktop-file-utils
exiftool
intltool
libxml2
pkg-config
perlPackages.perl
python3Packages.jsonschema
wrapGAppsHook3
];
buildInputs = [
bash # for patchShebangs to patch scripts in share/ansel/tools/
colord
colord-gtk
curl
dav1d
exiv2
json-glib
glib
gmic
graphicsmagick
gtk3
icu
isocodes
jasper
lcms
lensfun
libaom
libavif_0_11
libdatrie
libde265
libepoxy
libffi
libgcrypt
libgpg-error
libheif
libjpeg
libpsl
librsvg
libsecret
libselinux
libsepol
libsoup_2_4
libsysprof-capture
libthai
libwebp
libXdmcp
libxkbcommon
libxslt
libXtst
openexr_3
openjpeg
osm-gps-map
pcre
pcre2
perlPackages.Po4a
pugixml
rav1e
sqlite
util-linux
x265
];
preFixup = ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH ":" "$out/lib/ansel"
)
'';
passthru.updateScript = unstableGitUpdater {
# Tags inherited from Darktable, + a "nightly" 0.0.0 tag that new artefacts get attached to
hardcodeZeroVersion = true;
};
# cmake can't find the binary itself
cmakeFlags = [
(lib.cmakeFeature "Xsltproc_BIN" (lib.getExe' libxslt "xsltproc"))
];
meta = {
description = "Darktable fork minus the bloat plus some design vision";
homepage = "https://ansel.photos/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ];
mainProgram = "ansel";
platforms = lib.platforms.linux;
};
}