summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/Makefile1
-rw-r--r--java/dbvis/Makefile11
-rw-r--r--java/dbvis/distinfo6
-rw-r--r--java/eclipse/Makefile2
-rw-r--r--java/eclipse/distinfo58
-rw-r--r--java/icedtea-web/Makefile2
-rw-r--r--java/mx4j/Makefile33
-rw-r--r--java/mx4j/distinfo2
-rw-r--r--java/mx4j/pkg-descr10
-rw-r--r--java/netbeans/Makefile2
-rw-r--r--java/openjdk11/Makefile1
-rw-r--r--java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk11/pkg-message6
-rw-r--r--java/openjdk17/Makefile1
-rw-r--r--java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c20
-rw-r--r--java/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c91
-rw-r--r--java/openjdk17/pkg-message6
-rw-r--r--java/openjdk18/Makefile2
-rw-r--r--java/openjdk18/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk18/pkg-message6
-rw-r--r--java/openjdk19/Makefile2
-rw-r--r--java/openjdk19/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk19/pkg-message6
-rw-r--r--java/openjdk20/Makefile1
-rw-r--r--java/openjdk20/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk20/pkg-message6
-rw-r--r--java/openjdk21/Makefile1
-rw-r--r--java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c20
-rw-r--r--java/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk21/pkg-message6
-rw-r--r--java/openjdk22/Makefile1
-rw-r--r--java/openjdk22/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk22/pkg-message6
-rw-r--r--java/openjdk23/Makefile2
-rw-r--r--java/openjdk23/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c20
-rw-r--r--java/openjdk23/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk23/pkg-message5
-rw-r--r--java/openjdk24/Makefile6
-rw-r--r--java/openjdk24/distinfo6
-rw-r--r--java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c20
-rw-r--r--java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk24/pkg-message5
-rw-r--r--java/openjdk8/Makefile1
-rw-r--r--java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c90
-rw-r--r--java/openjdk8/pkg-message6
-rw-r--r--java/openjfx14/Makefile4
-rw-r--r--java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessor.h14
-rw-r--r--java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessorLibxslt.cpp14
48 files changed, 1077 insertions, 137 deletions
diff --git a/java/Makefile b/java/Makefile
index 432e6794f049..829261f9440b 100644
--- a/java/Makefile
+++ b/java/Makefile
@@ -75,7 +75,6 @@
SUBDIR += linux-oracle-jre18
SUBDIR += linux-oracle-serverjre10
SUBDIR += mmake
- SUBDIR += mx4j
SUBDIR += netbeans
SUBDIR += netrexx
SUBDIR += netty
diff --git a/java/dbvis/Makefile b/java/dbvis/Makefile
index 9d86fc854342..75996b2d32a2 100644
--- a/java/dbvis/Makefile
+++ b/java/dbvis/Makefile
@@ -1,5 +1,5 @@
PORTNAME= dbvis
-DISTVERSION= 25.2
+DISTVERSION= 25.2.2
CATEGORIES= java databases
MASTER_SITES= https://www.dbvis.com/product_download/${PORTNAME}-${DISTVERSION}/media/ \
https://storage.googleapis.com/${PORTNAME}-download/product_download/${PORTNAME}-${DISTVERSION}/media/
@@ -25,9 +25,12 @@ WRKSRC= ${WRKDIR}/DbVisualizer
PLIST_FILES= bin/dbvis
do-install:
- cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
- cd ${STAGEDIR}${PREFIX}/bin && ${LN} -s ../share/dbvis/dbvis dbvis
- ${CHMOD} a+x ${STAGEDIR}${DATADIR}/dbvis
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} \
+ "! ( -name dbvis -o -name dbviscmd.sh -o -name dbvisgui.sh )")
+ ${INSTALL_SCRIPT} ${WRKSRC}/dbvis ${STAGEDIR}${DATADIR}
+ ${INSTALL_SCRIPT} ${WRKSRC}/dbviscmd.sh ${STAGEDIR}${DATADIR}
+ ${INSTALL_SCRIPT} ${WRKSRC}/dbvisgui.sh ${STAGEDIR}${DATADIR}
+ ${RLN} ${STAGEDIR}${DATADIR}/dbvis ${STAGEDIR}${PREFIX}/bin/dbvis
post-install:
${FIND} ${STAGEDIR}${DATADIR} -not -type d \
diff --git a/java/dbvis/distinfo b/java/dbvis/distinfo
index 8c117038a040..d5a281643c7a 100644
--- a/java/dbvis/distinfo
+++ b/java/dbvis/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750800000
-SHA256 (dbvis_linux_25_2.tar.gz) = af8ed4c4d8bc4e7f3a018a43b9ee4bfefb34dd906fbf4c36c5018c10cbdd22c2
-SIZE (dbvis_linux_25_2.tar.gz) = 116693845
+TIMESTAMP = 1752525252
+SHA256 (dbvis_linux_25_2_2.tar.gz) = e9e59e38b40dd97f4d4f4067dc632a2a4255a455fd3925b1911116ec1f437a84
+SIZE (dbvis_linux_25_2_2.tar.gz) = 116830510
diff --git a/java/eclipse/Makefile b/java/eclipse/Makefile
index 586736265dd6..7b4ae20d3e4f 100644
--- a/java/eclipse/Makefile
+++ b/java/eclipse/Makefile
@@ -1,5 +1,5 @@
PORTNAME= eclipse
-DISTVERSION= 4.35
+DISTVERSION= 4.36
CATEGORIES= java devel
ECLIPSE_TAG= R${DISTVERSION:S|.|_|g}
diff --git a/java/eclipse/distinfo b/java/eclipse/distinfo
index 0a2394b33a62..5408ac479ff0 100644
--- a/java/eclipse/distinfo
+++ b/java/eclipse/distinfo
@@ -1,29 +1,29 @@
-TIMESTAMP = 1743576596
-SHA256 (eclipse/chirontt-eclipse.platform.releng.aggregator-4.35-R4_35_maintenance_GH0.tar.gz) = 2fcb4b9958d13e58f758c3c1a0c10b941c0d5a745b128aa93a73a4ae9f67212c
-SIZE (eclipse/chirontt-eclipse.platform.releng.aggregator-4.35-R4_35_maintenance_GH0.tar.gz) = 26236823
-SHA256 (eclipse/eclipse-jdt-eclipse.jdt-R4_35_GH0.tar.gz) = 46823539473fd9a4e3f976f14e7bdad3c6730a22163413cae1e0334e68132c84
-SIZE (eclipse/eclipse-jdt-eclipse.jdt-R4_35_GH0.tar.gz) = 39729
-SHA256 (eclipse/eclipse-jdt-eclipse.jdt.core-R4_35_GH0.tar.gz) = 8ba8a83865d2922d0f0b86985b34372aa3c3ea6e25f6a0512752ea9ab27b9c07
-SIZE (eclipse/eclipse-jdt-eclipse.jdt.core-R4_35_GH0.tar.gz) = 15659847
-SHA256 (eclipse/eclipse-jdt-eclipse.jdt.core.binaries-R4_35_GH0.tar.gz) = 5d76780c7bde91d35fe13d78c10c0bf47115e9d444389243c8df67e92ba1f569
-SIZE (eclipse/eclipse-jdt-eclipse.jdt.core.binaries-R4_35_GH0.tar.gz) = 34885476
-SHA256 (eclipse/eclipse-jdt-eclipse.jdt.debug-R4_35_GH0.tar.gz) = 08162d9029ccbbf61338e1281f3c17e6271ea726e8a1ec0cf71c824bc63b1e27
-SIZE (eclipse/eclipse-jdt-eclipse.jdt.debug-R4_35_GH0.tar.gz) = 2177096
-SHA256 (eclipse/eclipse-jdt-eclipse.jdt.ui-R4_35_GH0.tar.gz) = 460f3dd79ab48a68c7f91b7633c5d01faa1770741d0cfcc37174a23fdbe5e893
-SIZE (eclipse/eclipse-jdt-eclipse.jdt.ui-R4_35_GH0.tar.gz) = 24041044
-SHA256 (eclipse/chirontt-eclipse.pde-R4_35_maintenance_GH0.tar.gz) = be94fb6edd85240c995125ba04c90806e68f13acc86333f3cdd755b11a07d68c
-SIZE (eclipse/chirontt-eclipse.pde-R4_35_maintenance_GH0.tar.gz) = 35112342
-SHA256 (eclipse/chirontt-eclipse.platform-R4_35_maintenance_GH0.tar.gz) = 6f4c89696253e60053b89dfb961f9542d033eef2e62a75869883fbc1867166e5
-SIZE (eclipse/chirontt-eclipse.platform-R4_35_maintenance_GH0.tar.gz) = 16489404
-SHA256 (eclipse/chirontt-eclipse.platform.swt-R4_35_maintenance_GH0.tar.gz) = e390e06d0344899758b02409ba879c889f2ee106a3126f328dbb6a1156d5b872
-SIZE (eclipse/chirontt-eclipse.platform.swt-R4_35_maintenance_GH0.tar.gz) = 9218730
-SHA256 (eclipse/chirontt-eclipse.platform.ui-R4_35_maintenance_GH0.tar.gz) = 65fd3630cf3bc4bc0e6578cc8b253f4a5ff9ccecfaa2ecde2caa21038c83c65d
-SIZE (eclipse/chirontt-eclipse.platform.ui-R4_35_maintenance_GH0.tar.gz) = 15572004
-SHA256 (eclipse/chirontt-equinox-R4_35_maintenance_GH0.tar.gz) = c751ee64dcd8a99ede5683d87227b0aba91cfab75295aaf8eb26ad91c0a42ce6
-SIZE (eclipse/chirontt-equinox-R4_35_maintenance_GH0.tar.gz) = 3593501
-SHA256 (eclipse/chirontt-equinox.binaries-R4_35_maintenance_GH0.tar.gz) = 679126ad2bb35b946a9e02c3e0177db06ea10a248ac58bc4f7f41fe2b9f9e295
-SIZE (eclipse/chirontt-equinox.binaries-R4_35_maintenance_GH0.tar.gz) = 1621098
-SHA256 (eclipse/chirontt-p2-R4_35_maintenance_GH0.tar.gz) = 9df1e4eef2095f0090b373f18a5806b1c947a8412a3f3143436f2d9b07b8dba8
-SIZE (eclipse/chirontt-p2-R4_35_maintenance_GH0.tar.gz) = 53845413
-SHA256 (eclipse/NorbertXYZ-eclipse-maven-4.35_GH0.tar.gz) = 121a6015ee06fbc157afab0f44eb6e4afde98e7a969f91de315c816f4ba87d70
-SIZE (eclipse/NorbertXYZ-eclipse-maven-4.35_GH0.tar.gz) = 495455311
+TIMESTAMP = 1752913239
+SHA256 (eclipse/chirontt-eclipse.platform.releng.aggregator-4.36-R4_36_maintenance_GH0.tar.gz) = 58d6734c7dd334d416b7d0255b3d71b11ee20cb7b790c0c7c6679727d0fd3611
+SIZE (eclipse/chirontt-eclipse.platform.releng.aggregator-4.36-R4_36_maintenance_GH0.tar.gz) = 26211750
+SHA256 (eclipse/eclipse-jdt-eclipse.jdt-R4_36_GH0.tar.gz) = d537c10f1f7bd9159e1877c6fe8ebeafea7132e98ff5ebe6b9b09717203c5677
+SIZE (eclipse/eclipse-jdt-eclipse.jdt-R4_36_GH0.tar.gz) = 39974
+SHA256 (eclipse/eclipse-jdt-eclipse.jdt.core-R4_36_GH0.tar.gz) = c2e292fd897bf6987c2f5828b3efd6a61634837f7c973842bf6fb8c11acee28f
+SIZE (eclipse/eclipse-jdt-eclipse.jdt.core-R4_36_GH0.tar.gz) = 15673901
+SHA256 (eclipse/eclipse-jdt-eclipse.jdt.core.binaries-R4_36_GH0.tar.gz) = c191bc12667e600f63844dea12b01f821094773e8bf02e5eb0ec981aaf97c2bc
+SIZE (eclipse/eclipse-jdt-eclipse.jdt.core.binaries-R4_36_GH0.tar.gz) = 34885784
+SHA256 (eclipse/eclipse-jdt-eclipse.jdt.debug-R4_36_GH0.tar.gz) = 705d965e1941593f58eb03bf4287f220a285ff7d6f9edc2d0d7e033f4e314946
+SIZE (eclipse/eclipse-jdt-eclipse.jdt.debug-R4_36_GH0.tar.gz) = 2377734
+SHA256 (eclipse/eclipse-jdt-eclipse.jdt.ui-R4_36_GH0.tar.gz) = 034ab6325f5d4c30129d89dcb89d1ee3a7a2554a4ad6d5af5a4e7d17d8cc7a7c
+SIZE (eclipse/eclipse-jdt-eclipse.jdt.ui-R4_36_GH0.tar.gz) = 25031173
+SHA256 (eclipse/chirontt-eclipse.pde-R4_36_maintenance_GH0.tar.gz) = f0bd123252afe25b730d1cd56a5e2e134914b2199846cb9f10402a5e0a373fef
+SIZE (eclipse/chirontt-eclipse.pde-R4_36_maintenance_GH0.tar.gz) = 36060538
+SHA256 (eclipse/chirontt-eclipse.platform-R4_36_maintenance_GH0.tar.gz) = 582f5eb27de0316b228fc3fa0d962a18ed2c2cd320644a575e95139f63de9a35
+SIZE (eclipse/chirontt-eclipse.platform-R4_36_maintenance_GH0.tar.gz) = 16630323
+SHA256 (eclipse/chirontt-eclipse.platform.swt-R4_36_maintenance_GH0.tar.gz) = 011eba684af94e73f26dd878c941a59845ab899cdba33f45d2976c2560fd0fb0
+SIZE (eclipse/chirontt-eclipse.platform.swt-R4_36_maintenance_GH0.tar.gz) = 10658980
+SHA256 (eclipse/chirontt-eclipse.platform.ui-R4_36_maintenance_GH0.tar.gz) = c66604fb01f6d5614cb67b201c1f94273e5ea3721fe6e115ba1b24a766bc6477
+SIZE (eclipse/chirontt-eclipse.platform.ui-R4_36_maintenance_GH0.tar.gz) = 16572318
+SHA256 (eclipse/chirontt-equinox-R4_36_maintenance_GH0.tar.gz) = f6f276d6d8d69fa0cc4c9fdd1693d8bb8be98074fc9b8ce86cf2e709ab627118
+SIZE (eclipse/chirontt-equinox-R4_36_maintenance_GH0.tar.gz) = 3634382
+SHA256 (eclipse/chirontt-equinox.binaries-R4_36_maintenance_GH0.tar.gz) = 40d14c0ce3963220c21df37274348dd014973ffd20c4cc1a17ceb2ae9c7990d7
+SIZE (eclipse/chirontt-equinox.binaries-R4_36_maintenance_GH0.tar.gz) = 1620956
+SHA256 (eclipse/chirontt-p2-R4_36_maintenance_GH0.tar.gz) = 74ec993e52abb83641e12e0438bc4a9f0075a2476a17fb1c6bde4f05ff872eac
+SIZE (eclipse/chirontt-p2-R4_36_maintenance_GH0.tar.gz) = 54033925
+SHA256 (eclipse/NorbertXYZ-eclipse-maven-4.36_GH0.tar.gz) = 0d26e1f29db214bcf8f842eca5c352f947ca9cd0906ce6d0df9b0b44bc9f9c7d
+SIZE (eclipse/NorbertXYZ-eclipse-maven-4.36_GH0.tar.gz) = 531877628
diff --git a/java/icedtea-web/Makefile b/java/icedtea-web/Makefile
index 86f93e784652..72213cdd4e27 100644
--- a/java/icedtea-web/Makefile
+++ b/java/icedtea-web/Makefile
@@ -1,7 +1,7 @@
PORTNAME= icedtea-web
PORTVERSION= 1.8.8
DISTVERSIONPREFIX= icedtea-web-
-PORTREVISION= 26
+PORTREVISION= 27
CATEGORIES= java www
MAINTAINER= java@FreeBSD.org
diff --git a/java/mx4j/Makefile b/java/mx4j/Makefile
deleted file mode 100644
index 705cc062fbae..000000000000
--- a/java/mx4j/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-PORTNAME= mx4j
-PORTVERSION= 3.0.2
-PORTREVISION= 1
-CATEGORIES= java devel
-MASTER_SITES= SF/${PORTNAME}/MX4J%20Binary/${PORTVERSION}
-
-MAINTAINER= ports@FreeBSD.org
-COMMENT= Open Source implementation of the Java Management Extensions (JMX)
-WWW= https://mx4j.sourceforge.net
-
-DEPRECATED= Abandoned upstream, no activity since 2010
-EXPIRATION_DATE=2025-06-30
-
-USES= java
-
-NO_BUILD= yes
-
-JARFILES= mx4j-examples.jar mx4j-impl.jar mx4j-jmx.jar \
- mx4j-remote.jar mx4j-rimpl.jar mx4j-rjmx.jar \
- mx4j-soap.war mx4j-tools.jar mx4j.jar
-
-PLIST_FILES= ${JARFILES:S,^,%%JAVAJARDIR%%/,}
-PORTDOCS= *
-PORTEXAMPLES= *
-
-OPTIONS_DEFINE= DOCS EXAMPLES
-
-do-install:
- (cd ${WRKSRC}/lib && ${INSTALL_DATA} ${JARFILES} ${STAGEDIR}${JAVAJARDIR})
- (cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
- (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
-
-.include <bsd.port.mk>
diff --git a/java/mx4j/distinfo b/java/mx4j/distinfo
deleted file mode 100644
index ba556f0e5baa..000000000000
--- a/java/mx4j/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (mx4j-3.0.2.tar.gz) = 282bd68e517aba3d0f5bbf76f90c3c09e446c529e7796467ab7de65398bb1115
-SIZE (mx4j-3.0.2.tar.gz) = 4555894
diff --git a/java/mx4j/pkg-descr b/java/mx4j/pkg-descr
deleted file mode 100644
index 786e7ee0509e..000000000000
--- a/java/mx4j/pkg-descr
+++ /dev/null
@@ -1,10 +0,0 @@
-MX4J is a project to build an Open Source implementation of the
-Java(TM) Management Extensions (JMX) and of the JMX Remote API
-(JSR 160) specifications, and to build tools relating to JMX.
-
-JMX is an optional package for J2SE that provides a standard
-way to manage applications. It can also be used to wrap legacy
-systems and provide a standard interface to the outside world,
-enabling the development of web services. JMX allows developers
-to write more modular and loosely coupled system components and
-reduce the complexity of large, interoperating systems.
diff --git a/java/netbeans/Makefile b/java/netbeans/Makefile
index 1a1dffbbdc13..0a87858e51b3 100644
--- a/java/netbeans/Makefile
+++ b/java/netbeans/Makefile
@@ -4,7 +4,7 @@ CATEGORIES= java devel
MASTER_SITES= APACHE/netbeans/netbeans/${PORTVERSION}/
DISTNAME= netbeans-${DISTVERSION}-bin
-MAINTAINER= kwm@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Modular, standards-based integrated development environment
WWW= https://netbeans.apache.org/
diff --git a/java/openjdk11/Makefile b/java/openjdk11/Makefile
index 25c3ae414590..a5d9e29dc2aa 100644
--- a/java/openjdk11/Makefile
+++ b/java/openjdk11/Makefile
@@ -1,6 +1,7 @@
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}
diff --git a/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..4983d68853d1
--- /dev/null
+++ b/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2025-04-19 23:57:10 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -261,23 +262,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -487,6 +508,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent64* dentp;
diff --git a/java/openjdk11/pkg-message b/java/openjdk11/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk11/pkg-message
+++ b/java/openjdk11/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk17/Makefile b/java/openjdk17/Makefile
index 5f9671287f89..6fe93311d295 100644
--- a/java/openjdk17/Makefile
+++ b/java/openjdk17/Makefile
@@ -1,6 +1,7 @@
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}
diff --git a/java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
index 000000000000..80ae4c90cdf7
--- /dev/null
+++ b/java/openjdk17/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/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..1131ff26e268
--- /dev/null
+++ b/java/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,91 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2025-04-19 18:17:03 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -178,23 +179,45 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ /* if (kve->kve_type != KVME_TYPE_VNODE)
++ continue;*/
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -404,6 +427,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk17/pkg-message b/java/openjdk17/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk17/pkg-message
+++ b/java/openjdk17/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk18/Makefile b/java/openjdk18/Makefile
index f2afc74762f9..2ef6fa17ed08 100644
--- a/java/openjdk18/Makefile
+++ b/java/openjdk18/Makefile
@@ -1,7 +1,7 @@
PORTNAME= openjdk
DISTVERSIONPREFIX= jdk-
DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION}
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= java devel
PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION}
diff --git a/java/openjdk18/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk18/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..0e4c9e8aa76a
--- /dev/null
+++ b/java/openjdk18/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2022-07-20 22:54:48 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -178,23 +179,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -404,6 +425,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk18/pkg-message b/java/openjdk18/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk18/pkg-message
+++ b/java/openjdk18/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk19/Makefile b/java/openjdk19/Makefile
index 76e891045906..73c086d5d5ed 100644
--- a/java/openjdk19/Makefile
+++ b/java/openjdk19/Makefile
@@ -1,7 +1,7 @@
PORTNAME= openjdk
DISTVERSIONPREFIX= jdk-
DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= java devel
PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION}
diff --git a/java/openjdk19/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk19/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..0e4c9e8aa76a
--- /dev/null
+++ b/java/openjdk19/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2022-07-20 22:54:48 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -178,23 +179,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -404,6 +425,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk19/pkg-message b/java/openjdk19/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk19/pkg-message
+++ b/java/openjdk19/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk20/Makefile b/java/openjdk20/Makefile
index cc25cb796b82..a4035e25e6bf 100644
--- a/java/openjdk20/Makefile
+++ b/java/openjdk20/Makefile
@@ -1,6 +1,7 @@
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}
diff --git a/java/openjdk20/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk20/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk20/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk20/pkg-message b/java/openjdk20/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk20/pkg-message
+++ b/java/openjdk20/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk21/Makefile b/java/openjdk21/Makefile
index c8dccf841f5f..3f4f39194c65 100644
--- a/java/openjdk21/Makefile
+++ b/java/openjdk21/Makefile
@@ -3,6 +3,7 @@ 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}
+PORTREVISION= 1
MAINTAINER= java@FreeBSD.org
COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION}
diff --git a/java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
index 000000000000..80ae4c90cdf7
--- /dev/null
+++ b/java/openjdk21/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/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk21/pkg-message b/java/openjdk21/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk21/pkg-message
+++ b/java/openjdk21/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk22/Makefile b/java/openjdk22/Makefile
index 1abbc17ca84e..d81cbb146655 100644
--- a/java/openjdk22/Makefile
+++ b/java/openjdk22/Makefile
@@ -1,6 +1,7 @@
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}
diff --git a/java/openjdk22/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk22/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk22/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk22/pkg-message b/java/openjdk22/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk22/pkg-message
+++ b/java/openjdk22/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjdk23/Makefile b/java/openjdk23/Makefile
index 5706851ce9df..009beccc3d76 100644
--- a/java/openjdk23/Makefile
+++ b/java/openjdk23/Makefile
@@ -3,7 +3,7 @@ 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}
-PORTREVISION= 1
+PORTREVISION= 2
MAINTAINER= java@FreeBSD.org
COMMENT= Java Development Kit ${JDK_MAJOR_VERSION}
diff --git a/java/openjdk23/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk23/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
index 000000000000..80ae4c90cdf7
--- /dev/null
+++ b/java/openjdk23/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/openjdk23/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk23/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk23/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk23/pkg-message b/java/openjdk23/pkg-message
index 2ea3d87d89c8..c072654ad070 100644
--- a/java/openjdk23/pkg-message
+++ b/java/openjdk23/pkg-message
@@ -1,17 +1,14 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
-procfs(5) mounted on /proc.
+This OpenJDK implementation may require 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
}
diff --git a/java/openjdk24/Makefile b/java/openjdk24/Makefile
index a3a1acc22792..454ef1d87149 100644
--- a/java/openjdk24/Makefile
+++ b/java/openjdk24/Makefile
@@ -35,7 +35,7 @@ CPE_VENDOR= oracle
USE_GITHUB= yes
GH_ACCOUNT= freebsd
GH_PROJECT= openjdk
-GH_TAGNAME= jdk-24.0.1-ga-freebsd-1
+GH_TAGNAME= jdk-24.0.2-ga-freebsd-1
NO_CCACHE= yes
@@ -60,8 +60,8 @@ NOPRECIOUSMAKEVARS= yes
JDK_MAJOR_VERSION= 24
JDK_MINOR_VERSION= 0
-JDK_PATCH_VERSION= 1
-JDK_BUILD_NUMBER= 9
+JDK_PATCH_VERSION= 2
+JDK_BUILD_NUMBER= 12
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
diff --git a/java/openjdk24/distinfo b/java/openjdk24/distinfo
index 2fa838f9fba2..869ee42cffd6 100644
--- a/java/openjdk24/distinfo
+++ b/java/openjdk24/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745490330
-SHA256 (freebsd-openjdk-jdk-24.0.1+9-1-jdk-24.0.1-ga-freebsd-1_GH0.tar.gz) = f9a5a14ba9205bcb6bced5a153d0d726d03c9ffdd459171683a9ade9ac31ea4e
-SIZE (freebsd-openjdk-jdk-24.0.1+9-1-jdk-24.0.1-ga-freebsd-1_GH0.tar.gz) = 120804490
+TIMESTAMP = 1752740904
+SHA256 (freebsd-openjdk-jdk-24.0.2+12-1-jdk-24.0.2-ga-freebsd-1_GH0.tar.gz) = 2d8ae839763932bbc5d85f1a129a0ec9c972af59b40eb2b3e7bacb238a67f132
+SIZE (freebsd-openjdk-jdk-24.0.2+12-1-jdk-24.0.2-ga-freebsd-1_GH0.tar.gz) = 120897722
diff --git a/java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
index 000000000000..80ae4c90cdf7
--- /dev/null
+++ b/java/openjdk24/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/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk24/pkg-message b/java/openjdk24/pkg-message
index 2ea3d87d89c8..a266eda414d0 100644
--- a/java/openjdk24/pkg-message
+++ b/java/openjdk24/pkg-message
@@ -1,17 +1,14 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
-procfs(5) mounted on /proc.
+This OpenJDK implementation may requires 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
}
diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile
index 7e8727685aa0..4c820c1fbb69 100644
--- a/java/openjdk8/Makefile
+++ b/java/openjdk8/Makefile
@@ -1,5 +1,6 @@
PORTNAME= openjdk
PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER}.${BSD_JDK_VERSION}
+PORTREVISION= 1
CATEGORIES= java devel
MASTER_SITES= LOCAL/jkim:jtreg
PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION}
diff --git a/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c b/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c
new file mode 100644
index 000000000000..c542431a3ca3
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c
@@ -0,0 +1,90 @@
+--- jdk/src/solaris/native/sun/management/OperatingSystemImpl.c.orig 2025-04-19 16:48:54 UTC
++++ jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
+@@ -57,6 +57,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -266,23 +267,45 @@ Java_sun_management_OperatingSystemImpl_getCommittedVi
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -486,6 +509,21 @@ Java_sun_management_OperatingSystemImpl_getOpenFileDes
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent dbuf;
diff --git a/java/openjdk8/pkg-message b/java/openjdk8/pkg-message
index fcb6defe8dcd..811dcb1e3b58 100644
--- a/java/openjdk8/pkg-message
+++ b/java/openjdk8/pkg-message
@@ -1,17 +1,15 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation may require fdescfs(5) mounted on /dev/fd
-and procfs(5) mounted on /proc for some applications.
+This OpenJDK implementation may require procfs(5) mounted on /proc for some
+applications.
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
}
diff --git a/java/openjfx14/Makefile b/java/openjfx14/Makefile
index f59a0ef4239d..13cbd11ceaa5 100644
--- a/java/openjfx14/Makefile
+++ b/java/openjfx14/Makefile
@@ -1,6 +1,6 @@
PORTNAME= openjfx
DISTVERSION= 14.0.2.1+1
-PORTREVISION= 16
+PORTREVISION= 17
CATEGORIES= java x11-toolkits devel
MASTER_SITES= https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-core/7.7.1/:core \
https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-grouping/7.7.1/:grouping \
@@ -23,8 +23,6 @@ WWW= https://openjdk.java.net/projects/openjfx/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
-BROKEN= Fails to build with libxml2 2.13+, error: no matching constructor for initialization of 'XMLDocumentParserScope'
-
ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le
BUILD_DEPENDS= zip:archivers/zip \
diff --git a/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessor.h b/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessor.h
new file mode 100644
index 000000000000..cc2e056db3e0
--- /dev/null
+++ b/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessor.h
@@ -0,0 +1,14 @@
+--- modules/javafx.web/src/main/native/Source/WebCore/xml/XSLTProcessor.h.orig 2020-07-17 10:21:33 UTC
++++ modules/javafx.web/src/main/native/Source/WebCore/xml/XSLTProcessor.h
+@@ -62,7 +62,11 @@ class XSLTProcessor : public RefCounted<XSLTProcessor>
+
+ void reset();
+
++#if LIBXML_VERSION >= 21200
++ static void parseErrorFunc(void* userData, const xmlError*);
++#else
+ static void parseErrorFunc(void* userData, xmlError*);
++#endif
+ static void genericErrorFunc(void* userData, const char* msg, ...);
+
+ // Only for libXSLT callbacks
diff --git a/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessorLibxslt.cpp b/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessorLibxslt.cpp
new file mode 100644
index 000000000000..d74934a317b2
--- /dev/null
+++ b/java/openjfx14/files/patch-modules_javafx.web_src_main_native_Source_WebCore_xml_XSLTProcessorLibxslt.cpp
@@ -0,0 +1,14 @@
+--- modules/javafx.web/src/main/native/Source/WebCore/xml/XSLTProcessorLibxslt.cpp.orig 2020-07-17 10:21:33 UTC
++++ modules/javafx.web/src/main/native/Source/WebCore/xml/XSLTProcessorLibxslt.cpp
+@@ -60,7 +60,11 @@ void XSLTProcessor::genericErrorFunc(void*, const char
+ // It would be nice to do something with this error message.
+ }
+
++#if LIBXML_VERSION >= 21200
++void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error)
++#else
+ void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error)
++#endif
+ {
+ PageConsoleClient* console = static_cast<PageConsoleClient*>(userData);
+ if (!console)