You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2022-09-22 - Moved this section out of the README file.
Building the JDK requires that you already have a JDK for your target operating system and architecture. The JDK used to build the JDK is called the Boot JDK. Furthermore, the minimum version required for the Boot JDK is either the previous version or, for an early-access build, the most recently released version. This requirement presents a challenge when you're just getting started and want to build OpenJDK using only trusted sources.
The most trusted source of software for Debian-based distributions is the set of system package repositories. Snap packages have access to the repositories of either Ubuntu 18.04 LTS, using the core18 base, or Ubuntu 20.04 LTS, using the core20 base. When the initial Snap package was built, the current release was JDK 15 but the latest release of the Ubuntu OpenJDK package was JDK 11 for core18 and JDK 14 for core20.
That gave me two options to create a chain of trusted builds for OpenJDK 15. The first option was to use the core20 base with Ubuntu OpenJDK 14 as the initial Boot JDK:
I started this project using the first option, but now all of the Snap packages are built on the older Ubuntu 18.04 LTS release and were bootstrapped using the second option.
The problem with the first option is that the programs end up requiring very recent versions of the Linux kernel and GNU C library. Building on the core20 base creates Snap packages that require GLIBC version 2.29 or later. Building on the core18 base, on the other hand, lowers the GLIBC requirement to version 2.27.
The lower requirement lets the package fully support older systems such as Ubuntu 18.04 LTS and Fedora 28 when running in an unconfined environment. For even older systems, you can run the JDK programs using the confined and self-contained package commands or aliases.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
2022-09-22 - Moved this section out of the README file.
Building the JDK requires that you already have a JDK for your target operating system and architecture. The JDK used to build the JDK is called the Boot JDK. Furthermore, the minimum version required for the Boot JDK is either the previous version or, for an early-access build, the most recently released version. This requirement presents a challenge when you're just getting started and want to build OpenJDK using only trusted sources.
The most trusted source of software for Debian-based distributions is the set of system package repositories. Snap packages have access to the repositories of either Ubuntu 18.04 LTS, using the
core18
base, or Ubuntu 20.04 LTS, using thecore20
base. When the initial Snap package was built, the current release was JDK 15 but the latest release of the Ubuntu OpenJDK package was JDK 11 forcore18
and JDK 14 forcore20
.That gave me two options to create a chain of trusted builds for OpenJDK 15. The first option was to use the
core20
base with Ubuntu OpenJDK 14 as the initial Boot JDK:Option 1
The second option was to use the
core18
base with Ubuntu OpenJDK 11 as the initial Boot JDK:Option 2
I started this project using the first option, but now all of the Snap packages are built on the older Ubuntu 18.04 LTS release and were bootstrapped using the second option.
The problem with the first option is that the programs end up requiring very recent versions of the Linux kernel and GNU C library. Building on the
core20
base creates Snap packages that require GLIBC version 2.29 or later. Building on thecore18
base, on the other hand, lowers the GLIBC requirement to version 2.27.The lower requirement lets the package fully support older systems such as Ubuntu 18.04 LTS and Fedora 28 when running in an unconfined environment. For even older systems, you can run the JDK programs using the confined and self-contained package commands or aliases.
Beta Was this translation helpful? Give feedback.
All reactions