On Mar 23 07:11:45, RD Thrush wrote: > My PORTSDIR is on an nfs server. Mounting the particular nfs > directory on /usr/ports (and setting PORTSDIR accordingly) fails the > new test in bsd.port.mk.
Can you please show how exactly you are mounting it, and how exactly it fails? If you 'mount server:/some/dir /usr/ports', then you shouldn't need to set PORTSDIR at all, (because it's the default /usr/ports, right?). Is possibly /usr/ports a symlink itself on your machine (the NFS client)? > Apparently test -h considers an nfs mount the same as a symlink... No it doesn't; 'test -h foo' only evaluates as true for symlinks. > - @if test -h ${PORTSDIR}; then \ > - echo 1>&2 "Fatal: ${PORTSDIR} is a symlink. Please set to the > real directory"; \ > + @if ! test -d ${PORTSDIR}; then \ > + echo 1>&2 "Fatal: ${PORTSDIR} is a not a directory."; \ This doesn't help, because Symbolic links are followed for all primaries except -h and -L. So even if PORTSDIR was a symlink to a directory, "test -d" would follow the symlink and evaluates as true; which is a bad thing. Lokking at the manpag an source of test(1), -h file True if file exists and is a symbolic link. -L file True if file exists and is a symbolic link. This operator is for compatibility purposes. Do not rely on its existence; use -h instead. {"-h", FILSYM, UNOP}, /* for backwards compat */ {"-L", FILSYM, UNOP}, So shouldn't the comment really be at "-L"? Jan