From fc16b50d3748efb8b150e3d624b9edf0e7bdc498 Mon Sep 17 00:00:00 2001 From: Artemis Tosini Date: Thu, 21 Nov 2024 22:58:12 +0000 Subject: [PATCH] flake: Use nixpkgs 24.11 nixpkgs 24.11 changes how we access xonsh yet again and updates clang. Unfortunately, clang 18 produces significantly more warnings on existing code that is challenging to fix. Make sure that doesn't error when we're running `-Werror` builds. n.b. I had to change the "SSL certificate problem: self-signed certificate" to the old error prior to the improved libcurl errors, since what is presumably a difference in which TLS library is used has cropped up between releases? Either way the curl error buffer is empty. Seems like we aggressively cannot do anything about this. Co-authored-by: eldritch horrors Change-Id: If0141a46a8b445a0e7d6f86f939e8c8e03569bf5 --- flake.lock | 14 +++++++------- flake.nix | 8 ++++---- meson.build | 1 + package.nix | 3 +-- tests/nixos/default.nix | 2 ++ tests/nixos/fetchurl.nix | 2 +- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/flake.lock b/flake.lock index c05ad0c96..934f1f594 100644 --- a/flake.lock +++ b/flake.lock @@ -34,16 +34,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735651292, - "narHash": "sha256-YLbzcBtYo1/FEzFsB3AnM16qFc6fWPMIoOuSoDwvg9g=", + "lastModified": 1733348545, + "narHash": "sha256-b4JrUmqT0vFNx42aEN9LTWOHomkTKL/ayLopflVf81U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0da3c44a9460a26d2025ec3ed2ec60a895eb1114", + "rev": "9ecb50d2fae8680be74c08bb0a995c5383747f89", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05-small", + "ref": "nixos-24.11-small", "repo": "nixpkgs", "type": "github" } @@ -67,11 +67,11 @@ "pre-commit-hooks": { "flake": false, "locked": { - "lastModified": 1721042469, - "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "lastModified": 1733318908, + "narHash": "sha256-SVQVsbafSM1dJ4fpgyBqLZ+Lft+jcQuMtEL3lQWx2Sk=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "rev": "6f4e2a2112050951a314d2733a994fbab94864c6", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 0703590b2..67752b8b7 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Lix: A modern, delicious implementation of the Nix package manager"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05-small"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11-small"; nixpkgs-regression.url = "github:NixOS/nixpkgs/215d4d0fd80ca5163643b03a33fde804a29cc1e2"; pre-commit-hooks = { url = "github:cachix/git-hooks.nix"; @@ -349,10 +349,10 @@ name = "nixpkgs-lib-tests"; paths = [ testWithNix ] - # FIXME: This is disabled on darwin due to a nixpkgs bug https://github.com/NixOS/nixpkgs/issues/319147 - # After that is fixed, it should be restored to use lib/tests/release.nix as before, rather than this reimplementation. + # NOTE: nixpkgs 24.11 is being ... *creative*, and requires this dance to override + # the evaluator used for the test. it will break again in the future, don't worry. ++ lib.optionals pkgs.stdenv.isLinux [ - (import (nixpkgs + "/pkgs/test/release") { inherit pkgs lib nix; }) + (pkgs.callPackage "${nixpkgs}/ci/eval" { nixVersions.nix_2_24 = nix; }).attrpathsSuperset ]; } ); diff --git a/meson.build b/meson.build index ef28cfd0a..38a36b0aa 100644 --- a/meson.build +++ b/meson.build @@ -480,6 +480,7 @@ add_project_arguments( # It would be nice for our headers to be idempotent instead. '-include', 'config.h', '-Wno-deprecated-declarations', + '-Wno-missing-field-initializers', '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', diff --git a/package.nix b/package.nix index ba0cf1f9b..d5a0d1773 100644 --- a/package.nix +++ b/package.nix @@ -427,7 +427,6 @@ stdenv.mkDerivation (finalAttrs: { just, nixfmt-rfc-style, skopeo, - xonsh, # Lix specific packages pre-commit-checks, @@ -447,7 +446,7 @@ stdenv.mkDerivation (finalAttrs: { p.requests p.xdg-base-dirs p.packaging - (p.toPythonModule xonsh.passthru.unwrapped) + p.xonsh ] ); pythonEnv = python3.withPackages pythonPackages; diff --git a/tests/nixos/default.nix b/tests/nixos/default.nix index e48d47559..ec7573404 100644 --- a/tests/nixos/default.nix +++ b/tests/nixos/default.nix @@ -12,6 +12,8 @@ let defaults = { nixpkgs.pkgs = nixpkgsFor.${system}.native; nix.checkAllErrors = false; + # nixos-option fails to build with lix and no tests use any of the tools + system.disableInstallerTools = true; }; _module.args.nixpkgs = nixpkgs; _module.args.system = system; diff --git a/tests/nixos/fetchurl.nix b/tests/nixos/fetchurl.nix index 130af0262..abcec125f 100644 --- a/tests/nixos/fetchurl.nix +++ b/tests/nixos/fetchurl.nix @@ -76,7 +76,7 @@ in # Fetching from a server with an untrusted cert should fail. err = machine.fail("nix build --no-substitute --expr 'import { url = \"https://bad/index.html\"; hash = \"sha256-rsBwZF/lPuOzdjBZN2E08FjMM3JHyXit0Xi2zN+wAZ8=\"; }' 2>&1") print(err) - assert "SSL certificate problem: self-signed certificate" in err or "SSL peer certificate or SSH remote key was not OK" in err + assert "SSL peer certificate or SSH remote key was not OK" in err # Fetching from a server with a trusted cert should work via environment variable override. machine.succeed("NIX_SSL_CERT_FILE=/tmp/cafile.pem nix build --no-substitute --expr 'import { url = \"https://bad/index.html\"; hash = \"sha256-rsBwZF/lPuOzdjBZN2E08FjMM3JHyXit0Xi2zN+wAZ8=\"; }'")