OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael Schloh
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-doc Date: 15-Jan-2003 12:09:45
Branch: HEAD Handle: 2003011511094400
Modified files:
openpkg-doc/handbook openpkg.xml
Log:
Update supported platforms, clarify requirements, expand section
'porting'.
Summary:
Revision Changes Path
1.64 +126 -40 openpkg-doc/handbook/openpkg.xml
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-doc/handbook/openpkg.xml
============================================================================
$ cvs diff -u -r1.63 -r1.64 openpkg.xml
--- openpkg-doc/handbook/openpkg.xml 14 Jan 2003 10:36:09 -0000 1.63
+++ openpkg-doc/handbook/openpkg.xml 15 Jan 2003 11:09:44 -0000 1.64
@@ -41,8 +41,9 @@
self-contained cross-platform software-packaging system for Unix
computers. It is primarily maintained for <ulink
url='http://www.sun.com/solaris'>Sun Solaris</ulink> (SPARC), <ulink
- url='http://www.freebsd.org/'>FreeBSD</ulink> (iX86), and <ulink
- url='http://www.debian.org/'>Debian GNU/Linux</ulink> (iX86), and is
+ url='http://www.freebsd.org/'>FreeBSD</ulink> (ix86), <ulink
+ url='http://www.redhat.com/'>Red Hat Linux</ulink> (ix86), <ulink
+ url='http://www.debian.org/'>Debian GNU/Linux</ulink> (ix86), and is
easily portable to other Unix flavors.
OpenPKG uses software-packaging technology based on an extended version
@@ -264,16 +265,17 @@
the operating system and some of its more common control facilities.
The three main points of contact at which OpenPKG interacts with the
operating system are the file system (1) with its owner and group
- attributes from /etc/passwd, the root cronjob (2) typically modified
- at /etc/crontab or <command>crontab -e</command>, and the init script
- (3) usually found at /etc/init.d. After the bootstrap script finishes,
- the OpenPKG file hierarchy contains a directory for the database of
- RPM packages, and another directory for binaries including the actual
- RPM command for use by OpenPKG to install packaged software. A package
- repository also has its own directory, though it may contain only a
- partial list of installed packages. Packages in this directory are
- used only during installation and therefore are often flushed after
- each successful installation.
+ attributes from <filename>/etc/passwd</filename>, the root cronjob (2)
+ typically modified at <filename>/etc/crontab</filename> or
+ <command>crontab -e</command>, and the init script (3) usually found
+ at <filename>/etc/init.d</filename>. After the bootstrap script
+ finishes, the OpenPKG file hierarchy contains a directory for the
+ database of RPM packages, and another directory for binaries including
+ the actual RPM command for use by OpenPKG to install packaged
+ software. A package repository also has its own directory, though it
+ may contain only a partial list of installed packages. Packages in
+ this directory are used only during installation and therefore are
+ often flushed after each successful installation.
</para>
</sect1>
</chapter>
@@ -711,7 +713,7 @@
</example>
</sect1>
- <sect1>
+ <sect1 id='security-usergroup'>
<title>Security Through Userids and Groupids</title>
<para>
OpenPKG installs three userid and groupid pairs during bootstrap.
@@ -742,8 +744,9 @@
the four associated userids will be 'cw', 'cw-r', 'cw-n', and 'root'.
The four associated groupids will be 'cw', 'cw-r', 'cw-n', and 'root'
or 'wheel' (or whatever the system-particular superuser group name
- is). The administrator can read the unix password file /etc/passwd and
- unix group file /etc/group to see the new entries.
+ is). The administrator can read the unix password file
+ <filename>/etc/passwd</filename> and unix group file
+ <filename>/etc/group</filename> to see the new entries.
</para>
<sect2>
<title>Arguments given during bootstrap</title>
@@ -1000,39 +1003,89 @@
</simpara>
</listitem>
</itemizedlist>
- <sect2>
+ <sect2 id='support-official'>
<title>Officially Supported Platforms</title>
<para>
As a practicality, the current OpenPKG has been implemented to run on
- three of the most commonly found Internet server platforms<footnote>
- <para>Precisely, the officially supported operating system version
- numbers are Sun Solaris 2.8 (SPARC), Debian GNU/Linux 2.2 (iX86), and
- FreeBSD 4.[56] (iX86).</para></footnote>. These platforms fully
- support all functionality of OpenPKG and have native packages built to
- order on OpenPKG servers supplying packages to the official OpenPKG
- ftp server <ulink
- url='ftp://ftp.openpkg.org/'>ftp://ftp.openpkg.org</ulink> and web
- site <ulink url='http://www.openpkg.org/'>OpenPKG</ulink>.
+ three (Solaris, Linux, FreeBSD) of the most commonly found Internet
+ server platforms<footnote><para>Precisely, the officially supported
+ operating systems are Sun Solaris 9 (SPARC), Debian GNU/Linux 3.0
+ (ix86), Red Hat Linux 7.2 (ix86), and FreeBSD 4.7
+ (ix86).</para></footnote>. These platforms fully support all
+ functionality of OpenPKG and have native packages built to order on
+ OpenPKG servers supplying packages to the official OpenPKG ftp server
+ <ulink url='ftp://ftp.openpkg.org/'>ftp://ftp.openpkg.org</ulink> and
+ web site <ulink url='http://www.openpkg.org/'>OpenPKG</ulink>.
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Solaris 9 (SPARC)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ FreeBSD 4.7 (ix86)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Debian GNU/Linux 3.0 (ix86)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ RedHat 7.2 (ix86)
+ </simpara>
+ </listitem>
+ </itemizedlist>
</para>
</sect2>
- <sect2>
+ <sect2 id='support-unofficial'>
<title>Unofficially Supported Platforms</title>
<para>
- Additionally, Solaris 2.[679] (SPARC), FreeBSD 4.[0-4] (iX86) and
- FreeBSD 5.0 (iX86), and Debian 3.0 (iX86) are unofficially supported
- due to lack of testing resources (and number of brains and hands) at
- OpenPKG ground zero. In other words, they are not in enough day-to-day
- use during OpenPKG package testing to guarantee complete functionality
- on a regular basis. Due to mounting interest, other platforms have
- been tried, tested, and are in use. They are known to work, but remain
- on the list of unoffically supported platforms for similar time and
- resource limits. These unofficially supported platforms are RedHat
- Linux (iX86), Mandrake Linux (iX86), Solaris (iX86), NetBSD (SPARC and
- iX86), OpenBSD (iX86), HP-UX (PA/IPF), and Compaq Tru64 (Alpha).
+ There are additional platforms which are unofficially supported due to
+ lack of testing resources (and number of brains and hands) at OpenPKG
+ ground zero.<footnote><para>The unofficially supported operating
+ systems are Solaris [678] (SPARC), Solaris 8 (ix86), FreeBSD 4.[0-6]
+ (ix86), FreeBSD 5.0 (ix86), Debian 2.2 (ix86), and Red Hat 7.[01]
+ (ix86).</para></footnote>. In other words, they are not in enough
+ day-to-day use during OpenPKG package testing to guarantee complete
+ functionality on a regular basis. Due to mounting interest, other
+ platforms have been tried, tested, and are in use. They are known to
+ work, but are not offically supported for similar resource limits.
+ Such platforms as NetBSD, OpenBSD, Tru64, and HP-UX belong to this
+ category.
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Solaris 6, 7, 8 (SPARC)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Solaris 8 (ix86)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ FreeBSD 4.[0-6] (ix86)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Debian GNU/Linux 2.2 (ix86)
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ RedHat 7.[01] (ix86)
+ </simpara>
+ </listitem>
+ </itemizedlist>
</para>
</sect2>
- <sect2>
- <title>Porting To New Platforms</title>
+ <sect2 id='support-porting'>
+ <title>Porting to New Platforms</title>
<para>
The platform requirements of OpenPKG are independent of its use, and
so the inherent operating system constraint exists regardless of
@@ -1042,7 +1095,40 @@
FreeBSD roots to many other platforms, and it should indeed be easy to
port to any Unix brand of operating system.
</para>
- </sect2>
+ <para>
+ Most find that porting OpenPKG is a two step process. The first step
+ involves porting the individual software that make up the bootstrap
+ package 'openpkg'. The software in question is Bash, cURL, Tar, and
+ RPM). Adding patchfiles or using <command>shtool</command>
+ substitutions is sometimes needed to fix software in the bootstrap
+ package. Additionally, the bootstrap package must succeed in adding
+ the OpenPKG native users and groups. For more on what OpenPKG does to
+ <filename>/etc/passwd</filename> and <filename>/etc/group</filename>,
+ please see <xref linkend='security-usergroup'/>. Lastly, ensure that
+ the bootstrap package is able to add its crontab entries to
+ <filename>/etc/crontab</filename>. Fiddling with the '%pre' and
+ '%preun' sections of the bootstrap package's specification file might
+ be needed to fix problems with user, group, and crontab entries. As
+ soon as the boostrap package successfully builds on the new platform,
+ the first and most important step in porting OpenPKG is complete.
+ </para>
+ <para>
+ OpenPKG would not be very useful without its wealth of packages.
+ Luckily, as long as the new platform provides a fair amount of the
+ POSIX APIs, most OpenPKG packages will work out of the box. Porting a
+ package to a new platform is needed in the event that it doesn't build
+ and install correctly from the start. The good news is that only a few
+ of the hundreds of OpenPKG packages contain platform specific
+ constructs, so whether a package builds on a new platform is largely
+ dependent on the underlying vendor software. This means that if you
+ can build <emphasis>BIND</emphasis> without using OpenPKG, then the
+ 'bind' OpenPKG package builds or can be adjusted to build on a new
+ platform. To port a problem package, try solving the problem outside
+ of any OpenPKG context whatsoever. Once the problem is solved, go back
+ to OpenPKG and add a patch file containg the solution to the package
+ in question.
+ </para>
+</sect2>
</sect1>
<sect1 id='bstrap-sfware'>
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]