From 5e98222fd81089b1c2c50e5e8fc919621eada913 Mon Sep 17 00:00:00 2001 From: Siddarth Kumar Date: Thu, 28 May 2026 18:49:19 +0530 Subject: [PATCH] nix: fix fetching crates via user agent --- flake.nix | 17 +++++++++++++++++ nix/default.nix | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 862741fb..63cb6dea 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,22 @@ ]; forAllSystems = nixpkgs.lib.genAttrs stableSystems; + # crates.io's WAF returns 403 for the default `python-requests/X.Y.Z` + cratesIoUserAgentOverlay = final: prev: { + writers = prev.writers // { + writePython3Bin = name: settings: content: + let + patched = + if name == "fetch-cargo-vendor-util" + then builtins.replaceStrings + [ "session = requests.Session()" ] + [ "session = requests.Session()\n session.headers.update({\"User-Agent\": \"zerokit-nix\"})" ] + content + else content; + in prev.writers.writePython3Bin name settings patched; + }; + }; + pkgsFor = forAllSystems ( system: import nixpkgs { inherit system; @@ -34,6 +50,7 @@ allowUnfree = true; }; overlays = [ + cratesIoUserAgentOverlay (import rust-overlay) (f: p: { inherit rust-overlay; }) ]; diff --git a/nix/default.nix b/nix/default.nix index c798d6d3..7a9a206d 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -28,7 +28,7 @@ in targetPlatformPkgs.rustPlatform.buildRustPackage { inherit src; - cargoHash = "sha256-WXxQ8mAPD/mPBSnLrunhbDyCAQ0D82t1MILbo+Vfcqk="; + cargoHash = "sha256-7Ld86DIk2rk160iQgMhcX3ucZbuP45rGBxE30vkqyMk="; nativeBuildInputs = with pkgs; [ rust-cbindgen ];