diff options
Diffstat (limited to 'doc/guide/files/platforms.xml')
-rw-r--r-- | doc/guide/files/platforms.xml | 463 |
1 files changed, 463 insertions, 0 deletions
diff --git a/doc/guide/files/platforms.xml b/doc/guide/files/platforms.xml new file mode 100644 index 00000000000..cfa366c3f19 --- /dev/null +++ b/doc/guide/files/platforms.xml @@ -0,0 +1,463 @@ +<!-- $NetBSD: platforms.xml,v 1.1.1.1 2004/10/21 14:27:40 grant Exp $ --> + +<chapter id="platforms"> + <title>Using pkgsrc on systems other than &os;</title> + + <sect1> + <title>Bootstrapping pkgsrc</title> + + <para>For Operating Systems other than &os;, we provide a bootstrap kit to + build the required tools to use pkgsrc on your platform. Besides + support for native &os;, pkgsrc and the bootstrap kit have support for + the following operating systems:</para> + + <itemizedlist> + <listitem> + <para>Darwin (Mac OS X)</para> + </listitem> + + <listitem> + <para>FreeBSD</para> + </listitem> + + <listitem> + <para>Interix (Windows 2000, XP, 2003)</para> + </listitem> + + <listitem> + <para>IRIX</para> + </listitem> + + <listitem> + <para>Linux</para> + </listitem> + + <listitem> + <para>OpenBSD</para> + </listitem> + + <listitem> + <para>Solaris</para> + </listitem> + </itemizedlist> + + <para>Support for other platforms is under development.</para> + + <para>Installing the bootstrap kit should be as simple as:</para> + + <screen> +&rprompt; <userinput>env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout pkgsrc</userinput> +&rprompt; <userinput>cd pkgsrc/bootstrap</userinput> +&rprompt; <userinput>./bootstrap</userinput></screen> + + <para>See <xref linkend="getting"/> for other ways to get + pkgsrc before bootstrapping. The given + <command>bootstrap</command> command will use the defaults of + <filename>/usr/pkg</filename> for the + <emphasis>prefix</emphasis> where programs will be installed in, + and <filename>/var/db/pkg</filename> for the package database + directory where pkgsrc will do it's internal bookkeeping. + However, these can also be set using command-line + parameters.</para> + + <para>Binary packages for the pkgsrc tools and an initial set of packages is + available for supported platforms. An up-to-date list of these can be + found on <ulink url="http://www.pkgsrc.org/">www.pkgsrc.org</ulink>.</para> + </sect1> + + <sect1> + <title>Platform specific notes</title> + + <para>Here are some platform-specific notes you should be aware of.</para> + + <sect2> + <title>Darwin (Mac OS X)</title> + + <para>Darwin 5.x and 6.x are supported. There are two methods of using + pkgsrc on Mac OS X, by using a <link linkend="platform.osx-image">disk + image</link>, or a <link linkend="platform.osx-ufs">UFS + partition</link>.</para> + + <para>Before you start, you will need to download and install the Mac OS X Developer + Tools from Apple's Developer Connection. See <ulink + url="http://developer.apple.com/macosx/">http://developer.apple.com/macosx/</ulink> + for details. Also, make sure you install X11 for Mac OS X and the X11 SDK + from <ulink + url="http://www.apple.com/macosx/x11/download/">http://www.apple.com/macosx/x11/download/</ulink> + if you intend to build packages that use the X11 Window System.</para> + + <para>If you already have a UFS partition, or have a spare partition + that you can format as UFS, it is recommended to use that instead of + the disk image. It'll be somewhat faster and will mount automatically + at boot time, where you must manually mount a disk image.</para> + + <note> + <para>You cannot use a HFS+ file system for pkgsrc, because pkgsrc currently + requires the filesystem to be case-sensitive, and HFS+ is not.</para> + </note> + + <sect3 id="platform.osx-image"> + <title>Using a disk image</title> + + <para>Create the disk image:</para> + + <screen>&rprompt; <userinput>cd pkgsrc/bootstrap</userinput> +&rprompt; <userinput>./ufsdiskimage create ~/Documents/NetBSD 512</userinput> # megabytes - season to taste +&rprompt; <userinput>./ufsdiskimage mount ~/Documents/NetBSD</userinput> +&rprompt; <userinput>sudo chown `id -u`:`id -g` /Volumes/NetBSD</userinput></screen> + + <para>That's it!</para> + </sect3> + + <sect3 id="platform.osx-ufs"> + <title>Using a UFS partition</title> + + <para>By default, <filename>/usr</filename> will be on your root file + system, normally HFS+. It is possible to use the default + <emphasis>prefix</emphasis> of <filename>/usr/pkg</filename> + by symlinking <filename>/usr/pkg</filename> to a directory on a UFS + file system. Obviously, another symlink is required if you want to + place the package database directory outside the + <emphasis>prefix</emphasis>. e.g.</para> + + <screen>&rprompt; <userinput>./bootstrap --pkgdbdir=/usr/pkg/pkgdb --pkgsrcdir=/Volumes/ufs/pkgsrc</userinput></screen> + + <para>If you created your partitions at the time of installing Mac OS X + and formatted the target partition as UFS, it should automatically + mount on <filename>/Volumes/<volume name></filename> when the + machine boots. If you are (re)formatting a partition as UFS, you need + to ensure that the partition map correctly reflects + <quote>Apple_UFS</quote> and not <quote>Apple_HFS</quote>.</para> + + <para>The problem is that none of the disk tools will let you touch a + disk that is booted from. You can unmount the partition, but even if + you newfs it, the partition type will be incorrect and the + automounter won't mount it. It can be mounted manually, but it won't + appear in Finder.</para> + + <para>You'll need to boot off of the OS X Installation (User) CD. When + the Installation program starts, go up to the menu and select Disk + Utility. Now, you will be able to select the partition you want + to be UFS, and Format it Apple UFS. Quit the Disk Utility, quit the + installer which will reboot your machine. The new UFS file system + will appear in Finder.</para> + + <para>Be aware that the permissions on the new file system will be writable + by root only.</para> + + <para>This note is as of 10.2 (Jaguar) and applies to earlier versions. + Hopefully Apple will fix Disk Utility in 10.3 (Panther).</para> + </sect3> + </sect2> + + <sect2> + <title>FreeBSD</title> + + <para> + FreeBSD 4.7 and 5.0 have been tested and are supported, other versions + may work.</para> + + <para>Care should be taken so that the tools that this kit installs do not conflict + with the FreeBSD userland tools. There are several steps:</para> + + <orderedlist> + <listitem> + <para>FreeBSD stores its ports pkg database in + <filename>/var/db/pkg</filename>. It is therefore + recommended that you choose a different location (e.g. + <filename>/usr/pkgdb</filename>) by + using the --pkgdbdir option to the bootstrap script.</para> + </listitem> + + <listitem> + <para>If you do not intend to use the FreeBSD ports tools, it's probably a + good idea to move them out of the way to avoid confusion, e.g.</para> + + <screen>&rprompt; <userinput>cd /usr/sbin</userinput> +&rprompt; <userinput>mv pkg_add pkg_add.orig</userinput> +&rprompt; <userinput>mv pkg_create pkg_create.orig</userinput> +&rprompt; <userinput>mv pkg_delete pkg_delete.orig</userinput> +&rprompt; <userinput>mv pkg_info pkg_info.orig</userinput></screen> +</listitem> + + <listitem> + <para>An example <filename>/etc/mk.conf</filename> file will be placed in + <filename>/etc/mk.conf.example</filename> file + when you use the bootstrap script.</para> + </listitem> + </orderedlist> + </sect2> + + <sect2> + <title>Interix</title> + + <para>Interix is a POSIX compatible subsystem for the Windows NT kernel, + providing a Unix-like environment with a tighter kernel integration than + available with Cygwin. It is part of the Windows Services for Unix + package, available for free for any licensed copy of Windows 2000, XP, + or 2003. SFU can be downloaded from <ulink + url="http://www.microsoft.com/windows/sfu/">http://www.microsoft.com/windows/sfu/</ulink>.</para> + + <para>Services for Unix 3.5, current as of this writing, has been tested. 3.0 + or 3.1 may work, but are not officially supported. (The main difference + in 3.0/3.1 is lack of pthreads.)</para> + + <sect3 id="platform.interix-sfu-install"> + <title>When Installing Interix/SFU</title> + + <para>At an absolute minimum, the following packages must be installed from + the Windows Services for Unix 3.5 distribution in order to use pkgsrc:</para> + + <itemizedlist> + <listitem><para>Utilities -> Base Utilities</para></listitem> + <listitem><para>Interix GNU Components -> (all)</para></listitem> + <listitem><para>Remote Connectivity</para></listitem> + <listitem><para>Interix SDK</para></listitem> + </itemizedlist> + + <para>When using pkgsrc on Interix, DO NOT install the Utilities subcomponent + "UNIX Perl". That is Perl 5.6 without shared module support, installed to + /usr/local, and will only cause confusion. Instead, install Perl 5.8 from + pkgsrc (or from a binary package).</para> + + <para>The Remote Connectivity subcomponent "Windows Remote Shell Service" does + not need to be installed, but Remote Connectivity itself should be + installed in order to have a working inetd.</para> + + <para>Finally, during installation you may be asked whether to enable setuid + behavior for Interix programs, and whether to make pathnames default to + case-sensitive. Setuid should be enabled, and case-sensitivity MUST be + enabled. (Without case-sensitivity, a large number of packages including + perl will not build.)</para> + + </sect3> + + <sect3 id="platform.interix-sfu-postinstall"> + <title>What to do if Interix/SFU is already installed</title> + + <para>If SFU is already installed and you wish to alter these settings to work + with pkgsrc, note the following things.</para> + + <itemizedlist> + <listitem> + <para>To uninstall UNIX Perl, use Add/Remove Programs, select Microsoft + Windows Services for UNIX, then click Change. In the installer, choose + Add or Remove, then uncheck Utilities->UNIX Perl.</para> + </listitem> + <listitem> + <para>To enable case-sensitivity for the filesystem, run REGEDIT.EXE, and + change the following registry key:</para> + <para>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel</para> + <para>Set the DWORD value "obcaseinsensitive" to 0; then reboot.</para> + </listitem> + <listitem> + <para>To enable setuid binaries (optional), run REGEDIT.EXE, and change the + following registry key:</para> + <para>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Services for UNIX</para> + <para>Set the DWORD value "EnableSetuidBinaries" to 1; then reboot.</para> + </listitem> + </itemizedlist> + + </sect3> + <sect3 id="platform.interix-notes"> + <title>Important notes for using pkgsrc</title> + + <para>The package imanager (either the pkgsrc "su" user, or the user + running "pkg_add") must be a member of the local Administrators + group. Such a user must also be used to run the bootstrap. This is + slightly relaxed from the normal pkgsrc requirement of "root".</para> + + <para>The package manager should use a umask of 002. "make install" will + automatically complain if this is not the case. This ensures that + directories written in /var/db/pkg are Administrators-group writeable.</para> + + <para>The popular Interix binary packages from http://www.interopsystems.com/ + use an older version of pkgsrc's pkg_* tools. Ideally, these should + NOT be used in conjunction with pkgsrc. If you choose to use them at + the same time as the pkgsrc packages, ensure that you use the proper + pkg_* tools for each type of binary package.</para> + + </sect3> + </sect2> + + <sect2> + <title>IRIX</title> + + <para>You will need a working C compiler, either gcc or SGI's MIPS and MIPSpro + compiler (cc/c89). Please set the <varname>CC</varname> environment variable + according to your preference. If you do not have a license for the MIPSpro + compiler suite, you can download a gcc tardist file from <ulink + url="http://freeware.sgi.com/">http://freeware.sgi.com/</ulink>.</para> + + <para>Please note that you will need IRIX 6.5.17 or higher, as this is the earliest + version of IRIX providing support for if_indextoname(3), if_nametoindex(3), + etc.</para> + + <para>At this point in time, pkgsrc only supports one ABI. That is, you can not + switch between the old 32-bit ABI, the new 32-bit ABI and the 64-bit ABI. If + you start out using "abi=n32", that's what all your packages will be built + with.</para> + + <para>Therefore, please make sure that you have no conflicting + <varname>CFLAGS</varname> in your environment or the + <filename>/etc/mk.conf</filename>. Particularly, make sure that you do not + try to link n32 object files with lib64 or vice versa. Check your + <filename>/etc/compiler.defaults</filename>!</para> + + <para>If you have the actual pkgsrc tree mounted via NFS from a different host, + please make sure to set <varname>WRKOBJDIR</varname> to a local directory, + as it appears that IRIX linker occasionally runs into issues when trying to + link over a network mounted filesystem.</para> + + <para>The bootstrapping process should set all the right options for programs such + as imake(1), but you may want to set some options depending on your local + setup. Please see <filename>pkgsrc/mk/bsd.pkg.defaults.mk</filename> and, of + course, your compilers man pages for details.</para> + </sect2> + +<!-- +<sect2> +<title>Linux</title> +<para> +... XXX +</para> +</sect2> +--> + + <sect2> + <title>OpenBSD</title> + + <para>OpenBSD 3.0 and 3.2 are tested and supported.</para> + + <para>Care should be taken so that the tools that this kit installs do not conflict + with the OpenBSD userland tools. There are several steps:</para> + + <orderedlist> + <listitem> + <para>OpenBSD stores its ports pkg database in + <filename>/var/db/pkg</filename>. It is therefore + recommended that you choose a different location (e.g. + <filename>/usr/pkgdb</filename>) by + using the --pkgdbdir option to the bootstrap script.</para> + </listitem> + + <listitem> + <para>If you do not intend to use the OpenBSD ports tools, it's probably a + good idea to move them out of the way to avoid confusion, e.g.</para> + + <screen>&rprompt; <userinput>cd /usr/sbin</userinput> +&rprompt; <userinput>mv pkg_add pkg_add.orig</userinput> +&rprompt; <userinput>mv pkg_create pkg_create.orig</userinput> +&rprompt; <userinput>mv pkg_delete pkg_delete.orig</userinput> +&rprompt; <userinput>mv pkg_info pkg_info.orig</userinput></screen> + </listitem> + + <listitem> + <para>An example <filename>/etc/mk.conf</filename> file will be placed in + <filename>/etc/mk.conf.example</filename> file + when you use the bootstrap script. OpenBSD's make program uses + <filename>/etc/mk.conf</filename> + as well. You can work around this by enclosing all the pkgsrc specific parts + of the file with:</para> + + <programlisting>.ifdef BSD_PKG_MK +# pkgsrc stuff, e.g. insert bsd.pkg.defaults.mk or similar here +.else +# OpenBSD stuff +.endif</programlisting> + </listitem> + </orderedlist> + </sect2> + + <sect2> + <title>Solaris</title> + + <para>Solaris 2.6 through 9 are supported on both x86 and sparc. You will need a working C + compiler. Both gcc 2.95.3 and Sun WorkShop 5 have been tested.</para> + + <para>The following packages are required on Solaris 8 for the bootstrap + process and to build packages.</para> + + <itemizedlist> + <listitem> + <para>SUNWsprot</para> + </listitem> + + <listitem> + <para>SUNWarc</para> + </listitem> + + <listitem> + <para>SUNWbtool</para> + </listitem> + + <listitem> + <para>SUNWtoo</para> + </listitem> + + <listitem> + <para>SUNWlibm</para> + </listitem> + </itemizedlist> + + <para>Please note the use of GNU binutils on Solaris is + <emphasis>not</emphasis> supported.</para> + + <sect3> + <title>If you are using gcc</title> + + <para>It makes life much simpler if you only use the same gcc consistently + for building all packages.</para> + + <para>It is recommended that an external gcc be used only for bootstrapping, + then either build gcc from <pkg>lang/gcc</pkg> or install a binary gcc + package, then remove gcc used during bootstrapping.</para> + + <para>Binary packages of gcc can be found through <ulink + url="http://www.sun.com/bigadmin/common/freewareSearch.html">http://www.sun.com/bigadmin/common/freewareSearch.html</ulink>.</para> + </sect3> + + <sect3> + <title>If you are using Sun WorkShop</title> + + <para>You will need at least the following packages installed (from WorkShop + 5.0)</para> + + <itemizedlist> + <listitem> + <para>SPROcc - Sun WorkShop Compiler C 5.0</para> + </listitem> + + <listitem> + <para>SPROcpl - Sun WorkShop Compiler C++ 5.0</para> + </listitem> + + <listitem> + <para>SPROild - Sun WorkShop Incremental Linker</para> + </listitem> + + <listitem> + <para>SPROlang - Sun WorkShop Compilers common components</para> + </listitem> + </itemizedlist> + + <para>You should set <varname>CC</varname>, <varname>CXX</varname> and + optionally, <varname>CPP</varname> in <filename>/etc/mk.conf</filename>, + eg.</para> + + <programlisting>CC= cc +CXX= CC +CPP= /usr/ccs/lib/cpp</programlisting> + + <para>You may also want to build 64-bit binaries, eg.</para> + + <programlisting>CFLAGS= -xtarget=ultra -xarch=v9</programlisting> + + <para>Whichever compiler you use, please ensure the compiler tools and + your $prefix are in your <varname>PATH</varname>. This includes + <filename>/usr/ccs/{bin,lib}</filename> + and eg. <filename>/usr/pkg/{bin,sbin}</filename>.</para> + </sect3> + </sect2> + </sect1> +</chapter> |