From 56f0670c1e304b99d9de7b6eac688c1e29263a61 Mon Sep 17 00:00:00 2001 From: servius Date: Thu, 28 May 2026 02:27:14 +0530 Subject: [PATCH] fix: Override fetchurl UA for crates.io (403 on default curl UA) crates.io now blocks the default nixpkgs curl User-Agent (curl/X.Y Nixpkgs/Z), returning 403. Override fetchurl via overlay to send a neutral UA for any crates.io URL so cargoLock / fetchCrate fetches succeed. --- overlays.nix | 1 + overlays/crates-io-ua.nix | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 overlays/crates-io-ua.nix diff --git a/overlays.nix b/overlays.nix index ce93e48..0877bb9 100644 --- a/overlays.nix +++ b/overlays.nix @@ -3,6 +3,7 @@ in [ # Local overlays + (import ./overlays/crates-io-ua.nix args) (import ./overlays/shell-scripts.nix args) (import ./overlays/terminal.nix args) (import ./overlays/system-libs.nix args) diff --git a/overlays/crates-io-ua.nix b/overlays/crates-io-ua.nix new file mode 100644 index 0000000..d7bbf5f --- /dev/null +++ b/overlays/crates-io-ua.nix @@ -0,0 +1,12 @@ +{inputs, ...}: final: prev: { + fetchurl = + prev.fetchurl + // { + __functor = self: args: + prev.fetchurl ( + if builtins.isAttrs args && prev.lib.hasInfix "crates.io" (args.url or "") + then args // {curlOptsList = (args.curlOptsList or []) ++ ["--user-agent" "nix-fetchurl"];} + else args + ); + }; +} -- 2.51.2