Subject: Re: proposal of how to deal with missing header files supplied by nbcompat
To: Dieter Baron <>
From: Georg Schwarz <>
List: tech-pkg
Date: 12/01/2005 20:21:06
>   The buildlink framework makes sure that ${LOCALBASE}/include and
> ${LOCALBASE}/lib are not searched during package build.  Instead, the
> files the package needs is linked into ${WRKDIR}/.buildlink/include
> and ${WRKDIR}/.buildlink/lib, which avoids that the package picks up
> other installed files it has optional support for.

I know, and in order to avoid having to implement another additional
mechanism my probosal was just to add links in ${LOCALBASE}/include and
list them in libnbcompat's PLIST so that if libnbcompat/ was
included these files or symlinks would automatically be copies to
${WRKDIR}/.buildlink/include where the build process would find them.
The advantage would be that no extra code would have been needed
except for some code run when installing libnbcompat.

>   This mechanism is generic enough to allow us to link only those
> files from ${LOCALBASE}/include/nbcompat needed by the package but not
> provided by the system into ${WRKDIR}/.buildlink/include, so they will
> be found by the compiler.  (The other files will not be found, since
> ${LOCALBASE}/include/nbcompat is not searched.)

nor is, and that is more important here, ${WRKDIR}/.buildlink/include/nbcompat.

so you would suggest to symlink the requested header files found in
${WRKDIR}/.buildlink/include/nbcompat to ${WRKDIR}/.buildlink/include
on compile time of a package?
The open issue to me here is how to ensure that this happens only after
${WRKDIR}/.buildlink/include has been created and still could be triggered
simply by including ../../mk/

>   Many packages don't care, as long as all functions they use are
> provided.  LIBNBCOMPAT_AUTO_VARS is an easy way to achieve that: it
> adds LIBS+=-lnbcompat, so if the build of the package honours LIBS,
> nothing further needs to be done.  If the package cares, don't set
> LIBNBCOMPAT_AUTO_VARS.  The same mechanism is used for pthread, and it
> works well there.

I probably have to take a closer look into that.

Georg Schwarz  +49 178 8545053