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>