diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index b88fbeb4cba969..09ccda98d30952 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -13,90 +13,29 @@ , confDir ? "/etc" }: let - boehmgc-nix = boehmgc.override { - enableLargeConfig = true; - }.overrideAttrs (drv: { - patches = (drv.patches or [ ]) ++ [ - # Part of the GC solution in https://github.com/NixOS/nix/pull/4944 - ./patches/boehmgc-coroutine-sp-fallback.patch - ]; - }); - - # 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; - }).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 ' -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.hostPlatform.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 = [ ]; - }); - - aws-sdk-cpp-nix = (aws-sdk-cpp.override { - apis = [ "s3" "transfer" ]; - customMemoryManagement = false; - }).overrideAttrs { - # 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; } // args)) { inherit Security storeDir stateDir confDir; - boehmgc = boehmgc-nix; - aws-sdk-cpp = aws-sdk-cpp-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="; - }; + boehmgc = (boehmgc.override { + enableLargeConfig = true; + }).overrideAttrs (drv: { + patches = (drv.patches or [ ]) ++ [ + # Part of the GC solution in https://github.com/NixOS/nix/pull/4944 + ./patches/boehmgc-coroutine-sp-fallback.patch + ]; + }); + + aws-sdk-cpp = (aws-sdk-cpp.override { + apis = [ "s3" "transfer" ]; + customMemoryManagement = false; + }).overrideAttrs { + # only a stripped down version is build which takes a lot less resources to build + requiredSystemFeatures = [ ]; + }; + }; # Intentionally does not support overrideAttrs etc # Use only for tests that are about the package relation to `pkgs` and/or NixOS. @@ -136,13 +75,69 @@ in lib.makeExtensible (self: ({ version = "2.3.18"; hash = "sha256-jBz2Ub65eFYG+aWgSI3AJYvLSghio77fWQiIW1svA9U="; patches = [ - patch-monitorfdhup + # https://github.com/NixOS/nix/pull/7585 + (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="; + }) ]; self_attribute_name = "nix_2_3"; maintainers = with lib.maintainers; [ flokli ]; }).override { boehmgc = boehmgc.override { enableLargeConfig = true; }; - aws-sdk-cpp = aws-sdk-cpp-old-nix; + + # old nix fails to build with newer aws-sdk-cpp and the patch doesn't apply + aws-sdk-cpp = (aws-sdk-cpp.override { + apis = [ "s3" "transfer" ]; + customMemoryManagement = false; + }).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 ' -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.hostPlatform.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 = [ ]; + }); }).overrideAttrs { # https://github.com/NixOS/nix/issues/10222 # spurious test/add.sh failures