Files
nixpkgs/pkgs/by-name/kr/krita/generic.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

179 lines
3.3 KiB
Nix

{
mkDerivation,
lib,
stdenv,
fetchpatch,
fetchurl,
cmake,
extra-cmake-modules,
karchive,
kconfig,
kwidgetsaddons,
kcompletion,
kcoreaddons,
kguiaddons,
ki18n,
kitemmodels,
kitemviews,
kwindowsystem,
kio,
kcrash,
breeze-icons,
boost,
libraw,
fftw,
eigen,
exiv2,
fribidi,
libaom,
libheif,
#libkdcraw,
lcms2,
gsl,
openexr,
giflib,
libjxl,
mlt,
openjpeg,
opencolorio,
xsimd,
poppler,
curl,
ilmbase,
immer,
kseexpr,
lager,
libmypaint,
libunibreak,
libwebp,
qtmultimedia,
qtx11extras,
quazip,
SDL2,
zug,
pkg-config,
python3Packages,
version,
kde-channel,
hash,
}:
mkDerivation rec {
pname = "krita-unwrapped";
inherit version;
src = fetchurl {
url = "mirror://kde/${kde-channel}/krita/${version}/krita-${version}.tar.gz";
inherit hash;
};
patches = [
# Fixes build with SIP 6.8
(fetchpatch {
name = "bump-SIP-ABI-version-to-12.8.patch";
url = "https://invent.kde.org/graphics/krita/-/commit/2d71c47661d43a4e3c1ab0c27803de980bdf2bb2.diff";
hash = "sha256-U3E44nj4vra++PJV20h4YHjES78kgrJtr4ktNeQfOdA=";
})
];
nativeBuildInputs = [
cmake
extra-cmake-modules
pkg-config
python3Packages.sip
];
buildInputs = [
karchive
kconfig
kwidgetsaddons
kcompletion
kcoreaddons
kguiaddons
ki18n
kitemmodels
kitemviews
kwindowsystem
kio
kcrash
breeze-icons
boost
libraw
fftw
eigen
exiv2
fribidi
lcms2
gsl
openexr
lager
libaom
libheif
#libkdcraw
giflib
libjxl
mlt
openjpeg
opencolorio
xsimd
poppler
curl
ilmbase
immer
kseexpr
libmypaint
libunibreak
libwebp
qtmultimedia
qtx11extras
quazip
SDL2
zug
python3Packages.pyqt5
];
env.NIX_CFLAGS_COMPILE = toString (lib.optional stdenv.cc.isGNU "-Wno-deprecated-copy");
# Krita runs custom python scripts in CMake with custom PYTHONPATH which krita determined in their CMake script.
# Patch the PYTHONPATH so python scripts can import sip successfully.
postPatch =
let
pythonPath = python3Packages.makePythonPath (
with python3Packages;
[
sip
setuptools
]
);
in
''
substituteInPlace cmake/modules/FindSIP.cmake \
--replace 'PYTHONPATH=''${_sip_python_path}' 'PYTHONPATH=${pythonPath}'
substituteInPlace cmake/modules/SIPMacros.cmake \
--replace 'PYTHONPATH=''${_krita_python_path}' 'PYTHONPATH=${pythonPath}'
substituteInPlace plugins/impex/jp2/jp2_converter.cc \
--replace '<openjpeg.h>' '<${openjpeg.incDir}/openjpeg.h>'
'';
cmakeBuildType = "RelWithDebInfo";
cmakeFlags = [
"-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
"-DPYQT_SIP_DIR_OVERRIDE=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
"-DBUILD_KRITA_QT_DESIGNER_PLUGINS=ON"
];
meta = {
description = "Free and open source painting application";
homepage = "https://krita.org/";
maintainers = with lib.maintainers; [
sifmelcara
nek0
];
mainProgram = "krita";
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Only;
};
}