pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/openjdk21



Module Name:    pkgsrc
Committed By:   ryoon
Date:           Wed Nov 22 14:06:50 UTC 2023

Added Files:
        pkgsrc/lang/openjdk21: DESCR Makefile PLIST bootstrap.mk buildlink3.mk
            distinfo hacks.mk options.mk
        pkgsrc/lang/openjdk21/patches: patch-make_autoconf_buildjdk-spec.gmk.in
            patch-make_autoconf_flags-cflags.m4 patch-make_autoconf_hotspot.m4
            patch-make_autoconf_lib-alsa.m4 patch-make_autoconf_lib-bundled.m4
            patch-make_autoconf_lib-freetype.m4 patch-make_autoconf_lib-x11.m4
            patch-make_lib_Awt2dLibraries.gmk
            patch-src_hotspot_os_bsd_os__bsd.cpp
            patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties
            patch-src_java.desktop_unix_native_common_awt_fontpath.c

Log Message:
lang/openjdk21: import openjdk21-1.21.0.1.12

Open-source implementation of the Java Platform, Standard Edition.
This package privides OpenJDK 21 LTS.

This package is NOT certified to be compatible with any Java standard.
Use at own risk.

Mandatory trademark notice:
    "OpenJDK is a trademark or registered trademark of Oracle America,
     Inc. in the United States and other countries."


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/openjdk21/DESCR \
    pkgsrc/lang/openjdk21/Makefile pkgsrc/lang/openjdk21/PLIST \
    pkgsrc/lang/openjdk21/bootstrap.mk pkgsrc/lang/openjdk21/buildlink3.mk \
    pkgsrc/lang/openjdk21/distinfo pkgsrc/lang/openjdk21/hacks.mk \
    pkgsrc/lang/openjdk21/options.mk
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_buildjdk-spec.gmk.in \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_flags-cflags.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_hotspot.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-alsa.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-bundled.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-freetype.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-x11.m4 \
    pkgsrc/lang/openjdk21/patches/patch-make_lib_Awt2dLibraries.gmk \
    pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os_bsd_os__bsd.cpp \
    pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties \
    pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/lang/openjdk21/DESCR
