ikvm icon indicating copy to clipboard operation
ikvm copied to clipboard

GitHub Actions: Include OpenJDK binaries file in release (for building IKVM from source)

Open NightOwl888 opened this issue 1 year ago • 2 comments

This should be an easy task for those who wish to help us out. We are already building openjdk-build-linux-x86_64-normal-server-release.zip and uploading it as a GitHub Actions artifact, however, there are a couple of issues:

  1. The GitHub Release doesn't include the file.
  2. The file was historically named after the JDK tag that it is based upon with an openjdk- prefix and -stripped.zip suffix (for example, openjdk-8u45-b14-stripped.zip is based on the tag Jdk8u45-b14)). The file included a folder within named linux-x86_64-normal-server-release that contain the OpenJDK contents.

This file is not required for normal IKVM usage, but its contents are required to be placed in the <repo-root>/openjdk/build/linux-x86_64-normal-server-release folder in order to compile IKVM from source and run the tests locally.

NOTE: Although the folder name says "linux", it will build on Windows also.

Historically, IKVM has always included the JDK binary file that corresponds to a given release so it is clear which version to use when building from a specific repository tag from source. We have recovered the historical files from the internet archive and placed them in this repository. For example 8.1.5717.0 includes the openjdk-8u45-b14-stripped.zip file. This will become important again when we upgrade to a newer JDK version (see #120), since without this in place it is not clear what version of OpenJDK a specific IKVM release depends on.

NightOwl888 avatar Aug 26 '22 00:08 NightOwl888

I might have not understood correctly. But I recommend keeping the option to have a binary that doesn't ship with jdk, for people who use Kotlin instead.

kevincrans avatar Sep 07 '22 12:09 kevincrans

I meant to include the file in the GitHub Release (which we have done already for legacy versions). It won't be distributed on NuGet - you would need to download it separately. And it is basically only useful if you build IKVM from source.

NightOwl888 avatar Sep 07 '22 12:09 NightOwl888