The library can be used also on Darwin using it like this: NIX_REDIRECTS='foo=bar' \ DYLD_INSERT_LIBRARIES=${libredirect}/lib/libredirect.so \ DYLD_FORCE_FLAT_NAMESPACE=1 \ some_program So let's actually not hardcade gcc and add Darwin to meta.platforms. No other changes seem to be required. Signed-off-by: aszlig <aszlig@nix.build>
24 lines
742 B
Nix
24 lines
742 B
Nix
{ stdenv }:
|
|
|
|
stdenv.mkDerivation {
|
|
name = "libredirect-0";
|
|
|
|
unpackPhase = "cp ${./libredirect.c} libredirect.c";
|
|
|
|
buildPhase = ''
|
|
cc -Wall -std=c99 -O3 -shared libredirect.c -o libredirect.so -fPIC -ldl
|
|
'';
|
|
|
|
installPhase = "mkdir -p $out/lib; cp libredirect.so $out/lib";
|
|
|
|
meta = {
|
|
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
|
|
description = "An LD_PRELOAD library to intercept and rewrite the paths in glibc calls";
|
|
longDescription = ''
|
|
libredirect is an LD_PRELOAD library to intercept and rewrite the paths in
|
|
glibc calls based on the value of $NIX_REDIRECTS, a colon-separated list
|
|
of path prefixes to be rewritten, e.g. "/src=/dst:/usr/=/nix/store/".
|
|
'';
|
|
};
|
|
}
|