Add some formatting bug work-arounds.

This commit is contained in:
John Fieber 1996-06-26 03:28:51 +00:00
parent 8b34936102
commit 9db4d54246

View File

@ -1,4 +1,4 @@
<!-- $Id: ports.sgml,v 1.10 1996/05/16 23:18:10 mpp Exp $ -->
<!-- $Id: ports.sgml,v 1.11 1996/06/26 01:18:53 jraynard Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect><heading>The Ports collection<label id="ports"></heading>
@ -78,7 +78,7 @@ as they could be), with perhaps a configuration script.
The standard scenario is that you FTP down the tarball, extract it
somewhere, glance through the instructions, make any changes that seem
necessary, run the configure script to set things up and use the standard
'make' program to compile and install the program from the source.
`make' program to compile and install the program from the source.
<p>
FreeBSD ports still use the tarball mechanism, but use a
<ref id="ports:skeleton" name="skeleton"> to hold the &quot;knowledge&quot;
@ -107,30 +107,30 @@ known as the Bourne-Again Shell, as that seems fairly typical.
<em /Note/ if you're trying this at home, you'll need to be root.
<verb>
# cd /usr/ports/shells/bash
# make install
Checksums OK.
===> Extracting for bash-1.14.5
===> Patching for bash-1.14.5
===> Applying FreeBSD patches for bash-1.14.5
===> Configuring for bash-1.14.5
===> Building for bash-1.14.5
[lots and lots of compiler output here...]
===> Installing for bash-1.14.5
make -f bash-Makefile bindir=/usr/local/bin prefix=/usr/local install
(cd ./documentation/; make )
rm -f builtins.txt
nroff -man builtins.1 > builtins.txt
install -c -o bin -g bin -m 555 bash /usr/local/bin/bash
install -c -o bin -g bin -m 555 bashbug /usr/local/bin/bashbug
( cd ./documentation/ ; make mandir=/usr/local/man/man1 man3dir=/usr/local/man/man3 infodir=/usr/local/info install )
[ -d /usr/local/man/man1 ] || mkdir /usr/local/man/man1
[ -d /usr/local/info ] || mkdir /usr/local/info
../support/install.sh -c -m 644 bash.1 /usr/local/man/man1
../support/install.sh -c -m 644 builtins.1 /usr/local/man/man1/bash_builtins.1
../support/install.sh -c -m 644 features.info /usr/local/info/bash.info
gzip -9nf /usr/local/man/man1/bash.1 /usr/local/man/man1/bash_builtins.1
===> Registering installation for bash-1.14.5
# cd /usr/ports/shells/bash
# make install
Checksums OK.
===> Extracting for bash-1.14.5
===> Patching for bash-1.14.5
===> Applying FreeBSD patches for bash-1.14.5
===> Configuring for bash-1.14.5
===> Building for bash-1.14.5
[lots and lots of compiler output here...]
===> Installing for bash-1.14.5
make -f bash-Makefile bindir=/usr/local/bin prefix=/usr/local install
(cd ./documentation/; make )
rm -f builtins.txt
nroff -man builtins.1 > builtins.txt
install -c -o bin -g bin -m 555 bash /usr/local/bin/bash
install -c -o bin -g bin -m 555 bashbug /usr/local/bin/bashbug
( cd ./documentation/ ; make mandir=/usr/local/man/man1 man3dir=/usr/local/man/man3 infodir=/usr/local/info install )
[ -d /usr/local/man/man1 ] || mkdir /usr/local/man/man1
[ -d /usr/local/info ] || mkdir /usr/local/info
../support/install.sh -c -m 644 bash.1 /usr/local/man/man1
../support/install.sh -c -m 644 builtins.1 /usr/local/man/man1/bash_builtins.1
../support/install.sh -c -m 644 features.info /usr/local/info/bash.info
gzip -9nf /usr/local/man/man1/bash.1 /usr/local/man/man1/bash_builtins.1
===> Registering installation for bash-1.14.5
</verb>
<p> To avoid confusing the issue, I've slightly pruned the install
@ -139,16 +139,16 @@ this yourself, you may well have got something like this at the start:-
<label id="ports:fetch">
<verb>
>> bash-1.14.5.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://slc2.ins.cwru.edu/pub/dist/.
>> bash-1.14.5.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://slc2.ins.cwru.edu/pub/dist/.
</verb>
<p> The 'make' program has noticed that you didn't have a local copy
<p> The `make' program has noticed that you didn't have a local copy
of the source code and tried to FTP it down so it could get the job
done (are you starting to feel impressed? 8-)). I already had the
source handy in my example, so it didn't need to fetch it.
<p> Let's go through this and see what the 'make' program was doing.
<p> Let's go through this and see what the `make' program was doing.
<enum>
<item> Locate the source code <ref id="ports:tarball"
@ -201,9 +201,9 @@ If not, make sure the <em /FreeBSD/ CDROM is in the drive and mounted on,
say, /cdrom. Then do
<verb>
# mkdir /usr/ports
# cd /usr/ports
# ln -s /cdrom/ports/distfiles distfiles
# mkdir /usr/ports
# cd /usr/ports
# ln -s /cdrom/ports/distfiles distfiles
</verb>
to enable the ports make mechanism to find the tarballs (it expects to
@ -214,21 +214,21 @@ Now, suppose you want to install the gnats program from the databases
directory. Here's how to do it:-
<verb>
# cd /usr/ports
# mkdir databases
# cp -R /cdrom/ports/databases/gnats databases
# cd databases/gnats
# make install
# cd /usr/ports
# mkdir databases
# cp -R /cdrom/ports/databases/gnats databases
# cd databases/gnats
# make install
</verb>
Or if you're a serious database user and you want to compare all the
ones available in the Ports collection, do
<verb>
# cd /usr/ports
# cp -R /cdrom/ports/databases .
# cd databases
# make install
# cd /usr/ports
# cp -R /cdrom/ports/databases .
# cd databases
# make install
</verb>
(yes, that really is a dot on its own after the cp command and not a
@ -272,23 +272,23 @@ bits in square brackets are comments, don't type them in if you're
trying this yourself!):-
<verb>
# cd /usr/ports
# mkdir databases
# cd databases
# ftp ftp.freebsd.org
[log in as `ftp' and give your email address when asked for a
password. Remember to use binary (aka image) mode!]
> cd /pub/FreeBSD/ports/databases
> get gnats.tar.gz [tarballs up the gnats skeleton for us]
> quit
# tar xzf gnats.tar.gz [extract the gnats skeleton]
# cd gnats
# make install [build and install gnats]
# cd /usr/ports
# mkdir databases
# cd databases
# ftp ftp.freebsd.org
[log in as `ftp' and give your email address when asked for a
password. Remember to use binary (aka image) mode!]
> cd /pub/FreeBSD/ports/databases
> get gnats.tar.gz [tarballs up the gnats skeleton for us]
> quit
# tar xzf gnats.tar.gz [extract the gnats skeleton]
# cd gnats
# make install [build and install gnats]
</verb>
What happened here? We connected to the FTP server in the usual way
and went to its databases sub-directory. When we gave it the command
'get gnats.tar.gz', the FTP server <ref id="ports:tarball"
`get gnats.tar.gz', the FTP server <ref id="ports:tarball"
name="tarballed"> up the gnats directory for us and even went to the
trouble of compressing it before sending it so we could get our hands
on it a little quicker.
@ -304,16 +304,16 @@ port skeleton, let's get a whole sub-directory, for example all the
database skeletons in the ports collection. It looks almost the same:-
<verb>
# cd /usr/ports
# ftp ftp.freebsd.org
[log in as `ftp' and give your email address when asked for a
password. Remember to use binary (aka image) mode!]
> cd /pub/FreeBSD/ports/databases
> get databases.tar.gz [tarballs up the databases directory for us]
> quit
# tar xzf databases.tar.gz [extract all the database skeletons]
# cd databases
# make install [build and install all the database ports]
# cd /usr/ports
# ftp ftp.freebsd.org
[log in as `ftp' and give your email address when asked for a
password. Remember to use binary (aka image) mode!]
> cd /pub/FreeBSD/ports/databases
> get databases.tar.gz [tarballs up the databases directory for us]
> quit
# tar xzf databases.tar.gz [extract all the database skeletons]
# cd databases
# make install [build and install all the database ports]
</verb>
With half a dozen straightforward commands, we have now got a set of
@ -343,44 +343,44 @@ various statements that specify how the port should be compiled and
installed. Here's the Makefile for bash:-
<verb>
# New ports collection makefile for: bash
# Version required: 1.14.5
# Date created: 21 August 1994
# Whom: jkh
#
# Makefile,v 1.13 1995/10/04 14:45:01 asami Exp
#
# New ports collection makefile for: bash
# Version required: 1.14.5
# Date created: 21 August 1994
# Whom: jkh
#
# Makefile,v 1.13 1995/10/04 14:45:01 asami Exp
#
DISTNAME= bash-1.14.5
CATEGORIES+= shells
MASTER_SITES= ftp://slc2.ins.cwru.edu/pub/dist/
DISTNAME= bash-1.14.5
CATEGORIES+= shells
MASTER_SITES= ftp://slc2.ins.cwru.edu/pub/dist/
MAINTAINER= ache@FreeBSD.ORG
MAINTAINER= ache@FreeBSD.ORG
post-install:
.if !defined(NOMANCOMPRESS)
gzip -9nf ${PREFIX}/man/man1/bash.1 ${PREFIX}/man/man1/bash_builtins.1
.endif
post-install:
.if !defined(NOMANCOMPRESS)
gzip -9nf ${PREFIX}/man/man1/bash.1 ${PREFIX}/man/man1/bash_builtins.1
.endif
.include <bsd.port.mk>
.include &lt;bsd.port.mk>
</verb>
The lines beginning with a &quot;#&quot; sign are comments for the benefit
of human readers (as in most Unix script files).
<p>
&quot;DISTNAME&quot; specifies the name of the <ref id="ports:tarball"
`DISTNAME&quot; specifies the name of the <ref id="ports:tarball"
name="tarball">, but without the extension.
<p>
&quot;CATEGORIES&quot; states what kind of program this is.
`CATEGORIES&quot; states what kind of program this is.
<p>
&quot;MASTER_SITES&quot; is the URL(s) of the master FTP site, which is
`MASTER_SITES&quot; is the URL(s) of the master FTP site, which is
used to retrieve the <ref id="ports:tarball" name="tarball"> if it is not
available on the local system. This is a site which is regarded as
reputable, and is normally the one from which the program is officially
distributed (in so far as any software is &quot;officially&quot; distributed
on the Internet).
<p>
&quot;MAINTAINER&quot; is the email address of the person who is
`MAINTAINER&quot; is the email address of the person who is
responsible for updating the skeleton if, for example a new version
of the program comes out. (Note: The title of &quot;maintainer&quot;
is mainly an administrative one; it does <em /not/ mean the person
@ -390,17 +390,17 @@ concerned is responsible for supporting the program. If you have any
<p>
Skipping over the next few lines for a minute, the line
<verb>
.include <bsd.port.mk>
.include <bsd.port.mk>
</verb>
says that the other statements and commmands
needed for this port are in a standard file called
&quot;bsd.port.mk&quot;. As these are the same for all ports, there is
`bsd.port.mk&quot;. As these are the same for all ports, there is
no point in duplicating them all over the place, so they are kept in a
single standard file.
<p>
This is probably not the place to go into a detailed examination of
how Makefiles work; suffice it to say that the lines starting with
&quot;post-install&quot; over-ride the instructions in bsd.port.mk
`post-install&quot; over-ride the instructions in bsd.port.mk
about what to do after installing the program, so that the man pages
can be compressed after they have been put in their final destination.
@ -434,7 +434,7 @@ DESCR - a more detailed description.
PLIST - a list of all the files that will be created when the program is installed.
</itemize>
<sect1><heading>It does not work?!<label id="kaput"></heading>
<sect1><heading>It does not work?!<label id="ports:kaput"></heading>
<p>Oh. You can do one of four (4) things :
@ -536,8 +536,8 @@ generated by a program of that name.
<item><label id="ports:tarball">
Q. What's all this about tarballs?
<p>
A. It's a file ending in .tar.gz (with variations like .tar.Z, or even
.tgz if you're trying to squeeze the names into a DOS filesystem).
A. It's a file ending in .tar.gz (with variations like .tar.Z, or
even .tgz if you're trying to squeeze the names into a DOS filesystem).
<p>
Basically, it's a directory tree that's been archived into a single
file (.tar) and then compressed (.gz). This technique was originally
@ -550,8 +550,8 @@ using the standard Unix tar program, which comes with the base FreeBSD
system, like this:-
<verb>
tar tvzf foobar.tar.gz # View contents of foobar.tar.gz
tar xzvf foobar.tar.gz # Extract contents into the current directory
tar tvzf foobar.tar.gz # View contents of foobar.tar.gz
tar xzvf foobar.tar.gz # Extract contents into the current directory
</verb>
<item><label id="ports:checksum">
@ -570,9 +570,9 @@ from a CDROM"> and it worked great until I tried to install the kermit
port:-
<verb>
# make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.
# make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.
</verb>
Why can't it find it? Have I got a dud CDROM?
@ -595,7 +595,7 @@ to the CDROM, which is read-only. You can tell it to look somewhere
else by doing
<verb>
DISTDIR=/where/you/put/it make install
DISTDIR=/where/you/put/it make install
</verb>
<item>
@ -607,14 +607,14 @@ A. You can use the PORTSDIR and PREFIX variables to tell the ports
mechanism to use different directories. For instance,
<verb>
PORTSDIR=/u/people/guests/wurzburger/ports make install
PORTSDIR=/u/people/guests/wurzburger/ports make install
</verb>
will compile the port in /u/people/guests/wurzburger/ports and install
everything under /usr/local.
<verb>
PREFIX=/u/people/guests/wurzburger/local make install
PREFIX=/u/people/guests/wurzburger/local make install
</verb>
will compile it in /usr/ports and install it in
@ -623,7 +623,7 @@ will compile it in /usr/ports and install it in
And of course
<verb>
PORTSDIR=.../ports PREFIX=.../local make install
PORTSDIR=.../ports PREFIX=.../local make install
</verb>
will combine the two (it's too long to fit on the page if I write it
@ -641,15 +641,15 @@ install a port. Is there an easy way to get them all at once?
A. To get every single tarball for the ports collection, do
<verb>
# cd /usr/ports
# make fetch
# cd /usr/ports
# make fetch
</verb>
For all the tarballs for a single ports directory, do
<verb>
# cd /usr/ports/directory
# make fetch
# cd /usr/ports/directory
# make fetch
</verb>
and for just one port - well, I think you've guessed already.
@ -687,7 +687,7 @@ use -O2). You <em /should/ be able to specify the compiler options
used by something like
<verb>
# CFLAGS='-O2 -fno-strength-reduce' make install
# CFLAGS='-O2 -fno-strength-reduce' make install
</verb>
or by editing /etc/make.conf, but this doesn't always seem to get
@ -719,7 +719,7 @@ where it put all the files. Any clues?
A. No problem, just do
<verb>
pkg_delete grizzle-6.5
pkg_delete grizzle-6.5
</verb>
<item>
@ -729,14 +729,14 @@ command. You don't seriously expect me to remember that, do you??
A. Not at all, you can find it out by doing
<verb>
pkg_info -a | grep grizzle
pkg_info -a | grep grizzle
</verb>
And it'll tell you:-
<verb>
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game.
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game.
</verb>
<item>
@ -753,8 +753,8 @@ won't need the source again, there's no point in keeping it hanging
around. The best way to do this is
<verb>
# cd /usr/ports
# make clean
# cd /usr/ports
# make clean
</verb>
which will go through all the ports subdirectories and delete
@ -773,8 +773,8 @@ way of installing all the ports in one go?
A. Just do
<verb>
# cd /usr/ports
# make install
# cd /usr/ports
# make install
</verb>
<item>
@ -795,16 +795,16 @@ better ideas?
A. OK, do this before you go to bed/work/the local park:-
<verb>
# cd /usr/ports
# make -DBATCH install
# cd /usr/ports
# make -DBATCH install
</verb>
This will install every port that does <em /not/ require user
input. Then, when you come back, do
<verb>
# cd /usr/ports
# make -DIS_INTERACTIVE install
# cd /usr/ports
# make -DIS_INTERACTIVE install
</verb>
to finish the job.
@ -818,12 +818,12 @@ easily around our sites?
A. No problem, assuming you know how to make patches for your changes:-
<verb>
# cd /usr/ports/somewhere/frobble
# make extract
# cd work/frobble-2.8
[Apply your patches]
# cd ../..
# make package
# cd /usr/ports/somewhere/frobble
# make extract
# cd work/frobble-2.8
[Apply your patches]
# cd ../..
# make package
</verb>
<item>