boost: Fix runtime dependencies in fixup instead of using a hook to fix binaries

Changed files
+12 -15
pkgs
development
+12 -3
pkgs/development/libraries/boost/generic.nix
···
-
{ stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames, makeSetupHook
+
{ stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
, toolset ? null
, enableRelease ? true
, enableDebug ? false
···
# Create a derivation which encompasses everything, making buildInputs nicer
mkdir -p $out/nix-support
-
echo "${stripHeaderPathHook} $dev $lib" > $out/nix-support/propagated-native-build-inputs
+
echo "$dev $lib" > $out/nix-support/propagated-native-build-inputs
'';
commonConfigureFlags = [
···
"--libdir=$(lib)/lib"
];
-
stripHeaderPathHook = makeSetupHook { } ./strip-header-path.sh;
+
fixup = ''
+
# Make boost header paths relative so that they are not runtime dependencies
+
(
+
cd "$dev"
+
find include \( -name '*.hpp' -or -name '*.h' \) -exec sed '1i#line 1 "{}"' -i '{}' \;
+
)
+
'';
in
···
installPhase = installer nativeB2Args;
+
postFixup = fixup;
+
outputs = [ "out" "dev" "lib" ];
crossAttrs = rec {
···
'';
buildPhase = builder crossB2Args;
installPhase = installer crossB2Args;
+
postFixup = fixup;
};
}
-12
pkgs/development/libraries/boost/strip-header-path.sh
···
-
postPhases+=" boostHeaderStripPhase"
-
-
boostHeaderStripPhase() {
-
runHook preBoostHeaderStrip
-
[ -z "$outputs" ] && outputs=out
-
for output in $outputs; do
-
eval "path=\$$outputs"
-
[ -d "$path/bin" ] || continue
-
find "$path/bin" -type f -exec sed -i "s,[^/]*\(-boost-[0-9.]*-dev\),xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\1,g" {} \;
-
done
-
runHook postBoostHeaderStrip
-
}