void-packages/srcpkgs/openjdk7-bootstrap/template

184 lines
6.1 KiB
Bash

# Template file for 'openjdk7-bootstrap'
# Adapted from openjdk7 from Alpine
pkgname=openjdk7-bootstrap
# 2.6.19 fails to build: https://github.com/alpinelinux/aports/pull/9813
_icedtea_ver=2.6.18
_bootstrap_jdk_home="/usr/lib/jvm/java-1.5-gcj"
_final_jdk_home="/usr/lib/jvm/java-1.7-openjdk"
version=7u221b02
revision=5
archs="x86_64* i686* aarch64* arm* ppc64*"
create_wrksrc=yes
build_style=gnu-configure
configure_args="
--with-parallel-jobs=${XBPS_MAKEJOBS}
--disable-dependency-tracking
--disable-downloading
--disable-system-gtk
--disable-arm32-jit
--with-jdk-home=${_bootstrap_jdk_home}
--prefix=${_final_jdk_home}"
make_build_target=icedtea-boot
make_build_args="SHELL=/bin/bash"
hostmakedepends="cpio tar unzip zip ca-certificates autoconf automake pkg-config
libxslt wget gcc6-gcj-jdk-compat which"
makedepends="nss-devel cups-devel libjpeg-turbo-devel giflib-devel libpng-devel
libXt-devel libXtst-devel libXp-devel libXrender-devel libXinerama-devel
libXcomposite-devel libmpc-devel libgcj-devel lcms2-devel zlib-devel
alsa-lib-devel freetype-devel fontconfig-devel libglib-devel mit-krb5-devel
pcsclite-devel lksctp-tools-devel"
short_desc="OpenJDK 7 via IcedTea (bootstrap)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="https://icedtea.classpath.org/"
lib32disabled=yes
make_check=no # requires full jdk build
repository=bootstrap
if [ -n "$XBPS_DEBUG_PKGS" ]; then
configure_args+=" --enable-native-debuginfo"
else
configure_args+=" --disable-native-debuginfo"
fi
# using ccache causes ICEs with pregenerated headers
export CCACHE_DISABLE=1
_rhino_ver=1.7.7.2
_ant_ver=1.9.11
_drops_ver=$_icedtea_ver
_drops_url=https://icedtea.classpath.org/download/drops/icedtea7/${_drops_ver}
distfiles="
https://icedtea.classpath.org/download/source/icedtea-${_icedtea_ver}.tar.xz
${_drops_url}/openjdk.tar.bz2>openjdk-${_drops_ver}.tar.bz2
${_drops_url}/corba.tar.bz2>corba-${_drops_ver}.tar.bz2
${_drops_url}/jaxp.tar.bz2>jaxp-${_drops_ver}.tar.bz2
${_drops_url}/jaxws.tar.bz2>jaxws-${_drops_ver}.tar.bz2
${_drops_url}/jdk.tar.bz2>jdk-${_drops_ver}.tar.bz2
${_drops_url}/langtools.tar.bz2>langtools-${_drops_ver}.tar.bz2
${_drops_url}/hotspot.tar.bz2>hotspot-${_drops_ver}.tar.bz2
https://archive.apache.org/dist/ant/binaries/apache-ant-${_ant_ver}-bin.tar.gz
https://github.com/mozilla/rhino/releases/download/Rhino${_rhino_ver//./_}_Release/rhino-${_rhino_ver}.zip"
checksum="
af4031b21400d9194bce9aae4dceb012590f88fe8c51efcaa67de33eb7e6152f
da5fc1846ec80409ad5af870dbeb03d077b4add3ba54c0dde00414bea0376392
c115dfa1027c58b1b6444908e26b613c428661fb210e891c30e6a65e77208776
632aa746ebfd8238c64226bf949d20cc2f1d1423eaabfd19897199b13b434e3c
94fbcc00f3d89b9f3b940af5e7b469d1b945ca99e84b51a7abdadcde33a7be14
57b5741ab0807fbc71f15efce11546d943baffeb5f5cf55ec16fed69634abc36
915f492188b7b214e280532df061adc6c999f0d190ea5f1325bc70b77a2af4f0
8ce20d0c5a16373fe7bea5437d91a513b861788bd24d79ac04e43e73cb82eb54
54569cd31a01975ea6e6eb911e8ebd41016425c7ede2e3980d3feb42cc548bb1
b223595717dd360061b35aaa7e952271fcbbd6a763a78927283480227aaa0247"
skip_extraction="
openjdk-${_drops_ver}.tar.bz2
corba-${_drops_ver}.tar.bz2
jaxp-${_drops_ver}.tar.bz2
jaxws-${_drops_ver}.tar.bz2
jdk-${_drops_ver}.tar.bz2
langtools-${_drops_ver}.tar.bz2
hotspot-${_drops_ver}.tar.bz2"
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
nocross=yes
CFLAGS="-fcommon"
post_extract() {
mv icedtea-*/* .
# ensure they're cleaned up
mv apache-ant-${_ant_ver} apache-ant
mv rhino${_rhino_ver} rhino
# distrib patches are relative to wrksrc
for patch in $(cat ${FILESDIR}/dist_patches_${XBPS_TARGET_LIBC}.txt); do
case "$patch" in
icedtea-*.patch) cp ${FILESDIR}/$patch ${wrksrc}
esac
done
}
# we need to set up these vars for both configure and build
_setup_build_env() {
[ -n "$DISTRIBUTION_PATCHES" ] && return 0
export ALT_PARALLEL_COMPILE_JOBS=$XBPS_MAKEJOBS
export HOTSPOT_BUILD_JOBS=$XBPS_MAKEJOBS
export JAVA_HOME=${_bootstrap_jdk_home}
export PATH=$JAVA_HOME/bin:${wrksrc}/apache-ant/bin:$PATH
# force ELFv2 for ppc64 just in case
case "$XBPS_TARGET_MACHINE" in
ppc64*)
CFLAGS+=" -DABI_ELFv2"
CXXFLAGS+=" -DABI_ELFv2"
;;
esac
if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then
CFLAGS+=" -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64"
CXXFLAGS+=" -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64"
fi
# from alpine: disable jvm-breaking optimizations and c++ std
export EXTRA_CPP_FLAGS="$CXXFLAGS -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
export EXTRA_CFLAGS="$CFLAGS -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
local _patches=
for patch in $(cat ${FILESDIR}/dist_patches_${XBPS_TARGET_LIBC}.txt); do
case "$patch" in
icedtea-*.patch) _patches+=" $patch";;
esac
done
export DISTRIBUTION_PATCHES="$_patches"
}
pre_configure() {
./autogen.sh
}
do_configure() {
_setup_build_env
local _args=
local _src_prefix="${XBPS_SRCDISTDIR}/${pkgname}-${version}"
_args+=" --with-rhino=${wrksrc}/rhino/lib/rhino-${_rhino_ver}.jar"
_args+=" --with-openjdk-src-zip=${_src_prefix}/openjdk-${_drops_ver}.tar.bz2"
_args+=" --with-hotspot-src-zip=${_src_prefix}/hotspot-${_drops_ver}.tar.bz2"
_args+=" --with-corba-src-zip=${_src_prefix}/corba-${_drops_ver}.tar.bz2"
_args+=" --with-jaxp-src-zip=${_src_prefix}/jaxp-${_drops_ver}.tar.bz2"
_args+=" --with-jaxws-src-zip=${_src_prefix}/jaxws-${_drops_ver}.tar.bz2"
_args+=" --with-jdk-src-zip=${_src_prefix}/jdk-${_drops_ver}.tar.bz2"
_args+=" --with-langtools-src-zip=${_src_prefix}/langtools-${_drops_ver}.tar.bz2"
./configure ${configure_args} ${_args}
}
pre_build() {
_setup_build_env
}
do_build() {
make -j1 ${make_build_args} ${make_build_target}
}
do_install() {
mkdir -p ${DESTDIR}/${_final_jdk_home}
cp -a ${wrksrc}/openjdk.build-boot/j2sdk-image/* ${DESTDIR}/${_final_jdk_home}
cp -a ${wrksrc}/openjdk.build-boot/include ${DESTDIR}/${_final_jdk_home}
rm -f ${DESTDIR}/${_final_jdk_home}/src.zip
}
post_install() {
rm -rf ${DESTDIR}/usr/lib/bin
vlicense ${DESTDIR}/${_final_jdk_home}/ASSEMBLY_EXCEPTION
vlicense ${DESTDIR}/${_final_jdk_home}/LICENSE
}