diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/package-management/nix/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/package-management/nix/default.nix | 171 |
1 files changed, 152 insertions, 19 deletions
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix index 945ca1aaf77e..e70f195d2679 100644 --- a/nixpkgs/pkgs/tools/package-management/nix/default.nix +++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix @@ -1,11 +1,11 @@ { lib , aws-sdk-cpp , boehmgc -, curl , callPackage , fetchFromGitHub , fetchurl , fetchpatch +, fetchpatch2 , Security , storeDir ? "/nix/store" @@ -20,31 +20,107 @@ let patches = (drv.patches or [ ]) ++ [ ./patches/boehmgc-coroutine-sp-fallback.patch ]; }); - aws-sdk-cpp-nix = (aws-sdk-cpp.override { + # 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 { apis = [ "s3" "transfer" ]; customMemoryManagement = false; - }).overrideDerivation (args: { + }).overrideAttrs (args: rec { + # intentionally overriding postPatch + version = "1.9.294"; + + src = fetchFromGitHub { + owner = "aws"; + repo = "aws-sdk-cpp"; + rev = version; + hash = "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 + ''; + patches = (args.patches or [ ]) ++ [ ./patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch ]; # only a stripped down version is build which takes a lot less resources to build - requiredSystemFeatures = null; + requiredSystemFeatures = [ ]; }); + 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 + requiredSystemFeatures = [ ]; + }); + + common = args: callPackage - (import ./common.nix ({ inherit lib fetchFromGitHub curl; } // args)) + (import ./common.nix ({ inherit lib fetchFromGitHub; } // args)) { inherit Security storeDir stateDir confDir; boehmgc = boehmgc-nix; - aws-sdk-cpp = aws-sdk-cpp-nix; + aws-sdk-cpp = if lib.versionAtLeast args.version "2.12pre" then aws-sdk-cpp-nix else aws-sdk-cpp-old-nix; }; + + # 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"; + hash = "sha256-f+F0fUO+bqyPXjt+IXJtISVr589hdc3y+Cdrxznb+Nk="; + }; + + # 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"; + hash = "sha256-tI5nKU7SZgsJrxiskJ5nHZyfrWf5aZyKYExM0792N80="; + }; + + 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"; + hash = "sha256-s1ybRFCjQaSGj7LKu0Z5g7UiHqdJGeD+iPoQL0vaiS0="; + }; + in lib.makeExtensible (self: { nix_2_3 = (common rec { version = "2.3.16"; src = fetchurl { url = "https://nixos.org/releases/nix/nix-${version}/nix-${version}.tar.xz"; - sha256 = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw="; + hash = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw="; }; + patches = [ + patch-monitorfdhup + ]; }).override { boehmgc = boehmgc-nix_2_3; }; nix_2_4 = throw "nixVersions.nix_2_4 has been removed"; @@ -55,23 +131,80 @@ in lib.makeExtensible (self: { nix_2_7 = throw "nixVersions.nix_2_7 has been removed"; - nix_2_8 = common { - version = "2.8.1"; - sha256 = "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o="; - }; + nix_2_8 = throw "nixVersions.nix_2_8 has been removed"; - nix_2_9 = common { - version = "2.9.2"; - sha256 = "sha256-uZCaBo9rdWRO/AlQMvVVjpAwzYijB2H5KKQqde6eHkg="; - }; + nix_2_9 = throw "nixVersions.nix_2_9 has been removed"; nix_2_10 = common { version = "2.10.3"; - sha256 = "sha256-B9EyDUz/9tlcWwf24lwxCFmkxuPTVW7HFYvp0C4xGbc="; - patches = [ ./patches/flaky-tests.patch ]; + hash = "sha256-B9EyDUz/9tlcWwf24lwxCFmkxuPTVW7HFYvp0C4xGbc="; + patches = [ + ./patches/flaky-tests.patch + patch-non-existing-output + patch-monitorfdhup + patch-sqlite-exception + ]; }; - stable = self.nix_2_10; + nix_2_11 = common { + version = "2.11.1"; + hash = "sha256-qCV65kw09AG+EkdchDPq7RoeBznX0Q6Qa4yzPqobdOk="; + patches = [ + ./patches/flaky-tests.patch + patch-non-existing-output + patch-monitorfdhup + patch-sqlite-exception + ]; + }; + + nix_2_12 = common { + version = "2.12.1"; + hash = "sha256-GmHKhq0uFtdOiJnuBwj2YwlZjvh6YTkfQZgeu4e0dLU="; + patches = [ + ./patches/flaky-tests.patch + patch-monitorfdhup + patch-sqlite-exception + ]; + }; + + nix_2_13 = common { + version = "2.13.3"; + hash = "sha256-jUc2ccTR8f6MGY2pUKgujm+lxSPNGm/ZAP+toX+nMNc="; + }; + + nix_2_14 = common { + version = "2.14.1"; + hash = "sha256-5aCmGZbsFcLIckCDfvnPD4clGPQI7qYAqHYlttN/Wkg="; + }; + + nix_2_15 = common { + version = "2.15.1"; + hash = "sha256-o7bxsNeq2LF6/dTl+lT2k50bSItkID80/uoZYVtlxro="; + }; + + nix_2_16 = common { + version = "2.16.1"; + hash = "sha256-/XCWa2osNFIpPC5MkxlX6qTZf/DaTLwS3LWN0SRFiuU="; + }; + + # 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; + + stable = self.nix_2_15; - unstable = self.stable; + unstable = self.nix_2_16; }) |