# Template file for 'openjdk' # TODO: better places for bin and man? # TODO: make -headless versions # TODO: config files? # TODO: find giflib patch for --with-giflib=system _java_ver=8 _jdk_update=121 _jdk_build=13 _repo_ver="jdk${_java_ver}u${_jdk_update}-b${_jdk_build}" _openjdk_version="openjdk-1.8.0_${_jdk_update}" pkgname=openjdk version=${_java_ver}u${_jdk_update} revision=1 nocross=yes nopie=yes wrksrc=jdk8u-jdk8u${_jdk_update}-b${_jdk_build}/ build_style=gnu-configure configure_args=" --prefix=${XBPS_DESTDIR}/${sourcepkg}-${version}/usr/lib --with-update-version=${_jdk_update} --with-build-number=b${_jdk_build} --with-milestone=fcs --enable-unlimited-crypto --with-zlib=system $(vopt_if oracle_bootstrap --with-boot-jdk=/usr/lib/jvm/oracle-jdk \ --with-boot-jdk=/usr/lib/jvm/openjdk)" make_build_args="DEBUG_BINARIES=true docs all" hostmakedepends="pkg-config cpio unzip zip ca-certificates libressl" case "$XBPS_MACHINE" in arm*) hostmakedepends+=" $(vopt_if oracle_bootstrap oracle-jdk-arm openjdk)";; *) hostmakedepends+=" $(vopt_if oracle_bootstrap oracle-jdk openjdk)";; esac makedepends="libXrender-devel libXtst-devel libXt-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel" case "$XBPS_TARGET_MACHINE" in arm*) makedepends+=" libffi-devel" configure_args+=" --with-jvm-variants=zero" esac depends="openjdk-jre-${version}_${revision}" provides="java-environment-${version}_1" short_desc="OpenJDK Java Development Kit" maintainer="Toyam Cox " license="GPL-3" homepage="http://openjdk.java.net/" distfiles=" http://hg.openjdk.java.net/jdk8u/jdk8u/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz http://hg.openjdk.java.net/jdk8u/jdk8u/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz" checksum="7b59600a2a19f63dda188cd19a4fd7a7f467a6f7ce3474df0cb3005ba8a540db 0fa534d45890b8cfb92c6ed39d2d80c60901e9e17c440fc8abf2f57a730dae2f 1a8af5e51986046827fccfcda94f9fc41738667c67a71e5c78936d4906939255 594f5e1c7cdffa97c1686115d9db3c7f40049d9f1dfc05cd171947fe6c20c681 b1a774d15fea52d0e7308981853c25cd88ffe7ff68a0bf61a518c44e77bcf2ad 31ef7c27c2f1fb78ce6be5c96b0b5435cd814868f2b7a05a2ed3c5c062596c9d 08da4dcb698a0ba2d7a417732823a2797c38f3e267a95829ee2403c4b1ad456e ec388bdb56ca5886312e4a8c75aeb703102c04f86011c4e4d911a7896fa4d5a5" # Build is still parallel, but don't use -jN. disable_parallel_build=yes build_options="oracle_bootstrap" build_options_default="oracle_bootstrap" desc_option_oracle_bootstrap="Bootstrap using Oracle JDK" alternatives=" java:/usr/bin/java:/usr/lib/jvm/openjdk/bin/java java:/usr/bin/jjs:/usr/lib/jvm/openjdk/bin/jjs java:/usr/bin/keytool:/usr/lib/jvm/openjdk/bin/keytool java:/usr/bin/mkcacerts:/usr/lib/jvm/openjdk/bin/mkcacerts java:/usr/bin/orbd:/usr/lib/jvm/openjdk/bin/orbd java:/usr/bin/pack200:/usr/lib/jvm/openjdk/bin/pack200 java:/usr/bin/policytool:/usr/lib/jvm/openjdk/bin/policytool java:/usr/bin/rmid:/usr/lib/jvm/openjdk/bin/rmid java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk/bin/rmiregistry java:/usr/bin/servertool:/usr/lib/jvm/openjdk/bin/servertool java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk/bin/tnameserv java:/usr/bin/unpack200:/usr/lib/jvm/openjdk/bin/unpack200 jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk/bin/appletviewer jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk/bin/extcheck jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk/bin/idlj jdk:/usr/bin/jar:/usr/lib/jvm/openjdk/bin/jar jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk/bin/jarsigner jdk:/usr/bin/java:/usr/lib/jvm/openjdk/bin/java jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk/bin/java-rmi.cgi jdk:/usr/bin/javac:/usr/lib/jvm/openjdk/bin/javac jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk/bin/javadoc jdk:/usr/bin/javah:/usr/lib/jvm/openjdk/bin/javah jdk:/usr/bin/javap:/usr/lib/jvm/openjdk/bin/javap jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk/bin/jcmd jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk/bin/jconsole jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk/bin/jdb jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk/bin/jdeps jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk/bin/jhat jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk/bin/jinfo jdk:/usr/bin/jjs:/usr/lib/jvm/openjdk/bin/jjs jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk/bin/jmap jdk:/usr/bin/jps:/usr/lib/jvm/openjdk/bin/jps jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk/bin/jrunscript jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk/bin/jsadebugd jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk/bin/jstack jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk/bin/jstat jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk/bin/jstatd jdk:/usr/bin/keytool:/usr/lib/jvm/openjdk/bin/keytool jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk/bin/native2ascii jdk:/usr/bin/orbd:/usr/lib/jvm/openjdk/bin/orbd jdk:/usr/bin/pack200:/usr/lib/jvm/openjdk/bin/pack200 jdk:/usr/bin/policytool:/usr/lib/jvm/openjdk/bin/policytool jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk/bin/rmic jdk:/usr/bin/rmid:/usr/lib/jvm/openjdk/bin/rmid jdk:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk/bin/rmiregistry jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk/bin/schemagen jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk/bin/serialver jdk:/usr/bin/servertool:/usr/lib/jvm/openjdk/bin/servertool jdk:/usr/bin/tnameserv:/usr/lib/jvm/openjdk/bin/tnameserv jdk:/usr/bin/unpack200:/usr/lib/jvm/openjdk/bin/unpack200 jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk/bin/wsgen jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk/bin/wsimport jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk/bin/xjc " CFLAGS="-Wno-error=deprecated-declarations" if [ ${XBPS_GCC_VERSION_MAJOR} -gt 5 ]; then # Append CFLAGS to set work around code which gcc6 would # otherwise regard as out-of-specification and allow it # to produce a working program. CFLAGS+=" -Wno-error -std=c++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" fi do_build() { # -D_FORTIFY_SOURCE=2 doesn't work with CXX_O_FLAG_NONE="-O0" CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} CXXFLAGS=${CXXFLAGS/-D_FORTIFY_SOURCE=2/} make ${makejobs} ${make_build_args} } post_extract() { if [ ${XBPS_GCC_VERSION_MAJOR} -gt 5 ]; then cd ${XBPS_BUILDDIR}/jdk-${_repo_ver} # gcc6 complains about the signed shift left sed -i src/share/native/com/sun/java/util/jar/pack/constants.h \ -e's;(-1)<<13;~0u<<13;g' # wrong "return false;" instead of "return null;" sed -i src/share/native/com/sun/java/util/jar/pack/jni.cpp \ -e"295s;false;null;" cd ${wrksrc} fi chmod +x configure for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do ln -s ../${subrepo}-${_repo_ver} ${subrepo} done cd hotspot # https://bugs.openjdk.java.net/browse/JDK-8041658 patch -p1 < ${FILESDIR}/002_gcc.make-4.9.patch # patch supported os versions to include 4 and 4.1 sed -i ${wrksrc}/hotspot/make/linux/Makefile \ -e "/SUPPORTED_OS_VERSION =/s;\(.*\);\1 4% 4.1%;" } post_install() { rm -rf ${DESTDIR}/usr/lib/bin vinstall ${FILESDIR}/mkcacerts 755 usr/lib/jvm/$_openjdk_version/jre/bin vmkdir usr/lib/jvm/$_openjdk_version/jre/lib/security sh ${FILESDIR}/mkcacerts \ -d "/usr/share/ca-certificates/" \ -s "/usr/bin/openssl" \ -k "${DESTDIR}/usr/lib/jvm/$_openjdk_version/jre/bin/keytool" \ -o "${DESTDIR}/usr/lib/jvm/$_openjdk_version/jre/lib/security/cacerts" vlicense ASSEMBLY_EXCEPTION vlicense LICENSE vlicense THIRD_PARTY_README } openjdk-jre_package() { shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so" short_desc="OpenJDK Java Runtime Environment" provides="java-runtime-${version}_1" alternatives=" java:/usr/bin/java:/usr/lib/jvm/openjdk/jre/bin/java java:/usr/bin/jjs:/usr/lib/jvm/openjdk/jre/bin/jjs java:/usr/bin/keytool:/usr/lib/jvm/openjdk/jre/bin/keytool java:/usr/bin/mkcacerts:/usr/lib/jvm/openjdk/jre/bin/mkcacerts java:/usr/bin/orbd:/usr/lib/jvm/openjdk/jre/bin/orbd java:/usr/bin/pack200:/usr/lib/jvm/openjdk/jre/bin/pack200 java:/usr/bin/policytool:/usr/lib/jvm/openjdk/jre/bin/policytool java:/usr/bin/rmid:/usr/lib/jvm/openjdk/jre/bin/rmid java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk/jre/bin/rmiregistry java:/usr/bin/servertool:/usr/lib/jvm/openjdk/jre/bin/servertool java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk/jre/bin/tnameserv java:/usr/bin/unpack200:/usr/lib/jvm/openjdk/jre/bin/unpack200 " pkg_install() { vmove "usr/lib/jvm/$_openjdk_version/jre" ln -s $_openjdk_version ${PKGDESTDIR}/usr/lib/jvm/openjdk vmkdir etc/profile.d cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk.sh <