Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148654184
D53326.1787906100.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
11 KB
Referenced Files
None
Subscribers
None
D53326.1787906100.diff
View Options
diff --git a/java/openjdk25/Makefile b/java/openjdk25/Makefile
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/Makefile
@@ -0,0 +1,190 @@
+PORTNAME= openjdk
+DISTVERSIONPREFIX= jdk-
+DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION}
+PORTREVISION= 1
+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
+
+# 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-25-ga-freebsd-1
+
+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= 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-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}/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/openjdk25/distinfo b/java/openjdk25/distinfo
new file mode 100644
--- /dev/null
+++ b/java/openjdk25/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761310711
+SHA256 (freebsd-openjdk-jdk-25.0.0+36-1-jdk-25-ga-freebsd-1_GH0.tar.gz) = 532a3e72917628182297014aef87d1a91245f3262b9463fe239deb961cd5d885
+SIZE (freebsd-openjdk-jdk-25.0.0+36-1-jdk-25-ga-freebsd-1_GH0.tar.gz) = 119491341
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 requires 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
Fri, Aug 28, 8:35 AM (13 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29474235
Default Alt Text
D53326.1787906100.diff (11 KB)
Attached To
Mode
D53326: java/openjdk25: Add port for openjdk 25
Attached
Detach File
Event Timeline
Log In to Comment