Sun Jul 3 19:15:50 2016 UTC ()
Remove Solaris section, bootstrap/README.Solaris provides extensive information


(sevan)
diff -r1.95 -r1.96 pkgsrc/doc/guide/files/platforms.xml

cvs diff -r1.95 -r1.96 pkgsrc/doc/guide/files/platforms.xml (switch to unified diff)

--- pkgsrc/doc/guide/files/platforms.xml 2016/07/03 15:26:27 1.95
+++ pkgsrc/doc/guide/files/platforms.xml 2016/07/03 19:15:50 1.96
@@ -1,439 +1,330 @@ @@ -1,439 +1,330 @@
1<!-- $NetBSD: platforms.xml,v 1.95 2016/07/03 15:26:27 sevan Exp $ --> 1<!-- $NetBSD: platforms.xml,v 1.96 2016/07/03 19:15:50 sevan Exp $ -->
2 2
3<chapter id="platforms"> 3<chapter id="platforms">
4 <title>Using pkgsrc on systems other than &os;</title> 4 <title>Using pkgsrc on systems other than &os;</title>
5 5
6<sect1 id="binarydist"> 6<sect1 id="binarydist">
7<title>Binary distribution</title> 7<title>Binary distribution</title>
8 8
9<para>See <xref linkend="using-pkg"/>.</para> 9<para>See <xref linkend="using-pkg"/>.</para>
10 10
11</sect1> 11</sect1>
12 12
13 <sect1 id="bootstrapping-pkgsrc"> 13 <sect1 id="bootstrapping-pkgsrc">
14 <title>Bootstrapping pkgsrc</title> 14 <title>Bootstrapping pkgsrc</title>
15 15
16 <para>pkgsrc can be bootstrapped for use in two different modes: 16 <para>pkgsrc can be bootstrapped for use in two different modes:
17 privileged and unprivileged one. In unprivileged mode in contrast 17 privileged and unprivileged one. In unprivileged mode in contrast
18 to privileged one all programs are installed under one particular user 18 to privileged one all programs are installed under one particular user
19 and cannot utilise privileged operations (packages don't create 19 and cannot utilise privileged operations (packages don't create
20 special users and all special file permissions like setuid are ignored). 20 special users and all special file permissions like setuid are ignored).
21 </para> 21 </para>
22 22
23 <para>Installing the bootstrap kit from source should be as simple as:</para> 23 <para>Installing the bootstrap kit from source should be as simple as:</para>
24 24
25 <screen> 25 <screen>
26&rprompt; <userinput>env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc</userinput> 26&rprompt; <userinput>env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc</userinput>
27&rprompt; <userinput>cd pkgsrc/bootstrap</userinput> 27&rprompt; <userinput>cd pkgsrc/bootstrap</userinput>
28&rprompt; <userinput>./bootstrap</userinput> 28&rprompt; <userinput>./bootstrap</userinput>
29 </screen> 29 </screen>
30 30
31 <para>To bootstrap in unprivileged mode pass <quote>--unprivileged</quote> flag to <command>bootstrap</command></para> 31 <para>To bootstrap in unprivileged mode pass <quote>--unprivileged</quote> flag to <command>bootstrap</command></para>
32 32
33 <para>By default, in privileged mode pkgsrc uses 33 <para>By default, in privileged mode pkgsrc uses
34 <filename>/usr/pkg</filename> for <emphasis>prefix</emphasis> 34 <filename>/usr/pkg</filename> for <emphasis>prefix</emphasis>
35 where programs will be installed in, 35 where programs will be installed in,
36 and <filename>/var/db/pkg</filename> for the package database 36 and <filename>/var/db/pkg</filename> for the package database
37 directory where pkgsrc will do its internal bookkeeping, 37 directory where pkgsrc will do its internal bookkeeping,
38 <filename>/var</filename> is used as <emphasis>varbase</emphasis>, 38 <filename>/var</filename> is used as <emphasis>varbase</emphasis>,
39 where packages install their persistent data. 39 where packages install their persistent data.
40 In unprivileged mode pkgsrc uses 40 In unprivileged mode pkgsrc uses
41 <filename>~/pkg</filename> for <emphasis>prefix</emphasis>, 41 <filename>~/pkg</filename> for <emphasis>prefix</emphasis>,
42 <filename>~/pkg/var/db/pkg</filename> for the package database, 42 <filename>~/pkg/var/db/pkg</filename> for the package database,
43 and <filename>~/pkg/var</filename> for <emphasis>varbase</emphasis>. 43 and <filename>~/pkg/var</filename> for <emphasis>varbase</emphasis>.
44 </para> 44 </para>
45 45
46 <para>You can change default layout using command-line arguments. 46 <para>You can change default layout using command-line arguments.
47 Run <quote>./bootstrap --help</quote> to get details. 47 Run <quote>./bootstrap --help</quote> to get details.
48 </para> 48 </para>
49 49
50 <note> 50 <note>
51 <para>The bootstrap installs a <command>bmake</command> tool. 51 <para>The bootstrap installs a <command>bmake</command> tool.
52 Use this <command>bmake</command> when building via pkgsrc. 52 Use this <command>bmake</command> when building via pkgsrc.
53 For examples in this guide, use <command>bmake</command> 53 For examples in this guide, use <command>bmake</command>
54 instead of <quote>make</quote>.</para> 54 instead of <quote>make</quote>.</para>
55 </note> 55 </note>
56 56
57 <note> 57 <note>
58 <para>It is possible to bootstrap multiple instances of pkgsrc 58 <para>It is possible to bootstrap multiple instances of pkgsrc
59 using non-intersecting directories. Use <command>bmake</command> 59 using non-intersecting directories. Use <command>bmake</command>
60 corresponding to the installation you're working with to build 60 corresponding to the installation you're working with to build
61 and install packages. 61 and install packages.
62 </para> 62 </para>
63 </note> 63 </note>
64 64
65 </sect1> 65 </sect1>
66 66
67 <sect1 id="platform-specific-notes"> 67 <sect1 id="platform-specific-notes">
68 <title>Platform-specific notes</title> 68 <title>Platform-specific notes</title>
69 69
70 <para>For details related to supported versions consult the platform-specific README files found in <xref linkend="supported-platforms"/></para> 70 <para>For details related to supported versions consult the platform-specific README files found in <xref linkend="supported-platforms"/></para>
71 71
72 <sect2 id="interix"> 72 <sect2 id="interix">
73 <title>Interix</title> 73 <title>Interix</title>
74 74
75 <para>Interix is a POSIX-compatible subsystem for the Windows NT kernel, 75 <para>Interix is a POSIX-compatible subsystem for the Windows NT kernel,
76 providing a Unix-like environment with a tighter kernel integration than 76 providing a Unix-like environment with a tighter kernel integration than
77 available with Cygwin. It is part of the Windows Services for Unix 77 available with Cygwin. It is part of the Windows Services for Unix
78 package, available for free for any licensed copy of Windows 2000, XP 78 package, available for free for any licensed copy of Windows 2000, XP
79 (not including XP Home), or 2003. SFU can be downloaded from <ulink 79 (not including XP Home), or 2003. SFU can be downloaded from <ulink
80 url="http://www.microsoft.com/windows/sfu/">http://www.microsoft.com/windows/sfu/</ulink>.</para> 80 url="http://www.microsoft.com/windows/sfu/">http://www.microsoft.com/windows/sfu/</ulink>.</para>
81 81
82 <para>Services for Unix 3.5 has been tested. 3.0 or 3.1 may work, but 82 <para>Services for Unix 3.5 has been tested. 3.0 or 3.1 may work, but
83 are not officially supported. (The main difference in 3.0/3.1 is lack 83 are not officially supported. (The main difference in 3.0/3.1 is lack
84 of pthreads, but other parts of libc may also be lacking.)</para> 84 of pthreads, but other parts of libc may also be lacking.)</para>
85 85
86 <para>Services for Unix Applications (aka SUA) is an integrated 86 <para>Services for Unix Applications (aka SUA) is an integrated
87 component of Windows Server 2003 R2 (5.2), Windows Vista and 87 component of Windows Server 2003 R2 (5.2), Windows Vista and
88 Windows Server 2008 (6.0), Windows 7 and Windows Server 2008 R2 88 Windows Server 2008 (6.0), Windows 7 and Windows Server 2008 R2
89 (6.1). As of this writing, the SUA's Interix 6.0 (32bit) and 89 (6.1). As of this writing, the SUA's Interix 6.0 (32bit) and
90 6.1 (64bit) subsystems have been tested. Other versions may 90 6.1 (64bit) subsystems have been tested. Other versions may
91 work as well. The Interix 5.x subsystem has not yet been tested 91 work as well. The Interix 5.x subsystem has not yet been tested
92 with pkgsrc.</para> 92 with pkgsrc.</para>
93 93
94 <sect3 id="platform.interix-sfu-install"> 94 <sect3 id="platform.interix-sfu-install">
95 <title>When installing Interix/SFU</title> 95 <title>When installing Interix/SFU</title>
96 96
97 <para>At an absolute minimum, the following packages must be installed from 97 <para>At an absolute minimum, the following packages must be installed from
98 the Windows Services for Unix 3.5 distribution in order to use pkgsrc:</para> 98 the Windows Services for Unix 3.5 distribution in order to use pkgsrc:</para>
99 99
100 <itemizedlist> 100 <itemizedlist>
101 <listitem><para>Utilities -&gt; Base Utilities</para></listitem> 101 <listitem><para>Utilities -&gt; Base Utilities</para></listitem>
102 <listitem><para>Interix GNU Components -&gt; (all)</para></listitem> 102 <listitem><para>Interix GNU Components -&gt; (all)</para></listitem>
103 <listitem><para>Remote Connectivity</para></listitem> 103 <listitem><para>Remote Connectivity</para></listitem>
104 <listitem><para>Interix SDK</para></listitem> 104 <listitem><para>Interix SDK</para></listitem>
105 </itemizedlist> 105 </itemizedlist>
106 106
107 <para>When using pkgsrc on Interix, DO NOT install the Utilities subcomponent 107 <para>When using pkgsrc on Interix, DO NOT install the Utilities subcomponent
108 "UNIX Perl". That is Perl 5.6 without shared module support, installed to 108 "UNIX Perl". That is Perl 5.6 without shared module support, installed to
109 /usr/local, and will only cause confusion. Instead, install Perl 5.8 from 109 /usr/local, and will only cause confusion. Instead, install Perl 5.8 from
110 pkgsrc (or from a binary package).</para> 110 pkgsrc (or from a binary package).</para>
111 111
112 <para>The Remote Connectivity subcomponent "Windows Remote Shell Service" does 112 <para>The Remote Connectivity subcomponent "Windows Remote Shell Service" does
113 not need to be installed, but Remote Connectivity itself should be 113 not need to be installed, but Remote Connectivity itself should be
114 installed in order to have a working inetd.</para> 114 installed in order to have a working inetd.</para>
115 115
116 <para>During installation you may be asked whether to enable setuid 116 <para>During installation you may be asked whether to enable setuid
117 behavior for Interix programs, and whether to make pathnames default to 117 behavior for Interix programs, and whether to make pathnames default to
118 case-sensitive. Setuid should be enabled, and case-sensitivity MUST be 118 case-sensitive. Setuid should be enabled, and case-sensitivity MUST be
119 enabled. (Without case-sensitivity, a large number of packages including 119 enabled. (Without case-sensitivity, a large number of packages including
120 perl will not build.)</para> 120 perl will not build.)</para>
121 121
122 <para>NOTE: Newer Windows service packs change the way binary execution 122 <para>NOTE: Newer Windows service packs change the way binary execution
123 works (via the Data Execution Prevention feature). In order to use 123 works (via the Data Execution Prevention feature). In order to use
124 pkgsrc and other gcc-compiled binaries reliably, a hotfix containing 124 pkgsrc and other gcc-compiled binaries reliably, a hotfix containing
125 POSIX.EXE, PSXDLL.DLL, PSXRUN.EXE, and PSXSS.EXE (899522 or newer) 125 POSIX.EXE, PSXDLL.DLL, PSXRUN.EXE, and PSXSS.EXE (899522 or newer)
126 must be installed. Hotfixes are available from Microsoft through a 126 must be installed. Hotfixes are available from Microsoft through a
127 support contract; however, Debian Interix Port has made most Interix 127 support contract; however, Debian Interix Port has made most Interix
128 hotfixes available for personal use from <ulink 128 hotfixes available for personal use from <ulink
129 url="http://www.debian-interix.net/hotfixes/">http://www.debian-interix.net/hotfixes/</ulink>.</para> 129 url="http://www.debian-interix.net/hotfixes/">http://www.debian-interix.net/hotfixes/</ulink>.</para>
130 130
131 <para>In addition to the hotfix noted above, it may be necessary to 131 <para>In addition to the hotfix noted above, it may be necessary to
132 disable Data Execution Prevention entirely to make Interix functional. 132 disable Data Execution Prevention entirely to make Interix functional.
133 This may happen only with certain types of CPUs; the cause is not fully 133 This may happen only with certain types of CPUs; the cause is not fully
134 understood at this time. If gcc or other applications still segfault 134 understood at this time. If gcc or other applications still segfault
135 repeatedly after installing one of the hotfixes note above, the 135 repeatedly after installing one of the hotfixes note above, the
136 following option can be added to the appropriate "boot.ini" line on the 136 following option can be added to the appropriate "boot.ini" line on the
137 Windows boot drive: /NoExecute=AlwaysOff 137 Windows boot drive: /NoExecute=AlwaysOff
138 (WARNING, this will disable DEP completely, which may be a security 138 (WARNING, this will disable DEP completely, which may be a security
139 risk if applications are often run as a user in the Administrators 139 risk if applications are often run as a user in the Administrators
140 group!)</para> 140 group!)</para>
141 141
142 </sect3> 142 </sect3>
143 143
144 <sect3 id="platform.interix-sfu-postinstall"> 144 <sect3 id="platform.interix-sfu-postinstall">
145 <title>What to do if Interix/SFU is already installed</title> 145 <title>What to do if Interix/SFU is already installed</title>
146 146
147 <para>If SFU is already installed and you wish to alter these settings to work 147 <para>If SFU is already installed and you wish to alter these settings to work
148 with pkgsrc, note the following things.</para> 148 with pkgsrc, note the following things.</para>
149 149
150 <itemizedlist> 150 <itemizedlist>
151 <listitem> 151 <listitem>
152 <para>To uninstall UNIX Perl, use Add/Remove Programs, select Microsoft 152 <para>To uninstall UNIX Perl, use Add/Remove Programs, select Microsoft
153 Windows Services for UNIX, then click Change. In the installer, choose 153 Windows Services for UNIX, then click Change. In the installer, choose
154 Add or Remove, then uncheck Utilities-&gt;UNIX Perl.</para> 154 Add or Remove, then uncheck Utilities-&gt;UNIX Perl.</para>
155 </listitem> 155 </listitem>
156 <listitem> 156 <listitem>
157 <para>To enable case-sensitivity for the file system, run REGEDIT.EXE, and 157 <para>To enable case-sensitivity for the file system, run REGEDIT.EXE, and
158 change the following registry key:</para> 158 change the following registry key:</para>
159 <para>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel</para> 159 <para>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel</para>
160 <para>Set the DWORD value "obcaseinsensitive" to 0; then reboot.</para> 160 <para>Set the DWORD value "obcaseinsensitive" to 0; then reboot.</para>
161 </listitem> 161 </listitem>
162 <listitem> 162 <listitem>
163 <para>To enable setuid binaries (optional), run REGEDIT.EXE, and change the 163 <para>To enable setuid binaries (optional), run REGEDIT.EXE, and change the
164 following registry key:</para> 164 following registry key:</para>
165 <para>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Services for UNIX</para> 165 <para>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Services for UNIX</para>
166 <para>Set the DWORD value "EnableSetuidBinaries" to 1; then reboot.</para> 166 <para>Set the DWORD value "EnableSetuidBinaries" to 1; then reboot.</para>
167 </listitem> 167 </listitem>
168 </itemizedlist> 168 </itemizedlist>
169 169
170 </sect3> 170 </sect3>
171 <sect3 id="platform.interix-notes"> 171 <sect3 id="platform.interix-notes">
172 <title>Important notes for using pkgsrc</title> 172 <title>Important notes for using pkgsrc</title>
173 173
174 <para>The package manager (either the pkgsrc "su" user, or the user 174 <para>The package manager (either the pkgsrc "su" user, or the user
175 running "pkg_add") must be a member of the local Administrators 175 running "pkg_add") must be a member of the local Administrators
176 group. Such a user must also be used to run the bootstrap. This is 176 group. Such a user must also be used to run the bootstrap. This is
177 slightly relaxed from the normal pkgsrc requirement of "root".</para> 177 slightly relaxed from the normal pkgsrc requirement of "root".</para>
178 178
179 <para>The package manager should use a umask of 002. "make install" will 179 <para>The package manager should use a umask of 002. "make install" will
180 automatically complain if this is not the case. This ensures that 180 automatically complain if this is not the case. This ensures that
181 directories written in /var/db/pkg are Administrators-group writeable.</para> 181 directories written in /var/db/pkg are Administrators-group writeable.</para>
182 182
183 <para>The popular Interix binary packages from http://www.interopsystems.com/ 183 <para>The popular Interix binary packages from http://www.interopsystems.com/
184 use an older version of pkgsrc's pkg_* tools. Ideally, these should 184 use an older version of pkgsrc's pkg_* tools. Ideally, these should
185 NOT be used in conjunction with pkgsrc. If you choose to use them at 185 NOT be used in conjunction with pkgsrc. If you choose to use them at
186 the same time as the pkgsrc packages, ensure that you use the proper 186 the same time as the pkgsrc packages, ensure that you use the proper
187 pkg_* tools for each type of binary package.</para> 187 pkg_* tools for each type of binary package.</para>
188 188
189 <para>The TERM setting used for DOS-type console windows (including those 189 <para>The TERM setting used for DOS-type console windows (including those
190 invoked by the csh and ksh startup shortcuts) is "interix". Most systems 190 invoked by the csh and ksh startup shortcuts) is "interix". Most systems
191 don't have a termcap/terminfo entry for it, but the following .termcap 191 don't have a termcap/terminfo entry for it, but the following .termcap
192 entry provides adequate emulation in most cases:</para> 192 entry provides adequate emulation in most cases:</para>
193 193
194 <programlisting> 194 <programlisting>
195interix:kP=\E[S:kN=\E[T:kH=\E[U:dc@:DC@:tc=pcansi: 195interix:kP=\E[S:kN=\E[T:kH=\E[U:dc@:DC@:tc=pcansi:
196 </programlisting> 196 </programlisting>
197 197
198 </sect3> 198 </sect3>
199 <sect3 id="platform.interix-limits"> 199 <sect3 id="platform.interix-limits">
200 <title>Limitations of the Interix platform</title> 200 <title>Limitations of the Interix platform</title>
201 201
202 <para>Though Interix suffices as a familiar and flexible substitute 202 <para>Though Interix suffices as a familiar and flexible substitute
203 for a full Unix-like platform, it has some drawbacks that should 203 for a full Unix-like platform, it has some drawbacks that should
204 be noted for those desiring to make the most of Interix.</para> 204 be noted for those desiring to make the most of Interix.</para>
205 205
206 <itemizedlist> 206 <itemizedlist>
207 207
208 <listitem><para><emphasis role="strong">X11:</emphasis></para> 208 <listitem><para><emphasis role="strong">X11:</emphasis></para>
209 <para>Interix comes with the standard set of X11R6 client libraries, 209 <para>Interix comes with the standard set of X11R6 client libraries,
210 and can run X11 based applications, but it does 210 and can run X11 based applications, but it does
211 <emphasis>not</emphasis> come with an X server. Some options are 211 <emphasis>not</emphasis> come with an X server. Some options are
212 <ulink url="http://www.starnet.com/products/xwin32/">StarNet X-Win32</ulink>, 212 <ulink url="http://www.starnet.com/products/xwin32/">StarNet X-Win32</ulink>,
213 <ulink url="http://connectivity.hummingbird.com/products/nc/exceed/">Hummingbird Exceed</ulink> 213 <ulink url="http://connectivity.hummingbird.com/products/nc/exceed/">Hummingbird Exceed</ulink>
214 (available in a trimmed version for Interix from Interop Systems as the 214 (available in a trimmed version for Interix from Interop Systems as the
215 <ulink url="http://www.interopsystems.com/InteropXserver.htm">Interop X Server</ulink>), 215 <ulink url="http://www.interopsystems.com/InteropXserver.htm">Interop X Server</ulink>),
216 and the free X11 server included with 216 and the free X11 server included with
217 <ulink url="http://x.cygwin.com/">Cygwin</ulink>.</para> 217 <ulink url="http://x.cygwin.com/">Cygwin</ulink>.</para>
218 </listitem> 218 </listitem>
219 219
220 <listitem><para><emphasis role="strong">X11 acceleration:</emphasis></para> 220 <listitem><para><emphasis role="strong">X11 acceleration:</emphasis></para>
221 <para>Because Interix runs in a completely different NT subsystem from 221 <para>Because Interix runs in a completely different NT subsystem from
222 Win32 applications, it does not currently support various X11 222 Win32 applications, it does not currently support various X11
223 protocol extensions for acceleration (such as MIT-SHM or DGA). 223 protocol extensions for acceleration (such as MIT-SHM or DGA).
224 Most interactive applications to a local X server will run 224 Most interactive applications to a local X server will run
225 reasonably fast, but full motion video and other graphics 225 reasonably fast, but full motion video and other graphics
226 intensive applications may require a faster-than-expected CPU.</para></listitem> 226 intensive applications may require a faster-than-expected CPU.</para></listitem>
227 227
228 <listitem><para><emphasis role="strong">Audio:</emphasis></para> 228 <listitem><para><emphasis role="strong">Audio:</emphasis></para>
229 <para>Interix has no native support for audio output. For audio 229 <para>Interix has no native support for audio output. For audio
230 support, pkgsrc uses the <command>esound</command> client/server 230 support, pkgsrc uses the <command>esound</command> client/server
231 audio system on Interix. Unlike on most platforms, the 231 audio system on Interix. Unlike on most platforms, the
232 <filename role="pkg">audio/esound</filename> package does 232 <filename role="pkg">audio/esound</filename> package does
233 <emphasis>not</emphasis> contain the <command>esd</command> 233 <emphasis>not</emphasis> contain the <command>esd</command>
234 server component. To output audio via an Interix host, the 234 server component. To output audio via an Interix host, the
235 <filename role="pkg">emulators/cygwin_esound</filename> package 235 <filename role="pkg">emulators/cygwin_esound</filename> package
236 must also be installed.</para></listitem> 236 must also be installed.</para></listitem>
237 237
238 <listitem><para><emphasis role="strong">CD/DVDs, USB, and SCSI:</emphasis></para> 238 <listitem><para><emphasis role="strong">CD/DVDs, USB, and SCSI:</emphasis></para>
239 <para>Direct device access is not currently supported in Interix, so it 239 <para>Direct device access is not currently supported in Interix, so it
240 is not currently possible to access CD/DVD drives, USB devices, 240 is not currently possible to access CD/DVD drives, USB devices,
241 or SCSI devices through non-filesystem means. Among other things, 241 or SCSI devices through non-filesystem means. Among other things,
242 this makes it impossible to use Interix directly for CD/DVD 242 this makes it impossible to use Interix directly for CD/DVD
243 burning.</para></listitem> 243 burning.</para></listitem>
244 244
245 <listitem><para><emphasis role="strong">Tape drives:</emphasis></para> 245 <listitem><para><emphasis role="strong">Tape drives:</emphasis></para>
246 <para>Due to the same limitations as for CD-ROMs and SCSI devices, tape 246 <para>Due to the same limitations as for CD-ROMs and SCSI devices, tape
247 drives are also not directly accessible in Interix. However, 247 drives are also not directly accessible in Interix. However,
248 support is in work to make tape drive access possible by using 248 support is in work to make tape drive access possible by using
249 Cygwin as a bridge (similarly to audio bridged via Cygwin's 249 Cygwin as a bridge (similarly to audio bridged via Cygwin's
250 esound server).</para></listitem> 250 esound server).</para></listitem>
251 251
252 </itemizedlist> 252 </itemizedlist>
253 </sect3> 253 </sect3>
254 <sect3 id="platform.interix-knownissues"> 254 <sect3 id="platform.interix-knownissues">
255 <title>Known issues for pkgsrc on Interix</title> 255 <title>Known issues for pkgsrc on Interix</title>
256 256
257 <para>It is not necessary, in general, to have a "root" user on the 257 <para>It is not necessary, in general, to have a "root" user on the
258 Windows system; any member of the local Administrators group will 258 Windows system; any member of the local Administrators group will
259 suffice. However, some packages currently assume that the user 259 suffice. However, some packages currently assume that the user
260 named "root" is the privileged user. To accommodate these, you 260 named "root" is the privileged user. To accommodate these, you
261 may create such a user; make sure it is in the local group 261 may create such a user; make sure it is in the local group
262 Administrators (or your language equivalent).</para> 262 Administrators (or your language equivalent).</para>
263 263
264 <para><command>pkg_add</command> creates directories of mode 264 <para><command>pkg_add</command> creates directories of mode
265 0755, not 0775, in <filename>$PKG_DBDIR</filename>. For the 265 0755, not 0775, in <filename>$PKG_DBDIR</filename>. For the
266 time being, install packages as the local Administrator (or 266 time being, install packages as the local Administrator (or
267 your language equivalent), or run the following command after 267 your language equivalent), or run the following command after
268 installing a package to work around the issue:</para> 268 installing a package to work around the issue:</para>
269 269
270 <screen> 270 <screen>
271&rprompt; <userinput>chmod -R g+w $PKG_DBDIR</userinput> 271&rprompt; <userinput>chmod -R g+w $PKG_DBDIR</userinput>
272 </screen> 272 </screen>
273 273
274 </sect3> 274 </sect3>
275 </sect2> 275 </sect2>
276 276
277 <sect2 id="linux"> 277 <sect2 id="linux">
278 <title>Linux</title> 278 <title>Linux</title>
279 279
280 <para>Some versions of Linux (for example Debian GNU/Linux) need 280 <para>Some versions of Linux (for example Debian GNU/Linux) need
281 either libtermcap or libcurses (libncurses). Installing the 281 either libtermcap or libcurses (libncurses). Installing the
282 distributions libncurses-dev package (or equivalent) should fix 282 distributions libncurses-dev package (or equivalent) should fix
283 the problem.</para> 283 the problem.</para>
284 284
285 <para>pkgsrc supports both gcc (GNU Compiler Collection) and icc 285 <para>pkgsrc supports both gcc (GNU Compiler Collection) and icc
286 (Intel C++ Compiler). gcc is the default. icc 8.0 and 8.1 on 286 (Intel C++ Compiler). gcc is the default. icc 8.0 and 8.1 on
287 i386 have been tested.</para> 287 i386 have been tested.</para>
288 288
289 <para>To bootstrap using icc, assuming the default icc installation 289 <para>To bootstrap using icc, assuming the default icc installation
290 directory:</para> 290 directory:</para>
291 291
292 <programlisting> 292 <programlisting>
293env ICCBASE=/opt/intel/cc/10.1.008 ./bootstrap --compiler=icc 293env ICCBASE=/opt/intel/cc/10.1.008 ./bootstrap --compiler=icc
294 </programlisting> 294 </programlisting>
295 295
296 <note> 296 <note>
297 <para>For icc 8.0 you must add `LDFLAGS=-static-libcxa' to this.</para> 297 <para>For icc 8.0 you must add `LDFLAGS=-static-libcxa' to this.</para>
298 <para>For icc 8.1 you must add `LDFLAGS=-i-static' instead.</para> 298 <para>For icc 8.1 you must add `LDFLAGS=-i-static' instead.</para>
299 <para>For icc 10.1 neither of these appears to be necessary.</para> 299 <para>For icc 10.1 neither of these appears to be necessary.</para>
300 </note> 300 </note>
301 301
302 <para>Use a value for ICCBASE that corresponds to the directory 302 <para>Use a value for ICCBASE that corresponds to the directory
303 where icc is installed. After bootstrapping, set 303 where icc is installed. After bootstrapping, set
304 <varname>ICCBASE</varname> in &mk.conf;:</para> 304 <varname>ICCBASE</varname> in &mk.conf;:</para>
305 305
306 <programlisting> 306 <programlisting>
307ICCBASE= /opt/intel/cc/10.1.008 307ICCBASE= /opt/intel/cc/10.1.008
308 </programlisting> 308 </programlisting>
309 309
310 <para>The pkgsrc default for <varname>ICCBASE</varname> is 310 <para>The pkgsrc default for <varname>ICCBASE</varname> is
311 <filename>/opt/intel_cc_80</filename>. This is the default 311 <filename>/opt/intel_cc_80</filename>. This is the default
312 install directory for icc 8.0. If you are using a more recent 312 install directory for icc 8.0. If you are using a more recent
313 version, be sure to set the correct path explicitly. 313 version, be sure to set the correct path explicitly.
314 </para> 314 </para>
315 315
316 <para>pkgsrc uses the static linking method of the runtime libraries 316 <para>pkgsrc uses the static linking method of the runtime libraries
317 provided by icc, so binaries can be run on other systems which do not 317 provided by icc, so binaries can be run on other systems which do not
318 have the shared libraries installed.</para> 318 have the shared libraries installed.</para>
319 319
320 <para>Libtool, however, extracts a list of libraries from the 320 <para>Libtool, however, extracts a list of libraries from the
321 &man.ld.1; command run when linking a C++ shared library and 321 &man.ld.1; command run when linking a C++ shared library and
322 records it, throwing away the -Bstatic and -Bdynamic options 322 records it, throwing away the -Bstatic and -Bdynamic options
323 interspersed between the libraries. This means that 323 interspersed between the libraries. This means that
324 libtool-linked C++ shared libraries will have a runtime 324 libtool-linked C++ shared libraries will have a runtime
325 dependency on the icc libraries until this is fixed in 325 dependency on the icc libraries until this is fixed in
326 libtool.</para> 326 libtool.</para>
327 327
328 </sect2> 328 </sect2>
329 
330 <sect2 id="solaris"> 
331 <title>Solaris</title> 
332 
333 <para>Solaris 2.6 through 10 are supported on both x86 and sparc. 
334 You will need a working C compiler. Both gcc 4.5.3 and 
335 Sun WorkShop 5 have been tested.</para> 
336 
337 <para>The following packages are required on Solaris 8 for the bootstrap 
338 process and to build packages.</para> 
339 
340 <itemizedlist> 
341 <listitem><para>SUNWsprot</para></listitem> 
342 <listitem><para>SUNWarc</para></listitem> 
343 <listitem><para>SUNWbtool</para></listitem> 
344 <listitem><para>SUNWtoo</para></listitem> 
345 <listitem><para>SUNWlibm</para></listitem> 
346 </itemizedlist> 
347 
348 <para>Please note that the use of GNU binutils on Solaris is 
349 <emphasis>not</emphasis> supported, as of June 2006.</para> 
350 
351 <para>Whichever compiler you use, please ensure the compiler tools and 
352 your $prefix are in your <varname>PATH</varname>. This includes 
353 <filename>/usr/ccs/{bin,lib}</filename> 
354 and e.g. <filename>/usr/pkg/{bin,sbin}</filename>.</para> 
355 
356 <sect3 id="solaris-gcc-note"> 
357 <title>If you are using gcc</title> 
358 
359 <para>It makes life much simpler if you only use the same gcc consistently 
360 for building all packages.</para> 
361 
362 <para>It is recommended that an external gcc be used only for bootstrapping, 
363 then either build gcc from 
364 <filename role="pkg">lang/gcc46</filename> or install a binary gcc 
365 package, then remove gcc used during bootstrapping.</para> 
366 
367 <para>Binary packages of gcc can be found through <ulink 
368 url="http://www.sunfreeware.com/"/>.</para> 
369 </sect3> 
370 
371 <sect3 id="solaris-sun-workshop-note"> 
372 <title>If you are using Sun WorkShop</title> 
373 
374 <para>You will need at least the following packages installed (from WorkShop 
375 5.0)</para> 
376 
377 <itemizedlist> 
378 <listitem><para>SPROcc 
379 - Sun WorkShop Compiler C 5.0</para></listitem> 
380 <listitem><para>SPROcpl 
381 - Sun WorkShop Compiler C++ 5.0</para></listitem> 
382 <listitem><para>SPROild 
383 - Sun WorkShop Incremental Linker</para></listitem> 
384 <listitem><para>SPROlang 
385 - Sun WorkShop Compilers common components</para></listitem> 
386 </itemizedlist> 
387 
388 <para>You should set the following variables in your 
389 &mk.conf; file:</para> 
390 
391<programlisting> 
392CC= cc 
393CXX= CC 
394CPP= cc -E 
395CXXCPP= CC -E 
396</programlisting> 
397 
398 <note><para>The <varname>CPP</varname> setting might break some 
399 packages that use the C preprocessor for processing things other 
400 than C source code.</para></note> 
401 
402 </sect3> 
403 <sect3 id="solaris-sunpro-64"> 
404 <title>Building 64-bit binaries with SunPro</title> 
405 
406 <para>To build 64-bit packages, you just need to have the 
407 following lines in your &mk.conf; file:</para> 
408 
409<programlisting> 
410PKGSRC_COMPILER= sunpro 
411ABI= 64 
412</programlisting> 
413 
414 <note><para>This setting has been tested for the SPARC 
415 architecture. Intel and AMD machines need some more 
416 work.</para></note> 
417 
418 </sect3> 
419 <sect3 id="plat.sunos.problems"><title>Common problems</title> 
420 
421 <para>Sometimes, when using <command>libtool</command>, 
422 <filename>/bin/ksh</filename> crashes with a segmentation fault. 
423 The workaround is to use another shell for the configure 
424 scripts, for example by installing <filename 
425 role="pkg">shells/bash</filename> and adding the following lines 
426 to your &mk.conf;:</para> 
427 
428 <programlisting> 
429CONFIG_SHELL= ${LOCALBASE}/bin/bash 
430WRAPPER_SHELL= ${LOCALBASE}/bin/bash 
431 </programlisting> 
432 
433 <para>Then, rebuild the <filename 
434 role="pkg">devel/libtool-base</filename> package.</para> 
435 
436 </sect3> 
437 </sect2> 
438 </sect1> 329 </sect1>
439</chapter> 330</chapter>