Fri Nov 6 15:48:53 2015 UTC ()
Make assorted minor updates

- Remove information about older versions of pkgsrc.
- Note that /usr/include is gone and that there are SDKs
- Add hazy explanation of the missing SDK/command-line-tools issue.
- Add 10.11 (but do not change deprecation status of anything).
- Clarify (but do not try to update for current reality) the 10.6/10.9
  bulk build descriptions.


(gdt)
diff -r1.20 -r1.21 pkgsrc/bootstrap/README.MacOSX

cvs diff -r1.20 -r1.21 pkgsrc/bootstrap/Attic/README.MacOSX (expand / switch to unified diff)

--- pkgsrc/bootstrap/Attic/README.MacOSX 2015/02/22 17:11:34 1.20
+++ pkgsrc/bootstrap/Attic/README.MacOSX 2015/11/06 15:48:52 1.21
@@ -1,61 +1,82 @@ @@ -1,61 +1,82 @@
1$NetBSD: README.MacOSX,v 1.20 2015/02/22 17:11:34 gdt Exp $ 1$NetBSD: README.MacOSX,v 1.21 2015/11/06 15:48:52 gdt Exp $
 2
 3This file describes the use of current versions of pkgsrc with
 4multiple versions of Mac OS X, omitting information about previous
 5pkgsrc versions.
2 6
3* system tools issues 7* system tools issues
4 8
 9** native headers vs SDK
 10
 11Mac OS X used to include system headers in /usr/include, so that one
 12could treat it like a relatively normal POSIX system. Starting at
 13approximately 10.9, headers were no longer available at the standard
 14location, and one has to use an SDK that puts headers someplace else.
 15pkgsrc supports this, but there has been some confusion where a 10.9
 16system produced binaries for 10.10, which only mostly works. The
 17confusion is believed to be resolved.
 18
5** gcc vs clang 19** gcc vs clang
6 20
7Older versions of Mac OS X (when XCode is installed) provided gcc, and 21Older versions of Mac OS X (when XCode is installed) provided gcc, and
8pkgsrc defaulted to using gcc. With 10.9, gcc is no longer present. 22pkgsrc defaulted to using gcc. With 10.9, gcc is no longer present.
9(In 2014Q2 and earlier, one must explicitly bootstrap with 
10"--compiler=clang".) 
11 23
12** i386 vs x86_64 ABI issue 24** i386 vs x86_64 ABI issue
13 25
14Mac OS X 10.6 through 10.10 supports 64-bit binaries on most Intel 26Mac OS X 10.6 and higher supports x86-64 binaries on most Intel Macs.
15Macs and builds those by default on such machine. This has caused 27This has caused problems with packages which get confused because
16problems with packages which get confused because "MACHINE_ARCH" is in 28"MACHINE_ARCH" is in some OS versions set to "i386" (on a 64-bit
17some OS versions set to "i386" (on a 64-bit system!). 29system!).
18 version: uname -m : uname -p 30 version: uname -m : uname -p
19 10.6: i386 : i386 31 10.6: i386 : i386
20 10.9: x86_64 : i386 32 10.9: x86_64 : i386
21 33
22There are of course some packages which will fail in i386 mode, and 34On Intel machines, pkgsrc currently defaults to i386 mode (--abi=32)
23some in x86_64 mode. Because of all this, the default for pkgsrc was 35on Mac OS X, and can be set to x86_64 mode (--abi=64).
24set to use the 32-bit ABI, which results in packages being compiled 36Note that a pkgsrc build in x86_64 mode will not run on an Intel Mac
25and run in i386 mode. In addition, there are some Intel Macs (older 37that is i386 only (some older Mac Minis and Macbooks). For a longer
26Mac Minis) which can only run i386 and not x86_64. For a longer 
27discussion, see: 38discussion, see:
28http://mail-index.NetBSD.org/pkgsrc-users/2009/09/24/msg010817.html 
29 39
30As of 2014, the decision to default to i386 should probably be 40 http://mail-index.NetBSD.org/pkgsrc-users/2009/09/24/msg010817.html
31revisited. 41
 42As of 2015-11, changing the default to x86_64 is imminent.
