glibc: Fixed gencat and librt impurities.

Patch submitted by Jack Cummings <jack@mudshark.org> to the nix-dev
mailing list in message <20120309092909.GG39859@ice9.mudshark.org>.

svn path=/nixpkgs/branches/stdenv-updates/; revision=33536
This commit is contained in:
Peter Simons 2012-04-02 14:15:01 +00:00
parent 29b0341589
commit 342559e0a1
3 changed files with 21 additions and 0 deletions

View File

@ -51,5 +51,11 @@ postInstall() {
rm -f $out/lib/libgcc_s.so.1
}
postFixup() {
# libelf uses gencat, so we need to fix it's rpath so that it doesn't pick up the system rpath.
patchelf --set-rpath $out/lib $out/bin/gencat
# librt (used by acl, used by coreutils) links against pthread, try *not* to pick up the system one.
patchelf --set-rpath $out/lib $out/lib/librt-*.so
}
genericBuild

View File

@ -51,5 +51,12 @@ postInstall() {
rm -f $out/lib/libgcc_s.so.1
}
postFixup() {
# libelf uses gencat, so we need to fix it's rpath so that it doesn't pick up the system rpath.
patchelf --set-rpath $out/lib $out/bin/gencat
# librt (used by acl, used by coreutils) links against pthread, try *not* to pick up the system one.
patchelf --set-rpath $out/lib $out/lib/librt-*.so
}
genericBuild

View File

@ -44,6 +44,14 @@ stdenv.mkDerivation rec {
NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol";
# the coreutils install calls the ginstall just compiled, before we have
# a chance to patchelf it.
libPath = stdenv.lib.makeLibraryPath ([stdenv.gcc.libc] ++ buildInputs);
preInstall = ''
patchelf --set-rpath $libPath src/ginstall
'';
meta = {
homepage = http://www.gnu.org/software/coreutils/;
description = "The basic file, shell and text manipulation utilities of the GNU operating system";