nixForLinking: init (#384099)

This commit is contained in:
jade
2025-03-12 10:13:54 -07:00
committed by GitHub
7 changed files with 40 additions and 17 deletions

View File

@@ -18,7 +18,7 @@
makeSetupHook,
cacert,
callPackage,
nix,
nixForLinking,
}:
let
@@ -55,7 +55,7 @@ in
lib.makeBinPath [
coreutils
nix-prefetch-git
nix
nixForLinking
]
}

View File

@@ -2,7 +2,7 @@
lib,
rustPlatform,
fetchFromGitHub,
nix,
nixForLinking,
nixosTests,
boost,
pkg-config,
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage {
buildInputs =
[
nix
nixForLinking
boost
]
++ lib.optionals stdenv.hostPlatform.isDarwin (
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage {
useFetchCargoVendor = true;
ATTIC_DISTRIBUTOR = "nixpkgs";
NIX_INCLUDE_PATH = "${lib.getDev nix}/include";
NIX_INCLUDE_PATH = "${lib.getDev nixForLinking}/include";
# Attic interacts with Nix directly and its tests require trusted-user access
# to nix-daemon to import NARs, which is not possible in the build sandbox.

View File

@@ -8,7 +8,7 @@
darwin,
gitMinimal,
mercurial,
nix,
nixForLinking,
}:
rustPlatform.buildRustPackage rec {
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
lib.makeBinPath [
gitMinimal
mercurial
nix
nixForLinking
]
}
installManPage artifacts/nurl.1

View File

@@ -8,7 +8,7 @@
llvmPackages,
meson,
ninja,
nix,
nixForLinking,
nix-update-script,
nixd,
nixf,
@@ -101,12 +101,12 @@ in
];
buildInputs = [
nix
nixForLinking
gtest
boost
];
env.CXXFLAGS = "-include ${nix.dev}/include/nix/config.h";
env.CXXFLAGS = "-include ${nixForLinking.dev}/include/nix/config.h";
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = nixt;
@@ -127,7 +127,7 @@ in
sourceRoot = "${common.src.name}/nixd";
buildInputs = [
nix
nixForLinking
nixf
nixt
llvmPackages.llvm
@@ -137,7 +137,7 @@ in
nativeBuildInputs = common.nativeBuildInputs ++ [ cmake ];
env.CXXFLAGS = "-include ${nix.dev}/include/nix/config.h";
env.CXXFLAGS = "-include ${nixForLinking.dev}/include/nix/config.h";
# See https://github.com/nix-community/nixd/issues/519
doCheck = false;

View File

@@ -3,7 +3,7 @@
stdenv,
fetchFromGitHub,
rustPlatform,
nix,
nixForLinking,
nlohmann_json,
boost,
graphviz,
@@ -27,13 +27,13 @@ rustPlatform.buildRustPackage rec {
doCheck = true;
nativeCheckInputs = [
nix
nixForLinking
graphviz
];
buildInputs = [
boost
nix
nixForLinking
nlohmann_json
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Security ];

View File

@@ -1,5 +1,18 @@
{ lib, stdenv, makeWrapper, buildEnv
, bash, breezy, coreutils, cvs, findutils, gawk, git, git-lfs, gnused, mercurial, nix, subversion
, bash, breezy, coreutils, cvs, findutils, gawk, git, git-lfs, gnused, mercurial
, # FIXME: These scripts should not depend on Nix, they should depend on a
# `.nar` hasher compatible with Nix.
#
# The fact that these scripts depend on Nix means that e.g. Chromium depends
# on Nix.
#
# Also should be fixed:
# - prefetch-yarn-deps
# - nurl, nix-init
#
# Gridlock is one such candidate: https://github.com/lf-/gridlock
nixForLinking
, subversion
}:
let mkPrefetchScript = tool: src: deps:
@@ -15,7 +28,7 @@ let mkPrefetchScript = tool: src: deps:
installPhase = ''
install -vD ${src} $out/bin/$name;
wrapProgram $out/bin/$name \
--prefix PATH : ${lib.makeBinPath (deps ++ [ coreutils gnused nix ])} \
--prefix PATH : ${lib.makeBinPath (deps ++ [ coreutils gnused nixForLinking ])} \
--set HOME /homeless-shelter
'';

View File

@@ -17518,6 +17518,16 @@ with pkgs;
nix = nixVersions.stable;
# Overlays for CppNix nightly, Lix, or Tvix want to change the default Nix
# implementation in Nixpkgs by overriding `pkgs.nix`. However, some packages
# link against the internal/unstable CppNix APIs directly, and these packages
# will break if built with different versions or implementations of Nix.
#
# If you want to swap out the Nix implementation in your package set, you
# don't want these packages to break. Therefore, some packages will refer to
# `nixForLinking` explicitly, at least until these dependencies can be sorted out.
nixForLinking = nixVersions.stable;
nixStatic = pkgsStatic.nix;
lixVersions = recurseIntoAttrs (callPackage ../tools/package-management/lix {