Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F146421258
D53326.id165134.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
D53326.id165134.diff
View Options
diff --git a/Mk/Uses/java.mk b/Mk/Uses/java.mk
--- a/Mk/Uses/java.mk
+++ b/Mk/Uses/java.mk
@@ -30,7 +30,7 @@
# JAVA_VERSION List of space-separated suitable java versions for the
# port. An optional "+" allows you to specify a range of
# versions. (allowed values: 8[+] 11[+] 17[+] 18[+] 19[+]
-# 20[+] 21[+] 22[+] 23[+] 24[+])
+# 20[+] 21[+] 22[+] 23[+] 24[+] 25[+])
#
# JAVA_OS List of space-separated suitable JDK port operating systems
# for the port. (allowed values: native linux)
@@ -228,6 +228,8 @@
VERSION=23 OS=native VENDOR=openjdk
_JAVA_PORT_NATIVE_OPENJDK_JDK_24_INFO= PORT=java/openjdk24 HOME=${LOCALBASE}/openjdk24 \
VERSION=24 OS=native VENDOR=openjdk
+_JAVA_PORT_NATIVE_OPENJDK_JDK_25_INFO= PORT=java/openjdk25 HOME=${LOCALBASE}/openjdk25 \
+ VERSION=25 OS=native VENDOR=openjdk
_JAVA_PORT_LINUX_ORACLE_JDK_8_INFO= PORT=java/linux-oracle-jdk18 HOME=${LOCALBASE}/linux-oracle-jdk1.8.0 \
VERSION=8 OS=linux VENDOR=oracle
@@ -251,6 +253,7 @@
JAVA_PORT_NATIVE_OPENJDK_JDK_22 \
JAVA_PORT_NATIVE_OPENJDK_JDK_23 \
JAVA_PORT_NATIVE_OPENJDK_JDK_24 \
+ JAVA_PORT_NATIVE_OPENJDK_JDK_25 \
JAVA_PORT_LINUX_ORACLE_JDK_8
_JAVA_PORTS_ALL= ${JAVA_PREFERRED_PORTS} \
JAVA_PORT_NATIVE_OPENJDK_JDK_${JAVA_DEFAULT} \
@@ -314,7 +317,7 @@
. undef _JAVA_PORTS_INSTALLED
. undef _JAVA_PORTS_POSSIBLE
. if defined(JAVA_VERSION)
-_JAVA_VERSION= ${JAVA_VERSION:S/^8+/8 11+/:S/^11+/11 17+/:S/^17+/17 18+/:S/^18+/18 19+/:S/^19+/19 20+/:S/^20+/20 21+/:S/^21+/21 22+/:S/^22+/22 23+/:S/^23+/23 24+/:S/^24+/24/}
+_JAVA_VERSION= ${JAVA_VERSION:S/^8+/8 11+/:S/^11+/11 17+/:S/^17+/17 18+/:S/^18+/18 19+/:S/^19+/19 20+/:S/^20+/20 21+/:S/^21+/21 22+/:S/^22+/22 23+/:S/^23+/23 24+/:S/^24+/24 25+/:S/^25+/25/}
. else
_JAVA_VERSION= ${__JAVA_VERSION_LIST}
. endif
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -73,7 +73,7 @@
# Format: version[-flavor]
# Examples: 6-nox11, 7
IMAGEMAGICK_DEFAULT?= 7
-# Possible values: 8, 11, 17, 18, 19, 20, 21, 22, 23, 24
+# Possible values: 8, 11, 17, 18, 19, 20, 21, 22, 23, 24, 25
JAVA_DEFAULT?= 8
# Possible values: 4.2, 4.99
. if (defined(WANT_LAZARUS_DEVEL) && !empty(WANT_LAZARUS_DEVEL)) || ${ARCH:Maarch64}
diff --git a/java/Makefile b/java/Makefile
--- a/java/Makefile
+++ b/java/Makefile
@@ -90,6 +90,7 @@
SUBDIR += openjdk22
SUBDIR += openjdk23
SUBDIR += openjdk24
+ SUBDIR += openjdk25
SUBDIR += openjdk8
SUBDIR += openjdk8-jre
SUBDIR += openjfx14
diff --git a/java/openjdk25/Makefile b/java/openjdk25/Makefile
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/Makefile
@@ -0,0 +1,188 @@
+PORTNAME= openjdk
+DISTVERSIONPREFIX= jdk-
+DISTVERSION= ${JDK_FULL_VERSION:S/.0.0//}
+
+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/25/
+
+LICENSE= GPLv2
+
+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
+
+NO_CCACHE= yes
+
+# Suppress passing -j to do-build target via Mk/bsd.port.mk
+# In the JDK build the number of parallel jobs is passed in via configure --with-num-cores=N
+_MAKE_JOBS= #
+MAKE_ENV= CLASSPATH="" \
+ JAVA_HOME="" \
+ LD_LIBRARY_PATH="" \
+ LOG=cmdlines \
+ MAKEFLAGS=""
+
+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= 25
+JDK_MINOR_VERSION= 0
+JDK_PATCH_VERSION= 0
+JDK_BUILD_NUMBER= 36
+BSD_JDK_VERSION= freebsd-1
+JDK_FULL_VERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION}
+
+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-num-cores=${MAKE_JOBS_NUMBER} \
+ --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}/openjdk25 ${LOCALBASE}/openjdk24
+
+# 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}/openjdk24
+BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk24
+.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/openjdk25/distinfo b/java/openjdk25/distinfo
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761395132
+SHA256 (freebsd-openjdk-jdk-25+36-freebsd-1_GH0.tar.gz) = 3bd387e9c63a6610977cf7785b2887b154fdd9f7a9cf62a80809c1fd1b2eaebf
+SIZE (freebsd-openjdk-jdk-25+36-freebsd-1_GH0.tar.gz) = 119485554
diff --git a/java/openjdk25/files/patch-configure b/java/openjdk25/files/patch-configure
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/files/patch-configure
@@ -0,0 +1,14 @@
+--- configure.orig 2025-10-24 11:51:54 UTC
++++ configure
+@@ -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.
+@@ -36,4 +36,4 @@ fi
+ # 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/openjdk25/files/patch-make_autoconf_flags-cflags.m4 b/java/openjdk25/files/patch-make_autoconf_flags-cflags.m4
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/files/patch-make_autoconf_flags-cflags.m4
@@ -0,0 +1,12 @@
+--- make/autoconf/flags-cflags.m4.orig 2025-09-16 10:24:48 UTC
++++ make/autoconf/flags-cflags.m4
+@@ -780,6 +780,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
+ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
+ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power10"
+ fi
++ if test "x$FLAGS_CPU" = xppc64; then
++ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=powerpc64 -mtune=power5"
++ fi
+ fi
+ if test "x$OPENJDK_TARGET_OS" = xaix; then
+ $1_CFLAGS_CPU="-mcpu=pwr8"
diff --git a/java/openjdk25/files/patch-make_autoconf_libraries.m4 b/java/openjdk25/files/patch-make_autoconf_libraries.m4
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/files/patch-make_autoconf_libraries.m4
@@ -0,0 +1,15 @@
+--- make/autoconf/libraries.m4.orig 2025-10-24 12:39:13 UTC
++++ make/autoconf/libraries.m4
+@@ -212,9 +212,9 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
+ 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/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp b/java/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/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/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
@@ -0,0 +1,20 @@
+--- src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c.orig 2025-06-27 12:18:08 UTC
++++ src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c
+@@ -70,6 +70,9 @@ closeDescriptors(void)
+ int
+ closeDescriptors(void)
+ {
++#if defined(__FreeBSD__)
++ closefrom(STDERR_FILENO + 1);
++#else
+ DIR *dp;
+ struct dirent *dirp;
+ /* leave out standard input/output/error descriptors */
+@@ -114,6 +117,7 @@ closeDescriptors(void)
+
+ (void)closedir(dp);
+
++#endif
+ return 1; // success
+ }
+
diff --git a/java/openjdk25/pkg-descr b/java/openjdk25/pkg-descr
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/pkg-descr
@@ -0,0 +1 @@
+An open-source implementation of the Java Platform, Standard Edition.
diff --git a/java/openjdk25/pkg-message b/java/openjdk25/pkg-message
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/pkg-message
@@ -0,0 +1,15 @@
+[
+{ type: install
+ message: <<EOM
+This OpenJDK implementation may require procfs(5) mounted on /proc.
+
+If you have not done it yet, please do the following:
+
+ mount -t procfs proc /proc
+
+To make it permanent, you need the following lines in /etc/fstab:
+
+ proc /proc procfs rw 0 0
+EOM
+}
+]
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 3, 1:46 PM (16 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29201531
Default Alt Text
D53326.id165134.diff (13 KB)
Attached To
Mode
D53326: java/openjdk25: Add port for openjdk 25
Attached
Detach File
Event Timeline
Log In to Comment