summaryrefslogtreecommitdiff
path: root/user/openjdk8/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'user/openjdk8/APKBUILD')
-rw-r--r--user/openjdk8/APKBUILD309
1 files changed, 309 insertions, 0 deletions
diff --git a/user/openjdk8/APKBUILD b/user/openjdk8/APKBUILD
new file mode 100644
index 000000000..2ed565def
--- /dev/null
+++ b/user/openjdk8/APKBUILD
@@ -0,0 +1,309 @@
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=openjdk8
+_icedteaver=3.11.0
+# pkgver is <JDK version>.<JDK update>.<JDK build>
+# Check https://icedtea.classpath.org/wiki/Main_Page when updating
+pkgver=8.201.08
+pkgrel=0
+pkgdesc="Libre Java development kit for Java 8"
+url="https://icedtea.classpath.org/"
+arch="all"
+license="GPL-2.0-only"
+depends="$pkgname-jre java-cacerts"
+options="sover-namecheck"
+makedepends="bash findutils libarchive-tools zip file util-linux libxslt
+ autoconf automake linux-headers sed xz coreutils
+ openjdk7 ca-certificates libjpeg-turbo-dev cmd:which
+ nss-dev nss-static cups-dev giflib-dev libpng-dev libxt-dev
+ lcms2-dev libxp-dev libxtst-dev libxinerama-dev zlib-dev
+ libxrender-dev alsa-lib-dev freetype-dev fontconfig-dev
+ gtk+2.0-dev krb5-dev attr-dev pcsc-lite-dev lksctp-tools-dev
+ libxcomposite-dev"
+
+case $CARCH in
+x86|pmmx) _jarch=i386;;
+x86_64) _jarch=amd64;;
+arm*) _jarch=aarch32;;
+ppc64) _jarch=ppc64
+ export CFLAGS="$CFLAGS -DABI_ELFv2";;
+*) _jarch="$CARCH";;
+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.tar.xz
+ corba-$_dropsver.tar.xz::$_dropsurl/corba.tar.xz
+ jaxp-$_dropsver.tar.xz::$_dropsurl/jaxp.tar.xz
+ jaxws-$_dropsver.tar.xz::$_dropsurl/jaxws.tar.xz
+ jdk-$_dropsver.tar.xz::$_dropsurl/jdk.tar.xz
+ langtools-$_dropsver.tar.xz::$_dropsurl/langtools.tar.xz
+ hotspot-$_dropsver.tar.xz::$_dropsurl/hotspot.tar.xz
+ nashorn-$_dropsver.tar.xz::$_dropsurl/nashorn.tar.xz
+
+ icedtea-hotspot-musl.patch
+ icedtea-hotspot-musl-ppc.patch
+ icedtea-hotspot-noagent-musl.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-getmntent-buffer.patch
+ icedtea-autoconf-config.patch
+ icedtea-jdk-tls-nist-curves.patch
+ remove-gawk.patch
+ "
+builddir="$srcdir/icedtea-$_icedteaver"
+
+# secfixes:
+# 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..."
+ tar -C "$srcdir" -Jxf icedtea-$_icedteaver.tar.xz
+}
+
+prepare() {
+ cd "$builddir"
+
+ 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"
+
+ cd "$builddir"
+ 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 \
+ --with-parallel-jobs=${JOBS:-2} \
+ --with-hotspot-build=default \
+ --with-openjdk-src-zip="$srcdir/openjdk-$_dropsver.tar.xz" \
+ --with-hotspot-src-zip="$srcdir/hotspot-$_dropsver.tar.xz" \
+ --with-corba-src-zip="$srcdir/corba-$_dropsver.tar.xz" \
+ --with-jaxp-src-zip="$srcdir/jaxp-$_dropsver.tar.xz" \
+ --with-jaxws-src-zip="$srcdir/jaxws-$_dropsver.tar.xz" \
+ --with-jdk-src-zip="$srcdir/jdk-$_dropsver.tar.xz" \
+ --with-langtools-src-zip="$srcdir/langtools-$_dropsver.tar.xz" \
+ --with-nashorn-src-zip="$srcdir/nashorn-$_dropsver.tar.xz" \
+ --with-pax=paxmark \
+ --with-jdk-home="$_bootstrap_java_home" \
+ --with-pkgversion="Alpine ${pkgver}-r${pkgrel}" \
+ --enable-nss \
+ --enable-non-nss-curves
+ make
+}
+
+# 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() {
+ cd "$builddir"
+
+ 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
+
+ # pax mark again (due to fakeroot xattr handling bug)
+ ./pax-mark-vm "$pkgdir"/$_java_home true
+
+ # 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"
+ 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
+
+ # Pax mark again (due to fakeroot xattr handling bug).
+ "$builddir"/pax-mark-vm "$subpkgdir"/$_java_home true
+}
+
+jrebase() {
+ pkgdesc="OpenJDK 8 Java Runtime (no GUI support)"
+ depends="$pkgname-jre-lib java-common java-cacerts"
+
+ mkdir -p "$subpkgdir"/$_java_home/bin \
+ "$subpkgdir"/$_java_home/lib/$_jarch
+
+ 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/
+
+ # Pax mark again (due to fakeroot xattr handling bug).
+ "$builddir"/pax-mark-vm "$subpkgdir"/$_java_home true
+}
+
+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="a71c9318d49077f8ae27f5c3e0b61df0709eded241f557c886f6b93aa98c13ad78f713d1286da286989bf62866dfff7538ad783eb804a705a160cbc096dea851 icedtea-3.11.0.tar.xz
+fc3faa7d7b9531f10c40241d89c36854043921f6f1a0851f284bcab36fc54fb0bb8cf8365dd4b2fb22b3ee8ddb8ed4a79e0807f79cb95b4b00f164993f1acc0b openjdk-3.11.0.tar.xz
+9b8a44dda0bbfba8dc0d659e0fabf22e84b9931518e4b199a238faa103cbc4ed814c97f0f38f0aed263846b46fc7eab4500ba9759503373083e12cb8b5b364b5 corba-3.11.0.tar.xz
+9eba0f6ada2ae8adc1791a91ceb4fba9bd06aee0626cd1b4310ff16c7c8006045fed5fb7f109e490395b70695be4e6bfd6f1f5cbcdb095fb17abf123012a03de jaxp-3.11.0.tar.xz
+ce5f0c2aced1af59f002dc9dc6cba4b9332167e9e019a3040267901ef7f325e05b8c99ed1f276b88ddb4e43cdd1b0c456e0c4dc2222ae6b3800c0502ffa840de jaxws-3.11.0.tar.xz
+411508ed91f14ae1c51ea54de72a943db222ff572f3991631fe1a1fa97f9bb42da1e01ca98893f7236b4b44bae2917fc3f8622d7f94a085be30d437451acd272 jdk-3.11.0.tar.xz
+363c376848870c6c28415967561c4b151f1256c38a315fabc69c90425f5255224182045349a00c9433db52c416b7ebffedaa4825c980460541a3f9338adbaa5e langtools-3.11.0.tar.xz
+13fa35f4a4fe01b3da4efb8476c0cb3482a36596eb422f2ad958a4c51efc286962ac3123a75853e84c4db477ac064a0fd3ee5e03f1ea0ec4f7e2c8ac07aa2d0e hotspot-3.11.0.tar.xz
+2b46a8599d530a351522420cae8ac780cd2e64a6d7adbff87397a178f12f0a992bccd0f56435582dbd10be2157d4a4540c41b3dca488566162eed680102e58a9 nashorn-3.11.0.tar.xz
+c0776ff52e11a353fee29419319cd9e1fc4e5bb922832547616e8499fd52852a935a6a6fb93b49a67ab7b3fd2f7a63320f917e354cc7123220139e80694a7b5a icedtea-hotspot-musl.patch
+e5cf4d70f96fc1e72ae8b97a887adb96092ff36584711cbb8de9d9fa9e859cb8731d638838de0d9591239fc44ffe5c74422d1842bd9f10a0c00dff1627bdeeef icedtea-hotspot-musl-ppc.patch
+19459dbb922f5a71cd15b53199481498626a783c24f91d2544d55b7dddd2cdb34a64bbf0226b99548612dd1743af01b3f9ff32c30abbbc90ce727ca2dbbbd1f9 icedtea-hotspot-noagent-musl.patch
+f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f icedtea-jdk-execinfo.patch
+48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch
+b135991c76b0db8fa7c363e0903624668e11eda7b54a943035c214aa4d7fc8c3e8110ed200edcec82792f3c9393150a9bd628625ddf7f3e55720ff163fbbb471 icedtea-jdk-fix-libjvm-load.patch
+1fbc32ddc528c7c0099dbc1e48f88d29dccf55e7b8997793aa1d3d8408003a1223d898cca4248e1a12d343d3feec5144f875e6cdac8460d763c73ab3ad7e49f9 icedtea-jdk-musl.patch
+e8d9f1b867bf4fc84aa00d1237b264bcf503b1ed5f34735e14b0b747a728953fe0051a5af69ed058d377fbf65d8be1ed9e38fe5fc6edb2d50b31f34bf3ba91dc icedtea-jdk-includes.patch
+7e6fa46b10c630517bfa46943858aea1d032c12d32ba3fcb7a2143ae1e896c34fa4cb8f925af80cb19f8e29149b835aa054adfd30ebb00539f6c78588d6f5211 icedtea-jdk-getmntent-buffer.patch
+662d662d0a7a84be2978e921317589f212f3ba3b7629527ba0f1140b5ac4c1024893e0ed176211688ed1a4505968c4befc841ed57ffcdbb9d355c2cb0571b167 icedtea-autoconf-config.patch
+9ea7ac942baf29cc619bc2e1acd59201b9f6d38f39a517b495d7613aec746459200c81afb57c5fcdcb856f6bc8b33f7566c8593fed07e5c73f43e08f1072d458 icedtea-jdk-tls-nist-curves.patch
+b0f6d07c6a949acdc8b4a25bf924f134f468e162f01dd440fd4ca80769fb84a0a54210f93efbe88012404fe3db6701aad31cdbc772bc054ad69021c37db5538c remove-gawk.patch"