Jre17 but *smol* (#8)

- a lot of commits idk xdxd

Co-authored-by: ArtDev <45949002+artdeell@users.noreply.github.com>
This commit is contained in:
Boulay Mathias 2022-05-13 12:58:35 +02:00 committed by GitHub
parent 26218412d4
commit ebf9aff0c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 8 deletions

View File

@ -14,10 +14,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: set up JDK 1.16
- name: set up JDK 1.17
uses: actions/setup-java@v1
with:
java-version: 1.16
java-version: 1.17
- name: Build with CI build script
run: bash "ci_build_arch_${{matrix.arch}}.sh"
- name: Upload JDK build output

View File

@ -71,6 +71,7 @@ bash ./configure \
--enable-headless-only=yes \
--with-toolchain-type=gcc \
--with-jvm-variants=$JVM_VARIANTS \
--with-jvm-features=-dtrace,-zero,-vm-structs,-epsilongc \
--with-cups-include=$CUPS_DIR \
--with-devkit=$TOOLCHAIN \
--with-debug-level=$JDK_DEBUG_LEVEL \

View File

@ -20,10 +20,21 @@ cp freetype-$BUILD_FREETYPE_VERSION/build_android-$TARGET_SHORT/lib/libfreetype.
cp -r $imagespath/jdk jdkout
# JDK no longer create separate JRE image, so we have to create one manually.
mkdir -p jreout/bin
cp jdkout/bin/{java,jfr,keytool,rmiregistry} jreout/bin/
cp -r jdkout/{conf,legal,lib,man,release} jreout/
rm jreout/lib/src.zip
#mkdir -p jreout/bin
#cp jdkout/bin/{java,jfr,keytool,rmiregistry} jreout/bin/
#cp -r jdkout/{conf,legal,lib,man,release} jreout/
#rm jreout/lib/src.zip
# Produce the jre equivalent from the jdk (https://blog.adoptium.net/2021/10/jlink-to-produce-own-runtime/)
jlink \
--module-path=jdkout/jmods \
--add-modules java.base,java.compiler,java.datatransfer,java.desktop,java.instrument,java.logging,java.management,java.management.rmi,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.se,java.security.jgss,java.security.sasl,java.sql,java.sql.rowset,java.transaction.xa,java.xml,java.xml.crypto,jdk.accessibility,jdk.charsets,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.dynalink,jdk.httpserver,jdk.jdwp.agent,jdk.jfr,jdk.jsobject,jdk.localedata,jdk.management,jdk.management.agent,jdk.management.jfr,jdk.naming.dns,jdk.naming.rmi,jdk.net,jdk.nio.mapmode,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.xml.dom,jdk.zipfs \
--output jreout \
--strip-debug \
--no-man-pages \
--no-header-files \
--release-info=jdkout/release \
--compress=0
# mv jreout/lib/${TARGET_JDK}/libfontmanager.diz jreout/lib/${TARGET_JDK}/libfontmanager.diz.keep
# find jreout -name "*.debuginfo" | xargs -- rm

View File

@ -16,10 +16,46 @@ mkdir -p "$out"
# here comes a not-so-complicated functions to easily make desired arch
## Usage: makearch [jre_libs_dir_name] [name_in_tarball]
makearch () { echo "Making $2..."; cd "$work"; tar xf $(find "$in" -name jre8-$2-*release.tar.xz) > /dev/null 2>&1; mv bin "$work1"/; mkdir -p "$work1"/lib; mv lib/$1 "$work1"/lib/; mv lib/jexec "$work1"/lib/; tar cJf bin-$2.tar.xz -C "$work1" . > /dev/null 2>&1; mv bin-$2.tar.xz "$out"/; rm -rf "$work"/*; rm -rf "$work1"/*; }
makearch () {
echo "Making $2...";
cd "$work";
tar xf $(find "$in" -name jre17-$2-*release.tar.xz) > /dev/null 2>&1;
mv bin "$work1"/;
mkdir -p "$work1"/lib;
#mv lib/$1 "$work1"/lib/;
mv lib/jexec "$work1"/lib/;
# server contains the libjvm.so
mv lib/server "$work1"/lib/;
# All the other .so files are at the root of the lib folder
find ./ -name '*.so' -execdir mv {} "$work1"/lib/{} \;
mv release "$work1"/release
tar cJf bin-$2.tar.xz -C "$work1" . > /dev/null 2>&1;
mv bin-$2.tar.xz "$out"/;
rm -rf "$work"/*;
rm -rf "$work1"/*;
}
# this one's static
makeuni () { echo "Making universal..."; cd "$work"; tar xf $(find "$in" -name jre8-arm64-*release.tar.xz) > /dev/null 2>&1; rm -rf bin; rm -rf lib/aarch64; rm lib/jexec; tar cJf universal.tar.xz * > /dev/null 2>&1; mv universal.tar.xz "$out"/; rm -rf "$work"/*; }
makeuni () {
echo "Making universal...";
cd "$work";
tar xf $(find "$in" -name jre17-arm64-*release.tar.xz) > /dev/null 2>&1;
rm -rf bin;
rm -rf lib/server;
rm lib/jexec;
find ./ -name '*.so' -execdir rm {} \; # Remove arch specific shared objects
rm release
tar cJf universal.tar.xz * > /dev/null 2>&1;
mv universal.tar.xz "$out"/;
rm -rf "$work"/*;
}
# now time to use them!
makeuni