[jdk8u-dev] RFR: 8193017: Import freetype sources into OpenJDK source tree [v12]

Andrew John Hughes andrew at openjdk.org
Wed Aug 21 13:46:12 UTC 2024


On Fri, 16 Aug 2024 13:09:56 GMT, Andrew Haley <aph at openjdk.org> wrote:

> This one is outside the usual rules for 8u, which is closed for enhancements. For that reason, it must be accompanied by a _very_ strong justification, and evidence that it carries no risk. By now, I'd have thought that everyone building JDK 8 on Windows etc. had workflows in place. We are at the (long) tail of the JDK 8 life cycle.

I'm not sure I'd call this an enhancement. The lack of in-tree sources for FreeType means that there is no reference version of FreeType to build and test against, as there is with other libraries used by the AWT classes (libjpeg, libpng, giflib, LCMS). 

Historically, this is because Oracle did not use FreeType and its maintenance was largely left to others. There is evidence of this in this patch with the only JDK code changes being to allow FreeType to be used on non-OpenJDK builds (largely irrelevant to use I would expect)

Yes, those on Windows & Mac likely have some way of building against FreeType in place, but it is an ongoing burden to maintain that version of FreeType, and it means every person building OpenJDK potentially uses some different version of FreeType.

It's also an issue on the GNU/Linux side as there is no option *not* to use a system FreeType, which potentially reduces the portability of such builds. A build of OpenJDK may take place against one system installation of FreeType and then be used against a completely different one.

The reason these issues have not been a bigger problem up to now is FreeType is a pretty stable library. I think the risk of introducing this now is still very low (as I say, there are very few code changes at all) and it improves the maintainability of 8u for everyone.

-------------

PR Comment: https://git.openjdk.org/jdk8u-dev/pull/318#issuecomment-2302097041


More information about the jdk8u-dev mailing list