Merge pull request #244545 from ShamrockLee/xrootd-wrap
xrootd: wrap executables with [DY]LD_LIBRARY_PATH prefix
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, cppunit
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, curl
|
||||
, fuse
|
||||
@@ -24,6 +25,9 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "xrootd";
|
||||
version = "5.5.5";
|
||||
|
||||
@@ -55,6 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
pkg-config
|
||||
];
|
||||
|
||||
@@ -101,7 +106,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"-DENABLE_TESTS=TRUE"
|
||||
];
|
||||
|
||||
postFixup = lib.optionalString (externalEtc != null) ''
|
||||
makeWrapperArgs = [
|
||||
# Workaround the library-not-found issue
|
||||
# happening to binaries compiled with xrootd libraries.
|
||||
# See #169677
|
||||
"--prefix" "${lib.optionalString stdenv.hostPlatform.isDarwin "DY"}LD_LIBRARY_PATH" ":" "${placeholder "out"}/lib"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
while IFS= read -r FILE; do
|
||||
wrapProgram "$FILE" "''${makeWrapperArgs[@]}"
|
||||
done < <(find "$bin/bin" -mindepth 1 -maxdepth 1 -type f,l -perm -a+x)
|
||||
'' + lib.optionalString (externalEtc != null) ''
|
||||
mv "$out"/etc{,.orig}
|
||||
ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
|
||||
'';
|
||||
|
||||
@@ -21,11 +21,9 @@
|
||||
inherit url;
|
||||
urls = if urls == [ ] then lib.singleton url else urls;
|
||||
}
|
||||
# Set [DY]LD_LIBRARY_PATH to workaround #169677
|
||||
# TODO: Remove the library path after #200830 get merged
|
||||
''
|
||||
for u in $urls; do
|
||||
${lib.optionalString buildPlatform.isDarwin "DY"}LD_LIBRARY_PATH=${lib.makeLibraryPath [ xrootd ]} xrdcp --force "$u" "$out"
|
||||
xrdcp --verbose --force "$u" "$out"
|
||||
ret=$?
|
||||
(( ret != 0 )) || break
|
||||
done
|
||||
|
||||
@@ -2112,7 +2112,10 @@ with pkgs;
|
||||
|
||||
xpaste = callPackage ../tools/text/xpaste { };
|
||||
|
||||
xrootd = callPackage ../tools/networking/xrootd { };
|
||||
xrootd = callPackage ../tools/networking/xrootd {
|
||||
# Workaround systemd static build breakage
|
||||
systemd = if systemd.meta.broken then null else systemd;
|
||||
};
|
||||
|
||||
yabridge = callPackage ../tools/audio/yabridge {
|
||||
wine = wineWowPackages.staging;
|
||||
|
||||
Reference in New Issue
Block a user