summary refs log blame commit diff
path: root/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
blob: 3fd8ff07f425ad809cbf23af89fd6fe309f8289c (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                        
 
                           
                      
                                                     
 
                                                


                      
                                                         

     


                                                                                  
                                                   
                                                                                        


                                                                                    

                                         

     
                   
                              

                                                             

                                                
                                                                                                   

     
{ systemd, cryptsetup }:

systemd.overrideAttrs (p: {
  version = p.version;
  name = "systemd-cryptsetup-generator-${p.version}";

  buildInputs = p.buildInputs ++ [ cryptsetup ];
  outputs = [ "out" ];

  buildPhase = ''
    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 = ''
    for prog in `find $out -type f -executable`; do
      (patchelf --print-needed $prog | grep 'libsystemd-shared-.*\.so' > /dev/null) && (
        patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
      ) || true
    done
    # test it's OK
    "$out"/lib/systemd/systemd-cryptsetup
  '';

  installPhase = ''
    mkdir -p $out/lib/systemd/
    cp systemd-cryptsetup $out/lib/systemd/systemd-cryptsetup
    cp src/shared/*.so $out/lib/systemd/

    mkdir -p $out/lib/systemd/system-generators/
    cp systemd-cryptsetup-generator $out/lib/systemd/system-generators/systemd-cryptsetup-generator
  '';
})