Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145477825
D49354.id152811.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
10 KB
Referenced Files
None
Subscribers
None
D49354.id152811.diff
View Options
diff --git a/java/openjdk24/Makefile b/java/openjdk24/Makefile
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/Makefile
@@ -0,0 +1,186 @@
+PORTNAME= openjdk
+DISTVERSIONPREFIX= jdk-
+DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION}
+CATEGORIES= java devel
+PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION}
+
+MAINTAINER= java@FreeBSD.org
+COMMENT= Java Development Kit ${JDK_MAJOR_VERSION}
+WWW= https://openjdk.java.net/projects/jdk/24/
+
+LICENSE= GPLv2
+
+# i386 is deprecated, and will be removed in the next JDK
+ONLY_FOR_ARCHS= aarch64 amd64 powerpc64 powerpc64le
+
+BUILD_DEPENDS= zip:archivers/zip \
+ ${LOCALBASE}/include/cups/cups.h:print/cups \
+ bash:shells/bash \
+ gsed:textproc/gsed
+LIB_DEPENDS= libasound.so:audio/alsa-lib \
+ libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2 \
+ libgif.so:graphics/giflib \
+ libharfbuzz.so:print/harfbuzz \
+ liblcms2.so:graphics/lcms2 \
+ libpng.so:graphics/png
+RUN_DEPENDS= javavm:java/javavmwrapper \
+ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype
+
+USES= autoreconf:build compiler:features cpe gmake iconv jpeg pkgconfig xorg
+USE_XORG= x11 xext xi xrandr xrender xt xtst
+
+CPE_VENDOR= oracle
+
+USE_GITHUB= yes
+GH_ACCOUNT= freebsd
+GH_PROJECT= openjdk
+GH_TAGNAME= jdk-24-ga-freebsd-1
+
+NO_CCACHE= yes
+
+MAKE_ENV= CLASSPATH="" \
+ JAVA_HOME="" \
+ LD_LIBRARY_PATH="" \
+ MAKEFLAGS=""
+
+MAKE_JOBS_UNSAFE= yes
+
+JDK_ARCH= ${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/}
+JDK_OSARCH= bsd-${JDK_ARCH}
+JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE}
+.if defined(BUILD_JRE)
+JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre
+.else
+JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk
+.endif
+INSTALLDIR= ${PREFIX}/${PKGBASE}
+
+NOPRECIOUSMAKEVARS= yes
+
+JDK_MAJOR_VERSION= 24
+JDK_MINOR_VERSION= 0
+JDK_PATCH_VERSION= 0
+JDK_BUILD_NUMBER= 36
+BSD_JDK_VERSION= 1
+
+JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20
+
+GNU_CONFIGURE= yes
+CONFIGURE_TARGET=${JDK_ARCH}-portbld-${OPSYS:tl}${OSREL}
+CONFIGURE_ENV= ac_cv_path_SED=${LOCALBASE}/bin/gsed
+CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \
+ --disable-ccache \
+ --disable-javac-server \
+ --with-alsa=${LOCALBASE} \
+ --with-cups=${LOCALBASE} \
+ --with-fontconfig=${LOCALBASE} \
+ --with-freetype=system \
+ --with-libjpeg=system \
+ --with-giflib=system \
+ --with-giflib-include=${LOCALBASE}/include \
+ --with-giflib-lib=${LOCALBASE}/lib \
+ --with-harfbuzz=system \
+ --with-libpng=system \
+ --with-zlib=system \
+ --with-lcms=system \
+ --x-includes=${LOCALBASE}/include \
+ --x-libraries=${LOCALBASE}/lib \
+ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \
+ --with-native-debug-symbols=none \
+ --with-debug-level=release \
+ --with-vendor-name="OpenJDK BSD Porting Team" \
+ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \
+ --with-vendor-bug-url="${JDK_BUG_URL}" \
+ --with-vendor-vm-bug-url="${JDK_BUG_URL}"
+
+JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION}
+
+.if defined(BUILD_JRE)
+ALL_TARGET= legacy-images
+.else
+ALL_TARGET= images
+.endif
+JDK_BUILD_TYPE= release
+
+.include <bsd.port.pre.mk>
+
+BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk24 ${LOCALBASE}/openjdk23
+
+# do we have valid native jdk installed?
+.for BJDK in ${BOOTSTRAP_JDKS}
+. if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac)
+BOOTSTRAPJDKDIR= ${BJDK}
+. endif
+.endfor
+
+# if no valid jdk found, set dependency
+.if !defined(BOOTSTRAPJDKDIR)
+BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk23
+BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk23
+.endif
+
+JDK_BUILD_JVM= server
+
+MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE}
+CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE}
+CONFIGURE_ARGS+= --disable-warnings-as-errors
+
+.if ${COMPILER_TYPE} == gcc
+USE_GCC= yes
+CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \
+ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \
+ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}"
+.else
+MAKE_ENV+= USE_CLANG=true
+EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
+EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
+EXTRA_CFLAGS+= -Wno-error=deprecated-non-prototype
+CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
+CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
+.endif
+
+.if ${ARCH} == aarch64
+CONFIGURE_ARGS+= --disable-dtrace
+.endif
+
+.if empty(ICONV_LIB)
+ICONV_CFLAGS= -DLIBICONV_PLUG
+.else
+ICONV_CFLAGS= -I${LOCALBASE}/include
+ICONV_LDFLAGS= -L${LOCALBASE}/lib
+ICONV_LIBS= ${ICONV_LIB}
+.endif
+
+post-patch:
+ @${RM} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.cpp
+ @${MV} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.hpp \
+ ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/javaThread_bsd_ppc.hpp
+
+ @${FIND} ${WRKSRC} -name '*.orig' -delete
+ @${CHMOD} 755 ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
+ ${WRKSRC}/configure \
+ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp
+ @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \
+ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \
+ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \
+ ${WRKSRC}/make/autoconf/libraries.m4
+
+post-build:
+.if defined(OPENJDK_SYMLINK_CACERTS)
+ @${RM} ${JDK_IMAGEDIR}/lib/security/cacerts
+ @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts
+.endif
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${INSTALLDIR}
+ @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR}
+ @cd ${STAGEDIR}${INSTALLDIR} && \
+ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \;
+ @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper
+ @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST}
+ @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \
+ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/java/openjdk24/distinfo b/java/openjdk24/distinfo
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1742895111
+SHA256 (freebsd-openjdk-jdk-24.0.0+36-1-jdk-24-ga-freebsd-1_GH0.tar.gz) = d2dc74549c4038bcab0b54622e98083d48989976e4f221ce53d265e785d16abf
+SIZE (freebsd-openjdk-jdk-24.0.0+36-1-jdk-24-ga-freebsd-1_GH0.tar.gz) = 120821939
diff --git a/java/openjdk24/files/patch-configure b/java/openjdk24/files/patch-configure
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/files/patch-configure
@@ -0,0 +1,14 @@
+--- configure.orig 2019-03-12 12:38:39.648907000 -0700
++++ configure 2019-03-12 12:39:04.275572000 -0700
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!%%LOCALBASE%%/bin/bash
+ #
+ # Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+@@ -32,4 +32,4 @@
+ # Delegate to wrapper, forcing wrapper to believe $0 is this script by using -c.
+ # This trick is needed to get autoconf to co-operate properly.
+ # The ${-:+-$-} construction passes on bash options.
+-bash ${-:+-$-} -c ". $this_script_dir/make/autoconf/configure" $this_script_dir/configure CHECKME $this_script_dir "$@"
++%%LOCALBASE%%/bin/bash ${-:+-$-} -c ". $this_script_dir/make/autoconf/configure" $this_script_dir/configure CHECKME $this_script_dir "$@"
diff --git a/java/openjdk24/files/patch-make_autoconf_flags-cflags.m4 b/java/openjdk24/files/patch-make_autoconf_flags-cflags.m4
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/files/patch-make_autoconf_flags-cflags.m4
@@ -0,0 +1,13 @@
+--- make/autoconf/flags-cflags.m4.orig 2020-01-08 09:12:31 UTC
++++ make/autoconf/flags-cflags.m4
+@@ -770,6 +770,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
+ # for all archs except arm and ppc, prevent gcc to omit frame pointer
+ $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
+ fi
++ elif test "x$OPENJDK_TARGET_OS_ENV" = xbsd.freebsd; then
++ if test "x$FLAGS_CPU" = xppc64; then
++ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=powerpc64 -mtune=power5"
++ fi
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
diff --git a/java/openjdk24/files/patch-make_autoconf_libraries.m4 b/java/openjdk24/files/patch-make_autoconf_libraries.m4
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/files/patch-make_autoconf_libraries.m4
@@ -0,0 +1,15 @@
+--- make/autoconf/libraries.m4~ 2019-08-12 19:10:36.292217000 -0700
++++ make/autoconf/libraries.m4 2019-08-12 19:18:15.523606000 -0700
+@@ -188,9 +188,9 @@
+ ICONV_LDFLAGS="-L/usr/local/lib"
+ ICONV_LIBS=-liconv
+ elif test "x$OPENJDK_TARGET_OS_ENV" = "xbsd.freebsd"; then
+- ICONV_CFLAGS=-DLIBICONV_PLUG
+- ICONV_LDFLAGS=
+- ICONV_LIBS=
++ ICONV_CFLAGS=%%ICONV_CFLAGS%%
++ ICONV_LDFLAGS=%%ICONV_LDFLAGS%%
++ ICONV_LIBS=%%ICONV_LIBS%%
+ else
+ ICONV_CFLAGS=
+ ICONV_LDFLAGS=
diff --git a/java/openjdk24/files/patch-src_hotspot_os_bsd_os__bsd.cpp b/java/openjdk24/files/patch-src_hotspot_os_bsd_os__bsd.cpp
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/files/patch-src_hotspot_os_bsd_os__bsd.cpp
@@ -0,0 +1,11 @@
+--- src/hotspot/os/bsd/os_bsd.cpp.orig 2021-09-29 21:25:10 UTC
++++ src/hotspot/os/bsd/os_bsd.cpp
+@@ -361,7 +361,7 @@
+ #elif defined(__NetBSD__)
+ #define DEFAULT_LIBPATH "/usr/lib:/usr/pkg/lib"
+ #else
+- #define DEFAULT_LIBPATH "/usr/lib:/usr/local/lib"
++ #define DEFAULT_LIBPATH "/usr/lib:%%LOCALBASE%%/lib"
+ #endif
+ #else
+ #define DEFAULT_LIBPATH OVERRIDE_LIBPATH
diff --git a/java/openjdk24/pkg-descr b/java/openjdk24/pkg-descr
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/pkg-descr
@@ -0,0 +1 @@
+An open-source implementation of the Java Platform, Standard Edition,
diff --git a/java/openjdk24/pkg-message b/java/openjdk24/pkg-message
new file mode 100644
--- /dev/null
+++ b/java/openjdk24/pkg-message
@@ -0,0 +1,18 @@
+[
+{ type: install
+ message: <<EOM
+This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
+procfs(5) mounted on /proc.
+
+If you have not done it yet, please do the following:
+
+ mount -t fdescfs fdesc /dev/fd
+ mount -t procfs proc /proc
+
+To make it permanent, you need the following lines in /etc/fstab:
+
+ fdesc /dev/fd fdescfs rw 0 0
+ proc /proc procfs rw 0 0
+EOM
+}
+]
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 21, 8:55 AM (19 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28916988
Default Alt Text
D49354.id152811.diff (10 KB)
Attached To
Mode
D49354: Add port for java/openjdk24
Attached
Detach File
Event Timeline
Log In to Comment