Skip to content

Conversation

@judovana
Copy link
Contributor

@judovana judovana commented Oct 28, 2025

Hi!

I had recently hit an issue with jdk8, which, if build on old system - eg el7, it can not run GUI application on newest system like f42 or similar:

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-1.8.0-openjdk-jdk8u462.b05-0.ojdk8~u~upstream.hotspot.release.sdk.el7.x86_64.tarxz/jre/lib/amd64/libfontmanager.so: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Color_Glyph_Layer
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1838)
	at java.lang.Runtime.loadLibrary0(Runtime.java:843)
	at java.lang.System.loadLibrary(System.java:1136)
	at sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
	at sun.java2d.xr.XRSurfaceData.initXRSurfaceData(XRSurfaceData.java:85)
	at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:137)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)

As per investigations the issue is in duality of freetype, and is solved by 8193017: Import freetype sources into OpenJDK source tree

This is fully based on unfinished #318 , with smal lexception of rebase, and docs adaptation. The change in doc/building.html is unluckily done manually, as make update-build-docs is regenerating half of the universum. Is it desired? Is there some recomended version of pandoc to use?

 pandoc --version
pandoc 3.1.11.1
Features: +server +lua
Scripting engine: Lua 5.4

I had tested builds on windows and several linuxes, run full jtregs and checked the GUI works again. I can link full set of tests if needed (actually many of them are still running).

For record, I built by temurin build wrapper, which needed an change to adapt to this: adoptium/temurin-build#4287


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • JDK-8193017 needs maintainer approval

Issue

  • JDK-8193017: Import freetype sources into OpenJDK source tree (Bug - P3 - Requested)

Contributors

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk8u-dev.git pull/709/head:pull/709
$ git checkout pull/709

Update a local copy of the PR:
$ git checkout pull/709
$ git pull https://git.openjdk.org/jdk8u-dev.git pull/709/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 709

View PR using the GUI difftool:
$ git pr show -t 709

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk8u-dev/pull/709.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 28, 2025

👋 Welcome back jvanek! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Oct 28, 2025

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk
Copy link

openjdk bot commented Oct 28, 2025

@judovana Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration. See OpenJDK Developers’ Guide for more information.

@judovana judovana changed the title 8193017: Import freetype sources into OpenJDK source tree Backport 58ff4ee8c4ec399528338b59eadea996110366a0 Oct 28, 2025
@openjdk openjdk bot changed the title Backport 58ff4ee8c4ec399528338b59eadea996110366a0 8193017: Import freetype sources into OpenJDK source tree Oct 28, 2025
@openjdk
Copy link

openjdk bot commented Oct 28, 2025

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk bot added the backport Port of a pull request already in a different code base label Oct 28, 2025
@openjdk
Copy link

openjdk bot commented Oct 28, 2025

⚠️ @judovana This backport pull request is too large to be automatically evaluated as clean.

@mlbridge
Copy link

mlbridge bot commented Oct 28, 2025

Webrevs

@judovana
Copy link
Contributor Author

Good. The builds passed. I somehow do not see the issue in the tier1. I had run them on many OSes and many platforms, and all looks good.

intel:

jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el7z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  151/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-f42.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  110/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/UNSTABLE/1 day 21 hr ago ; 
  -  com/sun/jdi/oom/OomDebugTest.java#OomDebugTest  unrelated ot the change
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el7z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  125/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el8z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  123/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-f41.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  105/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el7z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  139/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-f42.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  77/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el9.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  74/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el9.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  81/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el9.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  74/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-f42.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  74/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-f41.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  111/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-f41.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  73/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 21 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el9.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  82/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el8z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  149/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-f42.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  121/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el8z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  126/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.release.sdk-el7z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  120/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-el7.x86_64-hotspot.fastdebug.sdk-el8z.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfron  123/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 
jtreg~tier1-jp8-ojdk8~u~upstream-win2022.x86_64-hotspot.release.sdk-win2022.x86_64.vagrant-x11.defaultgc.legacy.lnxagent.jfroff  89/jdk8u472.b06-10.freetype1.ojdk8~u~upstream/SUCCESS/1 day 22 hr ago ; 

