On 02/19/2013 05:00 PM, Marc Espie wrote:
On Tue, Feb 19, 2013 at 04:22:17PM -0500, circuit6engineering wrote:
On 02/19/2013 04:03 PM, Landry Breuil wrote:
On Tue, Feb 19, 2013 at 03:18:40PM -0500, circuit6engineering wrote:
I'm going to tinker with [werc][1] under chroot'ed Apache.

[1]: http://werc.cat-v.org/

werc requires plan9port. If I attempt to build plan9port with:

make LOCALBASE=/var/www
...
===>    Extracting for plan9port-20120508p0
/bin/sh: bzip2: not found
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
*** Error code 1
...

but 'make install' works as expected. I can copy
/usr/local/plan9/bin to /var/www/bin

and continue from there but I am curious why the LOCALBASE method
failed. Any speculations or comments on best practices?

You're looking for PREFIX. Read bsd.port.mk(5) to learn about the
differences between PREFIX, TRUEPREFIX and LOCALBASE.

Landry


Thanks!

The ports man page doesn't mention PREFIX and says this:

LOCALBASE     Where to install things in general...


Whereas the bsd.port.mk man page says this:

LOCALBASE     where other ports have already been installed...
PREFIX        Base directory for the current port installation...


Which is quite a bit more useful. Maybe the ports man page could use
a little work. I haven't noticed a [email protected] mailing list. I
would like to know more about how the community discusses and
updates the documentation. Any pointers?

No, that's intentional.

ports(7) is pretty high level and focuses on how to *use* the ports tree.
LOCALBASE kind of belong there, as a general thingy, whereas bsd.port.mk(5)
*is* the main documentation entry point for the actual porting stuff.

Don't duplicate that information. It's already difficult enough trying to
keep things synchronized.  If anything the ports(7) page is probably too
long and contains some stuff that is already explained elsewhere.

Perhaps PREFIX is not in the ports man page because it is only meant to be used by masters of ports internals engaged in unspeakable acts of software installation origami. What seems (to me) to be the obvious use of PREFIX doesn't work at all. Any ideas?

root@lucidrine:/usr/ports/devel/fossil:59# make clean=all
root@lucidrine:/usr/ports/devel/fossil:60# env FLAVOR="static" make PREFIX=/var/www install-all
...
===>  Building package for fossil-1.22p0v0-static
Create /usr/ports/packages/i386/all/fossil-1.22p0v0-static.tgz
Error: /usr/ports/pobj/fossil-1.22-static/fake-i386-static/var/www/bin/fossil does not exist
Fatal error: can't continue
 at /usr/libdata/perl5/OpenBSD/PkgCreate.pm line 1385
*** Error code 1


root@lucidrine:/usr/ports/plan9/plan9port:81# make deinstall
root@lucidrine:/usr/ports/plan9/plan9port:82# make clean=all
root@lucidrine:/usr/ports/plan9/plan9port:83# make PREFIX=/var/www install-all
...
install -d -o root -g bin -m 755 /usr/ports/pobj/plan9port-20120508/fake-i386/var/www/plan9/man/man8 install -c -o root -g bin -m 444 /usr/ports/pobj/plan9port-20120508/plan9/man/man8/* /usr/ports/pobj/plan9port-20120508/fake-i386/var/www/plan9/man/man8 install -d -o root -g bin -m 755 /usr/ports/pobj/plan9port-20120508/fake-i386/var/www/plan9/man/man9 install -c -o root -g bin -m 444 /usr/ports/pobj/plan9port-20120508/plan9/man/man9/* /usr/ports/pobj/plan9port-20120508/fake-i386/var/www/plan9/man/man9 cd /usr/ports/pobj/plan9port-20120508/plan9 && pax -rw acid dict face font include lib ndb news plumb postscript proto sky src tmac troff /usr/ports/pobj/plan9port-20120508/fake-i386/var/www/plan9 cd /usr/ports/pobj/plan9port-20120508/fake-i386/var/www && ln -s ../plan9/bin/9 bin/9
ln: bin/9: No such file or directory
*** Error code 1

Stop in /usr/ports/plan9/plan9port (line 91 of Makefile).
*** Error code 1

Reply via email to