at 18.09-beta 33 lines 1.1 kB view raw
1{ stdenv, systemd, cryptsetup }: 2 3systemd.overrideAttrs (p: { 4 version = p.version; 5 name = "systemd-cryptsetup-generator-${p.version}"; 6 7 buildInputs = p.buildInputs ++ [ cryptsetup ]; 8 outputs = [ "out" ]; 9 10 buildPhase = '' 11 ninja systemd-cryptsetup systemd-cryptsetup-generator 12 ''; 13 14 # As ninja install is not used here, the rpath needs to be manually fixed. 15 # Otherwise the resulting binary doesn't properly link against systemd-shared.so 16 postFixup = '' 17 sharedLib=libsystemd-shared-${p.version}.so 18 for prog in `find $out -type f -executable`; do 19 (patchelf --print-needed $prog | grep $sharedLib > /dev/null) && ( 20 patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog 21 ) || true 22 done 23 ''; 24 25 installPhase = '' 26 mkdir -p $out/lib/systemd/ 27 cp systemd-cryptsetup $out/lib/systemd/systemd-cryptsetup 28 cp src/shared/*.so $out/lib/systemd/ 29 30 mkdir -p $out/lib/systemd/system-generators/ 31 cp systemd-cryptsetup-generator $out/lib/systemd/system-generators/systemd-cryptsetup-generator 32 ''; 33})