| @@ -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 -> Base Utilities</para></listitem> | | 101 | <listitem><para>Utilities -> Base Utilities</para></listitem> |
102 | <listitem><para>Interix GNU Components -> (all)</para></listitem> | | 102 | <listitem><para>Interix GNU Components -> (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->UNIX Perl.</para> | | 154 | Add or Remove, then uncheck Utilities->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> |
195 | interix:kP=\E[S:kN=\E[T:kH=\E[U:dc@:DC@:tc=pcansi: | | 195 | interix: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> |
293 | env ICCBASE=/opt/intel/cc/10.1.008 ./bootstrap --compiler=icc | | 293 | env 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> |
307 | ICCBASE= /opt/intel/cc/10.1.008 | | 307 | ICCBASE= /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> | | | |
392 | CC= cc | | | |
393 | CXX= CC | | | |
394 | CPP= cc -E | | | |
395 | CXXCPP= 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> | | | |
410 | PKGSRC_COMPILER= sunpro | | | |
411 | ABI= 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> | | | |
429 | CONFIG_SHELL= ${LOCALBASE}/bin/bash | | | |
430 | WRAPPER_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> |