232 lines
9.3 KiB
Bash
232 lines
9.3 KiB
Bash
# 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=172
|
|
_jdk_build=00
|
|
_main_ver=${_java_ver}u${_jdk_update}
|
|
_openjdk_version="openjdk-1.8.0_${_jdk_update}"
|
|
|
|
pkgname=openjdk
|
|
version="${_java_ver}u${_jdk_update}b${_jdk_build}"
|
|
revision=1
|
|
_repo_ver="jdk${version/b/-b}"
|
|
nocross=yes
|
|
wrksrc=jdk8u-jdk8u${_jdk_update}-b${_jdk_build}/
|
|
build_style=gnu-configure
|
|
configure_args="
|
|
--prefix=${XBPS_DESTDIR}/${pkgname}-${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 <Vaelatern@voidlinux.eu>"
|
|
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="ebcd1652afec515e21309d664722595ef1ab94c3cec2199546f9dd243f4fb662
|
|
861663b635f885c341602119c2ce52b2903067d7f9346a3a5dcdadb08d9f6832
|
|
0cd599a3e8cb7ac552f3abedce5dc5fccbd13505e705545bf8ac3686d486f9ff
|
|
9944116a28f9ece3ec1e2105cde032395a245e7072ab0b34bd3a4aaf5d1db051
|
|
58815b95c6fb175d7b730e9a8462ffa74c411199eb28cda3c4dcb65584524e58
|
|
2e72e4c6e1b82de21c7f620cc1aa1ad3d80a97f85879043e3fc9c4a41ce5e0b0
|
|
da4dc344bd516b48cadad1b522079bd6a583855f27c8d3d3e9b2d614f20730a9
|
|
d30458a8b7fb834293e5373d615071d50f03071346cf8905eb7dbe9fbe00cbf2"
|
|
|
|
# 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
|
|
|
|
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%;"
|
|
}
|
|
|
|
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_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 libjawt.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 <<EOF
|
|
export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/$_openjdk_version/jre}
|
|
EOF
|
|
}
|
|
}
|
|
|
|
openjdk-src_package() {
|
|
nostrip=yes
|
|
noverifyrdeps=yes
|
|
noshlibprovides=yes
|
|
short_desc+=" -- sources"
|
|
pkg_install() {
|
|
vmove "usr/lib/jvm/$_openjdk_version/src.zip"
|
|
}
|
|
}
|
|
|
|
openjdk-doc_package() {
|
|
nostrip=yes
|
|
noverifyrdeps=yes
|
|
noshlibprovides=yes
|
|
short_desc+=" -- documentation"
|
|
pkg_install() {
|
|
cd ${wrksrc}
|
|
vmkdir usr/share/doc
|
|
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc
|
|
}
|
|
}
|