# Contributor: Timo Teras # Contributor: Jakub Jirutka # Maintainer: Timo Teras pkgname=openjdk8 _icedteaver=3.26.0 # pkgver is .. # Check https://icedtea.classpath.org/wiki/Main_Page when updating! pkgver=8.362.09 pkgrel=0 pkgdesc="OpenJDK 8 provided by IcedTea" provider_priority=8 url="https://icedtea.classpath.org/" # riscv64 blocked by openjdk7 arch="all !riscv64" license="custom" depends="$pkgname-jre java-cacerts nss" options="sover-namecheck" makedepends=" alsa-lib-dev attr-dev autoconf automake bash ca-certificates coreutils cups-dev file findutils fontconfig-dev freetype-dev gawk giflib-dev gtk+2.0-dev jpeg-dev krb5-dev lcms2-dev libpng-dev libxcomposite-dev libxinerama-dev libxp-dev libxrender-dev libxslt libxt-dev libxtst-dev linux-headers lksctp-tools-dev nss-dev openjdk7 pcsc-lite-dev sed util-linux xz zip zlib-dev " case $CARCH in x86) _jarch=i386;; x86_64) _jarch=amd64;; arm*) _jarch=aarch32;; *) _jarch="$CARCH";; esac case $CARCH in x86|x86_64|aarch64) _configure_jfr="--enable-jfr";; *) _configure_jfr="--disable-jfr";; esac _bootstrap_java_home="/usr/lib/jvm/java-1.7-openjdk" _java_home="/usr/lib/jvm/java-1.8-openjdk" _jrelib="$_java_home/jre/lib/$_jarch" # Exclude xawt from ldpath to avoid duplicate provides for libmawt.so # (also in headless). in future this should be a virtual provides. ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli" sonameprefix="$pkgname:" subpackages="$pkgname-dbg $pkgname-jre-lib:jrelib:noarch $pkgname-jre $pkgname-jre-base:jrebase $pkgname-doc $pkgname-demos" _dropsver=$_icedteaver _dropsurl="https://icedtea.classpath.org/download/drops/icedtea8/$_dropsver" source="https://icedtea.classpath.org/download/source/icedtea-$_icedteaver.tar.xz openjdk-$_dropsver.tar.xz::$_dropsurl/openjdk-git.tar.xz icedtea-hotspot-musl.patch icedtea-hotspot-musl-ppc.patch icedtea-hotspot-noagent-musl.patch icedtea-hotspot-insantiate-arrayallocator.patch icedtea-jdk-execinfo.patch icedtea-jdk-fix-ipv6-init.patch icedtea-jdk-fix-libjvm-load.patch icedtea-jdk-musl.patch icedtea-jdk-includes.patch icedtea-jdk-close-fds.patch icedtea-autoconf-config.patch icedtea-jdk-disable-vfork.patch icedtea-JDK-6515172_0_revert-jdk8-version.patch icedtea-JDK-6515172_1_apply-jdk9-version.patch icedtea-issue13032.patch " builddir="$srcdir/icedtea-$_icedteaver" # secfixes: # 8.362.09-r0: # - CVE-2022-21619 # - CVE-2022-21624 # - CVE-2022-21626 # - CVE-2022-21628 # - CVE-2023-21830 # - CVE-2023-21843 # 8.345.01-r0: # - CVE-2022-21426 # - CVE-2022-21434 # - CVE-2022-21443 # - CVE-2022-21476 # - CVE-2022-21496 # - CVE-2022-21540 # - CVE-2022-21541 # - CVE-2022-34169 # 8.322.06-r0: # - CVE-2022-21248 # - CVE-2022-21283 # - CVE-2022-21293 # - CVE-2022-21294 # - CVE-2022-21282 # - CVE-2022-21296 # - CVE-2022-21299 # - CVE-2022-21305 # - CVE-2022-21340 # - CVE-2022-21341 # - CVE-2022-21349 # - CVE-2022-21360 # - CVE-2022-21365 # 8.312.07-r0: # - CVE-2021-35550 # - CVE-2021-35556 # - CVE-2021-35559 # - CVE-2021-35561 # - CVE-2021-35564 # - CVE-2021-35565 # - CVE-2021-35567 # - CVE-2021-35578 # - CVE-2021-35586 # - CVE-2021-35588 # - CVE-2021-35603 # 8.302.08-r0: # - CVE-2021-2341 # - CVE-2021-2369 # - CVE-2021-2388 # 8.272.10-r0: # - CVE-2020-14556 # - CVE-2020-14577 # - CVE-2020-14578 # - CVE-2020-14579 # - CVE-2020-14581 # - CVE-2020-14583 # - CVE-2020-14593 # - CVE-2020-14621 # - CVE-2020-14779 # - CVE-2020-14781 # - CVE-2020-14782 # - CVE-2020-14792 # - CVE-2020-14796 # - CVE-2020-14797 # - CVE-2020-14798 # - CVE-2020-14803 # 8.252.09-r0: # - CVE-2020-2754 # - CVE-2020-2755 # - CVE-2020-2756 # - CVE-2020-2757 # - CVE-2020-2773 # - CVE-2020-2781 # - CVE-2020-2800 # - CVE-2020-2803 # - CVE-2020-2805 # - CVE-2020-2830 # 8.242.08-r0: # - CVE-2020-2583 # - CVE-2020-2590 # - CVE-2020-2593 # - CVE-2020-2601 # - CVE-2020-2604 # - CVE-2020-2659 # - CVE-2020-2654 # 8.232.09-r0: # - CVE-2019-2933 # - CVE-2019-2945 # - CVE-2019-2949 # - CVE-2019-2958 # - CVE-2019-2964 # - CVE-2019-2962 # - CVE-2019-2973 # - CVE-2019-2975 # - CVE-2019-2978 # - CVE-2019-2981 # - CVE-2019-2983 # - CVE-2019-2987 # - CVE-2019-2988 # - CVE-2019-2989 # - CVE-2019-2992 # - CVE-2019-2999 # - CVE-2019-2894 # 8.222.10-r0: # - CVE-2019-2745 # - CVE-2019-2762 # - CVE-2019-2766 # - CVE-2019-2769 # - CVE-2019-2786 # - CVE-2019-2816 # - CVE-2019-2842 # - CVE-2019-7317 # 8.212.04-r0: # - CVE-2019-2602 # - CVE-2019-2684 # - CVE-2019-2698 # 8.201.08-r0: # - CVE-2019-2422 # - CVE-2019-2426 # - CVE-2018-11212 # 8.191.12-r0: # - CVE-2018-3136 # - CVE-2018-3139 # - CVE-2018-3149 # - CVE-2018-3169 # - CVE-2018-3180 # - CVE-2018-3183 # - CVE-2018-3214 # - CVE-2018-13785 # - CVE-2018-16435 # 8.181.13-r0: # - CVE-2018-2938 # - CVE-2018-2940 # - CVE-2018-2952 # - CVE-2018-2973 # - CVE-2018-3639 unpack() { if [ -z "$force" ]; then verify initdcheck fi mkdir -p "$srcdir" msg "Unpacking sources..." unxz -c icedtea-$_icedteaver.tar.xz | tar -C "$srcdir" -x } prepare() { local ver_u=$(sed -En 's/^\s*JDK_UPDATE_VERSION\s*=\s*(\S+).*/\1/p' acinclude.m4) local ver_b=$(sed -En 's/^\s*BUILD_VERSION\s*=\s*b(\S+).*/\1/p' acinclude.m4) [ "${pkgver#*.}" = "$ver_u.$ver_b" ] \ || die "Version mismatch, source is 8.$ver_u.$ver_b, but abuild defines $pkgver!" # Busybox sha256 does not support longopts. sed -e "s/--check/-c/g" -i Makefile.am local patch; for patch in $source; do case $patch in icedtea-*.patch) cp ../$patch patches ;; *.patch) msg "Applying patch $patch" patch -p1 -i "$srcdir"/$patch ;; esac done ./autogen.sh } build() { export JAVA_HOME="$_bootstrap_java_home" export PATH="$JAVA_HOME/bin:$PATH" if [ -z "$JOBS" ]; then export JOBS=$(printf '%s\n' "$MAKEFLAGS" | sed -n -e 's/.*-j\([0-9]\+\).*/\1/p') fi DISTRIBUTION_PATCHES="" local patch; for patch in $source; do case $patch in icedtea-*.patch) DISTRIBUTION_PATCHES="$DISTRIBUTION_PATCHES patches/$patch" ;; esac done export DISTRIBUTION_PATCHES echo "icedtea patches: $DISTRIBUTION_PATCHES" # cannot pass -j through here unset MAKEFLAGS bash ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix="$_java_home" \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --localstatedir=/var \ --disable-dependency-tracking \ --disable-downloading \ --disable-precompiled-headers \ --disable-docs \ --with-parallel-jobs=${JOBS:-2} \ --with-hotspot-build=default \ --with-openjdk-src-zip="$srcdir/openjdk-$_dropsver.tar.xz" \ --with-jdk-home="$_bootstrap_java_home" \ --with-pkgversion="Alpine $pkgver-r$pkgrel" \ --with-curves="nist+" \ --enable-nss \ $_configure_jfr make JOBS="${JOBS:-2}" } # TODO: Run tests or at least try to compile and run hello world. check() { cd "$builddir"/openjdk.build/images/j2sdk-image ./bin/java -version } package() { provides=java-jdk mkdir -p "$pkgdir"/$_java_home cp -a openjdk.build/images/j2sdk-image/* "$pkgdir"/$_java_home/ rm "$pkgdir"/$_java_home/src.zip # This archive contains absolute paths from the build environment, # so it does not work on the target system. User can generate it # running 'java -Xshare:dump'. rm -f "$pkgdir"/$_jrelib/server/classes.jsa # symlink to shared java cacerts store rm -f "$pkgdir"/$_java_home/jre/lib/security/cacerts ln -sf /etc/ssl/certs/java/cacerts \ "$pkgdir"/$_java_home/jre/lib/security/cacerts } jrelib() { pkgdesc="OpenJDK 8 Java Runtime (class libraries)" depends="" local file dir for file in jre/lib/images \ jre/lib/*.jar \ jre/lib/security \ jre/lib/ext/*.jar \ jre/lib/cmm \ jre/ASSEMBLY_EXCEPTION \ jre/THIRD_PARTY_README \ jre/LICENSE; do dir=${file%/*} mkdir -p "$subpkgdir"/$_java_home/$dir mv "$pkgdir"/$_java_home/$file "$subpkgdir"/$_java_home/$dir done } jre() { pkgdesc="OpenJDK 8 Java Runtime" depends="ttf-dejavu" provides=java-jre local file dir mkdir -p "$subpkgdir" for file in jre/bin/policytool \ bin/appletviewer \ bin/policytool \ jre/lib/$_jarch/libawt_xawt.so \ jre/lib/$_jarch/libfontmanager.so \ jre/lib/$_jarch/libjawt.so \ jre/lib/$_jarch/libjsoundalsa.so \ jre/lib/$_jarch/libsplashscreen.so; do dir=${file%/*} mkdir -p "$subpkgdir"/$_java_home/$dir mv "$pkgdir"/$_java_home/$file "$subpkgdir"/$_java_home/$dir done } jrebase() { pkgdesc="OpenJDK 8 Java Runtime (no GUI support)" depends="$pkgname-jre-lib java-common java-cacerts nss" provides=java-jre-headless mkdir -p "$subpkgdir"/$_java_home/bin \ "$subpkgdir"/$_java_home/lib/$_jarch ln -s java-1.8-openjdk "$subpkgdir"/usr/lib/jvm/java-8-openjdk mv "$pkgdir"/$_java_home/lib/$_jarch/jli \ "$subpkgdir"/$_java_home/lib/$_jarch/ local file; for file in java orbd rmid servertool unpack200 keytool \ pack200 rmiregistry tnameserv; do mv "$pkgdir"/$_java_home/bin/$file "$subpkgdir"/$_java_home/bin/ done # Rest of the jre subdir (which were not taken by -jre subpkg). mv "$pkgdir"/$_java_home/jre "$subpkgdir"/$_java_home/ } doc() { default_doc mkdir -p "$subpkgdir"/$_java_home/ mv "$pkgdir"/$_java_home/man "$subpkgdir"/$_java_home/ } demos() { pkgdesc="OpenJDK 8 Java Demos and Samples" depends="$pkgname" mkdir -p "$subpkgdir"/$_java_home/ mv "$pkgdir"/$_java_home/demo "$pkgdir"/$_java_home/sample \ "$subpkgdir"/$_java_home/ } sha512sums=" 99fc64ba877cd1a942b33b266dffd966b43fe16b50e1f49c33750bf7d89cc3010137cfba01ce1655a9fc50a31a6e0b3cd32bd3ad2422f1a19dd8468207667b73 icedtea-3.26.0.tar.xz 8a18cc9639bb6aa26cf5a57deb60f65a3c58a07a1001dfcc260d84463f3562ede34e2fb78d4996a354c2cc03ef66ea64e9ad8090fbe8cb3f61f2933532e88f6d openjdk-3.26.0.tar.xz 28709285390a997adbd56ebda42ef718fbc08daf572b8568f484436d255514f9d25f033e3333dff8aa352fc9846057ac5bb42fa955d3e5e44eddc96dc273c07c icedtea-hotspot-musl.patch e6fff8ab886f42006ad5c210f46e82a3a4c0b654edecc4764a0d20f0e5dc81138c2c5181b034095b93f94b5aa96b7e5068f42bafa283809f6fe9d2c8655d64d7 icedtea-hotspot-musl-ppc.patch 19459dbb922f5a71cd15b53199481498626a783c24f91d2544d55b7dddd2cdb34a64bbf0226b99548612dd1743af01b3f9ff32c30abbbc90ce727ca2dbbbd1f9 icedtea-hotspot-noagent-musl.patch 4bf002ec25844f4e55b588d0516e658c548700d3bcae79be74bf75d9cf30cf9cd448767db36935924dd3b07f34d0cf087321cb35abb4943690353d11485ab0de icedtea-hotspot-insantiate-arrayallocator.patch f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f icedtea-jdk-execinfo.patch 48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch b135991c76b0db8fa7c363e0903624668e11eda7b54a943035c214aa4d7fc8c3e8110ed200edcec82792f3c9393150a9bd628625ddf7f3e55720ff163fbbb471 icedtea-jdk-fix-libjvm-load.patch 3b01de971f64f082d3e289cf337e635ef001381e8ca427a77baa9c52c7ba423889f57665779ca5b3c8bcefb8feacbea31dfaac580c969a4f061439069ee34aae icedtea-jdk-musl.patch 974fb54532b7e7d738f4278187fc6bd9f9b2d99866b94f68a617ee4911c89a3b8cc41ecfdcaefecf9157492d006b1844b6b0b41ac4209d84f9e8d13c9e485dd3 icedtea-jdk-includes.patch 26d33ea5c55f89beebb0c05cc520e839439285f80d8ffca66ee9ef833ba65332dd7848de0b1a7e040d2eed494410d446729db72b09d8a23b6eea55749b8f6f54 icedtea-jdk-close-fds.patch 662d662d0a7a84be2978e921317589f212f3ba3b7629527ba0f1140b5ac4c1024893e0ed176211688ed1a4505968c4befc841ed57ffcdbb9d355c2cb0571b167 icedtea-autoconf-config.patch c70fee8f1a10c155494ab9c6e55e979d8a3e23f12358ffe9de2029ae15feff361957f1aa43af43c90ecf00523f92e3333b40311a8d0c132ebd456486cb85ed8a icedtea-jdk-disable-vfork.patch 2dfcb699b89c20ac573397a538fb89d13ecf95219044e95fcfd83f368e61c6e6c1ee85af0c9836afc4e1520a8c5a16d62acc7768aa38ce3ad6520d7492d2b232 icedtea-JDK-6515172_0_revert-jdk8-version.patch 52572221ed4f3129bb5de5f134448ffa12b9225980d92684c45b00be42d63f5f89bbf80e0b7294e768fdf6abbbc34301b96289a3c6543bfa4edd0249c1224c77 icedtea-JDK-6515172_1_apply-jdk9-version.patch e1bca07aa1a25258ee9c8e9870f8d475db788bab1a354c5458196012aaf20fba8b3968b646d18792ab7135e9b75cbebafc53fda176166bc6ddfd13e4a43b1c8d icedtea-issue13032.patch "