# These overrides are applied to the dependencies of the Nix components. { # The raw Nixpkgs, not affected by this scope pkgs, stdenv, }: let inherit (pkgs) lib; in scope: { inherit stdenv; aws-sdk-cpp = (pkgs.aws-sdk-cpp.override { apis = [ "s3" "transfer" ]; customMemoryManagement = false; }).overrideAttrs { # only a stripped down version is built, which takes a lot less resources # to build, so we don't need a "big-parallel" machine. requiredSystemFeatures = [ ]; }; boehmgc = pkgs.boehmgc.override { enableLargeConfig = true; }; # TODO Hack until https://github.com/NixOS/nixpkgs/issues/45462 is fixed. boost = (pkgs.boost.override { extraB2Args = [ "--with-container" "--with-context" "--with-coroutine" ]; }).overrideAttrs (old: { # Need to remove `--with-*` to use `--with-libraries=...` buildPhase = lib.replaceStrings [ "--without-python" ] [ "" ] old.buildPhase; installPhase = lib.replaceStrings [ "--without-python" ] [ "" ] old.installPhase; }); libgit2 = if lib.versionAtLeast pkgs.libgit2.version "1.9.0" then pkgs.libgit2 else pkgs.libgit2.overrideAttrs (attrs: { # libgit2: Nixpkgs 24.11 has < 1.9.0, which needs our patches nativeBuildInputs = attrs.nativeBuildInputs or [ ] # gitMinimal does not build on Windows. See packbuilder patch. ++ lib.optionals (!stdenv.hostPlatform.isWindows) [ # Needed for `git apply`; see `prePatch` pkgs.buildPackages.gitMinimal ]; # Only `git apply` can handle git binary patches prePatch = attrs.prePatch or "" + lib.optionalString (!stdenv.hostPlatform.isWindows) '' patch() { git apply } ''; patches = attrs.patches or [ ] ++ [ ./patches/libgit2-mempack-thin-packfile.patch ] # gitMinimal does not build on Windows, but fortunately this patch only # impacts interruptibility ++ lib.optionals (!stdenv.hostPlatform.isWindows) [ # binary patch; see `prePatch` ./patches/libgit2-packbuilder-callback-interruptible.patch ]; }); }