aboutsummaryrefslogtreecommitdiff
path: root/pkgs/os-specific/linux/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/systemd')
-rw-r--r--pkgs/os-specific/linux/systemd/cryptsetup-generator.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix b/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
index d02a531f67f..c89a8ff9147 100644
--- a/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
+++ b/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
@@ -11,6 +11,17 @@ stdenv.lib.overrideDerivation systemd (p: {
ninja systemd-cryptsetup systemd-cryptsetup-generator
'';
+ # As ninja install is not used here, the rpath needs to be manually fixed.
+ # Otherwise the resulting binary doesn't properly link against systemd-shared.so
+ postFixup = ''
+ sharedLib=libsystemd-shared-${p.version}.so
+ for prog in `find $out -type f -executable`; do
+ (patchelf --print-needed $prog | grep $sharedLib > /dev/null) && (
+ patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
+ ) || true
+ done
+ '';
+
installPhase = ''
mkdir -p $out/lib/systemd/
cp systemd-cryptsetup $out/lib/systemd/systemd-cryptsetup