diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/video/natron/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/video/natron/default.nix | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/natron/default.nix b/nixpkgs/pkgs/applications/video/natron/default.nix new file mode 100644 index 000000000000..5ca88c666ee8 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/natron/default.nix @@ -0,0 +1,103 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, pkg-config +, wrapQtAppsHook +, boost +, cairo +, ceres-solver +, expat +, extra-cmake-modules +, glog +, libXdmcp +, python3 +, wayland +}: + +let + minorVersion = "2.5"; + version = "${minorVersion}.0"; + OpenColorIO-Configs = fetchFromGitHub { + owner = "NatronGitHub"; + repo = "OpenColorIO-Configs"; + rev = "Natron-v${minorVersion}"; + hash = "sha256-TD7Uge9kKbFxOmOCn+TSQovnKTmFS3uERTu5lmZFHbc="; + }; +in +stdenv.mkDerivation { + inherit version; + pname = "natron"; + + src = fetchFromGitHub { + owner = "NatronGitHub"; + repo = "Natron"; + rev = "v${version}"; + fetchSubmodules = true; + hash = "sha256-dgScbfyulZPlrngqSw7xwipldoRd8uFO8VP9mlJyhQ8="; + }; + + patches = [ + # Fix gcc-13 build: + # https://github.com/NatronGitHub/Natron/pull/929 + (fetchpatch { + name = "gcc-13.patch"; + url = "https://github.com/NatronGitHub/Natron/commit/4b44fb18293035873b35c3a2d2aa29da78cb8740.patch"; + includes = ["Global/GlobalDefines.h"]; + hash = "sha256-9E1tJCvO7zA1iQAhrlL3GaBFIGpkjxNOr31behQXdhQ="; + }) + (fetchpatch { + name = "gcc-13.patch"; + url = "https://github.com/NatronGitHub/Natron/commit/f21f58622e32c1684567c82e2ab361f33030bda7.patch"; + includes = ["Engine/Noise.cpp"]; + hash = "sha256-t2mzTsRuXVs8d1BB/5uAY1OPxWRa3JTK1iAWLAMsrgs="; + }) + ]; + + cmakeFlags = [ "-DNATRON_SYSTEM_LIBS=ON" ]; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + boost + expat + cairo + python3 + python3.pkgs.pyside2 + python3.pkgs.shiboken2 + extra-cmake-modules + wayland + glog + ceres-solver + libXdmcp + ]; + + postInstall = '' + mkdir -p $out/share + cp -r ${OpenColorIO-Configs} $out/share/OpenColorIO-Configs + ''; + + postFixup = '' + wrapProgram $out/bin/Natron \ + --prefix PYTHONPATH : "${python3.pkgs.makePythonPath [ python3.pkgs.qtpy python3.pkgs.pyside2 ]}" \ + --set-default OCIO "$out/share/OpenColorIO-Configs/blender/config.ocio" + ''; + + meta = with lib; { + description = "Node-graph based, open-source compositing software"; + longDescription = '' + Node-graph based, open-source compositing software. Similar in + functionalities to Adobe After Effects and Nuke by The Foundry. + ''; + homepage = "https://natron.fr/"; + license = lib.licenses.gpl2; + maintainers = [ maintainers.puffnfresh ]; + platforms = platforms.linux; + broken = stdenv.isLinux && stdenv.isAarch64; + }; +} |