Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Apr 2015 16:28:35 +0200
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        arch@FreeBSD.org
Subject:   RFC: Alternative to PRIVATELIB
Message-ID:  <20150411142835.GE65320@ivaldir.etoilebsd.net>

next in thread | raw e-mail | index | archive | help

--uCPdOCrL+PnN2Vxy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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.

Best regards,
Bapt

--uCPdOCrL+PnN2Vxy
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlUpL5MACgkQ8kTtMUmk6Ey9QgCcDAB/Ox6f3g2Oj0hq8NVst14A
iOIAn0wVeO32Cyqje8Ewlds+sSIe53CY
=WI1l
-----END PGP SIGNATURE-----

--uCPdOCrL+PnN2Vxy--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150411142835.GE65320>