diff -u /dev/null pkgsrc/lang/openjdk21/DESCR:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/DESCR Wed Nov 22 14:06:50 2023
@@ -0,0 +1,9 @@
+Open-source implementation of the Java Platform, Standard Edition.
+This package privides OpenJDK 21 LTS.
+
+This package is NOT certified to be compatible with any Java standard.
+Use at own risk.
+
+Mandatory trademark notice:
+    "OpenJDK is a trademark or registered trademark of Oracle America,
+     Inc. in the United States and other countries."
Index: pkgsrc/lang/openjdk21/Makefile
diff -u /dev/null pkgsrc/lang/openjdk21/Makefile:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/Makefile      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,210 @@
+# $NetBSD: Makefile,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+DISTNAME=      jdk21u-${GITHUB_TAG:C/\+/-/}
+PKGNAME=       openjdk21-1.${GITHUB_TAG:C/\+/./:C/jdk-([.0-9]+).*/\1/}
+CATEGORIES=    lang
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=battleblow/}
+GITHUB_PROJECT=        jdk21u
+GITHUB_TAG=    jdk-21.0.1+12-1
+
+MAINTAINER=    ryoon%NetBSD.org@localhost
+HOMEPAGE=      https://openjdk.java.net/
+COMMENT=       Open-source implementation of the Java Platform, 21 LTS
+LICENSE=       gnu-gpl-v2
+
+DISTFILES=     ${DEFAULT_DISTFILES}
+EXTRACT_ONLY=  ${DISTNAME}${EXTRACT_SUFX}
+
+JAVA_NAME=     openjdk21
+JAVA_HOME=     ${PREFIX}/java/${JAVA_NAME}
+JAVA_WRAPPERS= jar jarsigner java javac javadoc javap jcmd jconsole jdb \
+               jdeprscan jdeps jfr jimage jinfo jlink jmap jmod jps \
+               jrunscript jshell jstack jstat jstatd jwebserver keytool \
+               rmiregistry serialver
+
+TOOL_DEPENDS+=         mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
+
+# For alloca()
+BUILDLINK_TRANSFORM+=          opt:-std=c99:-std=gnu99
+BUILDLINK_TRANSFORM+=          opt:-std=c11:-std=gnu11
+BUILDLINK_TRANSFORM+=          opt:-std=c++14:-std=gnu++14
+BUILDLINK_TRANSFORM+=          opt:-std=c++11:-std=gnu++11
+# For NetBSD
+#BUILDLINK_TRANSFORM.NetBSD+=  rm:-ldl
+
+.include "../../mk/bsd.prefs.mk"
+
+# -Wl,--hash-style=gnu is not supported by NetBSD 9.
+.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099900
+BUILDLINK_TRANSFORM+=  opt:-Wl,--hash-style=gnu:-Wl,--hash-style=sysv
+.endif
+
+GNU_CONFIGURE=         yes
+GNU_CONFIGURE_STRICT=  no # generates the configure script during the build
+USE_GNU_CONFIGURE_HOST=        no
+CONFIGURE_SCRIPT=      configure
+CONFIG_SHELL=          bash
+CONFIG_SUB_OVERRIDE+=  make/autoconf/build-aux/config.sub
+CONFIG_GUESS_OVERRIDE+=        make/autoconf/build-aux/config.guess
+CONFIG_SUB_OVERRIDE+=  make/autoconf/build-aux/autoconf-config.sub
+CONFIG_GUESS_OVERRIDE+=        make/autoconf/build-aux/autoconf-config.guess
+USE_LANGUAGES=         c c++
+USE_TOOLS+=            bash gmake pax pkg-config unzip:run zip:run autoconf automake
+UNLIMIT_RESOURCES=     datasize stacksize virtualsize cputime
+
+BUILDLINK_PASSTHRU_DIRS+=      ${ALT_BOOTDIR}
+
+# Try to use less POSIX semaphores (large MAKE_JOBS can consume them all)
+BOOT_JVMARGS=  -XX:+UnlockDiagnosticVMOptions
+
+CONFIGURE_ARGS+=       --openjdk-target=${MACHINE_GNU_PLATFORM}
+CONFIGURE_ARGS+=       --with-boot-jdk=${ALT_BOOTDIR}
+CONFIGURE_ARGS+=       --with-boot-jdk-jvmargs=${BOOT_JVMARGS:Q}
+CONFIGURE_ARGS+=       --with-zlib=system
+CONFIGURE_ARGS+=       --with-giflib=bundled
+CONFIGURE_ARGS+=       --with-lcms=bundled
+CONFIGURE_ARGS+=       --with-cups-include=${BUILDLINK_PREFIX.libcups}/include
+CONFIGURE_ARGS+=       --with-freetype=system
+CONFIGURE_ARGS+=       --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
+CONFIGURE_ARGS+=       --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
+CONFIGURE_ARGS+=       --with-jobs=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+=       --with-num-cores=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+=       --disable-precompiled-headers
+CONFIGURE_ARGS+=       --disable-ccache
+CONFIGURE_ARGS+=       --disable-javac-server
+CONFIGURE_ARGS+=       --with-extra-ldflags="${COMPILER_RPATH_FLAG}${X11BASE}/lib ${COMPILER_RPATH_FLAG}${PREFIX}/java/${JAVA_NAME}/lib ${LDFLAGS}"
+CONFIGURE_ARGS+=       --with-extra-cflags=${CFLAGS:Q}
+CONFIGURE_ARGS+=       --with-extra-cxxflags=${CXXFLAGS:Q}
+CONFIGURE_ARGS+=       --disable-warnings-as-errors
+CONFIGURE_ARGS+=       --with-cacerts-file=${WRKDIR}/cacerts.out
+CONFIGURE_ARGS+=       --with-default-make-target=product-images
+# It is intentional to use CONFIGURE_ARGS instead of CONFIGURE_ENV here.
+CONFIGURE_ARGS+=       USER=pkgsrc
+
+# Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
+MAKE_ENV+=     JAVA_HOME=
+MAKE_ENV+=     CLASSPATH=
+.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} > 099980
+ALL_ENV+=      SED="sed -g"
+.endif
+
+BUILD_OPSYS=                   ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/}
+BUILD_ARCH=                    ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
+BUILDDIR=                      ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
+BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/${JAVA_NAME}/lib
+BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/${JAVA_NAME}/lib/server
+WRKSRC=                                ${WRKDIR}/${DISTNAME}
+
+.include "../../mk/compiler.mk"
+
+.if !empty(PKGSRC_COMPILER:Mclang)
+CONFIGURE_ARGS+=       --with-toolchain-type=clang
+_WRAP_EXTRA_ARGS.CC+=  -Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
+CWRAPPERS_APPEND.cc+=  -Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
+_WRAP_EXTRA_ARGS.CXX+= -Wno-tautological-undefined-compare
+CWRAPPERS_APPEND.cxx+= -Wno-tautological-undefined-compare
+
+BUILDLINK_TRANSFORM+=  rm:-fcheck-new
+BUILDLINK_TRANSFORM+=  rm:-fpch-deps
+.  if ${MACHINE_ARCH} == "x86_64"
+_WRAP_EXTRA_ARGS.CXX+= -mstackrealign
+CWRAPPERS_APPEND.cxx+= -mstackrealign
+.  endif
+.else
+# GCC
+CONFIGURE_ARGS+=       --with-toolchain-type=gcc
+.endif
+
+.include "bootstrap.mk"
+.include "options.mk"
+
+SUBST_CLASSES+=                libpath
+SUBST_STAGE.libpath=   pre-configure
+SUBST_FILES.libpath+=  src/hotspot/os/bsd/os_bsd.cpp
+SUBST_FILES.libpath+=  make/autoconf/flags-cflags.m4
+SUBST_FILES.libpath+=  make/autoconf/lib-bundled.m4
+SUBST_FILES.libpath+=  make/autoconf/lib-freetype.m4
+SUBST_FILES.libpath+=  make/autoconf/lib-x11.m4
+SUBST_VARS.libpath=    PREFIX COMPILER_RPATH_FLAG JAVA_NAME BUILDLINK_PREFIX.zlib X11BASE
+
+SUBST_CLASSES+=                        fontpaths
+SUBST_STAGE.fontpaths=         pre-configure
+SUBST_MESSAGE.fontpaths=       fixing font paths
+SUBST_FILES.fontpaths=         src/java.desktop/bsd/data/fontconfig/fontconfig.properties
+SUBST_FILES.fontpaths+=                src/java.desktop/unix/native/common/awt/fontpath.c
+SUBST_VARS.fontpaths=          PREFIX BUILDLINK_PREFIX.fontconfig
+
+.if ${OPSYS} == "NetBSD"
+# NetBSD's EVFILT_* EV_* are different from FreeBSD/OpenBSD's values.
+SUBST_CLASSES+=                        kqueue
+SUBST_STAGE.kqueue=            pre-configure
+SUBST_MESSAGE.kqueue=          fixing kqueue filter values
+SUBST_FILES.kqueue=            src/java.base/bsd/classes/sun/nio/ch/KQueue.java
+SUBST_SED.kqueue=              -e 's/static final int EVFILT_READ  = -1;/static final int EVFILT_READ  = 0;/'
+SUBST_SED.kqueue+=             -e 's/static final int EVFILT_WRITE = -2;/static final int EVFILT_WRITE = 1;/'
+SUBST_SED.kqueue+=             -e 's/static final int EV_ONESHOT = 0x0010;/static final int EV_ONESHOT = 0x0004;/'
+SUBST_SED.kqueue+=             -e 's/static final int EV_CLEAR   = 0x0020;/static final int EV_CLEAR   = 0x0008;/'
+.endif
+
+PLIST_VARS+=                   internal_vm_compiler jvmci
+.if (${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "aarch64") && !empty(PKG_OPTIONS:Mjdk-hotspot-vm)
+PLIST.internal_vm_compiler=    yes
+PLIST.jvmci=                   yes
+.endif
+
+.if ${OPSYS} == "NetBSD"
+TOOLS_PLATFORM.unzip=
+.endif
+
+post-extract:
+# These libs are bundled w/ the netbsd-9 bootstrap to facilitate building with
+# MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
+.if exists(/lib/libgcc_s.so.1)
+       ${RM} -f ${ALT_BOOTDIR}/lib/libgcc_s.so.1
+.endif
+.if exists(/usr/lib/libstdc++.so.9)
+       ${RM} -f ${ALT_BOOTDIR}/lib/libstdc++.so.9
+.endif
+
+pre-configure: ${WRKDIR}/cacerts.out
+
+${WRKDIR}/cacerts.out:
+       mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts &&              \
+               ${PREFIX}/sbin/mozilla-rootcerts extract
+       ${_ULIMIT_CMD} for cert in ${WRKDIR}/cacerts/*.pem; do                          \
+               ${INFO_MSG} "Importing $$cert" &&                       \
+                ${SETENV} ${CONFIGURE_ENV} LC_ALL=C                    \
+                 ${ALT_BOOTDIR}/bin/keytool                            \
+                 -noprompt                                             \
+                 -importcert                                           \
+                 -keystore ${.TARGET}.tmp                              \
+                 -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
+                 -file $$cert                                          \
+                 -storetype jks                                        \
+                 -storepass changeit;                                  \
+       done
+       mv ${.TARGET}.tmp ${.TARGET}
+
+do-build:
+       rm -f ${WRKSRC}/make/data/fontconfig/*.orig
+       ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib ${MAKE_PROGRAM}
+
+do-install:
+       ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
+       cd ${BUILDDIR}/images/jdk && pax -rwpp .                \
+         ${DESTDIR}${JAVA_HOME}/.
+
+.if ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
+.include "../../audio/alsa-lib/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-alsa=${BUILDLINK_PREFIX.alsa-lib}
+.endif
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+# Headers from CUPS are required to build the native implementation of
+# sun.print.* which is used by java.awt.print.
+BUILDLINK_DEPMETHOD.libcups?=  build
+.include "../../print/libcups/buildlink3.mk"
+.include "../../mk/java-env.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/lang/openjdk21/PLIST
diff -u /dev/null pkgsrc/lang/openjdk21/PLIST:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/PLIST Wed Nov 22 14:06:50 2023
@@ -0,0 +1,600 @@
+@comment $NetBSD: PLIST,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+bin/openjdk21-jar
+bin/openjdk21-jarsigner
+bin/openjdk21-java
+bin/openjdk21-javac
+bin/openjdk21-javadoc
+bin/openjdk21-javap
+bin/openjdk21-jcmd
+bin/openjdk21-jconsole
+bin/openjdk21-jdb
+bin/openjdk21-jdeprscan
+bin/openjdk21-jdeps
+bin/openjdk21-jfr
+bin/openjdk21-jimage
+bin/openjdk21-jinfo
+bin/openjdk21-jlink
+bin/openjdk21-jmap
+bin/openjdk21-jmod
+bin/openjdk21-jps
+bin/openjdk21-jrunscript
+bin/openjdk21-jshell
+bin/openjdk21-jstack
+bin/openjdk21-jstat
+bin/openjdk21-jstatd
+bin/openjdk21-jwebserver
+bin/openjdk21-keytool
+bin/openjdk21-rmiregistry
+bin/openjdk21-serialver
+java/openjdk21/bin/jar
+java/openjdk21/bin/jar.diz
+java/openjdk21/bin/jarsigner
+java/openjdk21/bin/jarsigner.diz
+java/openjdk21/bin/java
+java/openjdk21/bin/java.diz
+java/openjdk21/bin/javac
+java/openjdk21/bin/javac.diz
+java/openjdk21/bin/javadoc
+java/openjdk21/bin/javadoc.diz
+java/openjdk21/bin/javap
+java/openjdk21/bin/javap.diz
+java/openjdk21/bin/jcmd
+java/openjdk21/bin/jcmd.diz
+java/openjdk21/bin/jconsole
+java/openjdk21/bin/jconsole.diz
+java/openjdk21/bin/jdb
+java/openjdk21/bin/jdb.diz
+java/openjdk21/bin/jdeprscan
+java/openjdk21/bin/jdeprscan.diz
+java/openjdk21/bin/jdeps
+java/openjdk21/bin/jdeps.diz
+java/openjdk21/bin/jfr
+java/openjdk21/bin/jfr.diz
+java/openjdk21/bin/jimage
+java/openjdk21/bin/jimage.diz
+java/openjdk21/bin/jinfo
+java/openjdk21/bin/jinfo.diz
+java/openjdk21/bin/jlink
+java/openjdk21/bin/jlink.diz
+java/openjdk21/bin/jmap
+java/openjdk21/bin/jmap.diz
+java/openjdk21/bin/jmod
+java/openjdk21/bin/jmod.diz
+java/openjdk21/bin/jps
+java/openjdk21/bin/jps.diz
+java/openjdk21/bin/jrunscript
+java/openjdk21/bin/jrunscript.diz
+java/openjdk21/bin/jshell
+java/openjdk21/bin/jshell.diz
+java/openjdk21/bin/jstack
+java/openjdk21/bin/jstack.diz
+java/openjdk21/bin/jstat
+java/openjdk21/bin/jstat.diz
+java/openjdk21/bin/jstatd
+java/openjdk21/bin/jstatd.diz
+java/openjdk21/bin/jwebserver
+java/openjdk21/bin/jwebserver.diz
+java/openjdk21/bin/keytool
+java/openjdk21/bin/keytool.diz
+java/openjdk21/bin/rmiregistry
+java/openjdk21/bin/rmiregistry.diz
+java/openjdk21/bin/serialver
+java/openjdk21/bin/serialver.diz
+java/openjdk21/conf/jaxp.properties
+java/openjdk21/conf/logging.properties
+java/openjdk21/conf/management/jmxremote.access
+java/openjdk21/conf/management/jmxremote.password.template
+java/openjdk21/conf/management/management.properties
+java/openjdk21/conf/net.properties
+java/openjdk21/conf/security/java.policy
+java/openjdk21/conf/security/java.security
+java/openjdk21/conf/security/policy/README.txt
+java/openjdk21/conf/security/policy/limited/default_US_export.policy
+java/openjdk21/conf/security/policy/limited/default_local.policy
+java/openjdk21/conf/security/policy/limited/exempt_local.policy
+java/openjdk21/conf/security/policy/unlimited/default_US_export.policy
+java/openjdk21/conf/security/policy/unlimited/default_local.policy
+java/openjdk21/conf/sound.properties
+java/openjdk21/demo/README
+java/openjdk21/demo/jfc/CodePointIM/CodePointIM.jar
+java/openjdk21/demo/jfc/CodePointIM/README.html
+java/openjdk21/demo/jfc/CodePointIM/README_ja.html
+java/openjdk21/demo/jfc/CodePointIM/README_zh_CN.html
+java/openjdk21/demo/jfc/CodePointIM/src.zip
+java/openjdk21/demo/jfc/FileChooserDemo/FileChooserDemo.jar
+java/openjdk21/demo/jfc/FileChooserDemo/README.txt
+java/openjdk21/demo/jfc/FileChooserDemo/src.zip
+java/openjdk21/demo/jfc/Font2DTest/Font2DTest.jar
+java/openjdk21/demo/jfc/Font2DTest/README.txt
+java/openjdk21/demo/jfc/Font2DTest/src.zip
+java/openjdk21/demo/jfc/J2Ddemo/J2Ddemo.jar
+java/openjdk21/demo/jfc/J2Ddemo/README.txt
+java/openjdk21/demo/jfc/J2Ddemo/src.zip
+java/openjdk21/demo/jfc/Metalworks/Metalworks.jar
+java/openjdk21/demo/jfc/Metalworks/README.txt
+java/openjdk21/demo/jfc/Metalworks/src.zip
+java/openjdk21/demo/jfc/Notepad/Notepad.jar
+java/openjdk21/demo/jfc/Notepad/README.txt
+java/openjdk21/demo/jfc/Notepad/src.zip
+java/openjdk21/demo/jfc/SampleTree/README.txt
+java/openjdk21/demo/jfc/SampleTree/SampleTree.jar
+java/openjdk21/demo/jfc/SampleTree/src.zip
+java/openjdk21/demo/jfc/Stylepad/README.txt
+java/openjdk21/demo/jfc/Stylepad/Stylepad.jar
+java/openjdk21/demo/jfc/Stylepad/src.zip
+java/openjdk21/demo/jfc/SwingSet2/README.txt
+java/openjdk21/demo/jfc/SwingSet2/SwingSet2.jar
+java/openjdk21/demo/jfc/SwingSet2/src.zip
+java/openjdk21/demo/jfc/TableExample/README.txt
+java/openjdk21/demo/jfc/TableExample/TableExample.jar
+java/openjdk21/demo/jfc/TableExample/src.zip
+java/openjdk21/demo/jfc/TransparentRuler/README.txt
+java/openjdk21/demo/jfc/TransparentRuler/TransparentRuler.jar
+java/openjdk21/demo/jfc/TransparentRuler/src.zip
+java/openjdk21/demo/nbproject/README.txt
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/build.properties
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/build.xml
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/Font2DTest/build.properties
+java/openjdk21/demo/nbproject/jfc/Font2DTest/build.xml
+java/openjdk21/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/Font2DTest/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/Metalworks/build.properties
+java/openjdk21/demo/nbproject/jfc/Metalworks/build.xml
+java/openjdk21/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/Metalworks/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/Notepad/build.properties
+java/openjdk21/demo/nbproject/jfc/Notepad/build.xml
+java/openjdk21/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/Notepad/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/Notepad/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/SampleTree/build.properties
+java/openjdk21/demo/nbproject/jfc/SampleTree/build.xml
+java/openjdk21/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/SampleTree/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/TableExample/build.properties
+java/openjdk21/demo/nbproject/jfc/TableExample/build.xml
+java/openjdk21/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/TableExample/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/TableExample/nbproject/project.xml
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/build.properties
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/build.xml
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/nbproject/netbeans-targets.xml
+java/openjdk21/demo/nbproject/jfc/TransparentRuler/nbproject/project.xml
+java/openjdk21/demo/nbproject/project.xml
+java/openjdk21/include/classfile_constants.h
+java/openjdk21/include/jawt.h
+java/openjdk21/include/jdwpTransport.h
+java/openjdk21/include/jni.h
+java/openjdk21/include/jvmti.h
+java/openjdk21/include/jvmticmlr.h
+java/openjdk21/include/${LOWER_OPSYS}/jawt_md.h
+java/openjdk21/include/${LOWER_OPSYS}/jni_md.h
+java/openjdk21/jmods/java.base.jmod
+java/openjdk21/jmods/java.compiler.jmod
+java/openjdk21/jmods/java.datatransfer.jmod
+java/openjdk21/jmods/java.desktop.jmod
+java/openjdk21/jmods/java.instrument.jmod
+java/openjdk21/jmods/java.logging.jmod
+java/openjdk21/jmods/java.management.jmod
+java/openjdk21/jmods/java.management.rmi.jmod
+java/openjdk21/jmods/java.naming.jmod
+java/openjdk21/jmods/java.net.http.jmod
+java/openjdk21/jmods/java.prefs.jmod
+java/openjdk21/jmods/java.rmi.jmod
+java/openjdk21/jmods/java.scripting.jmod
+java/openjdk21/jmods/java.se.jmod
+java/openjdk21/jmods/java.security.jgss.jmod
+java/openjdk21/jmods/java.security.sasl.jmod
+java/openjdk21/jmods/java.smartcardio.jmod
+java/openjdk21/jmods/java.sql.jmod
+java/openjdk21/jmods/java.sql.rowset.jmod
+java/openjdk21/jmods/java.transaction.xa.jmod
+java/openjdk21/jmods/java.xml.crypto.jmod
+java/openjdk21/jmods/java.xml.jmod
+java/openjdk21/jmods/jdk.accessibility.jmod
+java/openjdk21/jmods/jdk.attach.jmod
+java/openjdk21/jmods/jdk.charsets.jmod
+java/openjdk21/jmods/jdk.compiler.jmod
+java/openjdk21/jmods/jdk.crypto.cryptoki.jmod
+java/openjdk21/jmods/jdk.crypto.ec.jmod
+java/openjdk21/jmods/jdk.dynalink.jmod
+java/openjdk21/jmods/jdk.editpad.jmod
+java/openjdk21/jmods/jdk.httpserver.jmod
+java/openjdk21/jmods/jdk.incubator.vector.jmod
+java/openjdk21/jmods/jdk.internal.ed.jmod
+java/openjdk21/jmods/jdk.internal.jvmstat.jmod
+java/openjdk21/jmods/jdk.internal.le.jmod
+java/openjdk21/jmods/jdk.internal.opt.jmod
+java/openjdk21/jmods/jdk.internal.vm.ci.jmod
+java/openjdk21/jmods/jdk.internal.vm.compiler.jmod
+java/openjdk21/jmods/jdk.internal.vm.compiler.management.jmod
+java/openjdk21/jmods/jdk.jartool.jmod
+java/openjdk21/jmods/jdk.javadoc.jmod
+java/openjdk21/jmods/jdk.jcmd.jmod
+java/openjdk21/jmods/jdk.jconsole.jmod
+java/openjdk21/jmods/jdk.jdeps.jmod
+java/openjdk21/jmods/jdk.jdi.jmod
+java/openjdk21/jmods/jdk.jdwp.agent.jmod
+java/openjdk21/jmods/jdk.jfr.jmod
+java/openjdk21/jmods/jdk.jlink.jmod
+java/openjdk21/jmods/jdk.jshell.jmod
+java/openjdk21/jmods/jdk.jsobject.jmod
+java/openjdk21/jmods/jdk.jstatd.jmod
+java/openjdk21/jmods/jdk.localedata.jmod
+java/openjdk21/jmods/jdk.management.agent.jmod
+java/openjdk21/jmods/jdk.management.jfr.jmod
+java/openjdk21/jmods/jdk.management.jmod
+java/openjdk21/jmods/jdk.naming.dns.jmod
+java/openjdk21/jmods/jdk.naming.rmi.jmod
+java/openjdk21/jmods/jdk.net.jmod
+java/openjdk21/jmods/jdk.nio.mapmode.jmod
+java/openjdk21/jmods/jdk.random.jmod
+java/openjdk21/jmods/jdk.sctp.jmod
+java/openjdk21/jmods/jdk.security.auth.jmod
+java/openjdk21/jmods/jdk.security.jgss.jmod
+java/openjdk21/jmods/jdk.unsupported.desktop.jmod
+java/openjdk21/jmods/jdk.unsupported.jmod
+java/openjdk21/jmods/jdk.xml.dom.jmod
+java/openjdk21/jmods/jdk.zipfs.jmod
+java/openjdk21/legal/java.base/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.base/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.base/LICENSE
+java/openjdk21/legal/java.base/aes.md
+java/openjdk21/legal/java.base/asm.md
+java/openjdk21/legal/java.base/c-libutl.md
+java/openjdk21/legal/java.base/cldr.md
+java/openjdk21/legal/java.base/icu.md
+java/openjdk21/legal/java.base/public_suffix.md
+java/openjdk21/legal/java.base/unicode.md
+java/openjdk21/legal/java.compiler/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.compiler/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.compiler/LICENSE
+java/openjdk21/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.datatransfer/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.datatransfer/LICENSE
+java/openjdk21/legal/java.desktop/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.desktop/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.desktop/LICENSE
+java/openjdk21/legal/java.desktop/colorimaging.md
+java/openjdk21/legal/java.desktop/giflib.md
+java/openjdk21/legal/java.desktop/harfbuzz.md
+java/openjdk21/legal/java.desktop/jpeg.md
+java/openjdk21/legal/java.desktop/lcms.md
+java/openjdk21/legal/java.desktop/libpng.md
+java/openjdk21/legal/java.desktop/mesa3d.md
+java/openjdk21/legal/java.desktop/pipewire.md
+java/openjdk21/legal/java.desktop/xwd.md
+java/openjdk21/legal/java.instrument/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.instrument/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.instrument/LICENSE
+java/openjdk21/legal/java.logging/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.logging/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.logging/LICENSE
+java/openjdk21/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.management.rmi/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.management.rmi/LICENSE
+java/openjdk21/legal/java.management/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.management/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.management/LICENSE
+java/openjdk21/legal/java.naming/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.naming/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.naming/LICENSE
+java/openjdk21/legal/java.net.http/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.net.http/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.net.http/LICENSE
+java/openjdk21/legal/java.prefs/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.prefs/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.prefs/LICENSE
+java/openjdk21/legal/java.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.rmi/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.rmi/LICENSE
+java/openjdk21/legal/java.scripting/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.scripting/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.scripting/LICENSE
+java/openjdk21/legal/java.se/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.se/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.se/LICENSE
+java/openjdk21/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.security.jgss/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.security.jgss/LICENSE
+java/openjdk21/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.security.sasl/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.security.sasl/LICENSE
+java/openjdk21/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.smartcardio/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.smartcardio/LICENSE
+java/openjdk21/legal/java.smartcardio/pcsclite.md
+java/openjdk21/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.sql.rowset/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.sql.rowset/LICENSE
+java/openjdk21/legal/java.sql/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.sql/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.sql/LICENSE
+java/openjdk21/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.transaction.xa/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.transaction.xa/LICENSE
+java/openjdk21/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.xml.crypto/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.xml.crypto/LICENSE
+java/openjdk21/legal/java.xml.crypto/santuario.md
+java/openjdk21/legal/java.xml/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/java.xml/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/java.xml/LICENSE
+java/openjdk21/legal/java.xml/bcel.md
+java/openjdk21/legal/java.xml/dom.md
+java/openjdk21/legal/java.xml/jcup.md
+java/openjdk21/legal/java.xml/xalan.md
+java/openjdk21/legal/java.xml/xerces.md
+java/openjdk21/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.accessibility/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.accessibility/LICENSE
+java/openjdk21/legal/jdk.attach/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.attach/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.attach/LICENSE
+java/openjdk21/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.charsets/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.charsets/LICENSE
+java/openjdk21/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.compiler/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.compiler/LICENSE
+java/openjdk21/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.crypto.cryptoki/LICENSE
+java/openjdk21/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md
+java/openjdk21/legal/jdk.crypto.cryptoki/pkcs11wrapper.md
+java/openjdk21/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.crypto.ec/LICENSE
+java/openjdk21/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.dynalink/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.dynalink/LICENSE
+java/openjdk21/legal/jdk.dynalink/dynalink.md
+java/openjdk21/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.editpad/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.editpad/LICENSE
+java/openjdk21/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.httpserver/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.httpserver/LICENSE
+java/openjdk21/legal/jdk.incubator.vector/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.incubator.vector/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.incubator.vector/LICENSE
+java/openjdk21/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.ed/LICENSE
+java/openjdk21/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.jvmstat/LICENSE
+java/openjdk21/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.le/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.le/LICENSE
+java/openjdk21/legal/jdk.internal.le/jline.md
+java/openjdk21/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.opt/LICENSE
+java/openjdk21/legal/jdk.internal.opt/jopt-simple.md
+java/openjdk21/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.vm.ci/LICENSE
+java/openjdk21/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.vm.compiler.management/LICENSE
+java/openjdk21/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.internal.vm.compiler/LICENSE
+java/openjdk21/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jartool/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jartool/LICENSE
+java/openjdk21/legal/jdk.javadoc/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.javadoc/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.javadoc/LICENSE
+java/openjdk21/legal/jdk.javadoc/jquery.md
+java/openjdk21/legal/jdk.javadoc/jqueryUI.md
+java/openjdk21/legal/jdk.jcmd/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jcmd/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jcmd/LICENSE
+java/openjdk21/legal/jdk.jconsole/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jconsole/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jconsole/LICENSE
+java/openjdk21/legal/jdk.jdeps/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jdeps/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jdeps/LICENSE
+java/openjdk21/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jdi/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jdi/LICENSE
+java/openjdk21/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jdwp.agent/LICENSE
+java/openjdk21/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jfr/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jfr/LICENSE
+java/openjdk21/legal/jdk.jlink/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jlink/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jlink/LICENSE
+java/openjdk21/legal/jdk.jshell/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jshell/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jshell/LICENSE
+java/openjdk21/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jsobject/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jsobject/LICENSE
+java/openjdk21/legal/jdk.jstatd/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.jstatd/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.jstatd/LICENSE
+java/openjdk21/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.localedata/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.localedata/LICENSE
+java/openjdk21/legal/jdk.localedata/cldr.md
+java/openjdk21/legal/jdk.localedata/thaidict.md
+java/openjdk21/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.management.agent/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.management.agent/LICENSE
+java/openjdk21/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.management.jfr/LICENSE
+java/openjdk21/legal/jdk.management/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.management/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.management/LICENSE
+java/openjdk21/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.naming.dns/LICENSE
+java/openjdk21/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.naming.rmi/LICENSE
+java/openjdk21/legal/jdk.net/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.net/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.net/LICENSE
+java/openjdk21/legal/jdk.nio.mapmode/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.nio.mapmode/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.nio.mapmode/LICENSE
+java/openjdk21/legal/jdk.random/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.random/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.random/LICENSE
+java/openjdk21/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.sctp/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.sctp/LICENSE
+java/openjdk21/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.security.auth/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.security.auth/LICENSE
+java/openjdk21/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.security.jgss/LICENSE
+java/openjdk21/legal/jdk.unsupported.desktop/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.unsupported.desktop/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.unsupported.desktop/LICENSE
+java/openjdk21/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.unsupported/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.unsupported/LICENSE
+java/openjdk21/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.xml.dom/LICENSE
+java/openjdk21/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO
+java/openjdk21/legal/jdk.zipfs/ASSEMBLY_EXCEPTION
+java/openjdk21/legal/jdk.zipfs/LICENSE
+java/openjdk21/lib/classlist
+java/openjdk21/lib/ct.sym
+java/openjdk21/lib/fontconfig.bfc
+java/openjdk21/lib/fontconfig.properties.src
+java/openjdk21/lib/jfr/default.jfc
+java/openjdk21/lib/jfr/profile.jfc
+java/openjdk21/lib/jrt-fs.jar
+java/openjdk21/lib/jspawnhelper
+java/openjdk21/lib/jspawnhelper.diz
+java/openjdk21/lib/jvm.cfg
+java/openjdk21/lib/libattach.diz
+java/openjdk21/lib/libattach.so
+java/openjdk21/lib/libawt.diz
+java/openjdk21/lib/libawt.so
+java/openjdk21/lib/libawt_headless.diz
+java/openjdk21/lib/libawt_headless.so
+java/openjdk21/lib/libawt_xawt.diz
+java/openjdk21/lib/libawt_xawt.so
+java/openjdk21/lib/libdt_socket.diz
+java/openjdk21/lib/libdt_socket.so
+java/openjdk21/lib/libextnet.diz
+java/openjdk21/lib/libextnet.so
+java/openjdk21/lib/libfontmanager.diz
+java/openjdk21/lib/libfontmanager.so
+java/openjdk21/lib/libinstrument.diz
+java/openjdk21/lib/libinstrument.so
+java/openjdk21/lib/libj2gss.diz
+java/openjdk21/lib/libj2gss.so
+java/openjdk21/lib/libj2pcsc.diz
+java/openjdk21/lib/libj2pcsc.so
+java/openjdk21/lib/libj2pkcs11.diz
+java/openjdk21/lib/libj2pkcs11.so
+java/openjdk21/lib/libjaas.diz
+java/openjdk21/lib/libjaas.so
+java/openjdk21/lib/libjava.diz
+java/openjdk21/lib/libjava.so
+java/openjdk21/lib/libjavajpeg.diz
+java/openjdk21/lib/libjavajpeg.so
+java/openjdk21/lib/libjawt.diz
+java/openjdk21/lib/libjawt.so
+java/openjdk21/lib/libjdwp.diz
+java/openjdk21/lib/libjdwp.so
+java/openjdk21/lib/libjimage.diz
+java/openjdk21/lib/libjimage.so
+java/openjdk21/lib/libjli.diz
+java/openjdk21/lib/libjli.so
+java/openjdk21/lib/libjsig.diz
+java/openjdk21/lib/libjsig.so
+java/openjdk21/lib/libjsound.diz
+java/openjdk21/lib/libjsound.so
+java/openjdk21/lib/liblcms.diz
+java/openjdk21/lib/liblcms.so
+java/openjdk21/lib/libmanagement.diz
+java/openjdk21/lib/libmanagement.so
+java/openjdk21/lib/libmanagement_agent.diz
+java/openjdk21/lib/libmanagement_agent.so
+java/openjdk21/lib/libmanagement_ext.diz
+java/openjdk21/lib/libmanagement_ext.so
+java/openjdk21/lib/libmlib_image.diz
+java/openjdk21/lib/libmlib_image.so
+java/openjdk21/lib/libnet.diz
+java/openjdk21/lib/libnet.so
+java/openjdk21/lib/libnio.diz
+java/openjdk21/lib/libnio.so
+java/openjdk21/lib/libprefs.diz
+java/openjdk21/lib/libprefs.so
+java/openjdk21/lib/librmi.diz
+java/openjdk21/lib/librmi.so
+java/openjdk21/lib/libsplashscreen.diz
+java/openjdk21/lib/libsplashscreen.so
+java/openjdk21/lib/libsyslookup.diz
+java/openjdk21/lib/libsyslookup.so
+java/openjdk21/lib/libverify.diz
+java/openjdk21/lib/libverify.so
+java/openjdk21/lib/libzip.diz
+java/openjdk21/lib/libzip.so
+java/openjdk21/lib/modules
+java/openjdk21/lib/psfont.properties.ja
+java/openjdk21/lib/psfontj2d.properties
+java/openjdk21/lib/security/blocked.certs
+java/openjdk21/lib/security/cacerts
+java/openjdk21/lib/security/default.policy
+java/openjdk21/lib/security/public_suffix_list.dat
+java/openjdk21/lib/server/libjsig.so
+java/openjdk21/lib/server/libjvm.diz
+java/openjdk21/lib/server/libjvm.so
+java/openjdk21/lib/src.zip
+java/openjdk21/lib/tzdb.dat
+java/openjdk21/man/man1/jar.1
+java/openjdk21/man/man1/jarsigner.1
+java/openjdk21/man/man1/java.1
+java/openjdk21/man/man1/javac.1
+java/openjdk21/man/man1/javadoc.1
+java/openjdk21/man/man1/javap.1
+java/openjdk21/man/man1/jcmd.1
+java/openjdk21/man/man1/jconsole.1
+java/openjdk21/man/man1/jdb.1
+java/openjdk21/man/man1/jdeprscan.1
+java/openjdk21/man/man1/jdeps.1
+java/openjdk21/man/man1/jfr.1
+java/openjdk21/man/man1/jinfo.1
+java/openjdk21/man/man1/jlink.1
+java/openjdk21/man/man1/jmap.1
+java/openjdk21/man/man1/jmod.1
+java/openjdk21/man/man1/jps.1
+java/openjdk21/man/man1/jrunscript.1
+java/openjdk21/man/man1/jshell.1
+java/openjdk21/man/man1/jstack.1
+java/openjdk21/man/man1/jstat.1
+java/openjdk21/man/man1/jstatd.1
+java/openjdk21/man/man1/jwebserver.1
+java/openjdk21/man/man1/keytool.1
+java/openjdk21/man/man1/rmiregistry.1
+java/openjdk21/man/man1/serialver.1
+java/openjdk21/release
Index: pkgsrc/lang/openjdk21/bootstrap.mk
diff -u /dev/null pkgsrc/lang/openjdk21/bootstrap.mk:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/bootstrap.mk  Wed Nov 22 14:06:50 2023
@@ -0,0 +1,45 @@
+# $NetBSD: bootstrap.mk,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 090000
+PKG_FAIL_REASON+=              "Only supports NetBSD >= 9"
+.endif
+
+#.if (!empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) ||!empty(MACHINE_PLATFORM:MNetBSD-*-*earm*)) && ${OPSYS_VERSION} < 099983
+#PKG_FAIL_REASON+=             "PR 55248: please update to NetBSD >= 9.99.83 to use this package"
+#.endif
+
+#ONLY_FOR_PLATFORM+=           NetBSD-*-i386
+#BOOT.nb9-i386=                        bootstrap-jdk-1.21.0.1.12-netbsd-9-i386-20231118.tar.xz
+#SITES.${BOOT.nb9-i386}=               ${MASTER_SITE_LOCAL:=openjdk21/}
+#.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo)
+#DISTFILES+=                   ${BOOT.nb9-i386}
+#EXTRACT_ONLY+=                        ${BOOT.nb9-i386}
+#.endif
+
+ONLY_FOR_PLATFORM+=            NetBSD-*-x86_64
+BOOT.nb9-amd64=                        bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231119.tar.xz
+SITES.${BOOT.nb9-amd64}=       ${MASTER_SITE_LOCAL:=openjdk21/}
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo)
+DISTFILES+=                    ${BOOT.nb9-amd64}
+EXTRACT_ONLY+=                 ${BOOT.nb9-amd64}
+.endif
+
+#ONLY_FOR_PLATFORM+=           NetBSD-*-aarch64
+#BOOT.nb9-aarch64=             bootstrap-jdk-1.17.0.3.7-netbsd-9-aarch64-20220516.tar.xz
+#SITES.${BOOT.nb9-aarch64}=    ${MASTER_SITE_LOCAL:=openjdk21/}
+#.if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) || make(distinfo)
+#DISTFILES+=                   ${BOOT.nb9-aarch64}
+#EXTRACT_ONLY+=                        ${BOOT.nb9-aarch64}
+#.endif
+
+#ONLY_FOR_PLATFORM+=           NetBSD-*-earmv[67]hf
+#BOOT.nb9-earmv6hf=            bootstrap-jdk-1.17.0.3.7-netbsd-9-earmv6hf-20220525.tar.xz
+#SITES.${BOOT.nb9-earmv6hf}=   ${MASTER_SITE_LOCAL:=openjdk21/}
+#.if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv[67]hf) || make(distinfo)
+#DISTFILES+=                   ${BOOT.nb9-earmv6hf}
+#EXTRACT_ONLY+=                        ${BOOT.nb9-earmv6hf}
+#.endif
+
+CONFIGURE_ENV+=                LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib
+
+ALT_BOOTDIR=           ${WRKDIR}/bootstrap
Index: pkgsrc/lang/openjdk21/buildlink3.mk
diff -u /dev/null pkgsrc/lang/openjdk21/buildlink3.mk:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/buildlink3.mk Wed Nov 22 14:06:50 2023
@@ -0,0 +1,16 @@
+# $NetBSD: buildlink3.mk,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+BUILDLINK_TREE+=       openjdk21
+
+.if !defined(OPENJDK21_BUILDLINK3_MK)
+OPENJDK21_BUILDLINK3_MK:=
+
+BUILDLINK_LIBDIRS.openjdk21+=  java/openjdk21/lib
+BUILDLINK_LIBDIRS.openjdk21+=  java/openjdk21/lib/server
+
+BUILDLINK_API_DEPENDS.openjdk21+=      openjdk21>=1.21.0.1.12
+BUILDLINK_PKGSRCDIR.openjdk21?=                ../../lang/openjdk21
+
+.endif # OPENJDK21_BUILDLINK3_MK
+
+BUILDLINK_TREE+=       -openjdk21
Index: pkgsrc/lang/openjdk21/distinfo
diff -u /dev/null pkgsrc/lang/openjdk21/distinfo:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/distinfo      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,19 @@
+$NetBSD: distinfo,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+BLAKE2s (bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231119.tar.xz) = 47d3cc141e09afd2cd743db75d74e619efa133828d279ec24948e709a95a6d58
+SHA512 (bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231119.tar.xz) = 297f85ed4d12f7c87472181f814de927d2b4311aa917d00bcbf666b793b30dc72a08ae3cc6e4b95882e33dade127bed6b34f06399aeed8dfd5cf82800b6fec29
+Size (bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231119.tar.xz) = 465546556 bytes
+BLAKE2s (jdk21u-jdk-21.0.1-12-1.tar.gz) = c3abe0e4b514aa4a6d1fe884693255ff151c052d9e3b87cdf60803f2fc2c89f0
+SHA512 (jdk21u-jdk-21.0.1-12-1.tar.gz) = 5b81a5aea60714ebd58ce1557ea976ef8e287a042d5972297f2a937667b8b0307362669d6d9a102e397d04f78df0e31c50f6de16956eeecee5d3996f05284ee5
+Size (jdk21u-jdk-21.0.1-12-1.tar.gz) = 112374315 bytes
+SHA1 (patch-make_autoconf_buildjdk-spec.gmk.in) = 01b6ac6dae1a886949020b9d472aab1e357084b0
+SHA1 (patch-make_autoconf_flags-cflags.m4) = 0379aeecc6181cbd15f6f31518b73ca915f1f73b
+SHA1 (patch-make_autoconf_hotspot.m4) = b3d70d7def7b4b0c4ae2632be75bfbe97f931879
+SHA1 (patch-make_autoconf_lib-alsa.m4) = 999fbf951363f6b49b22aad81537728f22d7c381
+SHA1 (patch-make_autoconf_lib-bundled.m4) = 6f4720cf9fcd9088e5e186940794b868e71dcc80
+SHA1 (patch-make_autoconf_lib-freetype.m4) = bd791b99e4fd87f24432831fba1e814dd199445f
+SHA1 (patch-make_autoconf_lib-x11.m4) = 38038e6d7cfc2d15fb3537a52f11d2961cc2ec99
+SHA1 (patch-make_lib_Awt2dLibraries.gmk) = d69fa8c5cab173be2f41cfbd6479dad60a6337db
+SHA1 (patch-src_hotspot_os_bsd_os__bsd.cpp) = 5561ed502aa925cd3d0514c7ec298e0491d14ffc
+SHA1 (patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties) = 32eda43f536dc3a9afb4f1f5f7acae8cb020d546
+SHA1 (patch-src_java.desktop_unix_native_common_awt_fontpath.c) = 4a65df0bf84af967f230636f1da1ec75fbb3f691
Index: pkgsrc/lang/openjdk21/hacks.mk
diff -u /dev/null pkgsrc/lang/openjdk21/hacks.mk:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/hacks.mk      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,47 @@
+# $NetBSD: hacks.mk,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+.if !defined(OPENJDK17_HACKS_MK)
+OPENJDK17_HACKS_MK=    # empty
+
+### Ensure we do not pickup external jpeg includes: openjdk uses an internal
+### libjpeg with potentially conflicting defines, which breaks at least
+### libjpeg-turbo
+post-wrapper:
+       ${RM} -f ${BUILDLINK_DIR}/include/jconfig.h
+       ${RM} -f ${BUILDLINK_DIR}/include/jerror.h
+       ${RM} -f ${BUILDLINK_DIR}/include/jmorecfg.h
+       ${RM} -f ${BUILDLINK_DIR}/include/jpeglib.h
+
+# Workaround incorrect constant folding of subnormals in javac when the FPU
+# does not handle subnormal arithmetic, like on ARM in Flush-to-zero mode.
+# These workarounds avoid underflow conditions during the bootstrap so the
+# JDK can correctly build itself. Compiling or running programs other than
+# openjdk itself on such hardware may still cause unexpected behaviour.
+#
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)   || \
+       !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64)
+PKG_HACKS+=            broken-ieee-floats
+SUBST_CLASSES+=                fpu
+SUBST_STAGE.fpu=       pre-build
+SUBST_MESSAGE.fpu=     Broken FPU detected: applying floating point workarounds
+SUBST_FILES.fpu=       src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Items.java
+SUBST_FILES.fpu+=      src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
+SUBST_FILES.fpu+=      src/java.base/share/classes/java/lang/Double.java
+SUBST_FILES.fpu+=      src/java.base/share/classes/java/lang/Float.java
+SUBST_FILES.fpu+=      src/java.base/share/classes/java/lang/FdLibm.java
+# Double.java, FdLibm.java: Replace problematic literals with binary representation
+SUBST_SED.fpu+=                -e 's|0x1.0p-1022d*|Double.longBitsToDouble(0x10000000000000L)|ig'              # MIN_NORMAL
+SUBST_SED.fpu+=                -e 's|0x0.0000000000001p-1022d*|Double.longBitsToDouble(0x1L)|ig'               # MIN_VALUE
+# Float.java: Replace problematic literals with binary representation
+SUBST_SED.fpu+=                -e 's|0x1.0p-126f*|Float.intBitsToFloat(0x800000)|ig'           # MIN_NORMAL
+SUBST_SED.fpu+=                -e 's|0x0.000002P-126f*|Float.intBitsToFloat(0x1)|ig'           # MIN_VALUE
+# JavacParser.java: avoid bogus "fp.number.too.small" error parsing literals representing Double.MIN_VALUE
+SUBST_SED.fpu+=                -e 's|n.floatValue() == 0.0f && !isZero(proper)|& \&\& Float.floatToIntBits(n) != 0x1|'
+SUBST_SED.fpu+=                -e 's|n.doubleValue() == 0.0d && !isZero(proper)|& \&\& Double.doubleToLongBits(n) != 0x1L|'
+# Items.java: Avoid invalid constant folding of literal subnormals to positive zero
+SUBST_SED.fpu+=                -e 's|x == 0.0f && 1.0f / x > 0.0f|Float.floatToIntBits(x) == 0x0|g'
+SUBST_SED.fpu+=                -e 's|x == 0.0d && 1.0d / x > 0.0d|Double.doubleToLongBits(x) == 0x0L|g'
+.endif
+
+.endif
Index: pkgsrc/lang/openjdk21/options.mk
diff -u /dev/null pkgsrc/lang/openjdk21/options.mk:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/options.mk    Wed Nov 22 14:06:50 2023
@@ -0,0 +1,110 @@
+# $NetBSD: options.mk,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+PKG_OPTIONS_VAR=               PKG_OPTIONS.openjdk17
+PKG_OPTIONS_OPTIONAL_GROUPS=   variant
+PKG_OPTIONS_GROUP.variant=     jdk-zero-vm
+PKG_SUPPORTED_OPTIONS=         debug dtrace jre-jce x11 static-libstdcpp
+PKG_SUGGESTED_OPTIONS=         jre-jce x11
+
+.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
+PKG_OPTIONS_GROUP.variant+=    jdk-hotspot-vm
+PKG_SUGGESTED_OPTIONS+=                jdk-hotspot-vm
+.else
+PKG_SUGGESTED_OPTIONS+=                jdk-zero-vm
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Java(TM) Cryptography Extension (JCE)
+###
+.if !empty(PKG_OPTIONS:Mjre-jce)
+CONFIGURE_ARGS+=       --enable-unlimited-crypto
+.else
+CONFIGURE_ARGS+=       --disable-unlimited-crypto
+.endif
+
+###
+### X11 or headless build
+###
+PLIST_VARS+=   x11
+.if !empty(PKG_OPTIONS:Mx11)
+PLIST.x11=     yes
+CONFIGURE_ARGS+=       --x-includes=${X11BASE}/include
+CONFIGURE_ARGS+=       --x-libraries=${X11BASE}/lib
+CONFIGURE_ARGS+=       --disable-headless-only
+DEPENDS+=              dejavu-ttf-[0-9]*:../../fonts/dejavu-ttf
+#DEPENDS+=             ja-sazanami-ttf-[0-9]*:../../fonts/ja-sazanami-ttf
+#DEPENDS+=             baekmuk-ttf-[0-9]*:../../fonts/baekmuk-ttf
+.include "../../x11/libXi/buildlink3.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?=    build
+.include "../../x11/libXt/buildlink3.mk"
+.include "../../x11/libXrender/buildlink3.mk"
+.include "../../x11/libXtst/buildlink3.mk"
+.include "../../x11/libXrandr/buildlink3.mk"
+.else
+CONFIGURE_ARGS+=       --enable-headless-only
+# We apparently still need the Xlib headers to build headless. why?
+BUILDLINK_DEPMETHOD.libX11?=   build
+.include "../../x11/libX11/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXext?=build
+.include "../../x11/libXext/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?=    build
+.include "../../x11/libXt/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXrender?=build
+.include "../../x11/libXrender/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXtst?=build
+.include "../../x11/libXtst/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXrandr?=build
+.include "../../x11/libXrandr/buildlink3.mk"
+.endif
+
+#
+# Debugging
+#
+.if !empty(PKG_OPTIONS:Mdebug)
+BUILD_DEBUG_LEVEL=     fastdebug
+CONFIGURE_ARGS+=       --with-native-debug-symbols=external
+CONFIGURE_ARGS+=       --enable-debug
+PLIST_SUBST+=          DBGEXT=.debuginfo
+.else
+BUILD_DEBUG_LEVEL=     release
+CONFIGURE_ARGS+=       --with-native-debug-symbols=zipped
+PLIST_SUBST+=          DBGEXT=.diz
+.endif
+
+.if !empty(PKG_OPTIONS:Mdtrace)
+CONFIGURE_ARGS+=       --enable-dtrace=yes
+.else
+CONFIGURE_ARGS+=       --enable-dtrace=no
+.endif
+
+#
+# static libstdc++ and libgcc
+#
+# On NetBSD you need to use libstdc++_pic.a when creating a shared library,
+# but I don't think there is any easy way to tell the compiler to do this.
+# Also, -static-libgcc doesn't work because libpthread needs dynamic
+# linkage of libgcc.
+.if !empty(PKG_OPTIONS:Mstatic-libstdcpp)
+.  if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mgcc)
+BUILDLINK_TRANSFORM+=  rm:-static-libgcc
+.  endif
+.else
+CONFIGURE_ARGS+=       --with-stdc++lib=dynamic
+.endif
+
+#
+# Build variant. Zero VM builds a portable JVM without assembly optimization.
+#
+PLIST_VARS+=           hotspot
+.if !empty(PKG_OPTIONS:Mjdk-zero-vm)
+BUILD_VARIANT=         zero
+.include "../../devel/libffi/buildlink3.mk"
+.elif !empty(PKG_OPTIONS:Mjdk-hotspot-vm)
+BUILD_VARIANT=         server
+PLIST.hotspot=         yes
+.endif
+CONFIGURE_ARGS+=       --with-jvm-variants=${BUILD_VARIANT}

Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_buildjdk-spec.gmk.in
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_buildjdk-spec.gmk.in:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_buildjdk-spec.gmk.in      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,21 @@
+$NetBSD: patch-make_autoconf_buildjdk-spec.gmk.in,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+Use the same variant for the buildjdk as the target jdk.
+This is needed for native builds on platforms where hotspot is broken or not
+supported. In that case the buildjdk can't be hardcoded to "server" but must
+use "zero". This is fine for pkgsrc since we only ever build one variant.
+
+--- make/autoconf/buildjdk-spec.gmk.in.orig    2022-04-23 02:25:56.000000000 +0000
++++ make/autoconf/buildjdk-spec.gmk.in
+@@ -94,8 +94,9 @@ DISABLE_WARNING_PREFIX := @BUILD_CC_DISA
+ # Save speed and disk space by not enabling debug symbols for the buildjdk
+ ENABLE_DEBUG_SYMBOLS := false
+ 
+-JVM_VARIANTS := server
+-JVM_VARIANT_MAIN := server
++JVM_VARIANTS :=  @JVM_VARIANTS@
++JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
++JVM_FEATURES_zero := g1gc serialgc zero
+ JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc
+ 
+ # Some users still set EXTRA_*FLAGS on the make command line. Must
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_flags-cflags.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_flags-cflags.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_flags-cflags.m4   Wed Nov 22 14:06:50 2023
@@ -0,0 +1,37 @@
+$NetBSD: patch-make_autoconf_flags-cflags.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+We prefer to use explicit run paths.
+
+--- make/autoconf/flags-cflags.m4.orig 2022-02-05 03:44:09.000000000 +0000
++++ make/autoconf/flags-cflags.m4
+@@ -37,8 +37,8 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
+   if test "x$TOOLCHAIN_TYPE" = xgcc; then
+     # Default works for linux, might work on other platforms as well.
+     SHARED_LIBRARY_FLAGS='-shared'
+-    SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
+-    SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
++    SET_EXECUTABLE_ORIGIN='@COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib @COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib/server'
++    SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+     SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+     SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+ 
+@@ -54,17 +54,11 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
+     else
+       # Default works for linux, might work on other platforms as well.
+       SHARED_LIBRARY_FLAGS='-shared'
+-      SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
++      SET_EXECUTABLE_ORIGIN='@COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib @COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib/server'
++      SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+       SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+       SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+ 
+-      # arm specific settings
+-      if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
+-        # '-Wl,-z,origin' isn't used on arm.
+-        SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
+-      else
+-        SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
+-      fi
+     fi
+ 
+   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_hotspot.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_hotspot.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_hotspot.m4        Wed Nov 22 14:06:50 2023
@@ -0,0 +1,13 @@
+$NetBSD: patch-make_autoconf_hotspot.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+--- make/autoconf/hotspot.m4.orig      2023-10-23 01:33:53.000000000 +0000
++++ make/autoconf/hotspot.m4
+@@ -112,6 +112,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_MISC],
+     # But when building zero, we never build any other variants so it works.
+     HOTSPOT_TARGET_CPU=zero
+     HOTSPOT_TARGET_CPU_ARCH=zero
++    HOTSPOT_BUILD_CPU=zero
++    HOTSPOT_BUILD_CPU_ARCH=zero
+   fi
+ 
+ 
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-alsa.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-alsa.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-alsa.m4       Wed Nov 22 14:06:50 2023
@@ -0,0 +1,24 @@
+$NetBSD: patch-make_autoconf_lib-alsa.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+* Fix RPATH for libasound.so. These should use COMPILER_RPATH_FLAG.
+
+--- make/autoconf/lib-alsa.m4.orig     2021-04-24 02:47:22.000000000 +0000
++++ make/autoconf/lib-alsa.m4
+@@ -52,7 +52,7 @@ AC_DEFUN_ONCE([LIB_SETUP_ALSA],
+     fi
+ 
+     if test "x${with_alsa}" != x; then
+-      ALSA_LIBS="-L${with_alsa}/lib -lasound"
++      ALSA_LIBS="-L${with_alsa}/lib -Wl,-rpath,${with_alsa}/lib -lasound"
+       ALSA_CFLAGS="-I${with_alsa}/include"
+       ALSA_FOUND=yes
+     fi
+@@ -61,7 +61,7 @@ AC_DEFUN_ONCE([LIB_SETUP_ALSA],
+       ALSA_FOUND=yes
+     fi
+     if test "x${with_alsa_lib}" != x; then
+-      ALSA_LIBS="-L${with_alsa_lib} -lasound"
++      ALSA_LIBS="-L${with_alsa_lib} -Wl,-rpath,${with_alsa}/lib -lasound"
+       ALSA_FOUND=yes
+     fi
+     # Do not try pkg-config if we have a sysroot set.
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-bundled.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-bundled.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-bundled.m4    Wed Nov 22 14:06:50 2023
@@ -0,0 +1,16 @@
+$NetBSD: patch-make_autoconf_lib-bundled.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+Add rpath for zlib.
+
+--- make/autoconf/lib-bundled.m4.orig  2022-11-02 17:07:48.842199354 +0000
++++ make/autoconf/lib-bundled.m4
+@@ -264,7 +264,8 @@ AC_DEFUN_ONCE([LIB_SETUP_ZLIB],
+         LIBZ_CFLAGS="$LIBZ_CFLAGS -DHAVE_UNISTD_H"
+     fi
+   else
+-    LIBZ_LIBS="-lz"
++    LIBZ_CFLAGS="-I@BUILDLINK_PREFIX.zlib@/include"
++    LIBZ_LIBS="@COMPILER_RPATH_FLAG@@BUILDLINK_PREFIX.zlib@/lib -L@BUILDLINK_PREFIX.zlib@/lib -lz"
+   fi
+ 
+   AC_SUBST(USE_EXTERNAL_LIBZ)
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-freetype.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-freetype.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-freetype.m4   Wed Nov 22 14:06:50 2023
@@ -0,0 +1,15 @@
+$NetBSD: patch-make_autoconf_lib-freetype.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+Add rpath for freetype.
+
+--- make/autoconf/lib-freetype.m4.orig 2022-02-05 03:44:09.000000000 +0000
++++ make/autoconf/lib-freetype.m4
+@@ -231,7 +231,7 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
+     fi
+ 
+     if test "x$FREETYPE_LIBS" = "x" ; then
+-      FREETYPE_LIBS="-L$FREETYPE_LIB_PATH -l$FREETYPE_BASE_NAME"
++      FREETYPE_LIBS="@COMPILER_RPATH_FLAG@$FREETYPE_LIB_PATH -L$FREETYPE_LIB_PATH -l$FREETYPE_BASE_NAME"
+     fi
+   fi
+ 
Index: pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-x11.m4
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-x11.m4:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_autoconf_lib-x11.m4        Wed Nov 22 14:06:50 2023
@@ -0,0 +1,15 @@
+$NetBSD: patch-make_autoconf_lib-x11.m4,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+Add rpath for X11.
+
+--- make/autoconf/lib-x11.m4.orig      2022-02-05 03:44:09.000000000 +0000
++++ make/autoconf/lib-x11.m4
+@@ -92,6 +92,8 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
+       AC_MSG_ERROR([Could not find X11 libraries. $HELP_MSG])
+     fi
+ 
++    X_LIBS="@COMPILER_RPATH_FLAG@${x_libraries} ${X_LIBS}"
++
+     AC_LANG_PUSH(C)
+     OLD_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
Index: pkgsrc/lang/openjdk21/patches/patch-make_lib_Awt2dLibraries.gmk
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-make_lib_Awt2dLibraries.gmk:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-make_lib_Awt2dLibraries.gmk     Wed Nov 22 14:06:50 2023
@@ -0,0 +1,17 @@
+$NetBSD: patch-make_lib_Awt2dLibraries.gmk,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+bundled harfbuzz code needs to use -std=c++11 for static_assert().
+But we can't add it to USE_LANGUAGES because the rest of the JDK
+contains legacy code that requires -std=gnu++98.
+
+--- make/modules/java.desktop/lib/Awt2dLibraries.gmk.orig      2019-09-19 12:22:38.000000000 +0000
++++ make/modules/java.desktop/lib/Awt2dLibraries.gmk
+@@ -612,7 +612,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIB
+         AccelGlyphCache.c, \
+     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
+     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
+-    CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
++    CXXFLAGS := $(CXXFLAGS_JDKLIB) -std=c++11 $(LIBFONTMANAGER_CFLAGS), \
+     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
+     CFLAGS_windows = -DCC_NOEX, \
+     EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
Index: pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os_bsd_os__bsd.cpp
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os_bsd_os__bsd.cpp:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os_bsd_os__bsd.cpp  Wed Nov 22 14:06:50 2023
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_hotspot_os_bsd_os__bsd.cpp,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+add pkgsrc library paths
+
+--- src/hotspot/os/bsd/os_bsd.cpp.orig 2022-07-20 05:25:50.000000000 +0000
++++ src/hotspot/os/bsd/os_bsd.cpp
+@@ -386,7 +386,7 @@ void os::init_system_properties_values()
+     #ifdef __APPLE__
+       #define DEFAULT_LIBPATH "/lib:/usr/lib"
+     #elif defined(__NetBSD__)
+-      #define DEFAULT_LIBPATH "/usr/lib:/usr/pkg/lib"
++      #define DEFAULT_LIBPATH "@PREFIX@/lib/jni:@PREFIX@/lib:/lib:/usr/lib"
+     #else
+       #define DEFAULT_LIBPATH "/usr/lib:/usr/local/lib"
+     #endif
Index: pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,51 @@
+$NetBSD: patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+--- src/java.desktop/bsd/data/fontconfig/fontconfig.properties.orig    2023-10-23 01:33:53.000000000 +0000
++++ src/java.desktop/bsd/data/fontconfig/fontconfig.properties
+@@ -167,26 +167,26 @@ sequence.fallback=chinese-big5,chinese-g
+ # Font File Names
+ 
+ ## FIXME: Should not hardcode /usr/local
+-filename.DejaVu_Sans=/usr/local/lib/X11/fonts/dejavu/DejaVuSans.ttf
+-filename.DejaVu_Sans_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf
+-filename.DejaVu_Sans_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf
+-filename.DejaVu_Sans_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf
++filename.DejaVu_Sans=@PREFIX@/share/fonts/X11/TTF/DejaVuSans.ttf
++filename.DejaVu_Sans_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-Bold.ttf
++filename.DejaVu_Sans_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-Oblique.ttf
++filename.DejaVu_Sans_Bold_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-BoldOblique.ttf
+ 
+-filename.DejaVu_Sans_Mono=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf
+-filename.DejaVu_Sans_Mono_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf
+-filename.DejaVu_Sans_Mono_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf
+-filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
++filename.DejaVu_Sans_Mono=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono.ttf
++filename.DejaVu_Sans_Mono_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-Bold.ttf
++filename.DejaVu_Sans_Mono_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-Oblique.ttf
++filename.DejaVu_Sans_Mono_Bold_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-BoldOblique.ttf
+ 
+-filename.DejaVu_Serif=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif.ttf
+-filename.DejaVu_Serif_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf
+-filename.DejaVu_Serif_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf
+-filename.DejaVu_Serif_Bold_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf
++filename.DejaVu_Serif=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif.ttf
++filename.DejaVu_Serif_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-Bold.ttf
++filename.DejaVu_Serif_Italic=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-Italic.ttf
++filename.DejaVu_Serif_Bold_Italic=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-BoldItalic.ttf
+ 
+-filename.Sazanami_Gothic=/usr/local/share/font-sazanami/sazanami-gothic.ttf
+-filename.Sazanami_Mincho=/usr/local/share/font-sazanami/sazanami-mincho.ttf
+-filename.AR_PL_ShanHeiSun_Uni=/usr/local/share/fonts/TrueType/uming.ttc
+-filename.AR_PL_ZenKai_Uni=/usr/local/share/fonts/TrueType/ukai.ttc
+-filename.NanumGothic=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothic.ttf
+-filename.NanumGothic_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf
+-filename.NanumMyeongjo=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf
+-filename.NanumMyeongjo_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf
++filename.Sazanami_Gothic=@PREFIX@/share/fonts/X11/TTF/sazanami-gothic.ttf
++filename.Sazanami_Mincho=@PREFIX@/share/fonts/X11/TTF/sazanami-mincho.ttf
++filename.AR_PL_ShanHeiSun_Uni=@PREFIX@/share/fonts/X11/TTF/uming.ttc
++filename.AR_PL_ZenKai_Uni=@PREFIX@/share/fonts/X11/TTF/ukai.ttc
++filename.NanumGothic=@PREFIX@/share/fonts/X11/TTF/NanumGothic.ttf
++filename.NanumGothic_Bold=@PREFIX@/share/fonts/X11/TTF/NanumGothicBold.ttf
++filename.NanumMyeongjo=@PREFIX@/share/fonts/X11/TTF/NanumMyeongjo.ttf
++filename.NanumMyeongjo_Bold=@PREFIX@/share/fonts/X11/TTF/NanumMyeongjoBold.ttf
Index: pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c:1.1
--- /dev/null   Wed Nov 22 14:06:50 2023
+++ pkgsrc/lang/openjdk21/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c      Wed Nov 22 14:06:50 2023
@@ -0,0 +1,51 @@
+$NetBSD: patch-src_java.desktop_unix_native_common_awt_fontpath.c,v 1.1 2023/11/22 14:06:50 ryoon Exp $
+
+--- src/java.desktop/unix/native/common/awt/fontpath.c.orig    2023-10-23 13:40:41.097871989 +0000
++++ src/java.desktop/unix/native/common/awt/fontpath.c
+@@ -52,8 +52,8 @@
+ extern Display *awt_display;
+ #endif /* !HEADLESS */
+ 
+-#define FONTCONFIG_DLL_VERSIONED VERSIONED_JNI_LIB_NAME("fontconfig", "1")
+-#define FONTCONFIG_DLL JNI_LIB_NAME("fontconfig")
++#define FONTCONFIG_DLL_VERSIONED "@BUILDLINK_PREFIX.fontconfig@/lib/" JNI_LIB_NAME("fontconfig")
++#define FONTCONFIG_DLL "@BUILDLINK_PREFIX.fontconfig@/lib/" JNI_LIB_NAME("fontconfig")
+ 
+ #define MAXFDIRS 512    /* Max number of directories that contain fonts */
+ 
+@@ -84,6 +84,27 @@ static char *fullAixFontPath[] = {
+     NULL, /* terminates the list */
+ };
+ #endif
++static char *pkgsrcFontPath[] = {
++   "@PREFIX@/share/fonts/X11/100dpi",
++   "@PREFIX@/share/fonts/X11/75dpi",
++   "@PREFIX@/share/fonts/X11/Type1",
++   "@PREFIX@/share/fonts/X11/cyrillic",
++   "@PREFIX@/share/fonts/X11/misc",
++   "@PREFIX@/share/fonts/X11/TTF",
++   "/usr/X11R7/lib/X11/fonts/100dpi",
++   "/usr/X11R7/lib/X11/fonts/75dpi",
++   "/usr/X11R7/lib/X11/fonts/Type1",
++   "/usr/X11R7/lib/X11/fonts/cyrillic",
++   "/usr/X11R7/lib/X11/fonts/misc",
++   "/usr/X11R7/lib/X11/fonts/TTF",
++   "/usr/X11R6/lib/X11/fonts/100dpi",
++   "/usr/X11R6/lib/X11/fonts/75dpi",
++   "/usr/X11R6/lib/X11/fonts/Type1",
++   "/usr/X11R6/lib/X11/fonts/cyrillic",
++   "/usr/X11R6/lib/X11/fonts/misc",
++   "/usr/X11R6/lib/X11/fonts/TTF",
++   NULL
++};
+ 
+ static char **getFontConfigLocations();
+ 
+@@ -325,6 +346,7 @@ static char *getPlatformFontPathChars(JN
+ #elif defined(_AIX)
+     knowndirs = fullAixFontPath;
+ #endif
++    knowndirs = pkgsrcFontPath;
+     /* REMIND: this code requires to be executed when the GraphicsEnvironment
+      * is already initialised. That is always true, but if it were not so,
+      * this code could throw an exception and the fontpath would fail to



Home | Main Index | Thread Index | Old Index