Noni-ntels may look wilder, but there is no new failure. And they are mostly not running GUI anyway...

@judovana
Copy link
Contributor Author

Also all the full jtregs finished on all arches x osses I have handy. The com/sun/jdi/oom/OomDebugTest.java#OomDebugTest on f42 seems to be popping up a bit more often then I would like. Will investigate more, but still looks unrelated.

@zzambers
Copy link
Contributor

zzambers commented Oct 29, 2025

Would be nice to have in-tree freetype as in later jdks

As when person is not careful bundling freetype, it can end up linking against system hafrbuzz (which, in turn, has cyclic dependency on freetype). This may, in better case, fail the build. In worst case, build may seemingly look ok, but cause runtime linking error (in description), when run on newer OS (newer than build one).

For reference, issue and workaround in temurin-build:
issue: adoptium/temurin-build#4159
workaround: adoptium/temurin-build#4238

Also --with-freetype-src on windows does not work with recent freetype versions, due to changes to vcxproj confugrations:

configure: Trying to compile freetype sources with PlatformToolset=v143 to /home/tester/temurinbuild-1756203907/workspace/libs/freetype/lib64/ ...
configure: User specified --with-freetype-src but building freetype failed. (see freetype.log for build results)
configure: error: Consider building freetype manually and using --with-freetype instead.

(and older freetype such as 2.9.1 need to be used)

@openjdk openjdk bot added the approval Requires approval; will be removed when approval is received label Oct 29, 2025
@judovana
Copy link
Contributor Author

:38:43.3378937Z FAILED: gc/concurrentMarkSweep/CheckAllocateAndSystemGC.java
2025-10-28T14:38:43.3379819Z FAILED: gc/concurrentMarkSweep/SystemGCOnForegroundCollector.java

Are the failing jtregs. Do not seem to be related though

Am also digging in 32windows time-outs, and can not see culprit. @zzambers any ideas?

@zzambers
Copy link
Contributor

zzambers commented Nov 3, 2025

:38:43.3378937Z FAILED: gc/concurrentMarkSweep/CheckAllocateAndSystemGC.java
2025-10-28T14:38:43.3379819Z FAILED: gc/concurrentMarkSweep/SystemGCOnForegroundCollector.java

Are the failing jtregs. Do not seem to be related though

Am also digging in 32windows time-outs, and can not see culprit. @zzambers any ideas?

There are some unstable tests on x86 (32-bit) and probably unrelated to your PR. Segfault in CheckAllocateAndSystemGC.java seems like JDK-8361833 - known issue.

@zzambers
Copy link
Contributor

zzambers commented Nov 5, 2025

btw. there is also issue with Windows x86 build jobs, where VS2010 installation hangs and jobs get cancelled. I have created PR for that.

Copy link
Member

@gnu-andrew gnu-andrew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking this over. In like manner, I have leveraged my previous review and just compared the diff for your PR with the one for #318. I see building.html is now updated. I also think your choice of keeping the example and removing the freetype part is a better idea than removing the entire thing, even if it deviates from the backported change.

I do think we should test this on Windows & VS2010 before merging, so I will approve this once #712 & #713 are merged and this PR is updated with those changes. In the meantime, please use the contributor command to credit @gdams for his work here.

@gnu-andrew
Copy link
Member

btw. there is also issue with Windows x86 build jobs, where VS2010 installation hangs and jobs get cancelled. I have created PR for that.

Thanks for analysiing the test results and debugging this stalling build job. I observed it when merging the security update in, but had no idea what was causing it. I've reviewed #712 & #713 so we should be able to get them in shortly and then Jiri can merge them into his branch.

@judovana
Copy link
Contributor Author

/contributor add @gdams

@openjdk
Copy link

openjdk bot commented Nov 11, 2025

@judovana
Contributor George Adams <[email protected]> successfully added.

@judovana
Copy link
Contributor Author

