2022-01-25 07:07:22 +00:00
|
|
|
{ lib
|
2022-01-26 19:31:20 +00:00
|
|
|
, aws-sdk-cpp
|
2022-01-25 07:07:22 +00:00
|
|
|
, boehmgc
|
|
|
|
, callPackage
|
|
|
|
, fetchFromGitHub
|
|
|
|
, fetchurl
|
2022-01-26 19:31:20 +00:00
|
|
|
, fetchpatch
|
2022-12-17 14:22:09 +00:00
|
|
|
, fetchpatch2
|
2022-01-25 07:07:22 +00:00
|
|
|
, Security
|
|
|
|
|
2004-03-31 10:19:01 +00:00
|
|
|
, storeDir ? "/nix/store"
|
|
|
|
, stateDir ? "/nix/var"
|
2017-05-03 13:04:52 +00:00
|
|
|
, confDir ? "/etc"
|
2004-03-31 10:19:01 +00:00
|
|
|
}:
|
2015-07-30 10:01:40 +00:00
|
|
|
let
|
2022-01-26 19:31:20 +00:00
|
|
|
boehmgc-nix_2_3 = boehmgc.override { enableLargeConfig = true; };
|
2021-07-17 22:00:00 +00:00
|
|
|
|
2022-01-26 19:31:20 +00:00
|
|
|
boehmgc-nix = boehmgc-nix_2_3.overrideAttrs (drv: {
|
2022-01-25 07:07:22 +00:00
|
|
|
# Part of the GC solution in https://github.com/NixOS/nix/pull/4944
|
|
|
|
patches = (drv.patches or [ ]) ++ [ ./patches/boehmgc-coroutine-sp-fallback.patch ];
|
2021-07-17 22:00:00 +00:00
|
|
|
});
|
|
|
|
|
2023-04-10 16:31:39 +00:00
|
|
|
# old nix fails to build with newer aws-sdk-cpp and the patch doesn't apply
|
|
|
|
aws-sdk-cpp-old-nix = (aws-sdk-cpp.override {
|
2022-01-26 19:31:20 +00:00
|
|
|
apis = [ "s3" "transfer" ];
|
|
|
|
customMemoryManagement = false;
|
2023-04-10 16:31:39 +00:00
|
|
|
}).overrideAttrs (args: rec {
|
|
|
|
# intentionally overriding postPatch
|
|
|
|
version = "1.9.294";
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "aws";
|
|
|
|
repo = "aws-sdk-cpp";
|
|
|
|
rev = version;
|
|
|
|
sha256 = "sha256-Z1eRKW+8nVD53GkNyYlZjCcT74MqFqqRMeMc33eIQ9g=";
|
|
|
|
};
|
|
|
|
postPatch = ''
|
|
|
|
# Avoid blanket -Werror to evade build failures on less
|
|
|
|
# tested compilers.
|
|
|
|
substituteInPlace cmake/compiler_settings.cmake \
|
|
|
|
--replace '"-Werror"' ' '
|
|
|
|
|
|
|
|
# Missing includes for GCC11
|
|
|
|
sed '5i#include <thread>' -i \
|
|
|
|
aws-cpp-sdk-cloudfront-integration-tests/CloudfrontOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-cognitoidentity-integration-tests/IdentityPoolOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-dynamodb-integration-tests/TableOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-elasticfilesystem-integration-tests/ElasticFileSystemTest.cpp \
|
|
|
|
aws-cpp-sdk-lambda-integration-tests/FunctionTest.cpp \
|
|
|
|
aws-cpp-sdk-mediastore-data-integration-tests/MediaStoreDataTest.cpp \
|
|
|
|
aws-cpp-sdk-queues/source/sqs/SQSQueue.cpp \
|
|
|
|
aws-cpp-sdk-redshift-integration-tests/RedshiftClientTest.cpp \
|
|
|
|
aws-cpp-sdk-s3-crt-integration-tests/BucketAndObjectOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-s3control-integration-tests/S3ControlTest.cpp \
|
|
|
|
aws-cpp-sdk-sqs-integration-tests/QueueOperationTest.cpp \
|
|
|
|
aws-cpp-sdk-transfer-tests/TransferTests.cpp
|
|
|
|
# Flaky on Hydra
|
|
|
|
rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp
|
|
|
|
# Includes aws-c-auth private headers, so only works with submodule build
|
|
|
|
rm aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp
|
|
|
|
# TestRandomURLMultiThreaded fails
|
|
|
|
rm aws-cpp-sdk-core-tests/http/HttpClientTest.cpp
|
|
|
|
'' + lib.optionalString aws-sdk-cpp.stdenv.isi686 ''
|
|
|
|
# EPSILON is exceeded
|
|
|
|
rm aws-cpp-sdk-core-tests/aws/client/AdaptiveRetryStrategyTest.cpp
|
|
|
|
'';
|
|
|
|
|
2022-01-26 19:31:20 +00:00
|
|
|
patches = (args.patches or [ ]) ++ [ ./patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch ];
|
2022-03-08 12:25:39 +00:00
|
|
|
|
|
|
|
# only a stripped down version is build which takes a lot less resources to build
|
2023-04-21 20:36:11 +00:00
|
|
|
requiredSystemFeatures = [ ];
|
2022-01-26 19:31:20 +00:00
|
|
|
});
|
2022-01-25 02:33:38 +00:00
|
|
|
|
2023-04-10 16:31:39 +00:00
|
|
|
aws-sdk-cpp-nix = (aws-sdk-cpp.override {
|
|
|
|
apis = [ "s3" "transfer" ];
|
|
|
|
customMemoryManagement = false;
|
|
|
|
}).overrideAttrs (args: {
|
|
|
|
# only a stripped down version is build which takes a lot less resources to build
|
2023-04-21 20:36:11 +00:00
|
|
|
requiredSystemFeatures = [ ];
|
2023-04-10 16:31:39 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2022-01-26 19:31:20 +00:00
|
|
|
common = args:
|
|
|
|
callPackage
|
2022-08-31 07:54:32 +00:00
|
|
|
(import ./common.nix ({ inherit lib fetchFromGitHub; } // args))
|
2022-01-26 19:31:20 +00:00
|
|
|
{
|
|
|
|
inherit Security storeDir stateDir confDir;
|
|
|
|
boehmgc = boehmgc-nix;
|
2023-04-10 16:31:39 +00:00
|
|
|
aws-sdk-cpp = if lib.versionAtLeast args.version "2.12pre" then aws-sdk-cpp-nix else aws-sdk-cpp-old-nix;
|
2022-01-26 19:31:20 +00:00
|
|
|
};
|
2022-12-17 14:22:09 +00:00
|
|
|
|
2023-01-16 22:01:31 +00:00
|
|
|
# https://github.com/NixOS/nix/pull/7585
|
|
|
|
patch-monitorfdhup = fetchpatch2 {
|
|
|
|
name = "nix-7585-monitor-fd-hup.patch";
|
|
|
|
url = "https://github.com/NixOS/nix/commit/1df3d62c769dc68c279e89f68fdd3723ed3bcb5a.patch";
|
|
|
|
sha256 = "sha256-f+F0fUO+bqyPXjt+IXJtISVr589hdc3y+Cdrxznb+Nk=";
|
|
|
|
};
|
|
|
|
|
2022-12-17 14:22:09 +00:00
|
|
|
# https://github.com/NixOS/nix/pull/7473
|
|
|
|
patch-sqlite-exception = fetchpatch2 {
|
|
|
|
name = "nix-7473-sqlite-exception-add-message.patch";
|
|
|
|
url = "https://github.com/hercules-ci/nix/commit/c965f35de71cc9d88f912f6b90fd7213601e6eb8.patch";
|
|
|
|
sha256 = "sha256-tI5nKU7SZgsJrxiskJ5nHZyfrWf5aZyKYExM0792N80=";
|
|
|
|
};
|
|
|
|
|
2023-03-10 21:08:10 +00:00
|
|
|
patch-non-existing-output = fetchpatch {
|
|
|
|
# https://github.com/NixOS/nix/pull/7283
|
|
|
|
name = "fix-requires-non-existing-output.patch";
|
|
|
|
url = "https://github.com/NixOS/nix/commit/3ade5f5d6026b825a80bdcc221058c4f14e10a27.patch";
|
|
|
|
sha256 = "sha256-s1ybRFCjQaSGj7LKu0Z5g7UiHqdJGeD+iPoQL0vaiS0=";
|
|
|
|
};
|
|
|
|
|
2022-01-29 00:16:25 +00:00
|
|
|
in lib.makeExtensible (self: {
|
2022-01-26 19:31:20 +00:00
|
|
|
nix_2_3 = (common rec {
|
2022-01-26 18:58:59 +00:00
|
|
|
version = "2.3.16";
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://nixos.org/releases/nix/nix-${version}/nix-${version}.tar.xz";
|
|
|
|
sha256 = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw=";
|
|
|
|
};
|
2023-01-16 22:01:31 +00:00
|
|
|
patches = [
|
|
|
|
patch-monitorfdhup
|
|
|
|
];
|
2022-01-26 19:31:20 +00:00
|
|
|
}).override { boehmgc = boehmgc-nix_2_3; };
|
2021-07-07 20:49:18 +00:00
|
|
|
|
2022-07-14 16:00:57 +00:00
|
|
|
nix_2_4 = throw "nixVersions.nix_2_4 has been removed";
|
2021-11-11 10:45:26 +00:00
|
|
|
|
2022-07-14 16:00:57 +00:00
|
|
|
nix_2_5 = throw "nixVersions.nix_2_5 has been removed";
|
2021-11-11 10:45:26 +00:00
|
|
|
|
2022-12-04 13:33:25 +00:00
|
|
|
nix_2_6 = throw "nixVersions.nix_2_6 has been removed";
|
2022-01-26 18:44:03 +00:00
|
|
|
|
2022-12-04 13:33:25 +00:00
|
|
|
nix_2_7 = throw "nixVersions.nix_2_7 has been removed";
|
2022-04-05 07:01:53 +00:00
|
|
|
|
2022-12-04 13:33:25 +00:00
|
|
|
nix_2_8 = throw "nixVersions.nix_2_8 has been removed";
|
2022-03-08 04:04:29 +00:00
|
|
|
|
2022-12-04 13:33:25 +00:00
|
|
|
nix_2_9 = throw "nixVersions.nix_2_9 has been removed";
|
2022-05-31 14:43:28 +00:00
|
|
|
|
2022-07-12 16:25:43 +00:00
|
|
|
nix_2_10 = common {
|
2022-07-15 19:00:14 +00:00
|
|
|
version = "2.10.3";
|
|
|
|
sha256 = "sha256-B9EyDUz/9tlcWwf24lwxCFmkxuPTVW7HFYvp0C4xGbc=";
|
2022-11-16 21:15:49 +00:00
|
|
|
patches = [
|
|
|
|
./patches/flaky-tests.patch
|
2023-03-10 21:08:10 +00:00
|
|
|
patch-non-existing-output
|
2023-01-16 22:01:31 +00:00
|
|
|
patch-monitorfdhup
|
2022-12-17 14:22:09 +00:00
|
|
|
patch-sqlite-exception
|
2022-11-16 21:15:49 +00:00
|
|
|
];
|
2022-07-12 16:25:43 +00:00
|
|
|
};
|
|
|
|
|
2022-08-29 06:42:38 +00:00
|
|
|
nix_2_11 = common {
|
2022-11-30 22:41:16 +00:00
|
|
|
version = "2.11.1";
|
|
|
|
sha256 = "sha256-qCV65kw09AG+EkdchDPq7RoeBznX0Q6Qa4yzPqobdOk=";
|
2022-11-16 21:15:43 +00:00
|
|
|
patches = [
|
|
|
|
./patches/flaky-tests.patch
|
2023-03-10 21:08:10 +00:00
|
|
|
patch-non-existing-output
|
2023-01-16 22:01:31 +00:00
|
|
|
patch-monitorfdhup
|
2022-12-17 14:22:09 +00:00
|
|
|
patch-sqlite-exception
|
2022-11-16 21:15:43 +00:00
|
|
|
];
|
2022-08-29 06:42:38 +00:00
|
|
|
};
|
|
|
|
|
2022-12-06 18:35:57 +00:00
|
|
|
nix_2_12 = common {
|
2023-02-27 17:45:44 +00:00
|
|
|
version = "2.12.1";
|
|
|
|
sha256 = "sha256-GmHKhq0uFtdOiJnuBwj2YwlZjvh6YTkfQZgeu4e0dLU=";
|
2022-12-06 18:35:57 +00:00
|
|
|
patches = [
|
|
|
|
./patches/flaky-tests.patch
|
2023-01-16 22:01:31 +00:00
|
|
|
patch-monitorfdhup
|
2022-12-17 14:22:09 +00:00
|
|
|
patch-sqlite-exception
|
2022-12-06 18:35:57 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2023-01-17 21:12:50 +00:00
|
|
|
nix_2_13 = common {
|
2023-02-27 17:22:36 +00:00
|
|
|
version = "2.13.3";
|
|
|
|
sha256 = "sha256-jUc2ccTR8f6MGY2pUKgujm+lxSPNGm/ZAP+toX+nMNc=";
|
2023-01-17 21:12:50 +00:00
|
|
|
};
|
|
|
|
|
2023-02-28 21:32:33 +00:00
|
|
|
nix_2_14 = common {
|
|
|
|
version = "2.14.1";
|
|
|
|
sha256 = "sha256-5aCmGZbsFcLIckCDfvnPD4clGPQI7qYAqHYlttN/Wkg=";
|
|
|
|
};
|
|
|
|
|
2023-04-11 20:01:06 +00:00
|
|
|
nix_2_15 = common {
|
|
|
|
version = "2.15.0";
|
|
|
|
sha256 = "sha256-hNHfvmb1bIWwqFT5nesQgwh4V0OlyZHxj5ZVSQbZ+p4=";
|
|
|
|
};
|
|
|
|
|
2023-05-26 16:25:16 +00:00
|
|
|
# The minimum Nix version supported by Nixpkgs
|
|
|
|
# Note that some functionality *might* have been backported into this Nix version,
|
|
|
|
# making this package an inaccurate representation of what features are available
|
|
|
|
# in the actual lowest minver.nix *patch* version.
|
|
|
|
minimum =
|
|
|
|
let
|
|
|
|
minver = import ../../../../lib/minver.nix;
|
|
|
|
major = lib.versions.major minver;
|
|
|
|
minor = lib.versions.minor minver;
|
|
|
|
attribute = "nix_${major}_${minor}";
|
|
|
|
nix = self.${attribute};
|
|
|
|
in
|
|
|
|
if ! self ? ${attribute} then
|
|
|
|
throw "The minimum supported Nix version is ${minver} (declared in lib/minver.nix), but pkgs.nixVersions.${attribute} does not exist."
|
|
|
|
else
|
|
|
|
nix;
|
|
|
|
|
2023-01-26 12:22:48 +00:00
|
|
|
stable = self.nix_2_13;
|
2022-01-25 02:03:13 +00:00
|
|
|
|
2023-04-13 06:01:57 +00:00
|
|
|
unstable = self.nix_2_15;
|
2022-01-29 00:16:25 +00:00
|
|
|
})
|