summary refs log blame commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix
blob: dd3cf03095266afe89e8776c3ce9b50e6d13a4bf (plain) (tree)
1
2
3
4
5
6
7
8
9
                                   
                                                           
 
                 
                                      
                                                                       
 
                                                                                            
 

                                                                           
                                                                         
                 

                                                                          


                                                                          



                                                                  

                                   
                                             
        
        





                                         
                                                           
 

                                                                                 
 




                                                                                   


          

                                                         

    
{ lib, appleDerivation, xcbuildHook
, openssl_1_0_2, Librpcsvc, xnu, libpcap, developer_cmds }:

appleDerivation {
  nativeBuildInputs = [ xcbuildHook ];
  buildInputs = [ openssl_1_0_2 xnu Librpcsvc libpcap developer_cmds ];

  NIX_CFLAGS_COMPILE = " -I./unbound -I${xnu}/Library/Frameworks/System.framework/Headers/";

  # "spray" requires some files that aren't compiling correctly in xcbuild.
  # "rtadvd" seems to fail with some missing constants.
  # "traceroute6" and "ping6" require ipsec which doesn't build correctly
  patchPhase = ''
    substituteInPlace network_cmds.xcodeproj/project.pbxproj \
      --replace "7294F0EA0EE8BAC80052EC88 /* PBXTargetDependency */," "" \
      --replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," "" \
      --replace "72CD1D9C0EE8C47C005F825D /* PBXTargetDependency */," "" \
      --replace "7216D2C20EE89ADF00AE70E4 /* PBXTargetDependency */," ""
  '';

  # temporary install phase until xcodebuild has "install" support
  installPhase = ''
    for f in Products/Release/*; do
      if [ -f $f ]; then
        install -D $f $out/bin/$(basename $f)
      fi
    done

    for n in 1 5; do
      mkdir -p $out/share/man/man$n
      install */*.$n $out/share/man/man$n
    done

    # TODO: patch files to load from $out/ instead of /usr/

    # mkdir -p $out/etc/
    # install rtadvd.tproj/rtadvd.conf ip6addrctl.tproj/ip6addrctl.conf $out/etc/

    # mkdir -p $out/local/OpenSourceVersions/
    # install network_cmds.plist $out/local/OpenSourceVersions/

    # mkdir -p $out/System/Library/LaunchDaemons
    # install kdumpd.tproj/com.apple.kdumpd.plist $out/System/Library/LaunchDaemons
 '';

  meta = {
    platforms = lib.platforms.darwin;
    maintainers = with lib.maintainers; [ matthewbauer ];
  };
}