32 43
33** sed in 10.9 44** sed in 10.9
34 45
35The sed that comes with 10.9 appears to be broken; it exits when 46The sed that comes with 10.9 appears to be broken; it exits when
36called on files with UTF-8 or other apparently-binary content. 47called on files with UTF-8 or other apparently-binary content.
37Therefore, pkgsrc uses nbsed on 10.9. 48Therefore, pkgsrc uses nbsed on 10.9.
38 49
39* Developer tools and prerequisites 50* Developer tools and prerequisites
40 51
41** basic tools 52** XCode
 53
 54This section applies to 10.6 through 10.10.
42 55
43If you haven't already, you will need to install the Mac OS X 56If you haven't already, you will need to install the Mac OS X
44Developer Tools package (XCode) to obtain a compiler, etc. The 57Developer Tools package (XCode) to obtain a compiler, etc. The
45procedure depends on the version of Mac OS X; recent versions use the 58procedure depends on the version of Mac OS X; recent versions use the
46App Store. 59App Store.
47 60
48Note that as of 10.9, cvs is no longer provided. You can build 61** Command-line Tools
 62
 63In 10.11, XCode has been reported as unsuitable [TODO: add details,
 64but it seems it doesn't include an SDK for itself]. Instead, it is
 65recommend to install command-line tools.
 66
 67** cvs
 68
 69Note that as of 10.9, cvs is no longer provided by Apple. You can build
49devel/scmcvs. To obtain pkgsrc in order to bootstrap and build cvs, 70devel/scmcvs. To obtain pkgsrc in order to bootstrap and build cvs,
50it may be useful to `git clone https://github.com/jsonn/pkgsrc.git`. 71it may be useful to `git clone https://github.com/jsonn/pkgsrc.git`.
51 72
52** X11 73** X11
53 74
54X11 used to be built into Mac OS X, but as of 10.8 it is no longer 75X11 used to be built into Mac OS X, but as of 10.8 it is no longer
55included. Install XQuartz from http://xquartz.macosforge.org/landing/ 76included. Install XQuartz from http://xquartz.macosforge.org/landing/
56 77
57* Mac OS X Versions 78* Mac OS X Versions
58 79
59pkgsrc is a volunteer project, and individuals support/fix packages 80pkgsrc is a volunteer project, and individuals support/fix packages
60and platforms as they choose. However, pkgsrc contributors as a group 81and platforms as they choose. However, pkgsrc contributors as a group
61share both a bugtracker and norms about what is ok to break and what 82share both a bugtracker and norms about what is ok to break and what
@@ -72,29 +93,31 @@ in mind that there are no guarantees: @@ -72,29 +93,31 @@ in mind that there are no guarantees:
72 listed in the issue tracker. Structural breakage is undesirable, 93 listed in the issue tracker. Structural breakage is undesirable,
73 but a fair topic of discussion if keeping support is painful. 94 but a fair topic of discussion if keeping support is painful.
74 Individual pkg PRs may be bounced to authors to retest with newer 95 Individual pkg PRs may be bounced to authors to retest with newer
75 versions, and closed if that doesn't happen in 14 days. 96 versions, and closed if that doesn't happen in 14 days.
76 97
77 IGNORED means we are not willing to expend issue tracker resources 98 IGNORED means we are not willing to expend issue tracker resources
78 (clutter for those reviewing the db) at all. PRs may be summarily 99 (clutter for those reviewing the db) at all. PRs may be summarily
79 closed. We are also unconcerned with whether pkgsrc works on the 100 closed. We are also unconcerned with whether pkgsrc works on the
80 system at all. 101 system at all.
81 102
82Given the above definitions, the pkgsrc developers label versions of 103Given the above definitions, the pkgsrc developers label versions of
83Mac OS X as follows: 104Mac OS X as follows:
84 105
85 10.10: current. [SUPPORTED] 106 10.11: current. [SUPPORTED]
 107
 108 10.10: recent. [SUPPORTED]
86 109
87 10.9 (13.1.0): somewhat old but not that crufty. [SUPPORTED] 110 10.9 (13.4.0): somewhat old but not that crufty. [SUPPORTED]
88 111
89 10.8: old. [SUPPORTED] 112 10.8: old. [SUPPORTED]
90 113
91 10.7: old. [SUPPORTED] 114 10.7: old. [SUPPORTED]
92 115
93 10.6 (10.8.0): very old [DEPRECATED] (But note that this is the 116 10.6 (10.8.0): very old [DEPRECATED] (But note that this is the
94 Joyent i386-mode build target.) 117 Joyent i386-mode build target.)
95 118
96 10.5 and below: ancient, and PRs will be summarily closed. It is 119 10.5 and below: ancient, and PRs will be summarily closed. It is
97 acceptable to give zero consideration to causing structural 120 acceptable to give zero consideration to causing structural
98 problems on 10.5 and below. [IGNORED] 121 problems on 10.5 and below. [IGNORED]
99 122
100Because Apple provides 10.9 as a no-cost upgrade (from 10.6 or higher, 123Because Apple provides 10.9 as a no-cost upgrade (from 10.6 or higher,
@@ -102,28 +125,28 @@ it is fairly likely that 10.6-10.8 will  @@ -102,28 +125,28 @@ it is fairly likely that 10.6-10.8 will
102they might have otherwise. (The rationale for supporting versions 125they might have otherwise. (The rationale for supporting versions
103beyond the current and previous ones has been the difficulty for users 126beyond the current and previous ones has been the difficulty for users
104to upgrade.) 127to upgrade.)
105 128
106* Bulk builds 129* Bulk builds
107 130
108Clearly, it is desirable for a bulk build to be useful on as many 131Clearly, it is desirable for a bulk build to be useful on as many
109computers as possible. The main issues are which ABI and which OS X 132computers as possible. The main issues are which ABI and which OS X
110version. Targetting older versions makes a build run on more systems, 133version. Targetting older versions makes a build run on more systems,
111and targetting newer versions makes the build closer to what would be 134and targetting newer versions makes the build closer to what would be
112obtained from bootstrappping on a newer version and thus avoids some 135obtained from bootstrappping on a newer version and thus avoids some
113issues. 136issues.
114 137
115** 10.6, --abi=32 138** 10.6, --abi=32 (i386), gcc
116 139
117Joyent provide a bulk build for quarterly branches (--abi=32, OSX 140Joyent provide a bulk build for quarterly branches (--abi=32, OSX
11810.6, and therefore gcc 4.2.1, XQuartz, X11_TYPE=native): 14110.6, and therefore gcc 4.2.1, XQuartz, X11_TYPE=native):
119 http://pkgsrc.joyent.com/install-on-osx/ 142 http://pkgsrc.joyent.com/install-on-osx/
120which should run on any version from 10.6 and up. 143which should run on any version from 10.6 and up.
121 144
122Note that sed on 10.9 is broken, but a bootstrap on 10.6 will not 145Note that sed on 10.9 is broken, but a bootstrap on 10.6 will not
123avoid it, so while one can install this bootstrap on 10.9 and run 146avoid it, so while one can install this bootstrap on 10.9 and run
124binary packages, building packages will not in general work. 147binary packages, building packages will not in general work.
125 148
126** 10.9, --abi=64 --compiler=clang 149** 10.9, --abi=64 (x86-64), clang
127 150
128Joyent provide a build build for 10.9/x86_64, at the same URL as 151Joyent provide a build build for 10.9/x86_64, and therefore clang, at
129above. 152the same URL as above.