mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-30 19:02:57 +00:00
commit
23ef0fdbf7
@ -2,15 +2,14 @@
|
|||||||
let
|
let
|
||||||
cfg = config.programs.nix-ld;
|
cfg = config.programs.nix-ld;
|
||||||
|
|
||||||
# TODO make glibc here configurable?
|
|
||||||
nix-ld-so = pkgs.runCommand "ld.so" {} ''
|
|
||||||
ln -s "$(cat '${pkgs.stdenv.cc}/nix-support/dynamic-linker')" $out
|
|
||||||
'';
|
|
||||||
|
|
||||||
nix-ld-libraries = pkgs.buildEnv {
|
nix-ld-libraries = pkgs.buildEnv {
|
||||||
name = "lb-library-path";
|
name = "lb-library-path";
|
||||||
pathsToLink = [ "/lib" ];
|
pathsToLink = [ "/lib" ];
|
||||||
paths = map lib.getLib cfg.libraries;
|
paths = map lib.getLib cfg.libraries;
|
||||||
|
# TODO make glibc here configurable?
|
||||||
|
postBuild = ''
|
||||||
|
ln -s ${pkgs.stdenv.cc.bintools.dynamicLinker} $out/share/nix-ld/lib/ld.so
|
||||||
|
'';
|
||||||
extraPrefix = "/share/nix-ld";
|
extraPrefix = "/share/nix-ld";
|
||||||
ignoreCollisions = true;
|
ignoreCollisions = true;
|
||||||
};
|
};
|
||||||
@ -38,12 +37,7 @@ in
|
|||||||
meta.maintainers = [ lib.maintainers.mic92 ];
|
meta.maintainers = [ lib.maintainers.mic92 ];
|
||||||
options.programs.nix-ld = {
|
options.programs.nix-ld = {
|
||||||
enable = lib.mkEnableOption (lib.mdDoc ''nix-ld, Documentation: <https://github.com/Mic92/nix-ld>'');
|
enable = lib.mkEnableOption (lib.mdDoc ''nix-ld, Documentation: <https://github.com/Mic92/nix-ld>'');
|
||||||
package = lib.mkOption {
|
package = lib.mkPackageOptionMD pkgs "nix-ld" { };
|
||||||
type = lib.types.package;
|
|
||||||
description = lib.mdDoc "Which package to use for the nix-ld.";
|
|
||||||
default = pkgs.nix-ld;
|
|
||||||
defaultText = lib.literalExpression "pkgs.nix-ld";
|
|
||||||
};
|
|
||||||
libraries = lib.mkOption {
|
libraries = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
description = lib.mdDoc "Libraries that automatically become available to all programs. The default set includes common libraries.";
|
description = lib.mdDoc "Libraries that automatically become available to all programs. The default set includes common libraries.";
|
||||||
@ -60,7 +54,7 @@ in
|
|||||||
environment.pathsToLink = [ "/share/nix-ld" ];
|
environment.pathsToLink = [ "/share/nix-ld" ];
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
NIX_LD = toString nix-ld-so;
|
NIX_LD = "/run/current-system/sw/share/nix-ld/lib/ld.so";
|
||||||
NIX_LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
|
NIX_LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -13,5 +13,8 @@ import ./make-test-python.nix ({ lib, pkgs, ...} :
|
|||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
machine.succeed("hello")
|
machine.succeed("hello")
|
||||||
|
|
||||||
|
# test fallback if NIX_LD is not set
|
||||||
|
machine.succeed("unset NIX_LD; unset NIX_LD_LIBRARY_PATH; hello")
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
@ -12,13 +12,13 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "nix-ld";
|
pname = "nix-ld";
|
||||||
version = "1.1.0";
|
version = "1.2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mic92";
|
owner = "mic92";
|
||||||
repo = "nix-ld";
|
repo = "nix-ld";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-dM9YPN+yq6sHmRhJQinYdAVXBkTgEtrVQcsd/mIIX0o=";
|
sha256 = "sha256-NitUt9LBJMpAbbKC98aRPYMfxZFq3PHH6ieqM4MVO08=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user