summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
blob: f434e15794eaf7b87eb7d259006ef5d204b5e24d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{ stdenv, appleDerivation, xcbuild }:

appleDerivation rec {
  buildInputs = [ xcbuild ];

  patchPhase = ''
    # NOTE: these hashes must be recalculated for each version change

    # disables:
    # - su ('security/pam_appl.h' file not found)
    # - find (Undefined symbol '_get_date')
    # - w (Undefined symbol '_res_9_init')
    substituteInPlace shell_cmds.xcodeproj/project.pbxproj \
      --replace "FCBA168714A146D000AA698B /* PBXTargetDependency */," "" \
      --replace "FCBA165914A146D000AA698B /* PBXTargetDependency */," "" \
      --replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," ""

    # disable w, test install
    # get rid of permission stuff
    substituteInPlace xcodescripts/install-files.sh \
      --replace 'ln -f "$BINDIR/w" "$BINDIR/uptime"' "" \
      --replace 'ln -f "$DSTROOT/bin/test" "$DSTROOT/bin/["' "" \
      --replace "-o root -g wheel -m 0755" "" \
      --replace "-o root -g wheel -m 0644" ""
  '';

  # temporary install phase until xcodebuild has "install" support
  installPhase = ''
    mkdir -p $out/usr/bin
    install shell_cmds-*/Build/Products/Release/* $out/usr/bin

    export DSTROOT=$out
    export SRCROOT=$PWD
    . xcodescripts/install-files.sh

    mv $out/usr/* $out
    mv $out/private/etc $out
    rmdir $out/usr $out/private
  '';

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