diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template index 8266daff8d8..966f5c3703f 100644 --- a/srcpkgs/openjdk8/template +++ b/srcpkgs/openjdk8/template @@ -1,19 +1,13 @@ # Template file for 'openjdk8' -# TODO: better places for bin and man? -# TODO: make -headless versions -# TODO: config files? pkgname=openjdk8 -version=8u322b04 -revision=5 +version=8u332b05 +revision=1 _jdk_update="${version#*u}" _jdk_update="${_jdk_update%b*}" _jdk_build="${version#*b}" -_jdk_home="usr/lib/jvm/java-1.8-openjdk" -# we're using aarch64 port repo to get aarch64 JIT; the repo is -# otherwise the same as the normal one, just with aarch64 port added -_repo_ver="aarch64-shenandoah-jdk${version/b/-b}" +_jdk_home="usr/lib/jvm/openjdk8" +_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e" archs="x86_64* i686* aarch64* arm* ppc64*" -create_wrksrc=yes build_style=gnu-configure configure_args=" --prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib @@ -28,13 +22,14 @@ configure_args=" --with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib --with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2 --with-jtreg=no - --with-jobs=${XBPS_MAKEJOBS} - --with-vendor-name="Void" - --with-vendor-url="https://voidlinux.org/" - --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues" - --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues" + --with-jobs=${XBPS_ORIG_MAKEJOBS} + --with-vendor-name=Void + --with-vendor-url=https://voidlinux.org/ + --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues + --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues --disable-option-checking" -make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false" +make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true" +make_install_args="GIT=true" hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates zlib-devel make-ca which" makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel @@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)" maintainer="Toyam Cox " license="GPL-2.0-only WITH Classpath-exception-2.0" homepage="http://openjdk.java.net/" -distfiles=" - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz - http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz" +# we're using aarch64 port repo to get aarch64 JIT; the repo is +# otherwise the same as the normal one, just with aarch64 port added +distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz" +checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4 -checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc - 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a - 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef - 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257 - fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6 - 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b - 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea - 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23" +disable_parallel_build=yes build_options="docs" desc_option_docs="Build documentation" +alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}" +provides="java-environment-${version}_1" + # no hotspot JIT for arm32 and ppc32 case "$XBPS_TARGET_MACHINE" in ppc64*) ;; @@ -81,8 +67,6 @@ else build_options_default+=" docs" fi -provides="java-environment-${version}_1" - if [ ! "$CROSS_BUILD" ]; then hostmakedepends+=" openjdk7-bootstrap" configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk" @@ -94,57 +78,11 @@ fi # enabling ccache segfaults gcc export CCACHE_DISABLE=1 -alternatives=" - jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer - jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck - jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj - jdk:/usr/bin/jar:/${_jdk_home}/bin/jar - jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner - jdk:/usr/bin/java:/${_jdk_home}/bin/java - jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi - jdk:/usr/bin/javac:/${_jdk_home}/bin/javac - jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc - jdk:/usr/bin/javah:/${_jdk_home}/bin/javah - jdk:/usr/bin/javap:/${_jdk_home}/bin/javap - jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd - jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole - jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb - jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps - jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat - jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo - jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs - jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap - jdk:/usr/bin/jps:/${_jdk_home}/bin/jps - jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript - jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd - jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack - jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat - jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd - jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool - jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii - jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd - jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200 - jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool - jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic - jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid - jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry - jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen - jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver - jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool - jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv - jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200 - jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen - jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport - jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc -" - post_extract() { - mv jdk8u*/* . chmod +x configure - for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do - mv ${subrepo}-${_repo_ver} ${subrepo} - done +} +post_patch() { # gcc complains about the signed shift left vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \ -e's;(-1)<<13;~0u<<13;g' @@ -152,20 +90,22 @@ post_extract() { # wrong "return false;" instead of "return null;" vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \ -e"295s;false;null;" -} -post_patch() { - [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0 + # pretend we're a git checkout + echo "${_commit}" > .gittip + mkdir .git - for f in ${FILESDIR}/musl_*.patch; do - echo "Applying $f" - patch -sNp1 -i "$f" - done + if [ "$XBPS_TARGET_LIBC" = "musl" ]; then + for f in "${FILESDIR}"/musl_*.patch; do + echo "Applying $f" + patch -sNp1 -i "$f" + done - # add cross prefix for thread_db.h check, fix cross from glibc to musl - sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \ - hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \ - hotspot/make/linux/makefiles/saproc.make + # add cross prefix for thread_db.h check, fix cross from glibc to musl + sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \ + hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \ + hotspot/make/linux/makefiles/saproc.make + fi } do_configure() { @@ -200,11 +140,6 @@ pre_build() { unset CFLAGS CXXFLAGS LDFLAGS } -do_build() { - # do not set disable_parallel_build in order to be able to read makejobs - make -j1 ${make_build_args} ${make_build_target} -} - post_install() { # we manage this ourselves rm -rf ${DESTDIR}/usr/lib/bin @@ -213,6 +148,11 @@ post_install() { mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \ ${DESTDIR}/${_jdk_home} + # don't duplicate binaries already in jre/bin + for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do + ln -srf "${bin}" "${bin/jre/}" + done + vmkdir ${_jdk_home}/lib/security make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool" mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/ @@ -228,23 +168,15 @@ openjdk8-jre_package() { shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so" short_desc+=" - runtime components" provides="java-runtime-${version}_1" - depends="xbps-triggers>=0.122_1" - triggers="openjdk-profile" - alternatives=" - java:/usr/bin/java:/${_jdk_home}/jre/bin/java - java:/usr/bin/jjs:/${_jdk_home}/jre/bin/jjs - java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool - java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd - java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200 - java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool - java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid - java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry - java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool - java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv - java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200 - " + depends="openjdk-common" + alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre" pkg_install() { - vmove ${_jdk_home}/jre + vmove "${_jdk_home}"/jre + for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do + bin="$(basename "$bin")" + vmove "${_jdk_home}/man/man1/${bin}.1" + vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1" + done } } @@ -263,12 +195,13 @@ openjdk8-doc_package() { noverifyrdeps=yes noshlibprovides=yes short_desc+=" - documentation" + if [ -z "$build_option_docs" ]; then + build_style=meta + fi pkg_install() { - cd ${wrksrc} if [ "$build_option_docs" ]; then vmkdir usr/share/doc/openjdk8 cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8 fi - vmove ${_jdk_home}/man/man1 } }