* Contains many upstream bug fixes which can be found in the release notes here: https://foojay.io/java-11/?quarter=072021&tab=allissues&version=11.0.12 https://openjdk.java.net/groups/vulnerability/advisories/2021-07-20
203 lines
5.7 KiB
Makefile
203 lines
5.7 KiB
Makefile
# $OpenBSD: Makefile,v 1.25 2021/08/05 02:21:41 kurt Exp $
|
|
|
|
ONLY_FOR_ARCHS= i386 amd64 aarch64
|
|
USE_WXNEEDED= Yes
|
|
DPB_PROPERTIES= parallel
|
|
|
|
COMMENT= OpenJDK Software Development Kit v${VERSION_STR}
|
|
BASE_VER= 11.0.12
|
|
PATCH_VER= 7
|
|
BSD_PORT_REL= 1
|
|
VERSION_STR= ${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL}
|
|
PACKAGE_VER= ${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL}
|
|
PKGNAME= jdk-${PACKAGE_VER}
|
|
PKGSTEM= jdk-11
|
|
EPOCH= 0
|
|
|
|
DIST_SUBDIR= jdk
|
|
DISTNAME= jdk-${VERSION_STR}
|
|
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
|
|
WRKDIST= ${WRKDIR}/jdk11u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL}
|
|
BOOTJDK_DATE= 20210615
|
|
|
|
CATEGORIES= devel/jdk java
|
|
|
|
PSEUDO_FLAVORS= native_bootstrap
|
|
FLAVOR?=
|
|
|
|
HOMEPAGE= http://openjdk.java.net/
|
|
|
|
MASTER_SITES= https://github.com/battleblow/jdk11u/archive/
|
|
MASTER_SITES1= https://spacehopper.org/mirrors/ \
|
|
http://www.intricatesoftware.com/distfiles/
|
|
|
|
MAINTAINER= Kurt Miller <kurt@openbsd.org>
|
|
|
|
# GPLv2 w/CLASSPATH exception
|
|
PERMIT_PACKAGE= Yes
|
|
|
|
DEBUG_PACKAGES= ${BUILD_PACKAGES}
|
|
|
|
WANTLIB += ${COMPILER_LIBCXX} X11 Xext Xi Xrender Xtst c freetype gif
|
|
WANTLIB += harfbuzz iconv jpeg lcms2 m png pthread z
|
|
|
|
NO_TEST= Yes
|
|
|
|
SUPDISTFILES+= openjdk-jdk11u-bootjdk-i386-${BOOTJDK_DATE}.tar.gz:1 \
|
|
openjdk-jdk11u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz:1 \
|
|
openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz:1
|
|
|
|
COMPILER= base-clang ports-gcc
|
|
|
|
.include <bsd.port.arch.mk>
|
|
|
|
.if ${FLAVOR:Mnative_bootstrap}
|
|
INSTALLED!= (pkg_info -qe "jdk->=11v0,<12v0" && echo yes) || echo no
|
|
. if ${INSTALLED:L} != "yes"
|
|
ERRORS += "Fatal: This flavor requires an installed jdk-11v0 or greater jdk package"
|
|
. endif
|
|
BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11
|
|
BOOT_JDK= ${LOCALBASE}/jdk-11
|
|
.else
|
|
BOOT_JDK_DIST= openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-${BOOTJDK_DATE}.tar.gz
|
|
. if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || (${MACHINE_ARCH}==aarch64)
|
|
DISTFILES+= ${BOOT_JDK_DIST}:1
|
|
. endif
|
|
MAKE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
|
|
CONFIGURE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
|
|
BOOT_JDK= ${WRKDIR}/bootjdk
|
|
.endif
|
|
|
|
AUTOCONF_VERSION= 2.69
|
|
BUILD_DEPENDS+= ${MODGNU_AUTOCONF_DEPENDS} \
|
|
archivers/gtar \
|
|
archivers/zip \
|
|
archivers/unzip \
|
|
print/cups,-libs \
|
|
shells/bash
|
|
|
|
LIB_DEPENDS= converters/libiconv \
|
|
devel/harfbuzz \
|
|
graphics/jpeg \
|
|
graphics/lcms2 \
|
|
graphics/png \
|
|
graphics/giflib
|
|
|
|
USE_GMAKE= Yes
|
|
GMAKE= ${LOCALBASE}/bin/gmake
|
|
|
|
# Don't call make -jN, instead pass MAKE_JOBS to --with-jobs
|
|
PARALLEL_MAKE_FLAGS=
|
|
|
|
CONFIGURE_STYLE=gnu
|
|
CONFIGURE_ENV+= AUTOCONF_VERSION=${AUTOCONF_VERSION} \
|
|
ac_cv_path_NAWK=awk
|
|
CONFIGURE_ARGS= MAKE=${GMAKE} \
|
|
--with-boot-jdk=${BOOT_JDK} \
|
|
--with-jobs=${MAKE_JOBS} \
|
|
--with-debug-level=release \
|
|
--with-version-string=${VERSION_STR} \
|
|
--with-cacerts-file=${FILESDIR}/cacerts \
|
|
--with-fontconfig=${X11BASE} \
|
|
--with-cups=${LOCALBASE} \
|
|
--with-freetype=system \
|
|
--with-zlib=system \
|
|
--with-libpng=system \
|
|
--with-lcms=system \
|
|
--with-libjpeg=system \
|
|
--with-harfbuzz=system \
|
|
--with-giflib=system \
|
|
--with-giflib-include=${LOCALBASE}/include \
|
|
--with-giflib-lib=${LOCALBASE}/lib \
|
|
--disable-option-checking \
|
|
--disable-ccache \
|
|
--disable-hotspot-gtest \
|
|
--disable-dtrace \
|
|
--disable-javac-server
|
|
|
|
.if ${PROPERTIES:Mclang}
|
|
CONFIGURE_ARGS+=--with-toolchain-type=clang
|
|
.else
|
|
CONFIGURE_ARGS+=--with-toolchain-type=gcc
|
|
.endif
|
|
|
|
.if ${PROPERTIES:Mdebuginfo}
|
|
CONFIGURE_ARGS+=--with-native-debug-symbols=external
|
|
.else
|
|
CONFIGURE_ARGS+=--with-native-debug-symbols=none
|
|
.endif
|
|
|
|
MODGNU_CONFIG_GUESS_DIRS=${WRKSRC}/make/autoconf/build-aux
|
|
|
|
MAKE_FLAGS+= LOG=debug
|
|
ALL_TARGET= images
|
|
|
|
.if ${MACHINE_ARCH} == "amd64"
|
|
PKG_ARGS+= -Daot=1
|
|
.else
|
|
# aot is not working yet on aarch64 and not supported on i386
|
|
CONFIGURE_ARGS+=--enable-aot=no
|
|
PKG_ARGS+= -Daot=0
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} != "i386"
|
|
PKG_ARGS+= -Dci=1
|
|
.else
|
|
PKG_ARGS+= -Dci=0
|
|
.endif
|
|
|
|
JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/}
|
|
BUILDDIR= ${WRKDIST}/build/bsd-${JVMARCH}-normal-server-release
|
|
IMAGEDIR= ${BUILDDIR}/images/jdk
|
|
WRKTMP= ${WRKDIR}/tmp
|
|
|
|
post-extract:
|
|
sed -i "s|#!/bin/bash|#!\${LOCALBASE}/bin/bash|" ${WRKDIST}/configure
|
|
chmod +x ${WRKDIST}/configure
|
|
|
|
.if ${PROPERTIES:Mdebuginfo}
|
|
post-build:
|
|
cd ${IMAGEDIR}/lib && \
|
|
find . -name \*.debuginfo -exec \
|
|
sh -c 'mv {} `echo {} | sed s/.debuginfo/.so/`' \; && \
|
|
mv jspawnhelper.so jspawnhelper && \
|
|
cp libjsig.so server/
|
|
cd ${IMAGEDIR}/bin && \
|
|
find . -name \*.debuginfo -exec \
|
|
sh -c 'mv {} `echo {} | sed s/.debuginfo//`' \;
|
|
.endif
|
|
|
|
do-install:
|
|
${INSTALL_DATA_DIR} ${PREFIX}/${PKGSTEM}
|
|
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
|
|
|
|
# The bootjdk is the jdk image with some parts deleted
|
|
# and a copy of the system shared libs needed to run it.
|
|
# The parts deleted are not needed for bootstrap and would
|
|
# require more system shared libs to be saved.
|
|
BOOTJDK_TAR= openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-$$(date +%Y%m%d).tar.gz
|
|
build-bootjdk: build
|
|
@${_PBUILD} rm -rf ${WRKTMP}
|
|
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk
|
|
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
|
|
@cd ${IMAGEDIR} && \
|
|
tar -cf - * | \
|
|
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
|
|
@cd ${WRKTMP}/bootjdk && \
|
|
${_PBUILD} rm -rf demo jmods man sample
|
|
@cd ${WRKTMP}/bootjdk/lib && \
|
|
${_PBUILD} rm libsplashscreen.so libinstrument.so libawt_xawt.so \
|
|
liblcms.so libfontmanager.so libjdwp.so libjavajpeg.so
|
|
@find ${WRKTMP}/bootjdk/lib ${WRKTMP}/bootjdk/bin \
|
|
-exec sh -c 'file {} | grep -q ELF && \
|
|
${_PBUILD} strip -S {}' \;
|
|
@LD_LIBRARY_PATH="${WRKTMP}/bootjdk/lib" \
|
|
find ${WRKTMP}/bootjdk -type f -perm -500 -exec ldd {} + 2>/dev/null | \
|
|
grep rlib | cut -d"/" -f 2-20 | sort -u | grep -v "\.so$$" | \
|
|
xargs -I % ${_PBUILD} cp /% ${WRKTMP}/bootjdk-libs
|
|
@cd ${WRKTMP} && \
|
|
${_PBUILD} tar czf ${BOOTJDK_TAR} bootjdk*
|
|
@echo "New bootjdk is located at ${WRKTMP}/${BOOTJDK_TAR}"
|
|
|
|
.include <bsd.port.mk>
|