From 68ed260e1673d1f815334ee58625c29738f8a886 Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Sat, 25 Oct 2025 11:00:22 +0800 Subject: [PATCH 1/6] nativefiledialog-extended: init at 1.2.1 --- .../na/nativefiledialog-extended/package.nix | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pkgs/by-name/na/nativefiledialog-extended/package.nix diff --git a/pkgs/by-name/na/nativefiledialog-extended/package.nix b/pkgs/by-name/na/nativefiledialog-extended/package.nix new file mode 100644 index 000000000000..d9ff1ca3b206 --- /dev/null +++ b/pkgs/by-name/na/nativefiledialog-extended/package.nix @@ -0,0 +1,75 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + SDL2, + SDL2_ttf, + gtk3, + testers, + enableShared ? !stdenv.hostPlatform.isStatic, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nativefiledialog-extended"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "btzy"; + repo = "nativefiledialog-extended"; + tag = "v${finalAttrs.version}"; + hash = "sha256-GwT42lMZAAKSJpUJE6MYOpSLKUD5o9nSe9lcsoeXgJY="; + }; + + outputs = [ + "out" + "dev" + ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + SDL2 + SDL2_ttf + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + gtk3 + ]; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared) + (lib.cmakeBool "nfd_ROOT_PROJECT" true) + (lib.cmakeBool "NFD_BUILD_TESTS" true) + (lib.cmakeBool "NFD_BUILD_SDL2_TESTS" true) + (lib.cmakeBool "NFD_INSTALL" true) + ]; + + # NOTE: Although the tests have been compiled, they still require GUI + # interactions. Let's disable running them for now. + doCheck = false; + + passthru.tests = { + cmake-config = testers.hasCmakeConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "nfd" ]; + }; + }; + + meta = { + homepage = "https://github.com/btzy/nativefiledialog-extended"; + description = "Cross platform native file dialog library with C and C++ bindings"; + longDescription = '' + A small C library with that portably invokes native file open, folder + select and file save dialogs. Write dialog code once and have it pop up + native dialogs on all supported platforms. Avoid linking large + dependencies like wxWidgets and Qt. + ''; + license = lib.licenses.zlib; + maintainers = with lib.maintainers; [ yzx9 ]; + platforms = with lib.platforms; linux ++ darwin; + }; +}) From 3ecdb073308fc5c3c10355e353593c81ec14749c Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Sat, 25 Oct 2025 13:54:54 +0800 Subject: [PATCH 2/6] feather-tk: use nativefiledialog-extended by default --- pkgs/by-name/fe/feather-tk/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/fe/feather-tk/package.nix b/pkgs/by-name/fe/feather-tk/package.nix index 22454b56bf90..4168898f019c 100644 --- a/pkgs/by-name/fe/feather-tk/package.nix +++ b/pkgs/by-name/fe/feather-tk/package.nix @@ -11,13 +11,13 @@ libGL, libpng, lunasvg, + nativefiledialog-extended, nlohmann_json, plutovg, xorg, zlib, - nativeFileDialog ? null, python3Packages ? null, - enableNFD ? false, + enableNFD ? true, enablePython ? false, enableTests ? false, enableExamples ? false, @@ -51,8 +51,8 @@ stdenv.mkDerivation (finalAttrs: { zlib libGL ] - ++ lib.optionals (enableNFD && nativeFileDialog != null) [ - nativeFileDialog + ++ lib.optionals enableNFD [ + nativefiledialog-extended ] ++ lib.optionals (enableNFD && stdenv.isLinux) [ gtk3 From c84307e3a3d2e9131c611c21640f52fcd522c3d3 Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Sat, 25 Oct 2025 13:59:28 +0800 Subject: [PATCH 3/6] feather-tk: build shared libs --- pkgs/by-name/fe/feather-tk/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/fe/feather-tk/package.nix b/pkgs/by-name/fe/feather-tk/package.nix index 4168898f019c..18dca96dc0b2 100644 --- a/pkgs/by-name/fe/feather-tk/package.nix +++ b/pkgs/by-name/fe/feather-tk/package.nix @@ -21,6 +21,7 @@ enablePython ? false, enableTests ? false, enableExamples ? false, + enableShared ? !stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation (finalAttrs: { @@ -31,7 +32,6 @@ stdenv.mkDerivation (finalAttrs: { owner = "darbyjohnston"; repo = "feather-tk"; tag = finalAttrs.version; - fetchSubmodules = true; hash = "sha256-hcV99y14o3YFUtKDLEKaR7MxBB3pBdd3sferrYvtvYw="; }; @@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release") + (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared) (lib.cmakeBool "feather_tk_UI_LIB" true) (lib.cmakeFeature "feather_tk_API" "GL_4_1") (lib.cmakeBool "feather_tk_nfd" enableNFD) From 3d989ea666f09aa9db1fd513f575982e17efde45 Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Fri, 31 Oct 2025 17:41:34 +0800 Subject: [PATCH 4/6] feather-tk: mark darwin as bad platform --- pkgs/by-name/fe/feather-tk/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/fe/feather-tk/package.nix b/pkgs/by-name/fe/feather-tk/package.nix index 18dca96dc0b2..8f1890ed47cf 100644 --- a/pkgs/by-name/fe/feather-tk/package.nix +++ b/pkgs/by-name/fe/feather-tk/package.nix @@ -94,5 +94,9 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ liberodark ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; + badPlatforms = [ + # Broken on darwin with latest SDK, see https://github.com/darbyjohnston/feather-tk/issues/1 + lib.systems.inspect.patterns.isDarwin + ]; }; }) From 01c95078d95d7a0cd49d337d83d26d5f4c6741ed Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Sat, 25 Oct 2025 20:05:07 +0800 Subject: [PATCH 5/6] tlrender: init at 0.10.0 --- pkgs/by-name/tl/tlrender/minizip-ng-4.patch | 95 ++++++++++++ pkgs/by-name/tl/tlrender/package.nix | 155 ++++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 pkgs/by-name/tl/tlrender/minizip-ng-4.patch create mode 100644 pkgs/by-name/tl/tlrender/package.nix diff --git a/pkgs/by-name/tl/tlrender/minizip-ng-4.patch b/pkgs/by-name/tl/tlrender/minizip-ng-4.patch new file mode 100644 index 000000000000..2df1ed4d460f --- /dev/null +++ b/pkgs/by-name/tl/tlrender/minizip-ng-4.patch @@ -0,0 +1,95 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 95a03bbd..9ce32264 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -123,7 +123,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) + find_package(Imath REQUIRED) + find_package(nlohmann_json REQUIRED) + find_package(ZLIB REQUIRED) +-find_package(minizip REQUIRED) ++find_package(minizip-ng REQUIRED) + find_package(OpenTimelineIO REQUIRED) + + # OpenColorIO dependencies +diff --git a/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt b/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt +index 513e7351..2db48491 100644 +--- a/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt ++++ b/etc/SuperBuild/tests/OpenColorIOTest/CMakeLists.txt +@@ -1,10 +1,10 @@ + find_package(ZLIB REQUIRED) +-find_package(minizip REQUIRED) ++find_package(minizip-ng REQUIRED) + find_package(OpenColorIO REQUIRED) + + set(source main.cpp) + + add_executable(OpenColorIOTest ${header} ${source}) +-target_link_libraries(OpenColorIOTest OpenColorIO::OpenColorIO MINIZIP::minizip ZLIB::ZLIB) ++target_link_libraries(OpenColorIOTest OpenColorIO::OpenColorIO MINIZIP::minizip-ng ZLIB::ZLIB) + + add_test(OpenColorIOTest OpenColorIOTest) +diff --git a/lib/tlCore/CMakeLists.txt b/lib/tlCore/CMakeLists.txt +index d02fa96a..877c8462 100644 +--- a/lib/tlCore/CMakeLists.txt ++++ b/lib/tlCore/CMakeLists.txt +@@ -40,7 +40,7 @@ else() + endif() + + set(LIBRARIES tlResource feather-tk::feather-tk-core OTIO::opentimelineio Imath::Imath nlohmann_json::nlohmann_json) +-set(LIBRARIES_PRIVATE Freetype::Freetype MINIZIP::minizip ZLIB::ZLIB) ++set(LIBRARIES_PRIVATE Freetype::Freetype MINIZIP::minizip-ng ZLIB::ZLIB) + if(TLRENDER_OCIO) + list(APPEND LIBRARIES OpenColorIO::OpenColorIO) + endif() +diff --git a/lib/tlTimeline/CMakeLists.txt b/lib/tlTimeline/CMakeLists.txt +index ad384749..82a6aacb 100644 +--- a/lib/tlTimeline/CMakeLists.txt ++++ b/lib/tlTimeline/CMakeLists.txt +@@ -49,7 +49,7 @@ set(SOURCE + Video.cpp) + + add_library(tlTimeline ${HEADERS} ${PRIVATE_HEADERS} ${SOURCE}) +-target_link_libraries(tlTimeline tlIO) ++target_link_libraries(tlTimeline tlIO MINIZIP::minizip-ng) + set_target_properties(tlTimeline PROPERTIES FOLDER lib) + set_target_properties(tlTimeline PROPERTIES PUBLIC_HEADER "${HEADERS}") + +diff --git a/lib/tlTimeline/TimelineCreate.cpp b/lib/tlTimeline/TimelineCreate.cpp +index 9596ab21..c8884435 100644 +--- a/lib/tlTimeline/TimelineCreate.cpp ++++ b/lib/tlTimeline/TimelineCreate.cpp +@@ -99,7 +99,7 @@ namespace tl + public: + ZipReader(const std::string& fileName) + { +- mz_zip_reader_create(&reader); ++ reader = mz_zip_reader_create(); + if (!reader) + { + throw std::runtime_error(feather_tk::Format( +diff --git a/lib/tlTimeline/Util.cpp b/lib/tlTimeline/Util.cpp +index 611f02ad..338df840 100644 +--- a/lib/tlTimeline/Util.cpp ++++ b/lib/tlTimeline/Util.cpp +@@ -662,7 +662,7 @@ namespace tl + } + + // Open the output file. +- mz_zip_writer_create(&_writer); ++ _writer = mz_zip_writer_create(); + if (!_writer) + { + throw std::runtime_error(feather_tk::Format("Cannot create writer: \"{0}\"").arg(fileName)); +diff --git a/tlRenderConfig.cmake.in b/tlRenderConfig.cmake.in +index 11312d32..e6ec1184 100644 +--- a/tlRenderConfig.cmake.in ++++ b/tlRenderConfig.cmake.in +@@ -9,7 +9,7 @@ include(CMakeFindDependencyMacro) + find_package(Imath REQUIRED) + find_package(nlohmann_json REQUIRED) + find_package(ZLIB REQUIRED) +-find_package(minizip REQUIRED) ++find_package(minizip-ng REQUIRED) + find_package(OpenTimelineIO REQUIRED) + + # OpenColorIO dependencies diff --git a/pkgs/by-name/tl/tlrender/package.nix b/pkgs/by-name/tl/tlrender/package.nix new file mode 100644 index 000000000000..81893619f5af --- /dev/null +++ b/pkgs/by-name/tl/tlrender/package.nix @@ -0,0 +1,155 @@ +{ + lib, + stdenv, + cmake, + fetchFromGitHub, + pkg-config, + + bzip2, + feather-tk, + ffmpeg, + freetype, + glfw, + imath, + libGL, + libjpeg, + libtiff, + libpng, + lunasvg, + minizip-ng, + nasm, + nativefiledialog-extended, + nlohmann_json, + opencolorio, + openexr, + openssl, + opentimelineio, + openusd, + plutovg, + SDL2, + sdl3, + xz, + zlib, + zstd, + + # optional dependencies + enableNet ? false, + enableOcio ? true, + enableSdl2 ? true, + enableSdl3 ? false, + enableJpeg ? true, + enableTiff ? true, + enableStb ? true, + enablePng ? true, + enableOpenexr ? true, + enableFfmpeg ? true, + enableUsd ? false, + + # build options + enableShared ? !stdenv.hostPlatform.isStatic, + enableProgram ? true, + enableExamples ? false, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "tlrender"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "darbyjohnston"; + repo = "tlRender"; + tag = finalAttrs.version; + hash = "sha256-TxiDZtMvNmrV1FKXZnekCZHnr/eCWZlsP6VJRnaoWg4="; + }; + + patches = [ + # Minizip-ng 4 support: https://github.com/darbyjohnston/tlRender/pull/145 + ./minizip-ng-4.patch + ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail "include(Package)" "" + + substituteInPlace lib/tlCore/CMakeLists.txt \ + --replace-fail "SDL2::SDL2-static" "SDL2::SDL2" \ + --replace-fail "SDL3::SDL3-static" "SDL3::SDL3" \ + + substituteInPlace lib/tlIO/CMakeLists.txt \ + --replace-fail \ + "list(APPEND LIBRARIES_PRIVATE libjpeg-turbo::turbojpeg-static)" \ + "list(APPEND LIBRARIES_PRIVATE libjpeg-turbo::jpeg libjpeg-turbo::turbojpeg)" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + bzip2 # required by minizip-ng + feather-tk + freetype # required by feather-tk + glfw + libGL + lunasvg # required by feather-tk + imath + minizip-ng + nativefiledialog-extended + nlohmann_json + openssl # required by minizip-ng + opentimelineio + plutovg # required by feather-tk -> lunasvg + xz # libLZMA, required by minizip-ng + zlib # required by minizip-ng + zstd # required by minizip-ng + ] + ++ lib.optionals enableNet [ nasm ] + ++ lib.optionals enableOcio [ opencolorio ] + ++ lib.optionals enableSdl2 [ SDL2 ] + ++ lib.optionals enableSdl3 [ sdl3 ] + ++ lib.optionals enableJpeg [ libjpeg ] + ++ lib.optionals enableTiff [ libtiff ] + ++ lib.optionals enablePng [ libpng ] + ++ lib.optionals enableOpenexr [ openexr ] + ++ lib.optionals enableFfmpeg [ ffmpeg ] + ++ lib.optionals enableUsd [ openusd ]; + + cmakeFlags = [ + (lib.cmakeBool "TLRENDER_NET" enableNet) + (lib.cmakeBool "TLRENDER_OCIO" enableOcio) + (lib.cmakeBool "TLRENDER_SDL2" enableSdl2) + (lib.cmakeBool "TLRENDER_SDL3" enableSdl3) + (lib.cmakeBool "TLRENDER_JPEG" enableJpeg) + (lib.cmakeBool "TLRENDER_TIFF" enableTiff) + (lib.cmakeBool "TLRENDER_STB" enableStb) + (lib.cmakeBool "TLRENDER_PNG" enablePng) + (lib.cmakeBool "TLRENDER_EXR" enableOpenexr) + (lib.cmakeBool "TLRENDER_FFMPEG" enableFfmpeg) + (lib.cmakeBool "TLRENDER_USD" enableUsd) + + (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared) + (lib.cmakeBool "TLRENDER_PROGRAMS" enableProgram) + (lib.cmakeBool "TLRENDER_EXAMPLES" enableExamples) + (lib.cmakeBool "TLRENDER_TESTS" finalAttrs.finalPackage.doCheck) + ]; + + # GLFW requires a working X11 session. + doCheck = false; + + meta = { + description = "Open source library for building playback and review applications"; + longDescription = '' + An open source library for building playback and review applications for + visual effects, film, and animation. + + The library can render and playback timelines with multiple video clips, + image sequences, audio clips, and transitions. Examples are provided for + integrating the library with Qt and OpenGL applications. + ''; + homepage = "https://github.com/darbyjohnston/tlRender"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ yzx9 ]; + platforms = with lib.platforms; linux ++ darwin; + }; +}) From 99103b09851fdc252c7d9fcd2518e95665832c89 Mon Sep 17 00:00:00 2001 From: Zexin Yuan Date: Sat, 25 Oct 2025 21:35:53 +0800 Subject: [PATCH 6/6] djv: 2.0.8-unstable-2021-07-31 -> 3.1.1 --- pkgs/by-name/dj/djv/package.nix | 241 ++++++++++---------------------- 1 file changed, 74 insertions(+), 167 deletions(-) diff --git a/pkgs/by-name/dj/djv/package.nix b/pkgs/by-name/dj/djv/package.nix index 0af65284066e..9cc1ae9d1317 100644 --- a/pkgs/by-name/dj/djv/package.nix +++ b/pkgs/by-name/dj/djv/package.nix @@ -1,187 +1,94 @@ { - stdenv, - cmake, - fetchFromGitHub, - fetchpatch, lib, - alsa-lib, - libGL, - libX11, - libXinerama, - libXi, - zlib, - rtaudio, - rapidjson, - ilmbase, - glm, - glfw3, - libpng, - opencolorio_1, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + bzip2, + feather-tk, + ffmpeg, freetype, + glfw, + imath, + libGL, + libjpeg, + libtiff, + libpng, + lunasvg, + minizip-ng, + nativefiledialog-extended, + nlohmann_json, + opencolorio, openexr, + openssl, + opentimelineio, + plutovg, + SDL2, + tlrender, + xz, + zlib, + zstd, }: -let +stdenv.mkDerivation (finalAttrs: { + pname = "djv"; + version = "3.1.1"; - # The way third-party dependencies are packaged has changed - # significantly from the 2.0.8 release. This means any packaging - # effort for the 2.0.8 release would have to be redone for the next - # release. Hence we package the git version for now and can easily - # jump onto the next release once it's available. - djvVersion = "2.0.8-unstable-2021-07-31"; - - djvSrc = fetchFromGitHub { + src = fetchFromGitHub { owner = "darbyjohnston"; repo = "djv"; - rev = "ae31712c4f2802a874217ac194bde26287993934"; - sha256 = "1qgia6vqb6fhyfj8w925xl6k6zidrp2gj5f32bpi94lwwhi6p9pd"; + tag = finalAttrs.version; + hash = "sha256-/SakJ23mi/dz8eUt2UtcgfLtFZiCHy1ME+jWdNS8+Fw="; }; - # DJV's build system tries to automatically pull in FSeq, another - # library by the DJV author. - # - # When updating, check the following file in the DJV source: - # etc/SuperBuild/cmake/Modules/BuildFSeq.cmake - # - # If there is revision or tag specified, DJV wants to use the most - # recent master version - fseqSrc = fetchFromGitHub { - owner = "darbyjohnston"; - repo = "fseq"; - rev = "545fac6018100f7fca474b8ee4f1efa7cbf6bf45"; - sha256 = "0qfhbrzji05hh5kwgd1wvq2lbf81ylbi7v7aqk28aws27f8d2hk0"; - }; - - djv-deps = stdenv.mkDerivation rec { - pname = "djv-dependencies"; - version = djvVersion; - - src = djvSrc; - - sourceRoot = "${src.name}/etc/SuperBuild"; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ - libGL - ]; - - postPatch = '' - chmod -R +w . - - sed -i 's,GIT_REPOSITORY https://github.com/darbyjohnston/FSeq.git,SOURCE_DIR ${fseqSrc},' \ - cmake/Modules/BuildFSeq.cmake - - # We pull these projects in as normal Nix dependencies. No need - # to build them again here. - - sed -i CMakeLists.txt \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS RapidJSON)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS RtAudio)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS IlmBase)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS GLM)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS GLFW)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS ZLIB)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS PNG)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS FreeType)/d' \ - -e '/list(APPEND DJV_THIRD_PARTY_DEPS OCIO)/d' - - # The "SuperBuild" wants to build DJV right here. This is - # inconvenient, because then the `make install` target is not generated - # by CMake. We build DJV in its own derivation below. This also makes - # the build a bit more modular. - - sed -i '/include(BuildDJV)/d' \ - CMakeLists.txt - ''; - - cmakeFlags = [ - "-DDJV_THIRD_PARTY_OpenEXR:BOOL=False" - "-DDJV_THIRD_PARTY_JPEG:BOOL=False" - "-DDJV_THIRD_PARTY_TIFF:BOOL=False" - ]; - - dontInstall = true; - doCheck = true; - }; - -in -stdenv.mkDerivation { - pname = "djv"; - version = djvVersion; - - src = djvSrc; - patches = [ - # Pull fix ending upstream inclusion for gcc-12+ support: - # https://github.com/darbyjohnston/DJV/pull/477 - (fetchpatch { - name = "gcc-13-cstdint-include.patch"; - url = "https://github.com/darbyjohnston/DJV/commit/be0dd90c256f30c0305ff7b180fd932a311e66e5.patch"; - hash = "sha256-x8GAfakhgjBiCKHbfgCukT5iFNad+zqURDJkQr092uk="; - }) - (fetchpatch { - name = "gcc-11-limits.patch"; - url = "https://github.com/darbyjohnston/DJV/commit/0544ffa1a263a6b8e8518b47277de7601b21b4f4.patch"; - hash = "sha256-x6ye0xMwTlKyNW4cVFb64RvAayvo71kuOooPj3ROn0g="; - }) - (fetchpatch { - name = "gcc-11-IO.patch"; - url = "https://github.com/darbyjohnston/DJV/commit/ce79f2d2cb35d03322648323858834bff942c792.patch"; - hash = "sha256-oPbXOnN5Y5QL+bs/bL5eJALu45YHnyTBLQcC8XcJi0c="; - }) - (fetchpatch { - name = "gcc-11-sleep_for.patch"; - url = "https://github.com/darbyjohnston/DJV/commit/6989f43db27f66a7691f6048a2eb3299ef43a92e.patch"; - hash = "sha256-1kiF3VrZiO+FSoR7NHCbduQ8tMq/Uuu6Z+sQII4xBAw="; - }) - ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ - alsa-lib - libGL - libX11 - libXinerama - libXi - rapidjson - rtaudio - ilmbase - glm - glfw3 - zlib - libpng - freetype - opencolorio_1 - djv-deps - openexr - ]; - postPatch = '' - chmod -R +w . - - # When linking opencolorio statically this results in failing to - # pull in opencolorio's dependencies (tixml and yaml libraries). Avoid - # this by linking it statically instead. - - sed -i cmake/Modules/FindOCIO.cmake \ - -e 's/PATH_SUFFIXES static//' \ - -e '/OpenColorIO_STATIC/d' - - # When searching for OpenEXR this looks for Iex.h, which exists in ilmbase, - # since it's a secondary inport, to find the correct OpenEXR lib, we search - # for something specifically in OpenEXR. - - sed -i cmake/Modules/FindOpenEXR.cmake \ - -e 's/find_path(OpenEXR_INCLUDE_DIR NAMES Iex.h PATH_SUFFIXES OpenEXR)/find_path(OpenEXR_INCLUDE_DIR NAMES ImfImage.h PATH_SUFFIXES OpenEXR)/' + substituteInPlace cmake/Modules/djvPackage.cmake \ + --replace-fail \ + ' ''${CMAKE_INSTALL_PREFIX}/etc/tlRender/LICENSE_' \ + " ${tlrender}/etc/tlRender/LICENSE_" ''; + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + bzip2 + feather-tk + ffmpeg + freetype + glfw + imath + tlrender + libjpeg + libGL + libpng + libtiff + lunasvg + minizip-ng + nativefiledialog-extended + nlohmann_json + opencolorio + openexr + openssl + opentimelineio + plutovg + SDL2 + xz + zlib + zstd + ]; + # GLFW requires a working X11 session. doCheck = false; - meta = with lib; { + meta = { description = "Professional review software for VFX, animation, and film production"; homepage = "https://darbyjohnston.github.io/DJV/"; - platforms = platforms.linux; - maintainers = [ maintainers.blitz ]; - license = licenses.bsd3; + platforms = with lib.platforms; linux ++ darwin; + maintainers = with lib.maintainers; [ blitz ]; + license = lib.licenses.bsd3; + mainProgram = "djv"; }; -} +})