Guest User

davinci resolve thing

a guest
Oct 25th, 2025
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.08 KB | Software | 0 0
  1. { lib, pkgs, ... }:
  2. let
  3. ffmpeg-encoder-plugin = pkgs.stdenv.mkDerivation (finalAttrs: {
  4. pname = "ffmpeg-encoder-plugin";
  5. version = "1.1.0";
  6.  
  7. src = pkgs.fetchFromGitHub {
  8. owner = "EdvinNilsson";
  9. repo = "ffmpeg_encoder_plugin";
  10. tag = "v${finalAttrs.version}";
  11. hash = "sha256-orghLIzz9rUnUwka9C71Z2nj+qxHuggrKNlYjLKswQw=";
  12. };
  13.  
  14. nativeBuildInputs = with pkgs; [
  15. cmake
  16. ffmpeg-full
  17. ];
  18.  
  19. buildInputs = with pkgs; [ ffmpeg ];
  20.  
  21. installPhase = ''
  22. runHook preInstall
  23. mkdir -p $out
  24. cp ffmpeg_encoder_plugin.dvcp $out/
  25. runHook postInstall
  26. '';
  27. });
  28.  
  29. davinci-resolve-studio-cracked =
  30. let
  31. davinci-patched = pkgs.davinci-resolve-studio.davinci.overrideAttrs (old: {
  32. # script based on https://www.reddit.com/r/LinuxCrackSupport/comments/1nfqhld/davinci_resolve_studio_202_fix_linux_crack_guide/
  33. #
  34. # Additionally, it will install ffmpeg_encoder_plugin to enable H264/5 & AV1 exports:
  35. # https://github.com/EdvinNilsson/ffmpeg_encoder_plugin
  36. #
  37. # Note: $out IS /opt/resolve
  38. postInstall = ''
  39. ${old.postInstall or ""}
  40. ${lib.getExe pkgs.perl} -pi -e 's/\x74\x11\xe8\x21\x23\x00\x00/\xeb\x11\xe8\x21\x23\x00\x00/g' $out/bin/resolve
  41. ${lib.getExe pkgs.perl} -pi -e 's/\x03\x00\x89\x45\xFC\x83\x7D\xFC\x00\x74\x11\x48\x8B\x45\xC8\x8B/\x03\x00\x89\x45\xFC\x83\x7D\xFC\x00\xEB\x11\x48\x8B\x45\xC8\x8B/' $out/bin/resolve
  42. ${lib.getExe pkgs.perl} -pi -e 's/\x74\x11\x48\x8B\x45\xC8\x8B\x55\xFC\x89\x50\x58\xB8\x00\x00\x00/\xEB\x11\x48\x8B\x45\xC8\x8B\x55\xFC\x89\x50\x58\xB8\x00\x00\x00/' $out/bin/resolve
  43. ${lib.getExe pkgs.perl} -pi -e 's/\x41\xb6\x01\x84\xc0\x0f\x84\xb0\x00\x00\x00\x48\x85\xdb\x74\x08\x45\x31\xf6\xe9\xa3\x00\x00\x00/\x41\xb6\x00\x84\xc0\x0f\x84\xb0\x00\x00\x00\x48\x85\xdb\x74\x08\x45\x31\xf6\xe9\xa3\x00\x00\x00/' $out/bin/resolve
  44. touch $out/.license/blackmagic.lic
  45. echo -e "LICENSE blackmagic davinciresolvestudio 999999 permanent uncounted\n hostid=ANY issuer=CGP customer=CGP issued=28-dec-2023\n akey=0000-0000-0000-0000 _ck=00 sig=\"00\"" > $out/.license/blackmagic.lic
  46. mkdir -p $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/
  47. cp ${ffmpeg-encoder-plugin}/ffmpeg_encoder_plugin.dvcp $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/
  48. '';
  49. });
  50. in
  51.  
  52. # the following was copied from davinci's derivation from nixpkgs.
  53. # if davinci updates, this should be updated too
  54. # but remember to replace "davinci" with "davinci-patched"
  55. pkgs.buildFHSEnv {
  56. inherit (davinci-patched) pname version;
  57.  
  58. targetPkgs =
  59. pkgs:
  60. with pkgs;
  61. [
  62. alsa-lib
  63. aprutil
  64. bzip2
  65. dbus
  66. expat
  67. fontconfig
  68. freetype
  69. glib
  70. libGL
  71. libGLU
  72. libarchive
  73. libcap
  74. librsvg
  75. libtool
  76. libuuid
  77. libxcrypt # provides libcrypt.so.1
  78. libxkbcommon
  79. nspr
  80. ocl-icd
  81. opencl-headers
  82. python3
  83. python3.pkgs.numpy
  84. udev
  85. xdg-utils # xdg-open needed to open URLs
  86. xorg.libICE
  87. xorg.libSM
  88. xorg.libX11
  89. xorg.libXcomposite
  90. xorg.libXcursor
  91. xorg.libXdamage
  92. xorg.libXext
  93. xorg.libXfixes
  94. xorg.libXi
  95. xorg.libXinerama
  96. xorg.libXrandr
  97. xorg.libXrender
  98. xorg.libXt
  99. xorg.libXtst
  100. xorg.libXxf86vm
  101. xorg.libxcb
  102. xorg.xcbutil
  103. xorg.xcbutilimage
  104. xorg.xcbutilkeysyms
  105. xorg.xcbutilrenderutil
  106. xorg.xcbutilwm
  107. xorg.xkeyboardconfig
  108. zlib
  109. ]
  110. ++ [ davinci-patched ];
  111.  
  112. extraPreBwrapCmds = ''
  113. mkdir -p ~/.local/share/DaVinciResolve/Extras || exit 1
  114. '';
  115.  
  116. extraBwrapArgs = [
  117. ''--bind "$HOME"/.local/share/DaVinciResolve/Extras ${davinci-patched}/Extras''
  118. ];
  119.  
  120. runScript = "${lib.getExe pkgs.bash} ${pkgs.writeText "davinci-wrapper" ''
  121. export QT_XKB_CONFIG_ROOT="${pkgs.xkeyboard_config}/share/X11/xkb"
  122. export QT_PLUGIN_PATH="${davinci-patched}/libs/plugins:$QT_PLUGIN_PATH"
  123. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib32:${davinci-patched}/libs
  124. ${davinci-patched}/bin/resolve
  125. ''}";
  126.  
  127. extraInstallCommands = ''
  128. mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps
  129. ln -s ${davinci-patched}/share/applications/*.desktop $out/share/applications/
  130. ln -s ${davinci-patched}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve-studio.png
  131. '';
  132.  
  133. passthru = {
  134. inherit davinci-patched;
  135. updateScript = lib.getExe (
  136. pkgs.writeShellApplication {
  137. name = "update-davinci-resolve";
  138. runtimeInputs = [
  139. pkgs.curl
  140. pkgs.jq
  141. pkgs.common-updater-scripts
  142. ];
  143. text = ''
  144. set -o errexit
  145. drv=pkgs/by-name/da/davinci-resolve/package.nix
  146. currentVersion=${lib.escapeShellArg davinci-patched.version}
  147. downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)"
  148. latestLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve \K\d+\.\d+(\.\d+)?' | sort | tail -n 1)"
  149. update-source-version davinci-resolve "$latestLinuxVersion" --source-key=davinci.src
  150. # Since the standard and studio both use the same version we need to reset it before updating studio
  151. sed -i -e "s/""$latestLinuxVersion""/""$currentVersion""/" "$drv"
  152. latestStudioLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve Studio \K\d+\.\d+(\.\d+)?' | sort | tail -n 1)"
  153. update-source-version davinci-resolve-studio "$latestStudioLinuxVersion" --source-key=davinci.src
  154. '';
  155. }
  156. );
  157. };
  158. };
  159. in
  160. {
  161. environment.systemPackages = [ davinci-resolve-studio-cracked ];
  162.  
  163. # following configuration was taken from
  164. # https://wiki.nixos.org/wiki/DaVinci_Resolve#AMD
  165. #
  166. # Tested and working with AMD cards.
  167. # I don't know any configurations for Nvidia cards!
  168. environment.variables = {
  169. RUSTICL_ENABLE = "radeonsi";
  170. };
  171. hardware = {
  172. # this option sets hardware.graphics.enable to true
  173. # and installs rocmPackages.clr/.icd
  174. amdgpu.opencl.enable = true;
  175. graphics.extraPackages = with pkgs; [
  176. # Enables Rusticl (OpenCL) support
  177. # Without this, videos won't load in davinci
  178. mesa.opencl
  179. ];
  180. };
  181. }
Add Comment
Please, Sign In to add comment