this broke both the version check and the actual build as the newer version wasn't recognized as the bigger version number.
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=152
|
|
_jdk_build=03
|
|
_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
|
|
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 <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="e5719264ea5370815c233bb8f055eacef4e4aaaef971fb84f731926ce9bc20f6
|
|
6968085c367e832a4b166daab89eaf61bb58acbe8d930a3d944ff2327bd846a2
|
|
183f958982b2a1c4f10fc834ae8e8d4ac254bf1a65373fd001ab4e58a99b0983
|
|
ea44540bf90913ba5d122b093005d6e2ebfb0a07535187dc71f1cda639b8d185
|
|
f3d8c2342970c229985d32bb49e84d007f50df5a6b27991b8e1473ff45832bfc
|
|
843a397b1d610db27b378d006ade2d98ce53d5e1f7952bf64fa865f0119e6fd0
|
|
4d336740d2e94d2406eb310acc64b95332e5f276143e38efe663f42f67601e7b
|
|
7f94034dd260c5f14a8cf3ef66b05452ca991e3d0e7a22a5513385124a8c8fc4"
|
|
|
|
# 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
|
|
}
|
|
}
|