This is a three part diff:
1. Allow ports that use MODJAVA to override MODJAVA_RUN_DEPENDS
2. Update java/tanukiwrapper to 3.6.3 and use jdk 11 to build
3. Update net/i2p to use jdk 17 and latest tanukiwrapper
java/tanukiwrapper is only used by net/i2p, however it could be
used by something in the future. It is basically a fancy daemon(3)
like program to be used with java applications. The jdk it uses is
defined by the application that uses it. In other words, by itself
it does nothing useful. It needs to be used by another java
application and that other application defines what jdk it needs.
So I want this port to be installed without a run depend on java.
Having a run depend means it may bring in a jdk that is not needed
for the application that uses it. For example, now that net/i2p runs
with jdk-17, leaving a run depend of 11 or 11+ on tanukiwrapper means
jdk 11 may also be installed and not needed. Hence the change to
java.port.mk to allow tanukiwrapper to set MODJAVA_RUN_DEPENDS=
and stop the run depend on jdk 11.
java/tanukiwrapper: Update to 3.6.3 and use jdk 11 to build
* Fix misspelled directory name
* clean up patches
net/i2p: Update to use jdk 17 and latest tanukiwrapper
* Dont build the installer - we dont install or use it
* Dont read /proc/cpuinfo and set opt to ARMV8 on aarch64
* Update config to use corrected tanukiwrapper dir name
and remove no longer supported stripquotes option
i2p was warning that upcoming releases will require jdk 17, so
I decided to move it there now to squash that warning.
ok for each of the three parts?
Index: devel/jdk/java.port.mk
===================================================================
RCS file: /cvs/ports/devel/jdk/java.port.mk,v
diff -u -p -u -r1.45 java.port.mk
--- devel/jdk/java.port.mk 3 Nov 2025 13:39:29 -0000 1.45
+++ devel/jdk/java.port.mk 21 Dec 2025 19:29:00 -0000
@@ -55,9 +55,9 @@ MODJAVA_VER?=
.endif
.if ${MODJAVA_VER:M*+}
- MODJAVA_RUN_DEPENDS= ${MODJAVA_BUILD_DEPENDS:C/,.*:/:/}
+ MODJAVA_RUN_DEPENDS?= ${MODJAVA_BUILD_DEPENDS:C/,.*:/:/}
.else
- MODJAVA_RUN_DEPENDS= ${MODJAVA_BUILD_DEPENDS}
+ MODJAVA_RUN_DEPENDS?= ${MODJAVA_BUILD_DEPENDS}
.endif
RUN_DEPENDS+= ${MODJAVA_RUN_DEPENDS}
Index: java/tanukiwrapper/Makefile
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/Makefile,v
diff -u -p -u -r1.27 Makefile
--- java/tanukiwrapper/Makefile 26 Sep 2023 11:47:58 -0000 1.27
+++ java/tanukiwrapper/Makefile 21 Dec 2025 19:29:00 -0000
@@ -1,7 +1,6 @@
COMMENT= Tanuki Java Service Wrapper
-V= 3.5.49
-REVISION= 0
+V= 3.6.3
DISTNAME= wrapper_${V}_src
PKGNAME= java-tanukiwrapper-${V}
CATEGORIES= java
@@ -14,9 +13,12 @@ SITES= https://download.tanukisoftware.
PERMIT_PACKAGE= Yes
MODULES= java
-MODJAVA_VER= 1.8
+MODJAVA_VER= 11
MODJAVA_BUILD= ant
+# The application which uses this defines what jdk it will run with
+MODJAVA_RUN_DEPENDS=
+
.if ${MACHINE_ARCH} == "i386"
BITS=32
.else
@@ -44,17 +46,17 @@ USE_GMAKE= Yes
SUBST_VARS+= CC CFLAGS
post-extract:
- cp ${FILESDIR}/Makefile-openbsd-${MAKE_ARCH}.gmake ${WRKSRC}/src/c/
+ cp ${FILESDIR}/Makefile-openbsd-*.gmake ${WRKSRC}/src/c/
pre-configure:
${SUBST_CMD} ${WRKSRC}/src/c/Makefile-openbsd-${MAKE_ARCH}.gmake
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/java/classes/ \
- ${PREFIX}/lib/tanukuwrapper/
+ ${PREFIX}/lib/tanukiwrapper/
${INSTALL_DATA} ${WRKSRC}/lib/wrapper.jar \
${PREFIX}/share/java/classes/tanukiwrapper.jar
- ${INSTALL_PROGRAM} ${WRKSRC}/lib/libwrapper.so
${PREFIX}/lib/tanukuwrapper/
+ ${INSTALL_PROGRAM} ${WRKSRC}/lib/libwrapper.so
${PREFIX}/lib/tanukiwrapper/
${INSTALL_PROGRAM} ${WRKSRC}/bin/wrapper ${PREFIX}/sbin/tanukiwrapper
do-test:
Index: java/tanukiwrapper/distinfo
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/distinfo,v
diff -u -p -u -r1.7 distinfo
--- java/tanukiwrapper/distinfo 8 Mar 2022 00:55:13 -0000 1.7
+++ java/tanukiwrapper/distinfo 21 Dec 2025 19:29:00 -0000
@@ -1,2 +1,2 @@
-SHA256 (wrapper_3.5.49_src.tar.gz) =
gcScF5LIqWVBv8erI3hG5tt5BZPO2XlhFACz1Y60+v4=
-SIZE (wrapper_3.5.49_src.tar.gz) = 774890
+SHA256 (wrapper_3.6.3_src.tar.gz) =
e8Wtie0ho5tKTtVI3+kvxYeu1A5sdQWacTCfuAQv9YA=
+SIZE (wrapper_3.6.3_src.tar.gz) = 902583
Index: java/tanukiwrapper/files/Makefile-openbsd-arm-64.gmake
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/files/Makefile-openbsd-arm-64.gmake,v
diff -u -p -u -r1.1 Makefile-openbsd-arm-64.gmake
--- java/tanukiwrapper/files/Makefile-openbsd-arm-64.gmake 31 Oct 2021
13:00:03 -0000 1.1
+++ java/tanukiwrapper/files/Makefile-openbsd-arm-64.gmake 21 Dec 2025
19:29:00 -0000
@@ -1,4 +1,4 @@
-# Copyright (c) 1999, 2013 Tanuki Software, Ltd.
+# Copyright (c) 1999, 2025 Tanuki Software, Ltd.
# http://www.tanukisoftware.com
# All rights reserved.
#
@@ -7,13 +7,13 @@
# license agreement you entered into with Tanuki Software.
# http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
-CC = ${CC} -Wall -fPIC -pedantic -DOPENBSD -DJSW64 -I${LOCALBASE}/include
-L${LOCALBASE}/lib -liconv -DUNICODE -D_UNICODE
+CC = ${CC} -Wall -pedantic -Wno-strict-prototypes -DOPENBSD -DJSW64 -fPIC
-I${LOCALBASE}/include -DUNICODE -D_UNICODE
INCLUDE=$(JAVA_HOME)/include
CFLAGS = ${CFLAGS} -I$(INCLUDE) -I$(INCLUDE)/openbsd
-wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c wrapper_unix.c
property.c logger.c logger_file.c wrapper_file.c wrapper_i18n.c
wrapper_hashmap.c wrapper_ulimit.c wrapper_encoding.c wrapper_jvminfo.c
+wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c
wrapper_jvm_launch.c wrapper_unix.c property.c logger.c logger_file.c
wrapper_file.c wrapper_i18n.c wrapper_hashmap.c wrapper_ulimit.c
wrapper_encoding.c wrapper_jvminfo.c wrapper_secure_file.c wrapper_sysinfo.c
wrapper_cipher.c wrapper_cipher_base.c
libwrapper_so_OBJECTS = wrapper_i18n.o wrapperjni_unix.o wrapperinfo.o
wrapperjni.o loggerjni.o
@@ -33,10 +33,10 @@ init:
if test ! -d .deps; then mkdir .deps; fi
wrapper: $(wrapper_SOURCE)
- $(CC) $(wrapper_SOURCE) -lm -rdynamic -lc -pthread -o $(BIN)/wrapper
+ $(CC) $(wrapper_SOURCE) -lm -rdynamic -L${LOCALBASE}/lib -liconv -lc
-pthread -o $(BIN)/wrapper
libwrapper.so: $(libwrapper_so_OBJECTS)
- $(CC) -shared -rdynamic -lc -pthread $(libwrapper_so_OBJECTS) -o
$(LIB)/libwrapper.so
+ $(CC) -shared -rdynamic -L${LOCALBASE}/lib -liconv -lc -pthread
$(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
#%.o: %.c
# $(COMPILE) -c $(DEFS) $<
Index: java/tanukiwrapper/files/Makefile-openbsd-sparc-64.gmake
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/files/Makefile-openbsd-sparc-64.gmake,v
diff -u -p -u -r1.1 Makefile-openbsd-sparc-64.gmake
--- java/tanukiwrapper/files/Makefile-openbsd-sparc-64.gmake 18 Jul 2021
15:34:18 -0000 1.1
+++ java/tanukiwrapper/files/Makefile-openbsd-sparc-64.gmake 21 Dec 2025
19:29:00 -0000
@@ -1,4 +1,4 @@
-# Copyright (c) 1999, 2013 Tanuki Software, Ltd.
+# Copyright (c) 1999, 2025 Tanuki Software, Ltd.
# http://www.tanukisoftware.com
# All rights reserved.
#
@@ -7,13 +7,13 @@
# license agreement you entered into with Tanuki Software.
# http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
-CC = ${CC} -Wall -fPIC -pedantic -DOPENBSD -DJSW64 -I${LOCALBASE}/include
-L${LOCALBASE}/lib -liconv -DUNICODE -D_UNICODE
+CC = ${CC} -Wall -pedantic -Wno-strict-prototypes -DOPENBSD -DJSW64 -fPIC
-I${LOCALBASE}/include -DUNICODE -D_UNICODE
INCLUDE=$(JAVA_HOME)/include
CFLAGS = ${CFLAGS} -I$(INCLUDE) -I$(INCLUDE)/openbsd
-wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c wrapper_unix.c
property.c logger.c logger_file.c wrapper_file.c wrapper_i18n.c
wrapper_hashmap.c wrapper_ulimit.c wrapper_encoding.c wrapper_jvminfo.c
+wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c
wrapper_jvm_launch.c wrapper_unix.c property.c logger.c logger_file.c
wrapper_file.c wrapper_i18n.c wrapper_hashmap.c wrapper_ulimit.c
wrapper_encoding.c wrapper_jvminfo.c wrapper_secure_file.c wrapper_sysinfo.c
wrapper_cipher.c wrapper_cipher_base.c
libwrapper_so_OBJECTS = wrapper_i18n.o wrapperjni_unix.o wrapperinfo.o
wrapperjni.o loggerjni.o
@@ -33,10 +33,10 @@ init:
if test ! -d .deps; then mkdir .deps; fi
wrapper: $(wrapper_SOURCE)
- $(CC) $(wrapper_SOURCE) -lm -rdynamic -lc -pthread -o $(BIN)/wrapper
+ $(CC) $(wrapper_SOURCE) -lm -rdynamic -L${LOCALBASE}/lib -liconv -lc
-pthread -o $(BIN)/wrapper
libwrapper.so: $(libwrapper_so_OBJECTS)
- $(CC) -shared -rdynamic -lc -pthread $(libwrapper_so_OBJECTS) -o
$(LIB)/libwrapper.so
+ $(CC) -shared -rdynamic -L${LOCALBASE}/lib -liconv -lc -pthread
$(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
#%.o: %.c
# $(COMPILE) -c $(DEFS) $<
Index: java/tanukiwrapper/files/Makefile-openbsd-x86-32.gmake
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/files/Makefile-openbsd-x86-32.gmake,v
diff -u -p -u -r1.6 Makefile-openbsd-x86-32.gmake
--- java/tanukiwrapper/files/Makefile-openbsd-x86-32.gmake 21 May 2021
11:51:08 -0000 1.6
+++ java/tanukiwrapper/files/Makefile-openbsd-x86-32.gmake 21 Dec 2025
19:29:00 -0000
@@ -1,4 +1,4 @@
-# Copyright (c) 1999, 2013 Tanuki Software, Ltd.
+# Copyright (c) 1999, 2025 Tanuki Software, Ltd.
# http://www.tanukisoftware.com
# All rights reserved.
#
@@ -7,13 +7,13 @@
# license agreement you entered into with Tanuki Software.
# http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
-CC = ${CC} -Wall -fPIC -pedantic -DOPENBSD -I${LOCALBASE}/include
-L${LOCALBASE}/lib -liconv -DUNICODE -D_UNICODE
+CC = ${CC} -Wall -pedantic -Wno-strict-prototypes -DOPENBSD -fPIC
-I${LOCALBASE}/include -DUNICODE -D_UNICODE
INCLUDE=$(JAVA_HOME)/include
CFLAGS = ${CFLAGS} -I$(INCLUDE) -I$(INCLUDE)/openbsd
-wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c wrapper_unix.c
property.c logger.c logger_file.c wrapper_file.c wrapper_i18n.c
wrapper_hashmap.c wrapper_ulimit.c wrapper_encoding.c wrapper_jvminfo.c
+wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c
wrapper_jvm_launch.c wrapper_unix.c property.c logger.c logger_file.c
wrapper_file.c wrapper_i18n.c wrapper_hashmap.c wrapper_ulimit.c
wrapper_encoding.c wrapper_jvminfo.c wrapper_secure_file.c wrapper_sysinfo.c
wrapper_cipher.c wrapper_cipher_base.c
libwrapper_so_OBJECTS = wrapper_i18n.o wrapperjni_unix.o wrapperinfo.o
wrapperjni.o loggerjni.o
@@ -33,10 +33,10 @@ init:
if test ! -d .deps; then mkdir .deps; fi
wrapper: $(wrapper_SOURCE)
- $(CC) $(wrapper_SOURCE) -lm -rdynamic -lc -pthread -o $(BIN)/wrapper
+ $(CC) $(wrapper_SOURCE) -lm -rdynamic -L${LOCALBASE}/lib -liconv -lc
-pthread -o $(BIN)/wrapper
libwrapper.so: $(libwrapper_so_OBJECTS)
- $(CC) -shared -rdynamic -lc -pthread $(libwrapper_so_OBJECTS) -o
$(LIB)/libwrapper.so
+ $(CC) -shared -rdynamic -L${LOCALBASE}/lib -liconv -lc -pthread
$(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
#%.o: %.c
# $(COMPILE) -c $(DEFS) $<
Index: java/tanukiwrapper/files/Makefile-openbsd-x86-64.gmake
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/files/Makefile-openbsd-x86-64.gmake,v
diff -u -p -u -r1.5 Makefile-openbsd-x86-64.gmake
--- java/tanukiwrapper/files/Makefile-openbsd-x86-64.gmake 4 Nov 2020
20:45:00 -0000 1.5
+++ java/tanukiwrapper/files/Makefile-openbsd-x86-64.gmake 21 Dec 2025
19:29:00 -0000
@@ -1,4 +1,4 @@
-# Copyright (c) 1999, 2013 Tanuki Software, Ltd.
+# Copyright (c) 1999, 2025 Tanuki Software, Ltd.
# http://www.tanukisoftware.com
# All rights reserved.
#
@@ -7,13 +7,13 @@
# license agreement you entered into with Tanuki Software.
# http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
-CC = ${CC} -Wall -fPIC -pedantic -DOPENBSD -DJSW64 -I${LOCALBASE}/include
-L${LOCALBASE}/lib -liconv -DUNICODE -D_UNICODE
+CC = ${CC} -Wall -pedantic -Wno-strict-prototypes -DOPENBSD -DJSW64 -fPIC
-I${LOCALBASE}/include -DUNICODE -D_UNICODE
INCLUDE=$(JAVA_HOME)/include
CFLAGS = ${CFLAGS} -I$(INCLUDE) -I$(INCLUDE)/openbsd
-wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c wrapper_unix.c
property.c logger.c logger_file.c wrapper_file.c wrapper_i18n.c
wrapper_hashmap.c wrapper_ulimit.c wrapper_encoding.c wrapper_jvminfo.c
+wrapper_SOURCE = wrapper.c wrapperinfo.c wrappereventloop.c
wrapper_jvm_launch.c wrapper_unix.c property.c logger.c logger_file.c
wrapper_file.c wrapper_i18n.c wrapper_hashmap.c wrapper_ulimit.c
wrapper_encoding.c wrapper_jvminfo.c wrapper_secure_file.c wrapper_sysinfo.c
wrapper_cipher.c wrapper_cipher_base.c
libwrapper_so_OBJECTS = wrapper_i18n.o wrapperjni_unix.o wrapperinfo.o
wrapperjni.o loggerjni.o
@@ -33,10 +33,10 @@ init:
if test ! -d .deps; then mkdir .deps; fi
wrapper: $(wrapper_SOURCE)
- $(CC) $(wrapper_SOURCE) -lm -rdynamic -lc -pthread -o $(BIN)/wrapper
+ $(CC) $(wrapper_SOURCE) -lm -rdynamic -L${LOCALBASE}/lib -liconv -lc
-pthread -o $(BIN)/wrapper
libwrapper.so: $(libwrapper_so_OBJECTS)
- $(CC) -shared -rdynamic -lc -pthread $(libwrapper_so_OBJECTS) -o
$(LIB)/libwrapper.so
+ $(CC) -shared -rdynamic -L${LOCALBASE}/lib -liconv -lc -pthread
$(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
#%.o: %.c
# $(COMPILE) -c $(DEFS) $<
Index: java/tanukiwrapper/patches/patch-build_xml
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/patches/patch-build_xml,v
diff -u -p -u -r1.7 patch-build_xml
--- java/tanukiwrapper/patches/patch-build_xml 8 Mar 2022 00:55:14 -0000
1.7
+++ java/tanukiwrapper/patches/patch-build_xml 21 Dec 2025 19:29:00 -0000
@@ -1,4 +1,5 @@
define OpenBSD property
+Suppress deprecation warnings
Index: build.xml
--- build.xml.orig
@@ -13,7 +14,7 @@ Index: build.xml
<property name="dist.os" value="${os.name}"/>
<!-- Resolve an architecture to use in release names. -->
-@@ -427,6 +430,7 @@
+@@ -440,6 +443,7 @@
<condition property="make.name" value="gmake">
<or>
<isset property="is.freebsd"/>
@@ -21,7 +22,7 @@ Index: build.xml
<isset property="is.solaris"/>
</or>
</condition>
-@@ -444,6 +448,7 @@
+@@ -457,6 +461,7 @@
<or>
<isset property="is.linux"/>
<isset property="is.freebsd"/>
@@ -29,7 +30,16 @@ Index: build.xml
<isset property="is.solaris"/>
</or>
</condition>
-@@ -1846,6 +1851,10 @@ wrapper.filter.action.999=NONE]]></replacevalue>
+@@ -633,7 +638,7 @@
+ excludes="testmodule/**/*,module-info.java"
+ destdir="${build.classes}"
+ nativeheaderdir="${build.headers}"
+- deprecation="on"
++ deprecation="off"
+ debug="on"
+ optimize="on"
+ includeantruntime="false"
+@@ -2105,6 +2110,10 @@ wrapper.filter.action.999=NONE]]></replacevalue>
<release-delta-extract-platform osname="linux" osarch="armel"
bits="32" wrapperbinhead="wrapper" wrapperbintail=""
wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="armhf"
bits="32" wrapperbinhead="wrapper" wrapperbintail=""
wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="arm"
bits="64" wrapperbinhead="wrapper" wrapperbintail=""
wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
Index: java/tanukiwrapper/patches/patch-default_properties
===================================================================
RCS file: java/tanukiwrapper/patches/patch-default_properties
diff -N java/tanukiwrapper/patches/patch-default_properties
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ java/tanukiwrapper/patches/patch-default_properties 21 Dec 2025 19:29:00
-0000
@@ -0,0 +1,14 @@
+Bump up source/target version
+
+Index: default.properties
+--- default.properties.orig
++++ default.properties
+@@ -28,7 +28,7 @@ build.compress = false
+ junit.failonerror = true
+
+ # Minimum version of Java required to build the Wrapper
+-javac.target.version=1.4
++javac.target.version=1.6
+
+ # Location of java to build the pre-release
+ javac.dir=E:\\j2sdk1.4.2_19
Index: java/tanukiwrapper/patches/patch-src_c_wrapper_c
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/patches/patch-src_c_wrapper_c,v
diff -u -p -u -r1.6 patch-src_c_wrapper_c
--- java/tanukiwrapper/patches/patch-src_c_wrapper_c 8 Mar 2022 00:55:14
-0000 1.6
+++ java/tanukiwrapper/patches/patch-src_c_wrapper_c 21 Dec 2025 19:29:00
-0000
@@ -3,7 +3,7 @@ add OpenBSD support
Index: src/c/wrapper.c
--- src/c/wrapper.c.orig
+++ src/c/wrapper.c
-@@ -105,7 +105,7 @@
+@@ -107,7 +107,7 @@
#include <sys/errno.h>
#include <sys/fcntl.h>
#elif defined(AIX) || defined(HPUX) || defined(MACOSX)
@@ -12,7 +12,7 @@ Index: src/c/wrapper.c
#include <sys/param.h>
#include <errno.h>
#else /* LINUX */
-@@ -5886,7 +5886,7 @@ int wrapperRunCommonInner() {
+@@ -7417,7 +7417,7 @@ int wrapperRunCommonInner() {
tz1 = tzname[0];
tz2 = tzname[1];
#endif
@@ -21,7 +21,7 @@ Index: src/c/wrapper.c
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_DEBUG,
TEXT("Timezone: %s (%s) Offset: %ld, hasDaylight: %d"),
tz1, tz2, timezone, daylight);
#else
-@@ -6561,7 +6561,7 @@ int checkIfBinary(const TCHAR *filename) {
+@@ -8111,7 +8111,7 @@ int checkIfBinary(const TCHAR *filename) {
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_DEBUG, TEXT("Magic
number for file %s: 0x%02x%02x%02x%02x"), filename, head[0], head[1], head[2],
head[3]);
}
@@ -30,8 +30,8 @@ Index: src/c/wrapper.c
if (head[1] == 'E' && head[2] == 'L' && head[3] == 'F') {
return 1; /*ELF */
#elif defined(AIX)
-@@ -8282,7 +8282,7 @@ int wrapperBuildJavaCommandArrayInner(TCHAR **strings,
-
+@@ -10849,7 +10849,7 @@ static int wrapperBuildJavaAdditionals(TCHAR **strings
+ static int wrapperBuildAutoBits(TCHAR **strings, int index) {
/* See if the auto bits parameter is set. Ignored by all but the
following platforms. */
-#if /*defined(WIN32) || defined(LINUX) ||*/ defined(HPUX) || defined(MACOSX)
|| defined(SOLARIS) || defined(FREEBSD)
@@ -39,7 +39,7 @@ Index: src/c/wrapper.c
if (wrapperData->javaVersion->major < 9) {
if (getBooleanProperty(properties,
-@@ -8297,6 +8297,8 @@ int wrapperBuildJavaCommandArrayInner(TCHAR **strings,
+@@ -10864,6 +10864,8 @@ static int wrapperBuildAutoBits(TCHAR **strings, int i
TEXT("wrapper.java.additional.auto_bits.solaris"),
#elif defined(FREEBSD)
TEXT("wrapper.java.additional.auto_bits.freebsd"),
Index: java/tanukiwrapper/patches/patch-src_c_wrapper_h
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/patches/patch-src_c_wrapper_h,v
diff -u -p -u -r1.4 patch-src_c_wrapper_h
--- java/tanukiwrapper/patches/patch-src_c_wrapper_h 8 Mar 2022 00:55:14
-0000 1.4
+++ java/tanukiwrapper/patches/patch-src_c_wrapper_h 21 Dec 2025 19:29:00
-0000
@@ -1,18 +1,22 @@
OpenBSD doesn't support timeb api
---- src/c/wrapper.h.orig Fri Jul 31 18:19:37 2020
-+++ src/c/wrapper.h Fri Jul 31 18:21:15 2020
-@@ -51,7 +51,12 @@
+Index: src/c/wrapper.h
+--- src/c/wrapper.h.orig
++++ src/c/wrapper.h
+@@ -52,7 +52,16 @@
#define DWORD unsigned long
#endif
--#include <sys/timeb.h>
++#ifndef OPENBSD
+ #include <sys/timeb.h>
++#else
+struct timeb {
+ time_t time; /* seconds since the Epoch */
+ unsigned short millitm; /* + milliseconds since the Epoch */
+ short timezone; /* minutes west of UTC */
+ short dstflag; /* DST == non-zero */
+};
++#endif
#include "property.h"
#include "wrapper_jvminfo.h"
Index: java/tanukiwrapper/patches/patch-src_c_wrapper_unix_c
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/patches/patch-src_c_wrapper_unix_c,v
diff -u -p -u -r1.5 patch-src_c_wrapper_unix_c
--- java/tanukiwrapper/patches/patch-src_c_wrapper_unix_c 8 Mar 2022
00:55:14 -0000 1.5
+++ java/tanukiwrapper/patches/patch-src_c_wrapper_unix_c 21 Dec 2025
19:29:00 -0000
@@ -1,17 +1,20 @@
OpenBSD doesn't support timeb api
add SI_ASYNCIO define
---- src/c/wrapper_unix.c.orig Fri Jul 31 18:22:16 2020
-+++ src/c/wrapper_unix.c Fri Jul 31 18:23:10 2020
-@@ -51,7 +51,6 @@
- #include <pthread.h>
- #include <pwd.h>
+Index: src/c/wrapper_unix.c
+--- src/c/wrapper_unix.c.orig
++++ src/c/wrapper_unix.c
+@@ -56,7 +56,9 @@
+ #include <sys/filio.h> /* for FIONREAD */
+ #endif
#include <sys/resource.h>
--#include <sys/timeb.h>
++#ifndef OPENBSD
+ #include <sys/timeb.h>
++#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
-@@ -466,8 +465,10 @@ const TCHAR* getSignalCodeDesc(int code) {
+@@ -506,8 +508,10 @@ const TCHAR* getSignalCodeDesc(int code) {
return TEXT("mesq state changed");
#endif
Index: java/tanukiwrapper/pkg/PLIST
===================================================================
RCS file: /cvs/ports/java/tanukiwrapper/pkg/PLIST,v
diff -u -p -u -r1.4 PLIST
--- java/tanukiwrapper/pkg/PLIST 8 Mar 2022 00:55:14 -0000 1.4
+++ java/tanukiwrapper/pkg/PLIST 21 Dec 2025 19:29:00 -0000
@@ -1,5 +1,5 @@
-lib/tanukuwrapper/
-@so lib/tanukuwrapper/libwrapper.so
+lib/tanukiwrapper/
+@so lib/tanukiwrapper/libwrapper.so
@bin sbin/tanukiwrapper
share/java/
share/java/classes/
Index: net/i2p/Makefile
===================================================================
RCS file: /cvs/ports/net/i2p/Makefile,v
diff -u -p -u -r1.26 Makefile
--- net/i2p/Makefile 6 Nov 2025 20:43:36 -0000 1.26
+++ net/i2p/Makefile 21 Dec 2025 19:29:00 -0000
@@ -3,6 +3,7 @@ COMMENT= i2p routing protocol
V = 2.10.0
DISTNAME = i2psource_${V}
PKGNAME = i2p-${V}
+REVISION = 0
CATEGORIES= net
@@ -21,13 +22,13 @@ WANTLIB += gmp
SITES = https://files.i2p-projekt.de/${V}/
MODULES= java
-MODJAVA_VER= 1.8
+MODJAVA_VER= 17
MODJAVA_BUILD= ant
-MODJAVA_BUILD_TARGET_NAME= pkg
+MODJAVA_BUILD_TARGET_NAME=distclean updater preppkg
BUILD_DEPENDS= devel/gettext,-tools
RUN_DEPENDS= devel/gettext,-runtime \
- java/tanukiwrapper
+ java/tanukiwrapper>=3.6.3
LIB_DEPENDS= devel/gmp
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
Index: net/i2p/patches/patch-core_java_src_net_i2p_util_NativeBigInteger_java
===================================================================
RCS file: net/i2p/patches/patch-core_java_src_net_i2p_util_NativeBigInteger_java
diff -N net/i2p/patches/patch-core_java_src_net_i2p_util_NativeBigInteger_java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ net/i2p/patches/patch-core_java_src_net_i2p_util_NativeBigInteger_java
21 Dec 2025 19:29:00 -0000
@@ -0,0 +1,14 @@
+Dont try to read /proc/cpuinfo and set opt to ARMV8 on aarch64
+
+Index: core/java/src/net/i2p/util/NativeBigInteger.java
+--- core/java/src/net/i2p/util/NativeBigInteger.java.orig
++++ core/java/src/net/i2p/util/NativeBigInteger.java
+@@ -441,6 +441,8 @@ public class NativeBigInteger extends BigInteger {
+ } else if (_isArm) {
+ if (_isWin)
+ return null;
++ if (_isOpenbsd && _is64)
++ return JBIGI_OPTIMIZATION_ARM_ARMV8;
+ Map<String, String> cpuinfo = getCPUInfo();
+ String implementer = cpuinfo.get("cpu implementer");
+ String part = cpuinfo.get("cpu part");
Index: net/i2p/patches/patch-installer_resources_i2prouter
===================================================================
RCS file: /cvs/ports/net/i2p/patches/patch-installer_resources_i2prouter,v
diff -u -p -u -r1.2 patch-installer_resources_i2prouter
--- net/i2p/patches/patch-installer_resources_i2prouter 8 Mar 2022 00:56:24
-0000 1.2
+++ net/i2p/patches/patch-installer_resources_i2prouter 21 Dec 2025 19:29:00
-0000
@@ -3,8 +3,9 @@ set proper path for log and temp dirs
remove link to internal wrapper - doesn't work
set link to tanukiwrapper
---- installer/resources/i2prouter.orig Mon May 25 18:07:52 2020
-+++ installer/resources/i2prouter Sat Aug 1 01:12:28 2020
+Index: installer/resources/i2prouter
+--- installer/resources/i2prouter.orig
++++ installer/resources/i2prouter
@@ -28,7 +28,7 @@
# Note that (percent)INSTALL_PATH, (percent)USER_HOME, and
(percent)SYSTEM_java_io_tmpdir
# should have been replaced by the izpack installer.
@@ -35,20 +36,3 @@ set link to tanukiwrapper
WRAPPER_CONF="$I2P/wrapper.config"
# Priority at which to run the wrapper. See "man nice" for valid priorities.
-@@ -548,14 +548,14 @@ outputFile() {
- }
-
- setup_openbsd() {
-- if ! pkg_info -qe 'java-tanukiwrapper->=3.5.19'; then
-+ if ! pkg_info -qe 'tanukiwrapper->=3.5.19'; then
- echo "Java wrapper not found. Either:"
- echo "- install the package java-tanukiwrapper then start I2P again;
or"
- echo "- start I2P with $I2P/runplain.sh"
- exit 1
- else
- # Wrapper package is installed so let's try copying the bits into the
proper places
-- pkg_path=$(pkg_info -v java-tanukiwrapper | awk '/^@cwd/{print $2}')
-+ pkg_path=$(pkg_info -v tanukiwrapper | awk '/^@cwd/{print $2}')
- if [ -z $pkg_path ]; then
- # Fallback, but we shouldn't end up here
- echo "Unable to locate ${WRAPPER_CMD} in ${I2P}!"
Index: net/i2p/patches/patch-installer_resources_wrapper_config
===================================================================
RCS file: /cvs/ports/net/i2p/patches/patch-installer_resources_wrapper_config,v
diff -u -p -u -r1.3 patch-installer_resources_wrapper_config
--- net/i2p/patches/patch-installer_resources_wrapper_config 6 Feb 2025
16:46:04 -0000 1.3
+++ net/i2p/patches/patch-installer_resources_wrapper_config 21 Dec 2025
19:29:00 -0000
@@ -2,6 +2,7 @@ path to java binary
add proper classpaths for i2p and wrapper
add library path for wrapper
set runtime dirs
+remove stripquotes for newer wrapper
Index: installer/resources/wrapper.config
--- installer/resources/wrapper.config.orig
@@ -15,7 +16,7 @@ Index: installer/resources/wrapper.confi
# Specify a specific java binary:
#set.JAVA_HOME=/java/path
#wrapper.java.command=%JAVA_HOME%/bin/java
-@@ -60,13 +60,13 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.Wrap
+@@ -60,22 +60,23 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.Wrap
# classes, or all the classes of i2p.jar, are in a different directory).
# Be sure there are no other duplicate classes.
#
@@ -28,24 +29,37 @@ Index: installer/resources/wrapper.confi
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
-wrapper.java.library.path.1=$INSTALL_PATH
-wrapper.java.library.path.2=$INSTALL_PATH/lib
-+wrapper.java.library.path.1=${LOCALBASE}/lib/tanukuwrapper
++wrapper.java.library.path.1=${LOCALBASE}/lib/tanukiwrapper
+wrapper.java.library.path.2=${LOCALBASE}/share/i2p/lib
# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit
mode.
wrapper.java.additional.auto_bits=FALSE
-@@ -74,8 +74,14 @@ wrapper.java.additional.auto_bits=FALSE
+
# Java Additional Parameters
- # Numbers must be consecutive (except for stripquotes)
+-# Numbers must be consecutive (except for stripquotes)
wrapper.java.additional.1=-DloggerFilenameOverride=logs/[email protected]
-wrapper.java.additional.2=-Di2p.dir.base="$INSTALL_PATH"
-+wrapper.java.additional.2=-Di2p.dir.base="${LOCALBASE}/share/i2p"
- wrapper.java.additional.2.stripquotes=TRUE
-+wrapper.java.additional.3=-Di2p.dir.app="${DB_DIR}"
-+wrapper.java.additional.3.stripquotes=TRUE
-+wrapper.java.additional.4=-Di2p.dir.config="${DB_DIR}"
-+wrapper.java.additional.4.stripquotes=TRUE
-+wrapper.java.additional.5=-Di2p.dir.router="${DB_DIR}"
-+wrapper.java.additional.5.stripquotes=TRUE
+-wrapper.java.additional.2.stripquotes=TRUE
++wrapper.java.additional.2=-Di2p.dir.base=${LOCALBASE}/share/i2p
++wrapper.java.additional.3=-Di2p.dir.app=${DB_DIR}
++wrapper.java.additional.4=-Di2p.dir.config=${DB_DIR}
++wrapper.java.additional.5=-Di2p.dir.router=${DB_DIR}
# Suppress JNI warning in JRE 24+, and eventual restriction
# See https://openjdk.org/jeps/472
+@@ -106,12 +107,9 @@ wrapper.java.additional.2.stripquotes=TRUE
+ # wrapper.java.additional.8=-Dorg.mortbay.util.FileResource.checkAliases=false
+ # PORTABLE installation:
+ # uncomment the following
+-#wrapper.java.additional.3=-Di2p.dir.pid="$INSTALL_PATH"
+-#wrapper.java.additional.3.stripquotes=TRUE
+-#wrapper.java.additional.4=-Di2p.dir.temp="$INSTALL_PATH"
+-#wrapper.java.additional.4.stripquotes=TRUE
+-#wrapper.java.additional.5=-Di2p.dir.config="$INSTALL_PATH"
+-#wrapper.java.additional.5.stripquotes=TRUE
++#wrapper.java.additional.3=-Di2p.dir.pid=$INSTALL_PATH
++#wrapper.java.additional.4=-Di2p.dir.temp=$INSTALL_PATH
++#wrapper.java.additional.5=-Di2p.dir.config=$INSTALL_PATH
+ #
+ # Uncomment this for better performance.
+ # If it doesn't work, server mode is not available in your JVM.