1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-24 03:35:38 +03:00
aports/community/openjdk8/APKBUILD

442 lines
12 KiB
Text

# Contributor: Timo Teras <timo.teras@iki.fi>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=openjdk8
_icedteaver=3.26.0
# pkgver is <JDK version>.<JDK update>.<JDK build>
# 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
"