[meta-java][PATCH] temurin-jdk-17-bin/temurin-jre-17-bin: Add recipes
Robert Joslyn
Add recipes for the Adoptium Temurin JDK/JRE binaries. These recipes
support arm, aarch64, ppc64le, and x86-64. Signed-off-by: Robert Joslyn <robert.joslyn@...> --- .../temurin/temurin-jdk-17-bin_17.0.6+10.bb | 25 ++++++++ .../temurin/temurin-jre-17-bin_17.0.6+10.bb | 23 +++++++ recipes-core/temurin/temurin.inc | 62 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 recipes-core/temurin/temurin-jdk-17-bin_17.0.6+10.bb create mode 100644 recipes-core/temurin/temurin-jre-17-bin_17.0.6+10.bb create mode 100644 recipes-core/temurin/temurin.inc diff --git a/recipes-core/temurin/temurin-jdk-17-bin_17.0.6+10.bb b/recipes-core/temurin/temurin-jdk-17-bin_17.0.6+10.bb new file mode 100644 index 0000000..fe83df5 --- /dev/null +++ b/recipes-core/temurin/temurin-jdk-17-bin_17.0.6+10.bb @@ -0,0 +1,25 @@ +SUMMARY = "Temurin JDK Binaries" + +JAVA_TYPE = "jdk" +JAVA_SHA256:aarch64 = "9e0e88bbd9fa662567d0c1e22d469268c68ac078e9e5fe5a7244f56fec71f55f" +JAVA_SHA256:arm = "fe4d0c6d5bb8cf7f59f7ff82c0c1fd988bbe5cccf3bc7377dc8ae50740b46c82" +JAVA_SHA256:powerpc64le = "cb772c3fdf3f9fed56f23a37472acf2b80de20a7113fe09933891c6ef0ecde95" +JAVA_SHA256:x86-64 = "a0b1b9dd809d51a438f5fa08918f9aca7b2135721097f0858cf29f77a35d4289" + +require temurin.inc + +S = "${WORKDIR}/jdk-${PV}" + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE:${PN} = "java javac keytool" + +ALTERNATIVE_LINK_NAME[java] = "${bindir}/java" +ALTERNATIVE_TARGET[java] = "${JAVA_HOME}/bin/java" + +ALTERNATIVE_LINK_NAME[javac] = "${bindir}/javac" +ALTERNATIVE_TARGET[javac] = "${JAVA_HOME}/bin/javac" + +ALTERNATIVE_LINK_NAME[keytool] = "${bindir}/keytool" +ALTERNATIVE_TARGET[keytool] = "${JAVA_HOME}/bin/keytool" diff --git a/recipes-core/temurin/temurin-jre-17-bin_17.0.6+10.bb b/recipes-core/temurin/temurin-jre-17-bin_17.0.6+10.bb new file mode 100644 index 0000000..2527437 --- /dev/null +++ b/recipes-core/temurin/temurin-jre-17-bin_17.0.6+10.bb @@ -0,0 +1,23 @@ +SUMMARY = "Temurin JRE Binaries" + +JAVA_TYPE = "jre" +JAVA_SHA256:arm = "bf7ef7ba477dc278f913e64174e76be9ae7f014c767352eae83b3f9581494fce" +JAVA_SHA256:aarch64 = "3797815cb853616b6415e1b8875cda4eaa004887561ea4ea2090d726b8d8582f" +JAVA_SHA256:powerpc64le = "f11b86bfd7fa4d7a0d05040ea235102296f03eaf064253f76d7ab94baa0352e3" +JAVA_SHA256:x86-64 = "fe669935609086e76cb0b829e92808766cbf8cb7bda57a76b47813b08584bfd2" + +require temurin.inc + +S = "${WORKDIR}/jdk-${PV}-jre" + +inherit update-alternatives + +# Lower than corresponding JDK +ALTERNATIVE_PRIORITY = "90" + +ALTERNATIVE:${PN} = "java keytool" +ALTERNATIVE_LINK_NAME[java] = "${bindir}/java" +ALTERNATIVE_TARGET[java] = "${JAVA_HOME}/bin/java" + +ALTERNATIVE_LINK_NAME[keytool] = "${bindir}/keytool" +ALTERNATIVE_TARGET[keytool] = "${JAVA_HOME}/bin/keytool" diff --git a/recipes-core/temurin/temurin.inc b/recipes-core/temurin/temurin.inc new file mode 100644 index 0000000..a026598 --- /dev/null +++ b/recipes-core/temurin/temurin.inc @@ -0,0 +1,62 @@ +HOMEPAGE = "https://adoptium.net" +LICENSE = "GPL-2.0-with-classpath-exception" +LIC_FILES_CHKSUM = "file://NOTICE;md5=8fa9e85281110769de025562c085b3a4" + +COMPATIBLE_HOST = "(aarch64|arm|powerpc64le|x86_64).*-linux" +# Binaries are linked with glibc +COMPATIBLE_HOST:libc-musl = "null" + +JAVA_ARCH:aarch64 = "aarch64" +JAVA_ARCH:arm = "arm" +JAVA_ARCH:powerpc64le = "ppc64le" +JAVA_ARCH:x86-64 = "x64" + +# Convert PV to forms needed to download the tarball +PV_MAJOR = "${@d.getVar('PV').split('.')[0]}" +PV_UNDER = "${@d.getVar('PV').replace('+', '_')}" + +SRC_URI = "https://github.com/adoptium/temurin${PV_MAJOR}-binaries/releases/download/jdk-${PV}/OpenJDK${PV_MAJOR}U-${JAVA_TYPE}_${JAVA_ARCH}_linux_hotspot_${PV_UNDER}.tar.gz" +SRC_URI[sha256sum] = "${JAVA_SHA256}" + +# Disable stuff not needed for packaging binaries +INHIBIT_DEFAULT_DEPS = "1" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +EXCLUDE_FROM_SHLIBS = "1" +do_patch[noexec] = "1" +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +JAVA_HOME = "${libdir}/jvm/${BPN}" + +do_install() { + install -d ${D}${JAVA_HOME} + cp -r ${S}/* ${D}${JAVA_HOME} +} + +# The x86-64 binaries assume libraries are in /lib64, but a typical pure 64-bit +# Yocto image puts them in /lib. If not building a multilib image, add a +# symlink from /lib64 to /lib. +do_install:append:x86-64() { + if [ -z "${MULTILIBS}" ]; then + ln -s /lib ${D}/lib64 + fi +} + +FILES:${PN} = "${JAVA_HOME}" +FILES:${PN}:append:x86-64 = " /lib64" + +RDEPENDS:${PN} = " \ + alsa-lib \ + freetype \ + glibc \ + libx11 \ + libxext \ + libxi \ + libxrender \ + libxtst \ + zlib \ +" + +# Ignore "doesn't have GNU_HASH (didn't pass LDFLAGS?)" errors +INSANE_SKIP:${PN} += "ldflags" -- 2.39.1 |
|