mirror of
https://github.com/NixOS/nix
synced 2025-06-25 06:31:14 +02:00
The STSProfileCredentialsProviders allows to assume a specific IAM role when accessing an S3 repository. Sometimes this is needed to obtain the permissions to operate on the bucket.
105 lines
3.2 KiB
Nix
105 lines
3.2 KiB
Nix
# These overrides are applied to the dependencies of the Nix components.
|
|
|
|
{
|
|
# Flake inputs; used for sources
|
|
inputs,
|
|
|
|
# The raw Nixpkgs, not affected by this scope
|
|
pkgs,
|
|
|
|
stdenv,
|
|
}:
|
|
|
|
let
|
|
prevStdenv = stdenv;
|
|
in
|
|
|
|
let
|
|
inherit (pkgs) lib;
|
|
|
|
stdenv = if prevStdenv.isDarwin && prevStdenv.isx86_64 then darwinStdenv else prevStdenv;
|
|
|
|
# Fix the following error with the default x86_64-darwin SDK:
|
|
#
|
|
# error: aligned allocation function of type 'void *(std::size_t, std::align_val_t)' is only available on macOS 10.13 or newer
|
|
#
|
|
# Despite the use of the 10.13 deployment target here, the aligned
|
|
# allocation function Clang uses with this setting actually works
|
|
# all the way back to 10.6.
|
|
# NOTE: this is not just a version constraint, but a request to make Darwin
|
|
# provide this version level of support. Removing this minimum version
|
|
# request will regress the above error.
|
|
darwinStdenv = pkgs.overrideSDK prevStdenv { darwinMinVersion = "10.13"; };
|
|
|
|
in
|
|
scope: {
|
|
inherit stdenv;
|
|
|
|
aws-sdk-cpp =
|
|
(pkgs.aws-sdk-cpp.override {
|
|
apis = [
|
|
"identity-management"
|
|
"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
|
|
];
|
|
});
|
|
}
|