commit:     87bd8f9bd7ca670b515924f6c69fc4b78e60e45a
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Thu Feb  5 10:57:13 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Feb  9 18:14:53 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87bd8f9b

dev-java/freenet-ext: add 29-r3 with mersennetwister

We want to get rid of dev-java/mersennetwister as a separate package
because upstream is gone (SRC_URI="mirror://gentoo/${P}.tar.bz2").
Its sources can be found here in 'java/org/spaceroots/mantissa/random'.
This commit adds 'java/org/spaceroots' to JAVA_SRC_DIR in order to allow
dropping dev-java/mersennetwister from net-p2p/freenet's dependencies.

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/45702
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-java/freenet-ext/freenet-ext-29-r3.ebuild | 120 ++++++++++++++++++++++++++
 1 file changed, 120 insertions(+)

diff --git a/dev-java/freenet-ext/freenet-ext-29-r3.ebuild 
b/dev-java/freenet-ext/freenet-ext-29-r3.ebuild
new file mode 100644
index 000000000000..69e5bab9fe4c
--- /dev/null
+++ b/dev-java/freenet-ext/freenet-ext-29-r3.ebuild
@@ -0,0 +1,120 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit"
+
+inherit flag-o-matic java-pkg-2 java-pkg-simple toolchain-funcs
+
+DESCRIPTION="Freenet REference Daemon"
+HOMEPAGE="https://github.com/hyphanet/contrib/";
+SRC_URI="https://github.com/hyphanet/contrib/archive/v${PV}.tar.gz -> 
freenet-ext-${PV}.tar.gz"
+S="${WORKDIR}/contrib-${PV}"
+
+LICENSE="public-domain"
+SLOT="29"
+KEYWORDS="~amd64 ~arm64"
+
+DEPEND="
+       dev-libs/gmp:0=
+       >=dev-java/log4j-12-api-2.25.2:0
+       >=virtual/jdk-1.8:*
+"
+RDEPEND="
+       !dev-java/fec:0
+       !<net-p2p/freenet-0.7.5_p1505-r1:0
+       !dev-java/mersennetwister:0
+       dev-libs/gmp
+       >=virtual/jre-1.8:*
+"
+
+PATCHES=(
+       "${FILESDIR}/freenet-ext-29-convert-jcpuid.patch"
+       "${FILESDIR}/freenet-ext-29-csrc.patch"
+)
+
+JAVA_CLASSPATH_EXTRA="log4j-12-api"
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR=(
+       fec/{src,common/{src,tools}}
+       freenet_ext
+       java/{freenet,net/i2p}
+       java/org/spaceroots
+)
+JAVA_TEST_GENTOO_CLASSPATH="junit"
+JAVA_TEST_SRC_DIR="fec/common/test/src"
+
+src_prepare() {
+       default # bug #780585
+       java-pkg-2_src_prepare
+       mkdir -p res/lib || die
+       mv {fec/lib,res/lib}/fec.properties || die
+}
+
+src_compile() {
+       java-pkg-simple_src_compile
+
+       local compile_lib
+       compile_lib() {
+               local name="${1}"
+               local file="${2}"
+               shift 2
+
+               "$(tc-getCC)" "${@}" ${CFLAGS} $(java-pkg_get-jni-cflags) \
+                       ${LDFLAGS} -shared -fPIC "-Wl,-soname,lib${name}.so" \
+                       "${file}" -o "lib${name}.so"
+       }
+
+       cd "${S}/NativeBigInteger/jbigi" || die "unable to cd to jbigi"
+       compile_lib jbigi src/jbigi.c -Iinclude -lgmp ||
+               die "unable to build jbigi"
+
+       if use amd64 || use x86; then
+               cd "${S}/jcpuid" || die "unable to cd to jcpuid"
+               compile_lib jcpuid src/jcpuid.c -Iinclude ||
+                       die "unable to build jcpuid"
+       fi
+
+       cd "${S}"/fec/src/csrc || die
+       append-flags -fPIC
+       emake CC=$(tc-getCC) CFLAGS="${CFLAGS} $(java-pkg_get-jni-cflags)"
+}
+
+src_test () {
+       # 
fec/common/test/src/com/onionnetworks/util/BlockDigestInputStreamTest.java:47: 
error: ')' expected
+       #             assert("Equal Hashes",Util.arraysEqual(buf.b,buf.off,
+       #                                  ^
+       # 
fec/common/test/src/com/onionnetworks/util/BlockDigestInputStreamTest.java:48: 
error: ';' expected
+       #                                                    
md.digest(),0,buf.len));
+       #                                                                       
   ^
+       # fec/common/test/src/com/onionnetworks/util/BzeroTest.java:24: error: 
')' expected
+       #             assert("Empty: 
off="+off+",len="+len,checkArray(b2,b,off,len));
+       #                                                 ^
+       # fec/common/test/src/com/onionnetworks/util/BzeroTest.java:24: error: 
';' expected
+       #             assert("Empty: 
off="+off+",len="+len,checkArray(b2,b,off,len));
+       #                                                                       
   ^
+       # fec/common/test/src/com/onionnetworks/util/BzeroTest.java:37: error: 
')' expected
+       #             assert("Filled : 
off="+off+",len="+len,checkArray(b2,b,off,len));
+       #                                                   ^
+       # fec/common/test/src/com/onionnetworks/util/BzeroTest.java:37: error: 
';' expected
+       #             assert("Filled : 
off="+off+",len="+len,checkArray(b2,b,off,len));
+       #                                                                       
     ^
+       # 6 errors
+       rm 
fec/common/test/src/com/onionnetworks/util/BlockDigestInputStreamTest.java || 
die
+       rm fec/common/test/src/com/onionnetworks/util/BzeroTest.java || die
+
+       # only 3 tests are run while " grep -nr 'public void test' " gives 38 
matches
+       java-pkg-simple_src_test
+}
+
+src_install() {
+       java-pkg-simple_src_install
+       java-pkg_doso NativeBigInteger/jbigi/libjbigi.so
+       java-pkg_doso fec/src/csrc/libfec{8,16}.so
+
+       if use amd64 || use x86; then
+               java-pkg_doso jcpuid/libjcpuid.so
+       fi
+}

Reply via email to