diff --git a/configs/configuration-pc.nix b/configs/configuration-pc.nix index 1d8a513..afd4395 100644 --- a/configs/configuration-pc.nix +++ b/configs/configuration-pc.nix @@ -127,6 +127,7 @@ orca-slicer ffmpeg inputs.norgolith.packages.${pkgs.stdenv.hostPlatform.system}.default + inputs.cracked-davinci.packages.${pkgs.stdenv.hostPlatform.system}.default # wine wineWow64Packages.stable diff --git a/flake.lock b/flake.lock index 6534492..120f3e9 100644 --- a/flake.lock +++ b/flake.lock @@ -65,6 +65,25 @@ }, "parent": [] }, + "cracked-davinci": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "nixpkgs-pinned": "nixpkgs-pinned" + }, + "locked": { + "lastModified": 1782405315, + "narHash": "sha256-pZKG7KOr1NPtWwzfEnRZvAi7Uvndd4LiC0OVHjf5IPE=", + "ref": "refs/heads/main", + "rev": "c9859df9bd3781c63d838a1a90d22129885a910b", + "revCount": 5, + "type": "git", + "url": "https://git.voidarc.co.uk/voidarc/nixos.davinci" + }, + "original": { + "type": "git", + "url": "https://git.voidarc.co.uk/voidarc/nixos.davinci" + } + }, "doot": { "inputs": { "doot-src": "doot-src", @@ -348,7 +367,7 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_3", "xdph": "xdph" @@ -598,26 +617,10 @@ "type": "github" } }, - "mesa-davinci": { - "locked": { - "lastModified": 1754501210, - "narHash": "sha256-ahTHrGs72TLVcNUR2VHckEx+t6frke0e/Ptk6AaEINk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "599ddd2b79331c1e6153e1659bdaab65d62c4c82", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "599ddd2b79331c1e6153e1659bdaab65d62c4c82", - "repo": "nixpkgs", - "type": "github" - } - }, "naersk": { "inputs": { "fenix": "fenix", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1776200608, @@ -664,6 +667,22 @@ "type": "github" } }, + "nixpkgs-pinned": { + "locked": { + "lastModified": 1772567409, + "narHash": "sha256-qspxGige37s/66q9sptyG5VA/l2IOmMMZVJ4Xhta2wU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e4ec59bc1152b09a4843702e4a49381194f065a2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e4ec59bc1152b09a4843702e4a49381194f065a2", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1781074563, @@ -681,6 +700,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1782233679, + "narHash": "sha256-QyuGP5+QOtmXpy4i2X4DhBVBaySBdDKQEhqKcphcp34=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "667d5cf1c59585031d743c78b394b0a647537c35", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1752077645, "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", @@ -696,7 +731,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1780749050, "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", @@ -712,7 +747,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1781216227, "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", @@ -728,7 +763,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1781074563, "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", @@ -744,7 +779,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1769170682, "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=", @@ -783,7 +818,7 @@ }, "nvim-wrapped": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1781453653, @@ -869,11 +904,11 @@ "root": { "inputs": { "chataigne": "chataigne", + "cracked-davinci": "cracked-davinci", "doot": "doot", "fsel": "fsel", "hyprland": "hyprland", - "mesa-davinci": "mesa-davinci", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-unstable": "nixpkgs-unstable", "norgolith": "norgolith", "nvim-wrapped": "nvim-wrapped", @@ -924,7 +959,7 @@ }, "sls-steam": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1781157498, diff --git a/flake.nix b/flake.nix index af6081e..b476d9f 100644 --- a/flake.nix +++ b/flake.nix @@ -39,7 +39,7 @@ }; # Davinci-resolve - mesa-davinci.url = "github:nixos/nixpkgs?ref=599ddd2b79331c1e6153e1659bdaab65d62c4c82"; + cracked-davinci.url = "git+https://git.voidarc.co.uk/voidarc/nixos.davinci"; omnisearch = { url = "git+https://git.voidarc.co.uk/voidarc/omnisearch"; @@ -76,7 +76,7 @@ mobile02 = mkSystem [ ./configs/configuration-laptop.nix ]; hackstation = mkSystem [ ./configs/configuration-pc.nix - ./modules/davinci/davinci.nix + # ./modules/davinci/davinci.nix ./modules/i3/i3.nix inputs.omnisearch.nixosModules.default { diff --git a/modules/davinci/davinci.nix b/modules/davinci/davinci.nix deleted file mode 100644 index 2244a06..0000000 --- a/modules/davinci/davinci.nix +++ /dev/null @@ -1,192 +0,0 @@ -# Tested on Davinci 20.2.2. It works for loading videos and exporting in H264/5 & AV1 -# Even if following this guide https://www.reddit.com/r/LinuxCrackSupport/comments/1nfqhld/davinci_resolve_studio_202_fix_linux_crack_guide/ -# nixpkgs rev used for this tests: 4652ba995a945108fb891191c1e910b9a6ed9064 - -{ lib, inputs, ... }: -let - mesa-good-pkg = inputs.mesa-davinci.legacyPackages.x86_64-linux.mesa; - pkgs = import (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/ec7c70d12ce2fc37cb92aff673dcdca89d187bae.tar.gz"; - }) { config.allowUnfree = true; }; - pkgs-pinned = - import - (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/497ee3c70707fd71b45c37d48ae1d45e79751047.tar.gz"; - }) - { - config = { - allowUnfree = true; - }; - }; - - ffmpeg-encoder-plugin = pkgs.stdenv.mkDerivation (finalAttrs: { - pname = "ffmpeg-encoder-plugin"; - version = "1.2.1"; - - src = pkgs.fetchFromGitHub { - owner = "EdvinNilsson"; - repo = "ffmpeg_encoder_plugin"; - rev = "v${finalAttrs.version}"; - hash = "sha256-F4Q8YCXD5UldTwLbWK4nHacNPQ/B+4yLL96sq7xZurM="; - }; - - nativeBuildInputs = [ pkgs.cmake ]; - buildInputs = [ pkgs.ffmpeg-full ]; - - installPhase = '' - mkdir -p $out - cp ffmpeg_encoder_plugin.dvcp $out/ - ''; - }); - - davinci-resolve-studio-cracked = - let - davinci-patched = pkgs-pinned.davinci-resolve-studio.davinci.overrideAttrs (old: { - # script based on https://www.reddit.com/r/LinuxCrackSupport/comments/1nfqhld/davinci_resolve_studio_202_fix_linux_crack_guide/ - # - # Additionally, it will install ffmpeg_encoder_plugin to enable H264/5 & AV1 exports: - # https://github.com/EdvinNilsson/ffmpeg_encoder_plugin - # - # Note: $out IS /opt/resolve - postInstall = '' - ${old.postInstall or ""} - ${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 - ${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 - ${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 - ${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 - touch $out/.license/blackmagic.lic - 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 - - mkdir -p $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64 - cp ${ffmpeg-encoder-plugin}/ffmpeg_encoder_plugin.dvcp $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/ - ''; - }); - in - - # the following was copied from davinci's derivation from nixpkgs. - # if davinci updates, this should be updated too - # but remember to replace "davinci" with "davinci-patched" - pkgs.buildFHSEnv { - inherit (davinci-patched) pname version; - - targetPkgs = - pkgs: - with pkgs; - [ - alsa-lib - aprutil - bzip2 - dbus - expat - fontconfig - freetype - glib - libGL - libGLU - libarchive - libcap - librsvg - libtool - libuuid - libxcrypt # provides libcrypt.so.1 - libxkbcommon - nspr - ocl-icd - opencl-headers - python3 - python3.pkgs.numpy - udev - xdg-utils # xdg-open needed to open URLs - libICE - libSM - libX11 - libXcomposite - libXcursor - libXdamage - libXext - libXfixes - libXi - libXinerama - libXrandr - libXrender - libXt - libXtst - libXxf86vm - libxcb - xcbutil - xcbutilimage - xcbutilkeysyms - xcbutilrenderutil - xcbutilwm - xkeyboardconfig - zlib - ocl-icd - rocmPackages.clr.icd - libGL - libGLU - ] - ++ [ - mesa-good-pkg - davinci-patched - ]; - - extraPreBwrapCmds = '' - mkdir -p ~/.local/share/DaVinciResolve/Extras || exit 1 - ''; - - extraBwrapArgs = [ - ''--bind "$HOME"/.local/share/DaVinciResolve/Extras ${davinci-patched}/Extras'' - ]; - - runScript = "${lib.getExe pkgs.bash} ${pkgs.writeText "davinci-wrapper" '' - export QT_XKB_CONFIG_ROOT="${pkgs.xkeyboard_config}/share/X11/xkb" - export QT_PLUGIN_PATH="${davinci-patched}/libs/plugins:$QT_PLUGIN_PATH" - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib32:${davinci-patched}/libs - # Force Resolve to use X11 (via XWayland) to avoid Aquamarine/Hyprland conflicts - export QT_QPA_PLATFORM=xcb - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${davinci-patched}/libs - - # Prevent Resolve from trying to talk to the Wayland socket directly - unset WAYLAND_DISPLAY - ${davinci-patched}/bin/resolve - ''}"; - - extraInstallCommands = '' - mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps - ln -s ${davinci-patched}/share/applications/*.desktop $out/share/applications/ - ln -s ${davinci-patched}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve-studio.png - ''; - - passthru = { - inherit davinci-patched; - updateScript = lib.getExe ( - pkgs.writeShellApplication { - name = "update-davinci-resolve"; - runtimeInputs = [ - pkgs.curl - pkgs.jq - pkgs.common-updater-scripts - ]; - text = '' - set -o errexit - drv=pkgs/by-name/da/davinci-resolve/package.nix - currentVersion=${lib.escapeShellArg davinci-patched.version} - downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)" - - 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)" - update-source-version davinci-resolve "$latestLinuxVersion" --source-key=davinci.src - - # Since the standard and studio both use the same version we need to reset it before updating studio - sed -i -e "s/""$latestLinuxVersion""/""$currentVersion""/" "$drv" - - 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)" - update-source-version davinci-resolve-studio "$latestStudioLinuxVersion" --source-key=davinci.src - ''; - } - ); - }; - }; -in -{ - environment.systemPackages = [ davinci-resolve-studio-cracked ]; -}