tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
darwin-specific stuff
Eric Seidel
11 years ago
ebb8d03f
92188d9d
+380
-111
10 changed files
expand all
collapse all
unified
split
pkgs
os-specific
darwin
adv_cmds
ps.nix
bootstrap-cmds
default.nix
cctools
darwin.patch
ld-ignore-rpath-link.patch
ld-rpath-nonfinal.patch
port.nix
cctools-port
default.nix
command-line-tools
default.nix
libc
default.nix
fileport.patch
+35
pkgs/os-specific/darwin/adv_cmds/ps.nix
···
1
1
+
{ stdenv, fetchurl }:
2
2
+
3
3
+
stdenv.mkDerivation rec {
4
4
+
name = "ps-${version}";
5
5
+
version = "153";
6
6
+
7
7
+
src = fetchurl {
8
8
+
url = "http://opensource.apple.com/tarballs/adv_cmds/adv_cmds-${version}.tar.gz";
9
9
+
sha256 = "174v6a4zkcm2pafzgdm6kvs48z5f911zl7k49hv7kjq6gm58w99v";
10
10
+
};
11
11
+
12
12
+
buildPhase = ''
13
13
+
cd ps
14
14
+
cc -Os -Wall -I. -c -o fmt.o fmt.c
15
15
+
cc -Os -Wall -I. -c -o keyword.o keyword.c
16
16
+
cc -Os -Wall -I. -c -o nlist.o nlist.c
17
17
+
cc -Os -Wall -I. -c -o print.o print.c
18
18
+
cc -Os -Wall -I. -c -o ps.o ps.c
19
19
+
cc -Os -Wall -I. -c -o tasks.o tasks.c
20
20
+
cc -o ps fmt.o keyword.o nlist.o print.o ps.o tasks.o
21
21
+
'';
22
22
+
23
23
+
installPhase = ''
24
24
+
mkdir -p $out/bin $out/share/man/man1
25
25
+
26
26
+
cp ps $out/bin/ps
27
27
+
cp ps.1 $out/share/man/man1
28
28
+
'';
29
29
+
30
30
+
31
31
+
meta = {
32
32
+
platforms = stdenv.lib.platforms.darwin;
33
33
+
maintainers = with stdenv.lib.maintainers; [ gridaphobe ];
34
34
+
};
35
35
+
}
+46
pkgs/os-specific/darwin/bootstrap-cmds/default.nix
···
1
1
+
{ stdenv, fetchurl, flex, yacc }:
2
2
+
3
3
+
stdenv.mkDerivation rec {
4
4
+
version = "86";
5
5
+
name = "bootstrap_cmds-${version}";
6
6
+
7
7
+
src = fetchurl {
8
8
+
url = "http://www.opensource.apple.com/tarballs/bootstrap_cmds/${name}.tar.gz";
9
9
+
sha256 = "0xr0296jm1r3q7kbam98h85g23qlfi763z54ahj563n636kyk2wb";
10
10
+
};
11
11
+
12
12
+
buildInputs = [ flex yacc ];
13
13
+
14
14
+
buildPhase = ''
15
15
+
cd migcom.tproj
16
16
+
yacc -d parser.y
17
17
+
flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l
18
18
+
19
19
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o error.o error.c
20
20
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o global.o global.c
21
21
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o handler.o header.c
22
22
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o header.o header.c
23
23
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o mig.o mig.c
24
24
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o routine.o routine.c
25
25
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o server.o server.c
26
26
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o statement.o statement.c
27
27
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o string.o string.c
28
28
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o type.o type.c
29
29
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o user.o user.c
30
30
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o utils.o utils.c
31
31
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o lexxer.yy.o lexxer.yy.c
32
32
+
cc -Os -pipe -DMIG_VERSION="" -Wall -mdynamic-no-pic -I. -c -o y.tab.o y.tab.c
33
33
+
34
34
+
cc -dead_strip -o migcom error.o global.o header.o mig.o routine.o server.o statement.o string.o type.o user.o utils.o lexxer.yy.o y.tab.o
35
35
+
'';
36
36
+
37
37
+
installPhase = ''
38
38
+
mkdir -p $out/bin $out/libexec $out/share/man/man1
39
39
+
40
40
+
chmod +x mig.sh
41
41
+
cp mig.sh $out/bin/mig
42
42
+
cp migcom $out/libexec
43
43
+
cp mig.1 $out/share/man/man1
44
44
+
cp migcom.1 $out/share/man/man1
45
45
+
'';
46
46
+
}
-64
pkgs/os-specific/darwin/cctools-port/default.nix
···
1
1
-
{ stdenv, cross, fetchurl, autoconf, automake, libtool
2
2
-
, libcxx, llvm, clang, openssl, libuuid
3
3
-
, maloader, makeWrapper, xctoolchain
4
4
-
}:
5
5
-
6
6
-
stdenv.mkDerivation rec {
7
7
-
name = "cctools-port-${version}";
8
8
-
version = "845";
9
9
-
10
10
-
src = fetchurl {
11
11
-
url = "https://github.com/tpoechtrager/cctools-port/archive/"
12
12
-
+ "cctools-${version}-ld64-136-1.tar.gz";
13
13
-
sha256 = "06pg6h1g8avgx4j6cfykdpggf490li796gzhhyqn27jsagli307i";
14
14
-
};
15
15
-
16
16
-
buildInputs = [
17
17
-
autoconf automake libtool libcxx llvm clang openssl libuuid makeWrapper
18
18
-
];
19
19
-
20
20
-
patches = [ ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch ];
21
21
-
22
22
-
enableParallelBuilding = true;
23
23
-
24
24
-
postPatch = ''
25
25
-
patchShebangs tools
26
26
-
sed -i -e 's/which/type -P/' tools/*.sh
27
27
-
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
28
28
-
29
29
-
# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
30
30
-
cat > cctools/include/unistd.h <<EOF
31
31
-
#ifdef __block
32
32
-
# undef __block
33
33
-
# include_next "unistd.h"
34
34
-
# define __block __attribute__((__blocks__(byref)))
35
35
-
#else
36
36
-
# include_next "unistd.h"
37
37
-
#endif
38
38
-
EOF
39
39
-
'';
40
40
-
41
41
-
preConfigure = ''
42
42
-
cd cctools
43
43
-
sh autogen.sh
44
44
-
'';
45
45
-
46
46
-
configureFlags = [
47
47
-
"CXXFLAGS=-I${libcxx}/include/c++/v1"
48
48
-
"--target=${cross.config}"
49
49
-
];
50
50
-
51
51
-
postInstall = ''
52
52
-
for tool in dyldinfo dwarfdump dsymutil; do
53
53
-
makeWrapper "${maloader}/bin/ld-mac" "$out/bin/${cross.config}-$tool" \
54
54
-
--add-flags "${xctoolchain}/bin/$tool"
55
55
-
ln -s "$out/bin/${cross.config}-$tool" "$out/bin/$tool"
56
56
-
done
57
57
-
'';
58
58
-
59
59
-
meta = {
60
60
-
homepage = "http://www.opensource.apple.com/source/cctools/";
61
61
-
description = "Mac OS X Compiler Tools (cross-platform port)";
62
62
-
license = stdenv.lib.licenses.apsl20;
63
63
-
};
64
64
-
}
pkgs/os-specific/darwin/cctools-port/ld-ignore-rpath-link.patch
pkgs/os-specific/darwin/cctools/ld-ignore-rpath-link.patch
pkgs/os-specific/darwin/cctools-port/ld-rpath-nonfinal.patch
pkgs/os-specific/darwin/cctools/ld-rpath-nonfinal.patch
+122
pkgs/os-specific/darwin/cctools/darwin.patch
···
1
1
+
From b6001ddb935351b4d150546ddab6d25eae05afaa Mon Sep 17 00:00:00 2001
2
2
+
From: Daniel Peebles <pumpkin@me.com>
3
3
+
Date: Sun, 12 Oct 2014 12:23:51 -0400
4
4
+
Subject: [PATCH] work
5
5
+
6
6
+
---
7
7
+
cctools/Makefile.am | 2 +-
8
8
+
cctools/configure.ac | 2 --
9
9
+
cctools/ld64/src/3rd/helper.c | 2 ++
10
10
+
cctools/ld64/src/3rd/strlcat.c | 2 ++
11
11
+
cctools/ld64/src/3rd/strlcpy.c | 3 ++-
12
12
+
cctools/ld64/src/ld/Options.cpp | 2 ++
13
13
+
tools/find_lto_header.sh | 2 +-
14
14
+
7 files changed, 10 insertions(+), 5 deletions(-)
15
15
+
16
16
+
diff --git a/cctools/Makefile.am b/cctools/Makefile.am
17
17
+
index 44084ad..34a670c 100644
18
18
+
--- a/cctools/Makefile.am
19
19
+
+++ b/cctools/Makefile.am
20
20
+
@@ -1,2 +1,2 @@
21
21
+
-SUBDIRS=libstuff ar as misc libobjc2 otool ld64 $(LD_CLASSIC)
22
22
+
+SUBDIRS=libstuff ar as misc ld64 $(LD_CLASSIC)
23
23
+
ACLOCAL_AMFLAGS = -I m4
24
24
+
diff --git a/cctools/configure.ac b/cctools/configure.ac
25
25
+
index c4f6c47..b641925 100644
26
26
+
--- a/cctools/configure.ac
27
27
+
+++ b/cctools/configure.ac
28
28
+
@@ -278,8 +278,6 @@ AC_CONFIG_FILES([as/ppc/Makefile])
29
29
+
AC_CONFIG_FILES([as/ppc64/Makefile])
30
30
+
#AC_CONFIG_FILES([man/Makefile])
31
31
+
AC_CONFIG_FILES([misc/Makefile])
32
32
+
-AC_CONFIG_FILES([otool/Makefile])
33
33
+
-AC_CONFIG_FILES([libobjc2/Makefile])
34
34
+
AC_CONFIG_FILES([ld/Makefile])
35
35
+
36
36
+
37
37
+
diff --git a/cctools/ld64/src/3rd/helper.c b/cctools/ld64/src/3rd/helper.c
38
38
+
index 19f4be7..bec6869 100644
39
39
+
--- a/cctools/ld64/src/3rd/helper.c
40
40
+
+++ b/cctools/ld64/src/3rd/helper.c
41
41
+
@@ -23,6 +23,7 @@
42
42
+
const char ldVersionString[] = "236.3\n";
43
43
+
44
44
+
45
45
+
+#if 0
46
46
+
void __assert_rtn(const char *func, const char *file, int line, const char *msg)
47
47
+
{
48
48
+
#ifdef __FreeBSD__
49
49
+
@@ -33,6 +34,7 @@ void __assert_rtn(const char *func, const char *file, int line, const char *msg)
50
50
+
__assert(msg, file, line);
51
51
+
#endif /* __FreeBSD__ */
52
52
+
}
53
53
+
+#endif
54
54
+
55
55
+
int _NSGetExecutablePath(char *path, unsigned int *size)
56
56
+
{
57
57
+
diff --git a/cctools/ld64/src/3rd/strlcat.c b/cctools/ld64/src/3rd/strlcat.c
58
58
+
index 500d038..dadf269 100644
59
59
+
--- a/cctools/ld64/src/3rd/strlcat.c
60
60
+
+++ b/cctools/ld64/src/3rd/strlcat.c
61
61
+
@@ -23,6 +23,7 @@
62
62
+
63
63
+
#include <string.h>
64
64
+
65
65
+
+#if 0
66
66
+
size_t
67
67
+
strlcat(char * restrict dst, const char * restrict src, size_t maxlen) {
68
68
+
const size_t srclen = strlen(src);
69
69
+
@@ -36,3 +37,4 @@ strlcat(char * restrict dst, const char * restrict src, size_t maxlen) {
70
70
+
}
71
71
+
return dstlen + srclen;
72
72
+
}
73
73
+
+#endif
74
74
+
\ No newline at end of file
75
75
+
diff --git a/cctools/ld64/src/3rd/strlcpy.c b/cctools/ld64/src/3rd/strlcpy.c
76
76
+
index c69f107..34a399b 100644
77
77
+
--- a/cctools/ld64/src/3rd/strlcpy.c
78
78
+
+++ b/cctools/ld64/src/3rd/strlcpy.c
79
79
+
@@ -23,6 +23,7 @@
80
80
+
81
81
+
#include <string.h>
82
82
+
83
83
+
+#if 0
84
84
+
size_t
85
85
+
strlcpy(char * restrict dst, const char * restrict src, size_t maxlen) {
86
86
+
const size_t srclen = strlen(src);
87
87
+
@@ -34,4 +35,4 @@ strlcpy(char * restrict dst, const char * restrict src, size_t maxlen) {
88
88
+
}
89
89
+
return srclen;
90
90
+
}
91
91
+
-
92
92
+
+#endif
93
93
+
\ No newline at end of file
94
94
+
diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp
95
95
+
index 3a78df8..0ecf9f2 100644
96
96
+
--- a/cctools/ld64/src/ld/Options.cpp
97
97
+
+++ b/cctools/ld64/src/ld/Options.cpp
98
98
+
@@ -49,6 +49,8 @@ namespace lto {
99
99
+
extern const char* version();
100
100
+
}
101
101
+
102
102
+
+#define __MAC_OS_X_VERSION_MIN_REQUIRED 1060
103
103
+
+
104
104
+
// magic to place command line in crash reports
105
105
+
const int crashreporterBufferSize = 2000;
106
106
+
static char crashreporterBuffer[crashreporterBufferSize];
107
107
+
diff --git a/tools/find_lto_header.sh b/tools/find_lto_header.sh
108
108
+
index aee3a4a..4733981 100755
109
109
+
--- a/tools/find_lto_header.sh
110
110
+
+++ b/tools/find_lto_header.sh
111
111
+
@@ -14,7 +14,7 @@ function try()
112
112
+
# Adding the include directory with -I causes the build to fail.
113
113
+
ln -sf "$LLVM_INC_DIR/llvm-c/lto.h" "include/llvm-c/lto.h"
114
114
+
mkdir -p tmp
115
115
+
- echo -n "-Wl,-rpath,$LLVM_LIB_DIR,--enable-new-dtags -L$LLVM_LIB_DIR -lLTO " > tmp/ldflags
116
116
+
+ echo -n "-Wl,-rpath,$LLVM_LIB_DIR -L$LLVM_LIB_DIR -lLTO " > tmp/ldflags
117
117
+
echo -n "-DLTO_SUPPORT=1 " > tmp/cflags
118
118
+
echo -n "-DLTO_SUPPORT=1 " > tmp/cxxflags
119
119
+
echo -n "$LLVM_LIB_DIR" > tmp/ldpath
120
120
+
--
121
121
+
1.9.3 (Apple Git-50)
122
122
+
+80
pkgs/os-specific/darwin/cctools/port.nix
···
1
1
+
{ stdenv, fetchurl, autoconf, automake, libtool
2
2
+
, llvm, libcxx, clang, openssl, libuuid
3
3
+
}:
4
4
+
5
5
+
let
6
6
+
baseParams = rec {
7
7
+
name = "cctools-port-${version}";
8
8
+
version = "855";
9
9
+
10
10
+
src = let
11
11
+
# Should be fetchFromGitHub but it was whining so this will do for now
12
12
+
owner = "tpoechtrager";
13
13
+
repo = "cctools-port";
14
14
+
rev = "7083dddbb0f106d791d313829ea7dc45db90e375";
15
15
+
in fetchurl {
16
16
+
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
17
17
+
sha256 = "017gxlcwgi7xhayjzj9w3fac175p2rm4vjzf9cycq9683m9pmyzj";
18
18
+
};
19
19
+
20
20
+
buildInputs = [
21
21
+
autoconf automake libtool llvm clang openssl libuuid libcxx
22
22
+
];
23
23
+
24
24
+
patches = [ ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch ];
25
25
+
26
26
+
enableParallelBuilding = true;
27
27
+
28
28
+
postPatch = ''
29
29
+
patchShebangs tools
30
30
+
sed -i -e 's/which/type -P/' tools/*.sh
31
31
+
32
32
+
# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
33
33
+
cat > cctools/include/unistd.h <<EOF
34
34
+
#ifdef __block
35
35
+
# undef __block
36
36
+
# include_next "unistd.h"
37
37
+
# define __block __attribute__((__blocks__(byref)))
38
38
+
#else
39
39
+
# include_next "unistd.h"
40
40
+
#endif
41
41
+
EOF
42
42
+
'';
43
43
+
44
44
+
preConfigure = ''
45
45
+
cd cctools
46
46
+
sh autogen.sh
47
47
+
'';
48
48
+
49
49
+
meta = {
50
50
+
homepage = "http://www.opensource.apple.com/source/cctools/";
51
51
+
description = "Mac OS X Compiler Tools (cross-platform port)";
52
52
+
license = stdenv.lib.licenses.apsl20;
53
53
+
};
54
54
+
};
55
55
+
in {
56
56
+
# Hacks that for the darwin stdenv (sad that we need write workarounds for what started as a darwin package)
57
57
+
native = stdenv.mkDerivation (baseParams // {
58
58
+
patches = baseParams.patches ++ [ ./darwin.patch ];
59
59
+
60
60
+
postInstall = ''
61
61
+
cd $out/bin
62
62
+
for tool in dwarfdump dsymutil; do
63
63
+
ln -s /usr/bin/$tool
64
64
+
done
65
65
+
'';
66
66
+
});
67
67
+
68
68
+
cross =
69
69
+
{ cross, maloader, makeWrapper, xctoolchain}: stdenv.mkDerivation (baseParams // {
70
70
+
configureFlags = baseParams.configureFlags ++ [ "--target=${cross.config}" ];
71
71
+
72
72
+
postInstall = ''
73
73
+
for tool in dyldinfo dwarfdump dsymutil; do
74
74
+
${makeWrapper}/bin/makeWrapper "${maloader}/bin/ld-mac" "$out/bin/${cross.config}-$tool" \
75
75
+
--add-flags "${xctoolchain}/bin/$tool"
76
76
+
ln -s "$out/bin/${cross.config}-$tool" "$out/bin/$tool"
77
77
+
done
78
78
+
'';
79
79
+
});
80
80
+
}
+19
-47
pkgs/os-specific/darwin/command-line-tools/default.nix
···
1
1
-
{ stdenv, fetchadc, xar, gzip, cpio }:
1
1
+
{ stdenv, fetchurl, xar, gzip, cpio }:
2
2
3
3
let
4
4
-
name = "command-line-tools-mac-os-10.9";
4
4
+
pkg = { name, sha256 }: stdenv.mkDerivation {
5
5
+
inherit name;
5
6
6
6
-
pkg = { installPhase }: stdenv.mkDerivation {
7
7
-
name = "${name}.pkg";
8
8
-
9
9
-
phases = [ "installPhase" ];
10
10
-
11
11
-
inherit installPhase;
12
12
-
13
13
-
meta = with stdenv.lib; {
14
14
-
description = "Developer tools .pkg file";
15
15
-
maintainers = with maintainers; [ copumpkin ];
16
16
-
platforms = platforms.darwin;
17
17
-
license = licenses.unfree;
7
7
+
src = fetchurl {
8
8
+
url = "http://swcdn.apple.com/content/downloads/00/14/031-07556/i7hoqm3awowxdy48l34uel4qvwhdq8lgam/${name}.pkg";
9
9
+
inherit sha256;
18
10
};
19
19
-
};
20
11
21
21
-
basic = pkg: stdenv.mkDerivation {
22
22
-
inherit name;
12
12
+
buildInputs = [ xar gzip cpio ];
23
13
24
14
phases = [ "unpackPhase" "installPhase" ];
25
15
26
26
-
outputs = [ "sdk" "tools" ];
27
27
-
28
16
unpackPhase = ''
29
29
-
${xar}/bin/xar -x -f "${pkg}"
17
17
+
xar -x -f $src
30
18
'';
31
19
32
20
installPhase = ''
33
21
start="$(pwd)"
34
34
-
mkdir -p $sdk
35
35
-
mkdir -p $tools
36
36
-
37
37
-
cd $sdk
38
38
-
cat $start/DevSDK_OSX109.pkg/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
39
39
-
40
40
-
cd $tools
41
41
-
cat $start/CLTools_Executables.pkg/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
22
22
+
mkdir -p $out
23
23
+
cd $out
24
24
+
cat $start/Payload | gzip -d | cpio -idm
42
25
'';
43
26
44
27
meta = with stdenv.lib; {
45
45
-
description = "Mac OS command-line developer tools and SDK";
28
28
+
description = "Apple developer tools ${name}";
46
29
maintainers = with maintainers; [ copumpkin ];
47
30
platforms = platforms.darwin;
48
48
-
license = licenses.unfree;
49
31
};
50
32
};
51
33
in rec {
52
52
-
dmg = fetchadc {
53
53
-
# Isn't this a beautiful path? Note the subtle differences before and after the slash!
54
54
-
path = "Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6/command_line_tools_for_os_x_10.9_for_xcode_6.dmg";
55
55
-
sha256 = "0zrpf73r3kfk9pdh6p6j6w1sbw7s2pp0f8rd83660r5hk1y3j5jc";
34
34
+
tools = pkg {
35
35
+
name = "CLTools_Executables";
36
36
+
sha256 = "1rqrgip9pwr9d6p1hkd027lzxpymr1qm54jjnkldjjb8m4nps7bp";
56
37
};
57
38
58
58
-
pure = { xpwn }: basic (pkg {
59
59
-
installPhase = ''
60
60
-
${xpwn}/bin/hdutil ${dmg} extract "Command Line Tools (OS X 10.9).pkg" $out
61
61
-
'';
62
62
-
});
63
63
-
64
64
-
impure = basic (pkg {
65
65
-
installPhase = ''
66
66
-
/usr/bin/hdiutil attach ${dmg} -mountpoint clt-mount -nobrowse
67
67
-
cp "clt-mount/Command Line Tools (OS X 10.9).pkg" $out
68
68
-
/usr/bin/hdiutil unmount clt-mount
69
69
-
'';
70
70
-
});
39
39
+
sdk = pkg {
40
40
+
name = "DevSDK_OSX109";
41
41
+
sha256 = "0x6r61h78r5cxk9dbw6fnjpn6ydi4kcajvllpczx3mi52crlkm4x";
42
42
+
};
71
43
}
+40
pkgs/os-specific/darwin/libc/default.nix
···
1
1
+
{ stdenv, fetchurl, fetchgit, fetchzip, perl, python }:
2
2
+
3
3
+
let
4
4
+
osx_sdk = fetchgit {
5
5
+
url = "https://github.com/samdmarshall/OSXPrivateSDK";
6
6
+
rev = "refs/heads/master";
7
7
+
sha256 = "04m71xhjyac42h7alxjsqsipq07hm85wibvm3h65dqafcbqkl1i1";
8
8
+
};
9
9
+
dispatch = fetchzip {
10
10
+
url = "https://opensource.apple.com/tarballs/libdispatch/libdispatch-339.92.1.tar.gz";
11
11
+
sha256 = "0faxm4r7lamz57m9pr72jwm0qiwcrcy5dsiff0g9qyfi10pnj5i4";
12
12
+
};
13
13
+
in
14
14
+
stdenv.mkDerivation rec {
15
15
+
version = "825.40.1";
16
16
+
name = "libc-${version}";
17
17
+
src = fetchurl {
18
18
+
url = "https://opensource.apple.com/tarballs/Libc/Libc-${version}.tar.gz";
19
19
+
sha256 = "0xsx1im52gwlmcrv4lnhhhn9dyk5ci6g27k6yvibn9vj8fzjxwcf";
20
20
+
};
21
21
+
22
22
+
buildInputs = [ perl ];
23
23
+
24
24
+
patches = [ ./fileport.patch ];
25
25
+
26
26
+
configurePhase = ''
27
27
+
mkdir -p scratch
28
28
+
mkdir -p scratch/System/sys
29
29
+
ln -sv ${osx_sdk}/System/Library/Frameworks/System.framework/PrivateHeaders/sys/fsctl.h scratch/System/sys
30
30
+
mkdir tmpbin
31
31
+
ln -s /usr/bin/xcodebuild tmpbin
32
32
+
ln -s /usr/sbin/dtrace tmpbin
33
33
+
export PATH=$PATH:$(pwd -P)/tmpbin
34
34
+
'';
35
35
+
36
36
+
buildPhase = ''
37
37
+
BASE=$(pwd -P)
38
38
+
xcodebuild HEADER_SEARCH_PATHS="$BASE/fbsdcompat $BASE/pthreads $BASE/include $BASE/locale $BASE/locale/FreeBSD ${osx_sdk}/usr/local/include ${osx_sdk}/usr/include $BASE/stdtime/FreeBSD $BASE/gen ${osx_sdk}/System/Library/Frameworks/System.framework/PrivateHeaders $BASE/scratch ${osx_sdk}/System/Library/Frameworks/System.framework/PrivateHeaders/uuid $BASE/gdtoa"
39
39
+
'';
40
40
+
}
+38
pkgs/os-specific/darwin/libc/fileport.patch
···
1
1
+
diff --git a/Platforms/macosx/Makefile.inc b/Platforms/macosx/Makefile.inc
2
2
+
index ff3617f..fdda58f 100644
3
3
+
--- a/Platforms/macosx/Makefile.inc
4
4
+
+++ b/Platforms/macosx/Makefile.inc
5
5
+
@@ -41,7 +41,7 @@ FEATURE_PATCH_3417676 = 1
6
6
+
FEATURE_PATCH_5243343 = 1
7
7
+
8
8
+
# plockstat dtrace support
9
9
+
-FEATURE_PLOCKSTAT = 1
10
10
+
+FEATURE_PLOCKSTAT = 0
11
11
+
12
12
+
# Timezone change notification
13
13
+
FEATURE_TIMEZONE_CHANGE_NOTIFICATION = 1
14
14
+
diff --git a/gen/asl.c b/gen/asl.c
15
15
+
index 1948c92..53fce02 100644
16
16
+
--- a/gen/asl.c
17
17
+
+++ b/gen/asl.c
18
18
+
@@ -35,6 +35,7 @@
19
19
+
#include <time.h>
20
20
+
#include <sys/time.h>
21
21
+
#include <sys/fcntl.h>
22
22
+
+#include <sys/fileport.h>
23
23
+
#include <crt_externs.h>
24
24
+
#include <asl.h>
25
25
+
#include <regex.h>
26
26
+
diff --git a/locale/FreeBSD/toupper.c b/locale/FreeBSD/toupper.c
27
27
+
index d02ddd6..e5a1f10 100644
28
28
+
--- a/locale/FreeBSD/toupper.c
29
29
+
+++ b/locale/FreeBSD/toupper.c
30
30
+
@@ -39,6 +39,8 @@ __FBSDID("$FreeBSD: src/lib/libc/locale/toupper.c,v 1.13 2007/01/09 00:28:01 imp
31
31
+
#include <stdio.h>
32
32
+
#include <runetype.h>
33
33
+
34
34
+
+#define __ct_rune_t ct_rune_t
35
35
+
+
36
36
+
__ct_rune_t
37
37
+
___toupper_l(c, loc)
38
38
+
__ct_rune_t c;