/usr/ports symlink + make search
alsbergt at cs.huji.ac.il
Tue Jun 15 08:32:41 GMT 2004
With the new ports/Mk/bsd.port.subdir.mk, make search (seems like a
quite revamped awk script, relative to the old one) checks the second
field of INDEX to be the same as `pwd` (eventually, through awk -v
That breaks when /usr/ports is a symbolic link to somewhere else
(e.g. we have the ports in a centralized location, /usr/ports is a
symlink to /r+d/ports, and it is read only - work is done in
$WRKDIRPREFIX set to a writeable location).
That's because obviously when in /usr/ports `pwd` will give the target
of the symlink which is different than the 2nd field in INDEX (which
is /usr/ports), and thus the entry will be skipped. INDEX is
automatically updated from cvsup, so it's not a good idea to globally
substitute in it.
My solution to it was to remove that check from the awk script:
--- Mk/bsd.port.subdir.mk.orig Thu Jun 10 10:30:19 2004
+++ Mk/bsd.port.subdir.mk Tue Jun 15 11:30:45 2004
@@ -377,8 +377,6 @@
- if ($$2 !~ there) \
- next; \
for (i in parms) \
if ($$i !~ parms[i]) \
I'm not sure why this check is necessary (it's all in ports, after
all), but anyway it causes some trouble and might need to be refined.
Of course if I change bsd.port.subdir.mk I again have to update it
everytime it is updated by cvsup, so that's also suboptimal.
Tom Alsberg - hacker (being the best description fitting this space)
Web page: http://www.cs.huji.ac.il/~alsbergt/
DISCLAIMER: The above message does not even necessarily represent what
my fingers have typed on the keyboard, save anything further.
More information about the freebsd-ports