# Contributor: Timo Teras # Contributor: Jakub Jirutka # Maintainer: Timo Teras pkgname=openjdk8 _java_ver=8 _jdk_update=111 _jdk_build=14 pkgver=$_java_ver.$_jdk_update.$_jdk_build pkgrel=0 pkgdesc="Sun OpenJDK 8" url="http://openjdk.java.net" arch="x86_64 x86" license="custom" depends="$pkgname-jre java-cacerts" options="sover-namecheck" makedepends="bash findutils tar zip file paxmark gawk util-linux libxslt autoconf automake linux-headers sed openjdk7 ca-certificates nss-dev cups-dev jpeg-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" install="" case $CARCH in x86) _jarch=i386;; x86_64) _jarch=amd64;; arm*) _jarch=arm;; esac INSTALL_BASE=/usr/lib/jvm/java-1.8-openjdk BOOTSTRAP_JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk _jrelib="$INSTALL_BASE/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-jre-lib:jrelib $pkgname-jre $pkgname-jre-base:jrebase $pkgname-doc:doc $pkgname-demos:demos" _dropsurl=http://hg.openjdk.java.net/jdk8u/jdk8u _dropsver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build} source="jdk8u-$_dropsver.tar.bz2::$_dropsurl/archive/${_dropsver}.tar.bz2 corba-$_dropsver.tar.bz2::$_dropsurl/corba/archive/${_dropsver}.tar.bz2 jaxp-$_dropsver.tar.bz2::$_dropsurl/jaxp/archive/${_dropsver}.tar.bz2 jaxws-$_dropsver.tar.bz2::$_dropsurl/jaxws/archive/${_dropsver}.tar.bz2 jdk-$_dropsver.tar.bz2::$_dropsurl/jdk/archive/${_dropsver}.tar.bz2 langtools-$_dropsver.tar.bz2::$_dropsurl/langtools/archive/${_dropsver}.tar.bz2 nashorn-$_dropsver.tar.bz2::$_dropsurl/nashorn/archive/${_dropsver}.tar.bz2 hotspot-$_dropsver.tar.bz2::$_dropsurl/hotspot/archive/${_dropsver}.tar.bz2 icedtea-hotspot-musl.patch icedtea-hotspot-noagent-musl.patch icedtea-hotspot-uclibc-fixes.patch icedtea-jdk-execinfo.patch icedtea-jdk-fix-ipv6-init.patch icedtea-jdk-musl.patch icedtea-jdk-includes.patch fix-libjvm-load.patch build-demo-ldflags.patch " builddir="$srcdir/jdk8u-$_dropsver" prepare() { cd "$builddir" update_config_sub || return 1 local module for module in corba hotspot jdk jaxws jaxp langtools nashorn; do ln -s ../${module}-${_dropsver} $module || return 1 done for patch in $source; do case $patch in *.patch) msg "Applying patch $patch" busybox patch -p1 < "$srcdir"/$patch || return 1 ;; esac done } build() { cd "$builddir" unset JAVA_HOME export MAKEFLAGS=${MAKEFLAGS/-j*} sh ./configure \ --build=$CBUILD \ --host=$CHOST \ --target=$CTARGET \ --prefix=$INSTALL_BASE \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --localstatedir=/var \ --with-update-version="${_jdk_update}" \ --with-build-number="b${_jdk_build}" \ --with-user-release-suffix="alpine-r${pkgrel}" \ --enable-unlimited-crypto \ --with-zlib=system \ --with-giflib=system \ --with-extra-cflags="$CFLAGS" \ --with-extra-cxxflags="$CXXFLAGS" \ --with-extra-ldflags="$LDFLAGS" \ --disable-freetype-bundling \ --with-boot-jdk="$BOOTSTRAP_JAVA_HOME" \ || return 1 make DEBUG_BINARIES=true || return 1 make docs || return 1 # agent was patched off; make empty sa-jdi.jar to make image builder happy local build for build in build/* ; do touch $build/jdk/lib/sa-jdi.jar done make images || return 1 } list_paxables() { file "$@" 2> /dev/null \ | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//' } pax_mark_vm() { local paxflags="-mp" [ "$CARCH" = "x86" ] && paxflags="-msp" local paxable for paxable in $(list_paxables "${1}"/bin/* "${1}"/jre/bin/*); do echo "PaX mark $paxflags ${paxable}" paxmark $paxflags "${paxable}" done } package() { mkdir -p "$pkgdir"/$INSTALL_BASE cp -a "$builddir"/build/*/images/j2sdk-image/* "$pkgdir"/$INSTALL_BASE || return 1 rm "$pkgdir"/$INSTALL_BASE/src.zip find "$pkgdir"/$INSTALL_BASE -iname "*.diz" -delete || return 1 find "$pkgdir"/$INSTALL_BASE -iname "*.debuginfo" -delete || return 1 pax_mark_vm "$pkgdir"/$INSTALL_BASE # symlink to shared java cacerts store rm -f "$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts ln -sf /etc/ssl/certs/java/cacerts \ "$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts } jrelib() { pkgdesc="OpenJDK 8 Java Runtime (class libraries)" arch="noarch" depends="" local A; for A 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 local dirname=${A%/*} mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname || return 1 done } jrebase() { pkgdesc="OpenJDK 8 Java Runtime (no GUI support)" depends="$pkgname-jre-lib java-common java-cacerts" mkdir -p "$subpkgdir"/$INSTALL_BASE/bin \ "$subpkgdir"/$INSTALL_BASE/lib/$_jarch mv "$pkgdir"/$INSTALL_BASE/lib/$_jarch/jli \ "$subpkgdir"/$INSTALL_BASE/lib/$_jarch/ || return 1 local A; for A in java orbd rmid servertool unpack200 keytool \ pack200 rmiregistry tnameserv; do mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin || return 1 done # rest of the jre subdir (which were not taken by -jre subpkg) mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE || return 1 pax_mark_vm "$subpkgdir"/$INSTALL_BASE } jre() { pkgdesc="OpenJDK 8 Java Runtime" mkdir -p "$subpkgdir" local A; for A 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/libsplashscreen.so; do local dirname=${A%/*} mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname || return 1 done pax_mark_vm "$subpkgdir"/$INSTALL_BASE } doc() { default_doc mkdir -p "$subpkgdir"/$INSTALL_BASE/ mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/ } demos() { pkgdesc="OpenJDK 8 Java Demos and Samples" depends="$pkgname" mkdir -p "$subpkgdir"/$INSTALL_BASE/ mv "$pkgdir"/$INSTALL_BASE/demo "$pkgdir"/$INSTALL_BASE/sample \ "$subpkgdir"/$INSTALL_BASE/ } md5sums="dad0b38b84d2b6373ecbe5285ba94250 jdk8u-jdk8u111-b14.tar.bz2 d64f13ee0734f3030ccd00437db5ca87 corba-jdk8u111-b14.tar.bz2 4668c2bad962961603ee3e4f5743292c jaxp-jdk8u111-b14.tar.bz2 6e399a346731abff905e8e8d097a29a3 jaxws-jdk8u111-b14.tar.bz2 a3d9315ab31e158c3192b81da0d32530 jdk-jdk8u111-b14.tar.bz2 7c45269d59138fb6863d4ce02cb270f5 langtools-jdk8u111-b14.tar.bz2 a9fcb752c28aba30bc862bdbf3a785ac nashorn-jdk8u111-b14.tar.bz2 61f5c16b047891b6711784efacf53453 hotspot-jdk8u111-b14.tar.bz2 f87dd2c4c3c97fc3ac33080a65ca9e14 icedtea-hotspot-musl.patch a5841507a216890bd8419d496bb118c3 icedtea-hotspot-noagent-musl.patch 43023861c5f6efc3139a834aa3ec0476 icedtea-hotspot-uclibc-fixes.patch bdea7060a067faf1c2de5f4eb6e8525d icedtea-jdk-execinfo.patch 250b0807b59762670954b132e8f8dfba icedtea-jdk-fix-ipv6-init.patch fc1dc983dc562eda399c9d7eabd3b299 icedtea-jdk-musl.patch fc7d3cc1f5a5615574fd1e416144a042 icedtea-jdk-includes.patch 9b95183ae088ac2520ac66ae587619e4 fix-libjvm-load.patch 34fd6af2160e062b9f4b434a9a350b79 build-demo-ldflags.patch" sha256sums="5db06574175169e50f409e73365e423f0790d9e2fbcb1ff6675fed0b161649ba jdk8u-jdk8u111-b14.tar.bz2 534ad9b1e90d70ab6064083109cafe1edaba5c3f7ff1869f6ce62ce828502223 corba-jdk8u111-b14.tar.bz2 9d0c786ae9118affa2a8f68881262a9054789267545964419d283832609c6cb4 jaxp-jdk8u111-b14.tar.bz2 609f936e8d2e57ac290fc9132057fd5eb97a6c222433a40a3a03e7fec1cb4b7f jaxws-jdk8u111-b14.tar.bz2 dfc5313b343ff97458b60019f439a84e1343a4fed4b3aaa3367b0d2068b07eb7 jdk-jdk8u111-b14.tar.bz2 3f04f04534733dd174ebd26e6b1b65464f9ca1d16f4ecafedbd578a149897595 langtools-jdk8u111-b14.tar.bz2 ef2738d171bce111b16b0024d303e7d233b155b872dfae563c44fbc69a277e70 nashorn-jdk8u111-b14.tar.bz2 b183846319b632f0cb184e7b598730cf7ec58ad1282c7f5400badd8935bda080 hotspot-jdk8u111-b14.tar.bz2 a7922430cb767c8a4baae232c8b2e5f377aeb7cfde0c9901cd7774f078e7f92e icedtea-hotspot-musl.patch 9223d4a1ae20b51bcb901ace115a2cd5f15b05655ea076c05f4c7f2c66f341e5 icedtea-hotspot-noagent-musl.patch 0ef7592b8f2c954eda0a6cf4dc4a4010942f35ea426f44e34412be6c9a949745 icedtea-hotspot-uclibc-fixes.patch a35d40f24098747cdb73d9c3742cfb4aecafa0f72c9dfdfe2cb460f9706ff665 icedtea-jdk-execinfo.patch 632683ec88a6fb250ef043aae9cace605d0c669b7058f8c47b62b09b03ecc6c5 icedtea-jdk-fix-ipv6-init.patch d3fcf4779a23181178e722a93290921f5c61ed7220d3a431953a53c24f89e562 icedtea-jdk-musl.patch 38590e411b7bf9b99f5168709b975e1c432ef600915800c709a6617504e2c13a icedtea-jdk-includes.patch 47028d87c9a65df8d0103b39bf54b2b22de7db7c52a5de1058f88f4c5ea24f0d fix-libjvm-load.patch 606a08d7b986ab4dd52bbf03f0ea2e652b5687d9c929924046373ce0afef479a build-demo-ldflags.patch" sha512sums="e23bab083541f8e9c43923686d851073182a65a9c489b5b0758fd37fa519c821a89c5953dc165198fd94ccacab34fb3782a06ef694390d0105be9dd655b26c22 jdk8u-jdk8u111-b14.tar.bz2 0b70964bdf3a8cb8b38d507d09e2feafc4e06701bac7dd462d70278f14fa545878a1d639c6892a5c2b1fa7ec1726c104622e70e993977f239a87c6d55102337e corba-jdk8u111-b14.tar.bz2 02667ecbfe95bbd22a1157fdc7de2fd87055323e4cf8c5fd5e398856410a52aea7966910e3c29b6179045c94b772115a60d693f62e92f1327a12e1dc5dfc2ac3 jaxp-jdk8u111-b14.tar.bz2 3477310d74936801bba37c705f27f08bc11fcbec8a76fe671494e413915819696bb990fbecf4da5f0a20a2876ee68e856b06c0e6bec80a74117bf33bb691bf95 jaxws-jdk8u111-b14.tar.bz2 07fa8247ff06b312f76fed3b6e604c4bd204ac72210d1efe1345a08e69b8ccafd535c488208b6cb4752751584cb3eaafa1a039c9c9e83b215cdddcdec8562576 jdk-jdk8u111-b14.tar.bz2 f374603223da76eb6e11bc04c51baf4696fe411995e5608ddb531851d1f6e45854be13958ac7bd10b363de3027d9501b2370d66e6cdf71dd72cf9ebcc9685e1e langtools-jdk8u111-b14.tar.bz2 1daaeb8a8209b8ff2f4ca505f85b23d1b7dafe568face01ab72324e8660f1dcf5f4a2d4b815e456c306cd595d870d8dad5a5664a7e2eafd3e2dde3b3c957d78d nashorn-jdk8u111-b14.tar.bz2 015701c2010bf68ad1e4757ce39c1043755d621683c8491e623f7c697225064e27de329f3844e0e07b85e2ef5184cf88536d8fb6e53b1eec141fc2cd480859b7 hotspot-jdk8u111-b14.tar.bz2 994e8a79a0a23f26d633bf2ce9dad62198c699892f6e7729cc6e509481330399bb2ba736514b516fd2b3dd125fd6c74a127ae7f16d643c3f6a69776737cdb933 icedtea-hotspot-musl.patch d930edbb830957729031228196720fa2d50747655a9289097103d36f852ab11b7198e18805bd89c6a438c3ccf224be48cda5f994b193ab1f81a72aada0df2b16 icedtea-hotspot-noagent-musl.patch 822eee0dc4d3ba677a289dfeb3668b536d2d626708390a9d9702fb4144a481fd443a215a0d2041c6026113837aafa4ba0b5e9ead8589d2da6717a238bbc95a5a icedtea-hotspot-uclibc-fixes.patch f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f icedtea-jdk-execinfo.patch 48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch 2fd75bb52e7c9e3b56a383b72ee519d395413b000aef94ad00b106a692a199de34967bac1120164cebce5f71d302413742922a55cc6479b2d33258aaf7d03c1b icedtea-jdk-musl.patch 7df0db85039da8cbde49093ec3299f6804370f4134554a9c26c130a4e9e0b35409a3be833f3e90764ed16718683daffb6447261db8e5988f2e0519f649aedbc6 icedtea-jdk-includes.patch 978539ba0b1f1694cda6a3a1542a4373861cbfb4dc414a3b796cd8841ecf6e12248c746b5efe2c031c85a3b0684101b29e8a5f4ff70e77c1a3f3cd7f5cb148ce fix-libjvm-load.patch d3f21cfa958d458624c7b1be807d9f4c0028bc83c5d0f55b72ceb05f0cbad71f9e98dfa5248382828cf7c8ed4678cc76c573aeb8c56476dd4709e4f5a841c028 build-demo-ldflags.patch"