Date: Fri, 24 Apr 2015 13:57:51 -0500 From: Bryan Drewery <bdrewery@FreeBSD.org> To: Baptiste Daroussin <bapt@FreeBSD.org>, arch@FreeBSD.org Subject: Re: RFC: Alternative to PRIVATELIB Message-ID: <553A922F.3000303@FreeBSD.org> In-Reply-To: <20150411142835.GE65320@ivaldir.etoilebsd.net> References: <20150411142835.GE65320@ivaldir.etoilebsd.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --69KlI9bmva1VqQBJnaMDv3pG2B3bUDEIV Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 4/11/2015 9:28 AM, Baptiste Daroussin wrote: > Hi, >=20 > I would like to propose to replace PRIVATELIB with something more conve= nient. >=20 > First what is PRIVATELIB is trying to solve: > We are maintaining stable ABI over branches but some third parties sour= ces > 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. >=20 > What is the issues of PRIVATELIB: > any application linking to a library from base (a regular one) that doe= s itself > links to a PRIVATELIB cannot anymore statically link to the said applic= ation. >=20 > The is no mechanism to handle PRIVATELIBS in compat*x ports which can b= e a > problem if one of our regular lib is linked to a privatelib and ends up= into > compat one day. >=20 > It prevents easy linking for 3rd party application using those privatel= ibs on > purpose (aka with the knowledge abi can break) like libbsdstat. >=20 > What I would like to propose is the following: >=20 > Create in bsd.lib.mk support for PRIVATE knobs (what ever name you do p= refer) >=20 > It will just prefix the name of the library with "private" but install = it in the > regular place >=20 > It will automatically decide to install the headers into /usr/include/p= rivate/${LIB}/ This is basically a requirement to even make some libraries private. (I may be misremembering details) Anything built against readline wants to find a readline/*.h but the source in the tree is not stored in a readline/*.h structure. By installing the actual headers into /usr/include/private the problem goes away. > Each private library headers in a custom place to avoid an application = that > deliberatly use a given privatelib to find another one >=20 > Prefix all manpage with private_ so that we can provide the documentati= on for > the said libs for the version we ship but if another version is shipped= by ports > then we can easily access both documentation. >=20 This sounds useful for debugging and developing base applications which need these private libs. > As a result bsd.lib.mk will be simpler, we could again static link agai= nst > everything we ship in base, we can provide documentation for those libs= and we > can easily isolate them anyway from the ports. >=20 > I plan to start working on this in a week. >=20 +1 --=20 Regards, Bryan Drewery --69KlI9bmva1VqQBJnaMDv3pG2B3bUDEIV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJVOpIvAAoJEDXXcbtuRpfPAfYH/1XuFHv9dws0wgWUiEr3lgp2 zf9pgoqn21YUm0jPY1662P1dHpLLEAE3rTbCVpgCErtF/pA5Afu9O3jomRYtzUP3 RIrUP7/qj03kwvZVvgQIJAgqX5Fj/0I4LMvorW9WDbM9JIEUyqVmNGS/sUs4ljRp si6MSELNOWQIBuvHFB/qwbHgBwR2x5GXWUkBFdp8InRjSr0qGNvWasb+WV10YuDt W9QYfnoqG+XouWZZdTIrGm2BSy31kheqX5WzVhFDqW7JwA5O8GIHkTVnay0pxlCw brNoD0lulyPYzr6neRQwTktofGIqt+KeQ9eARWol5mZmv+rg8WE483IITXKiVoU= =on6E -----END PGP SIGNATURE----- --69KlI9bmva1VqQBJnaMDv3pG2B3bUDEIV--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?553A922F.3000303>