···11{
22+ lib,
23 runCommand,
34 srcOnly,
55+ hello,
46 emptyDirectory,
55- glibc,
77+ zlib,
88+ stdenv,
99+ testers,
610}:
711812let
913 emptySrc = srcOnly emptyDirectory;
1010- glibcSrc = srcOnly glibc;
1414+ zlibSrc = srcOnly zlib;
1515+1616+ # It can be invoked in a number of ways. Let's make sure they're equivalent.
1717+ zlibSrcDrvAttrs = srcOnly zlib.drvAttrs;
1818+ # zlibSrcFreeform = # ???;
1919+ helloSrc = srcOnly hello;
2020+ helloSrcDrvAttrs = srcOnly hello.drvAttrs;
2121+2222+ # The srcOnly <drv> invocation leaks a lot of attrs into the srcOnly derivation,
2323+ # so for comparing with the freeform invocation, we need to make a selection.
2424+ # Otherwise, we'll be comparing against whatever attribute the fancy hello drv
2525+ # has.
2626+ helloDrvSimple = stdenv.mkDerivation {
2727+ inherit (hello)
2828+ name
2929+ pname
3030+ version
3131+ src
3232+ patches
3333+ ;
3434+ };
3535+ helloDrvSimpleSrc = srcOnly helloDrvSimple;
3636+ helloDrvSimpleSrcFreeform = srcOnly (
3737+ {
3838+ inherit (helloDrvSimple)
3939+ name
4040+ pname
4141+ version
4242+ src
4343+ patches
4444+ stdenv
4545+ ;
4646+ }
4747+ # __impureHostDeps get duplicated in helloDrvSimpleSrc (on darwin)
4848+ # This is harmless, but fails the test for what is arguably an
4949+ # unrelated non-problem, so we just work around it here.
5050+ # The inclusion of __impureHostDeps really shouldn't be required,
5151+ # and should be removed from this test.
5252+ // lib.optionalAttrs (helloDrvSimple ? __impureHostDeps) {
5353+ inherit (helloDrvSimple) __impureHostDeps;
5454+ }
5555+ );
5656+1157in
12581313-runCommand "srcOnly-tests" { } ''
1414- # Test that emptySrc is empty
1515- if [ -n "$(ls -A ${emptySrc})" ]; then
1616- echo "emptySrc is not empty"
1717- exit 1
1818- fi
5959+runCommand "srcOnly-tests"
6060+ {
6161+ moreTests = [
6262+ (testers.testEqualDerivation "zlibSrcDrvAttrs == zlibSrc" zlibSrcDrvAttrs zlibSrc)
6363+ # (testers.testEqualDerivation
6464+ # "zlibSrcFreeform == zlibSrc"
6565+ # zlibSrcFreeform
6666+ # zlibSrc)
6767+ (testers.testEqualDerivation "helloSrcDrvAttrs == helloSrc" helloSrcDrvAttrs helloSrc)
6868+ (testers.testEqualDerivation "helloDrvSimpleSrcFreeform == helloDrvSimpleSrc"
6969+ helloDrvSimpleSrcFreeform
7070+ helloDrvSimpleSrc
7171+ )
7272+ ];
7373+ }
7474+ ''
7575+ # Test that emptySrc is empty
7676+ if [ -n "$(ls -A ${emptySrc})" ]; then
7777+ echo "emptySrc is not empty"
7878+ exit 1
7979+ fi
19802020- # Test that glibcSrc is not empty
2121- if [ -z "$(ls -A ${glibcSrc})" ]; then
2222- echo "glibcSrc is empty"
2323- exit 1
2424- fi
8181+ # Test that zlibSrc is not empty
8282+ if [ -z "$(ls -A ${zlibSrc})" ]; then
8383+ echo "zlibSrc is empty"
8484+ exit 1
8585+ fi
25862626- # Make $out exist to avoid build failure
2727- mkdir -p $out
2828-''
8787+ # Make $out exist to avoid build failure
8888+ mkdir -p $out
8989+ ''
···11-This change bypasses all the code that attempts to see which C++11 features are enabled in your specific C++11 compiler. C++14 is required for gtest 1.13+.
11+This change bypasses all the code that attempts to see which C++11 features are enabled in your specific C++11 compiler. C++17 is required for gtest 1.17+.
22diff --git a/CMakeLists.txt b/CMakeLists.txt
33index 902233e676ee..49ac8a1010a4 100644
44--- a/CMakeLists.txt
···2020- ENDIF()
2121+ SET(TINS_HAVE_CXX11 ON)
2222+ MESSAGE(STATUS "Using C++11 features")
2323-+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
2323++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
2424 ELSE(LIBTINS_ENABLE_CXX11)
2525 MESSAGE(
2626 WARNING
+5-3
pkgs/by-name/li/libtins/package.nix
···2121 };
22222323 patches = [
2424- # Required for gtest 1.13+, see also upstream report at:
2525- # https://github.com/mfontanini/libtins/issues/529
2626- ./0001-force-cpp-14.patch
2424+ # Required for gtest 1.17+:
2525+ # https://github.com/NixOS/nixpkgs/issues/425358
2626+ # See also an upstream report for gtest 1.13+ and C++14:
2727+ # https://github.com/mfontanini/libtins/issues/
2828+ ./0001-force-cpp-17.patch
2729 ];
28302931 postPatch = ''
···31313232 phome = "$out/lib/olympus";
3333 # The following variables are to be updated by the update script.
3434- version = "25.06.28.03";
3535- buildId = "4925"; # IMPORTANT: This line is matched with regex in update.sh.
3636- rev = "1671a4e90da4f8cd565712ed5344bd4e01cf29a1";
3434+ version = "25.07.12.01";
3535+ buildId = "4934"; # IMPORTANT: This line is matched with regex in update.sh.
3636+ rev = "17634d29b91b737580c878ba96f73bd077fbfba0";
3737in
3838buildDotnetModule {
3939 pname = "olympus-unwrapped";
···4444 owner = "EverestAPI";
4545 repo = "Olympus";
4646 fetchSubmodules = true; # Required. See upstream's README.
4747- hash = "sha256-TgtokrUt15k7SxjPcIFIbv2QL+hgB0cIZYb3oG/l/GI=";
4747+ hash = "sha256-Z6OWO6WCHhmmGI8dF23yiLNBy11Mutu941jY/0pxIkQ=";
4848 };
49495050 nativeBuildInputs = [