From cf5f2ec29e76b46f3c12f5eeccf744fbf881beb6 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 9 Apr 2025 15:44:21 +0200 Subject: [PATCH] nixVersions.git: 2025-04-07 -> 2025-04-09 This adds the nix-fetchers-c library (C API) which may be of interest. Technically, since 2.28 is not packaged with these files at this time, the conditionals are redundant, but I'd like this commit to serve as a blueprint for future updates, and I'd like to keep options open for 2.28 packaging. --- pkgs/tools/package-management/nix/default.nix | 6 +- .../nix/modular/packaging/components.nix | 3 + .../nix/modular/packaging/everything.nix | 59 ++++++++++++------- .../nix/modular/src/libfetchers-c/package.nix | 34 +++++++++++ .../modular/src/libfetchers-tests/package.nix | 4 ++ .../nix/modular/src/libflake-c/package.nix | 17 ++++-- 6 files changed, 93 insertions(+), 30 deletions(-) create mode 100644 pkgs/tools/package-management/nix/modular/src/libfetchers-c/package.nix diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 1588f248d38b..3aa9c6a531d7 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -189,14 +189,14 @@ lib.makeExtensible ( }; nixComponents_git = nixDependencies.callPackage ./modular/packages.nix rec { - version = "2.29pre20250407_${lib.substring 0 8 src.rev}"; + version = "2.29pre20250409_${lib.substring 0 8 src.rev}"; inherit (self.nix_2_24.meta) maintainers; otherSplices = generateSplicesForNixComponents "nixComponents_git"; src = fetchFromGitHub { owner = "NixOS"; repo = "nix"; - rev = "73d3159ba0b4b711c1f124a587f16e2486d685d7"; - hash = "sha256-9wJXUGqXIqMjNyKWJKCcxrDHM/KxDkvJMwo6S3s+WuM="; + rev = "e76bbe413e86e3208bb9824e339d59af25327101"; + hash = "sha256-Aqnj5+sA7B4ZRympuyfWPPK83iomKHEHMYhlwslI8iA="; }; }; diff --git a/pkgs/tools/package-management/nix/modular/packaging/components.nix b/pkgs/tools/package-management/nix/modular/packaging/components.nix index 7e9dbb05a1fb..134f7f62178b 100644 --- a/pkgs/tools/package-management/nix/modular/packaging/components.nix +++ b/pkgs/tools/package-management/nix/modular/packaging/components.nix @@ -201,6 +201,8 @@ let } ); + whenAtLeast = v: thing: if lib.versionAtLeast version v then thing else null; + in # This becomes the pkgs.nixComponents attribute set @@ -336,6 +338,7 @@ in nix-store-tests = callPackage ../src/libstore-tests/package.nix { }; nix-fetchers = callPackage ../src/libfetchers/package.nix { }; + ${whenAtLeast "2.29pre" "nix-fetchers-c"} = callPackage ../src/libfetchers-c/package.nix { }; nix-fetchers-tests = callPackage ../src/libfetchers-tests/package.nix { }; nix-expr = callPackage ../src/libexpr/package.nix { }; diff --git a/pkgs/tools/package-management/nix/modular/packaging/everything.nix b/pkgs/tools/package-management/nix/modular/packaging/everything.nix index 1835eefb643b..f8605b923689 100644 --- a/pkgs/tools/package-management/nix/modular/packaging/everything.nix +++ b/pkgs/tools/package-management/nix/modular/packaging/everything.nix @@ -6,6 +6,8 @@ maintainers, + version, + nix-util, nix-util-c, nix-util-tests, @@ -15,6 +17,7 @@ nix-store-tests, nix-fetchers, + nix-fetchers-c, nix-fetchers-tests, nix-expr, @@ -63,14 +66,20 @@ let nix-cmd ; } - // lib.optionalAttrs - (!stdenv.hostPlatform.isStatic && stdenv.buildPlatform.canExecute stdenv.hostPlatform) - { - # Currently fails in static build - inherit - nix-perl-bindings - ; - }; + // lib.optionalAttrs (lib.versionAtLeast version "2.29pre") { + inherit + nix-fetchers-c + ; + } + // + lib.optionalAttrs + (!stdenv.hostPlatform.isStatic && stdenv.buildPlatform.canExecute stdenv.hostPlatform) + { + # Currently fails in static build + inherit + nix-perl-bindings + ; + }; devdoc = buildEnv { name = "nix-${nix-cli.version}-devdoc"; @@ -225,20 +234,26 @@ stdenv.mkDerivation (finalAttrs: { "out" "man" ]; - pkgConfigModules = [ - "nix-cmd" - "nix-expr" - "nix-expr-c" - "nix-fetchers" - "nix-flake" - "nix-flake-c" - "nix-main" - "nix-main-c" - "nix-store" - "nix-store-c" - "nix-util" - "nix-util-c" - ]; + pkgConfigModules = + [ + "nix-cmd" + "nix-expr" + "nix-expr-c" + "nix-fetchers" + ] + ++ lib.optionals (lib.versionAtLeast version "2.29pre") [ + "nix-fetchers-c" + ] + ++ [ + "nix-flake" + "nix-flake-c" + "nix-main" + "nix-main-c" + "nix-store" + "nix-store-c" + "nix-util" + "nix-util-c" + ]; }; }) diff --git a/pkgs/tools/package-management/nix/modular/src/libfetchers-c/package.nix b/pkgs/tools/package-management/nix/modular/src/libfetchers-c/package.nix new file mode 100644 index 000000000000..9da68f9e4814 --- /dev/null +++ b/pkgs/tools/package-management/nix/modular/src/libfetchers-c/package.nix @@ -0,0 +1,34 @@ +{ + lib, + mkMesonLibrary, + + nix-store-c, + nix-expr-c, + nix-util-c, + nix-fetchers, + + # Configuration Options + + version, +}: + +mkMesonLibrary (finalAttrs: { + pname = "nix-fetchers-c"; + inherit version; + + workDir = ./.; + + propagatedBuildInputs = [ + nix-util-c + nix-expr-c + nix-store-c + nix-fetchers + ]; + + mesonFlags = [ ]; + + meta = { + platforms = lib.platforms.unix ++ lib.platforms.windows; + }; + +}) diff --git a/pkgs/tools/package-management/nix/modular/src/libfetchers-tests/package.nix b/pkgs/tools/package-management/nix/modular/src/libfetchers-tests/package.nix index 62b86697800a..54766cc52010 100644 --- a/pkgs/tools/package-management/nix/modular/src/libfetchers-tests/package.nix +++ b/pkgs/tools/package-management/nix/modular/src/libfetchers-tests/package.nix @@ -5,6 +5,7 @@ mkMesonExecutable, nix-fetchers, + nix-fetchers-c, nix-store-test-support, libgit2, @@ -31,6 +32,9 @@ mkMesonExecutable (finalAttrs: { rapidcheck gtest ] + ++ lib.optionals (lib.versionAtLeast version "2.29pre") [ + nix-fetchers-c + ] ++ lib.optionals (lib.versionAtLeast version "2.27") [ libgit2 ]; diff --git a/pkgs/tools/package-management/nix/modular/src/libflake-c/package.nix b/pkgs/tools/package-management/nix/modular/src/libflake-c/package.nix index 3ee6c6b4f8a6..e2d54f827ef8 100644 --- a/pkgs/tools/package-management/nix/modular/src/libflake-c/package.nix +++ b/pkgs/tools/package-management/nix/modular/src/libflake-c/package.nix @@ -4,6 +4,7 @@ nix-store-c, nix-expr-c, + nix-fetchers-c, nix-flake, # Configuration Options @@ -17,11 +18,17 @@ mkMesonLibrary (finalAttrs: { workDir = ./.; - propagatedBuildInputs = [ - nix-expr-c - nix-store-c - nix-flake - ]; + propagatedBuildInputs = + [ + nix-expr-c + nix-store-c + ] + ++ lib.optionals (lib.versionAtLeast version "2.29pre") [ + nix-fetchers-c + ] + ++ [ + nix-flake + ]; mesonFlags = [ ];