Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jun 1996 23:43:16 -0700
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
To:        Annelise Anderson <ANDRSN@HOOVER.STANFORD.EDU>
Cc:        freebsd-doc@freebsd.org, fdocs@jraynard.demon.co.uk
Subject:   Re: Revised ports entry for handbook 
Message-ID:  <2569.835512196@time.cdrom.com>
In-Reply-To: Your message of "Sat, 22 Jun 1996 19:17:36 PDT." <01I67XXHPFB600AE9A@HOOVER.STANFORD.EDU> 

next in thread | previous in thread | raw e-mail | index | archive | help
> (by default) for the distfile in /usr/ports/distfiles; and that the
> skeleton files include a Makefile; and finally that "make install" is
> the basic command for making a port, and that it's invoked in the

Actually, strictly speaking it's "make all" - make install just
installs the bits made by make all.

> Interesting, there's no evidence in my packages database for any port
> I've ever done, except for those done using lndir.

He means the database in /var/db/pkg - the pkg_add command updates
this area.

> Once this symbolic link is established (assuming a / between ports
> and distfiles instead of a space), attempts to ftp for the source
> tarball will fail, because the write will be to the cdrom.  Nor will

Not for some time - this is checked now and the ports framework will
yell appropriately, like so:

jkh@time-> make
>> /usr/ports/distfiles//p2c-1.21alpha2.tar.gz is a broken symlink.
>> Perhaps a filesystem (most likely a CD) isn't mounted?
>> Please correct this problem and try again.
*** Error code 1

(this is where I've deliberately unmounted my CD).


> Script started on Sat Jun 22 13:54:07 1996
> andrsn: {1} make
> >> cku190.tar.gz doesn't seem to exist on this system.
> >> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.
> NcFTP:  and . (30): Read-only file system

But if /usr/ports/distfiles is unwritable, this is still a problem.. :-)

> Sometimes "make all install" is suggested.  This is unnecessary or
> identical?

Well, this is a matter open to debate since although the ports
collection sets up a dependency of install->all (which is why you
thought that "install" actually did it all), it's not actually *quite*
the UNIX tradition.  If you go into /usr/src/bin/cat, for example, and
do a `make install' before a `make all', you'll fall over in short
order.  Hence the "convention" under UNIX is to type "make all
install" if you want to combine the two passes and it doesn't hurt to
stick to convention in the ports collection, even if it's a little
redundant.

>    >with the XFree86 distribution. Find a location with some free space
>    >and create a directory there, and make a symbolic link from /usr/ports
> 
> This symbolic link has no purpose unless one has two /usr partitions?

I'm not sure what you mean here.  Also, I haven't read this whole
document through so far or I'd have flagged this one as also
potentially unnecessary if the user has answered yes to the "do you
want to link the ports collection to your CDROM?" question during the
installation.  That should be noted someplace.

> It seems to me the lndir approach to ports is so obviously superior to
> a symbolic link to the distfiles on the cdrom or not using a symbolic
> link or lndir that it's worth explaining, and worth explaining how to

Well, it also has its drawbacks - the symlink tree eats a LOT of inodes. :(

> get lndir if X-Windows isn't installed (is it on the live file system?

It is..  It's also built into sysinstall, as I noted before, and you
can select this option from the configuration menu.

> Whether one gets the skeleton files by ftp or from the cdrom, where is
> the make fetch-list command issued?  I can't make it work on freefall.

Strange - works for me!

root@time-> cd /usr/ports/
You have new mail in /var/mail/jkh
root@time-> make fetch-list
===> archivers
===> archivers/arc
===> archivers/gshar+gunshar
===> archivers/ha
===> archivers/hpack.non-usa.only
/usr/bin/fetch ftp://src.doc.ic.ac.uk/packages/hpack/hpack79src.tar.Z  ||echo hpack79src.tar.Z not fetched
===> archivers/lha
===> archivers/rar
/usr/bin/fetch ftp://ftp.relcom.ru/unix/arcers/rar2bsdb.tgz  ||echo rar2bsdb.tgz not fetched

And so on...

> >for i in *; do echo -n $i": "; cat $i/pkg/COMMENT; done
> 
> One could substitute DESCR for COMMENT in the above and get a more
> complete description?  Could one send this to a file?  (And where should
> the make describe command be invoked?)

Yeah, one could also do this - I really wouldn't try to override the
functionality of describe here though (either in practice or on the
document) since it's not really meant to do what James probably
thought it did.  Make describe is only meant to be used to create the
INDEX file which should then be used as fodder for more advanced
queries.  Since there are all sorts of things one might wish to pull
from a port to "describe" it, the index file facilitates finding the
base directory, naming the ports DESCR file, and so on.

						Jordan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2569.835512196>