RFC: Alternative to PRIVATELIB

Brooks Davis brooks at freebsd.org
Mon Apr 13 16:11:48 UTC 2015


On Sat, Apr 11, 2015 at 05:14:12PM +0200, Baptiste Daroussin wrote:
> On Sat, Apr 11, 2015 at 04:28:35PM +0200, Baptiste Daroussin wrote:
> > Hi,
> > 
> > I would like to propose to replace PRIVATELIB with something more convenient.
> > 
> > First what is PRIVATELIB is trying to solve:
> > We are maintaining stable ABI over branches but some third parties sources
> > are not really good at maintaining stable ABI, so we do hide them into private
> > where nothing can use it. We do not provide headers for that and we add rpath to
> > every binaries that needs to link to those.
> > 
> > What is the issues of PRIVATELIB:
> > any application linking to a library from base (a regular one) that does itself
> > links to a PRIVATELIB cannot anymore statically link to the said application.
> > 
> > The is no mechanism to handle PRIVATELIBS in compat*x ports which can be a
> > problem if one of our regular lib is linked to a privatelib and ends up into
> > compat one day.
> > 
> > It prevents easy linking for 3rd party application using those privatelibs on
> > purpose (aka with the knowledge abi can break) like libbsdstat.
> > 
> > What I would like to propose is the following:
> > 
> > Create in bsd.lib.mk support for PRIVATE knobs (what ever name you do prefer)
> > 
> > It will just prefix the name of the library with "private" but install it in the
> > regular place
> > 
> > It will automatically decide to install the headers into /usr/include/private/${LIB}/
> > Each private library headers in a custom place to avoid an application that
> > deliberatly use a given privatelib to find another one
> > 
> > Prefix all manpage with private_ so that we can provide the documentation for
> > the said libs for the version we ship but if another version is shipped by ports
> > then we can easily access both documentation.
> > 
> > As a result bsd.lib.mk will be simpler, we could again static link against
> > everything we ship in base, we can provide documentation for those libs and we
> > can easily isolate them anyway from the ports.
> > 
> > I plan to start working on this in a week.
> 
> This patch shows an example with libucl:
> https://people.freebsd.org/~bapt/private.diff

This seems good to me.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20150413/2ab773d7/attachment.sig>


More information about the freebsd-arch mailing list