Port Makefiles and the MANPREFIX macro

Andrew Pantyukhin infofarmer at FreeBSD.org
Sun Mar 4 15:53:41 UTC 2007


On 9/15/06, Kris Kennaway <kris at obsecurity.org> wrote:
> On Fri, Sep 15, 2006 at 02:25:14AM -0400, Kris Kennaway wrote:
> > On Fri, Sep 15, 2006 at 07:22:15AM +0100, Matt Dawson wrote:
> > > Hi all,
> > >     Currently doing battle with some port updates and I have come across a
> > > strange problem. It's probably my fault, but some guidance would be
> > > appreciated.
> > >
> > > Three of the ports I maintain have decided that the man pages belong in
> > > ${PREFIX}/share/man/man(n). Now, reading the Porter's Handbook, it appears
> > > this is exactly what the MAN[n]PREFIX macro is for, and sure enough after
> > > removing the man page from pkg-plist and telling the Makefile about it, the
> > > ports system compresses the resultant man page in its new location. So far so
> > > good.
> > >
> > > However, on deinstall, if appeand two lots of ${PREFIX} when trying to remove
> > > the man page. For example, grig installs a man page
> > > to /usr/local/share/man/man1/grig.1 (for a ${PREFIX} of /usr/local). The
> > > deinstall routine trys to delete grig.1.gz
> > > from /usr/local/share//usr/local/share/man/man1, which is just a little
> > > crazy. Note the two slashes between the two iterations of the MANPREFIX.
> > >
> > > Any clues, folks? I'd like to get these updates in before the ports tree is
> > > frozen for 6.2 if at all possible.
> >
> > Don't include MANPREFIX=${PREFIX}... since it's apparently being used
> > as ${PREFIX}${MANPREFIX}; you could confirm this by reading
> > bsd.port.mk.
>
> Actually this appears to be incorrect, I'm not sure what is the cause.

There appears to be an obscure bug in make(1). This line:
__MANPAGES:=     ${_MANPAGES:S%^${TARGETDIR}/%%}
ignores the substitution under some conditions (e.g.
non-standard MANPREFIX). I'm not aware of a solution
(and I don't feel like diving into make guts right now),
but a workaround is to s/:=/=/ (which needs a fix in
case of mancompressed).

Thoughts will be much appreciated, I have to jump through
hula hoops to work around the problem in some ports.


More information about the freebsd-ports mailing list