Thanks for taking this over. In like manner, I have leveraged my previous review and just compared the diff for your PR with the one for #318. I see building.html is now updated. I also think your choice of keeping the example and removing the freetype part is a better idea than removing the entire thing, even if it deviates from the backported change.

I do think we should test this on Windows & VS2010 before merging, so I will approve this once #712 & #713 are

I had been testing it on windows, but sure, no objection to wait. Thank you!

merged and this PR is updated with those changes. In the meantime, please use the contributor command to credit @gdams for his work here.

done!

@gnu-andrew
Copy link
Member

Thanks for taking this over. In like manner, I have leveraged my previous review and just compared the diff for your PR with the one for #318. I see building.html is now updated. I also think your choice of keeping the example and removing the freetype part is a better idea than removing the entire thing, even if it deviates from the backported change.
I do think we should test this on Windows & VS2010 before merging, so I will approve this once #712 & #713 are

I had been testing it on windows, but sure, no objection to wait. Thank you!

On VS2010? Patches are now merged so just merge into your tree and push, please.

@judovana
Copy link
Contributor Author

judovana commented Nov 11, 2025

nope

configure: Rewriting VS_ENV_CMD to "/cygdrive/c/progra~1/micros~1/2022/commun~1/vc/auxili~1/build/vcvars~2.bat"
configure: Trying to extract Visual Studio environment variables
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.7.6
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86_x64'

Sorry.

Mergin in progress

@openjdk
Copy link

openjdk bot commented Nov 11, 2025

@judovana Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration. See OpenJDK Developers’ Guide for more information.

@judovana
Copy link
Contributor Author

x86 windows still do not look healthy

ERROR: C:\Users\runneradmin\vs-2010-express-1\VS2010Express1.iso
Cannot open the file as archive
7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03


Scanning the drive for archives:
1 file, 170 bytes (1 KiB)

Extracting archive: C:\Users\runneradmin\vs-2010-express-1\VS2010Express1.iso

Can't open as archive: 1
Files: 0
Size:       0
Compressed: 0

Error: Process completed with exit code 1.

@zzambers
Copy link
Contributor

Hmm, now I see download of VS2010 iso failed in GHA. Windows x86 stubbornly refuses to work. (Download worked few days ago when doing my PRs. Maybe temporary issue?) :(

@gnu-andrew
Copy link
Member

Hmm, now I see download of VS2010 iso failed in GHA. Windows x86 stubbornly refuses to work. (Download worked few days ago when doing my PRs. Maybe temporary issue?) :(

Maybe. It was just working for @zzambers Checking other archive.org links right now

@zzambers
Copy link
Contributor

Seems like some parts archive.org now giving: 500 Internal Server Error.

I was able to download VS2010 using aria2c locally (using torrent), but did not work in GHA in my fork (seems like it depends on mirror chosen for downloading torrent file or something).
Regular (fallback used by curl) link giving me "500 Internal Server Error" also locally.

Hopefully this will be temporary issue. I don't think we can do anything from our side... (Apart from waiting and trying to reschedule later...)

@gnu-andrew
Copy link
Member

Seems like some parts archive.org now giving: 500 Internal Server Error.

I was able to download VS2010 using aria2c locally (using torrent), but did not work in GHA in my fork (seems like it depends on mirror chosen for downloading torrent file or something). Regular (fallback used by curl) link giving me "500 Internal Server Error" also locally.

Hopefully this will be temporary issue. I don't think we can do anything from our side... (Apart from waiting and trying to reschedule later...)

I concur. All files in that directory seem to be giving this 500 error at the moment.

@gnu-andrew
Copy link
Member

@gnu-andrew
Copy link
Member

It seems to have resolved itself now and is working on my PR, #719

@judovana
Copy link
Contributor Author

thanx! Rerunning.

@openjdk
Copy link

openjdk bot commented Nov 12, 2025

@judovana Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration. See OpenJDK Developers’ Guide for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approval Requires approval; will be removed when approval is received backport Port of a pull request already in a different code base rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

3 participants