buildroot-nc4 icon indicating copy to clipboard operation
buildroot-nc4 copied to clipboard

Compatibility with old libraries used on webOS: GMP, GnuTLS, Nettle

Open throwaway96 opened this issue 1 year ago • 0 comments

The primary goal of this PR is to stop programs built with br-nc4 from requiring a separate copy of GMP. The other changes were consequences of the GMP version change.

It appears that LG is unwilling to update several packages because they're afraid of GPLv3-licensed software (see meta-gplv2).

GMP 4.2.1 has been used on every version of webOS so far (and probably NetCast, since it was released in 2006). Rolling back to this version allows us to use the libgmp.so.3 present on webOS.

GnuTLS 3.3.30 should work for webOS 8 back through 3.0, as 3.3.x versions with a soname of libgnutls.so.28 have been used since then. GnuTLS 2.12.23 (with the soname libgnutls.so.26) was used on webOS 1 and 2. If GnuTLS is present on NetCast, it's probably also a 2.x version.

Nettle is rather closely coupled with both GMP and GnuTLS. It was reverted to 2.7.1, which is the version on webOS 3.0+. It's not present on webOS 1 or 2 (which probably use the libgcrypt backend for GnuTLS 2.x).

Buildroot also builds these packages for the host. I made separate webos- packages for GnuTLS and GMP. It still seems to work without a separate package for Nettle, though. These packages are intended to replace the libraries built for the target without affecting the host build.

Currently, these webos- packages are automatically selected when BR2_WEBOS_COMPAT is enabled. I'm sure there is a better way to do this.

throwaway96 avatar Feb 05 '24 05:02 throwaway96