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 = [ ];