commit:     e6484516afab990972c2327a25eb98e44ed1381d
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Mon Feb 16 07:37:52 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Feb 16 09:03:27 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6484516

net-p2p/freenet: add 0.7.5_p1506

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://codeberg.org/gentoo/gentoo/pulls/69
Merges: https://codeberg.org/gentoo/gentoo/pulls/69
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-p2p/freenet/Manifest                   |   2 +
 net-p2p/freenet/freenet-0.7.5_p1506.ebuild | 237 +++++++++++++++++++++++++++++
 2 files changed, 239 insertions(+)

diff --git a/net-p2p/freenet/Manifest b/net-p2p/freenet/Manifest
index 7a620469c6b1..2d7029d275ea 100644
--- a/net-p2p/freenet/Manifest
+++ b/net-p2p/freenet/Manifest
@@ -1,4 +1,6 @@
 DIST freenet-build01505-source.tar.bz2 6834467 BLAKE2B 
b6dcc82130c5637d2ab2564bd028cc45ea22ef850016d56c174733937fb55a6d5bf771d9fe5abb246f9556601ab7e8cc884e8494863522cb0b44677505a72b5f
 SHA512 
d00c7fc50685e033cadbbe68d46bf2aaa6f0bda4266af9c6dceb1603a0ab646e0e740a8e4ea04e20f7864807f46960d44f634f720ef9cbe28acd084fa321f8c0
 DIST freenet-build01505-source.tar.bz2.sig 566 BLAKE2B 
4d627c097619b9ecf33c9053f1b46f9c5aedeab7d44d99699fd7f61a3f4d56cd54e28f9460feeffd1ee119b9f53aa1756ade9d6498649aa52f03ae45ff98bfbe
 SHA512 
ff9bc5c0f3512e6792c747069e1cbf251e7e7f1db5f347e27d8d4ec4b29f82e095af167b7b8b645f9027dbe244c5675ab7644740e0e2de5fdec864a6db89f360
+DIST freenet-build01506-source.tar.bz2 6845159 BLAKE2B 
b67515683fa3ccb87986dcd51bb4914bdbeda8b69c69ccc974615f1f3fd1b5549e7058e62c28400fbb10e6e6be3e33b0415729626cbcd4146cc52a67a4e4ea78
 SHA512 
209a52bd093c7ee43327de6ca34cf030d74953edbc325866b19c8bb7cf76d35f0d606ee5665c580c3e499900b14d94c384e22bec5e1b6884b7db0e0da07f7c2c
+DIST freenet-build01506-source.tar.bz2.sig 566 BLAKE2B 
7a6fc7f7495672c3305abac593c0ce870e3038f23d342476ebd4d7579e8fbab58a2c09b1bc2812a94610c7fffa253a8c612ef25d8d199cb257293b4641f03bb2
 SHA512 
6b54a603359d0b0c4ff5a62e7f2ac1a1b2956746ac2f70b06375a798c016642082501b1fa6df6081562a5e45ab5819739eb397ce82c302d99a5c4650fde064b8
 DIST freenet-ext-29.tar.gz 4328779 BLAKE2B 
a9dc6dc34d6dbccc9f89c955f35b35024a7067aa8e89cf195492e77a8ebc92b73cc98e779c7f75ba6a430e994e856937be018a6505e1cda07eeea275925ee0e7
 SHA512 
11cf0942042483403cf526684a18c2b1766d3f6fb15c2ca4bdb59d95382ed86fcdb71a66d9f43a504abf3ca5c53f9da749086e462bbb56826beb95a2a7f1cbfa
 DIST seednodes-0.7.5_p1480.tar.gz 12364 BLAKE2B 
edb4e2a5c7424b51f0afb8234c7e486d56fe92e9201ab7ed7658366f070225f8def1b5412a31367e434ab4afae393caa16e7bdd7307f1d870607105fd5076638
 SHA512 
a2662a29f5721cd1523eb68b8787b074baec990327207b9ff444c91e644738a610e5216064aef00c62d6aca8ba66b2035a3175f63d45c1e0e8efc816b2a38660

diff --git a/net-p2p/freenet/freenet-0.7.5_p1506.ebuild 
b/net-p2p/freenet/freenet-0.7.5_p1506.ebuild
new file mode 100644
index 000000000000..23903c80fa71
--- /dev/null
+++ b/net-p2p/freenet/freenet-0.7.5_p1506.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-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-4"
+
+inherit java-pkg-2 java-pkg-simple systemd toolchain-funcs verify-sig
+
+DESCRIPTION="Freenet REference Daemon"
+HOMEPAGE="https://www.hyphanet.org";
+FEV="29"
+SRC_URI="https://github.com/hyphanet/fred/releases/download/build0${PV#*p}/freenet-build0${PV#*p}-source.tar.bz2
+       https://github.com/hyphanet/seedrefs/archive/build01480.tar.gz -> 
seednodes-0.7.5_p1480.tar.gz
+       https://github.com/hyphanet/contrib/archive/v${FEV}.tar.gz -> 
freenet-ext-${FEV}.tar.gz
+       verify-sig? (
+               
https://github.com/hyphanet/fred/releases/download/build0${PV#*p}/freenet-build0${PV#*p}-source.tar.bz2.sig
+       )"
+S="${WORKDIR}/freenet-build0${PV#*p}"
+
+LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+nss"
+
+# Since 0.7.5_p1505-r1 we drop dev-java/mersennetwister which was
+# built from a tarball hosted in "mirror://gentoo/${P}.tar.bz2".
+# More information is provided on HOMEPAGE of that package:
+# http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
+# It is now built by using more sources of dev-java/freenet-ext.
+CP_DEPEND="
+       dev-java/bcprov:0
+       dev-java/commons-compress:0
+       >=dev-java/commons-io-2.19.0:0
+       >=dev-java/freenet-ext-29-r3:29
+       dev-java/java-service-wrapper:0
+       dev-java/jbitcollider-core:0
+       >=dev-java/jna-5.17.0:0
+       >=dev-java/lzma-24.09:0
+       dev-java/lzmajio:0
+       dev-java/pebble:0
+"
+
+DEPEND="
+       dev-java/unbescape:0
+       >=virtual/jdk-1.8:*
+       ${CP_DEPEND}
+       test? (
+               dev-java/hamcrest:0
+               dev-java/mockito:1
+               dev-java/objenesis:0
+       )
+"
+
+RDEPEND="
+       acct-user/freenet
+       acct-group/freenet
+       >=virtual/jre-1.8:*
+       ${CP_DEPEND}
+       nss? ( dev-libs/nss )
+"
+
+BDEPEND="
+       app-arch/unzip
+       verify-sig? ( sec-keys/openpgp-keys-freenet )
+"
+
+DOCS=(
+       AUTHORS
+       CONTRIBUTING.md
+       NEWS.md
+       README.md
+       SECURITY.md
+)
+
+PATCHES=( "${FILESDIR}/freenet-0.7.5_p1503-ignore-failing-tests.patch" )
+
+JAVADOC_ARGS="-source 8" # bug #967404
+JAVA_CLASSPATH_EXTRA="java-service-wrapper,unbescape"
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR="src"
+JAVA_TEST_GENTOO_CLASSPATH="hamcrest,junit-4,mockito-1,objenesis"
+
+# Yes, both variables point to the same directory
+# https://github.com/hyphanet/fred/blob/build01497/build.gradle#L169-L173
+JAVA_TEST_RESOURCE_DIRS="test"
+JAVA_TEST_SRC_DIR="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/freenetproject.org.asc"
+src_unpack() {
+       if use verify-sig; then
+               verify-sig_verify_detached \
+                       "${DISTDIR}"/freenet-build0${PV#*p}-source.tar.bz2 \
+                       "${DISTDIR}"/freenet-build0${PV#*p}-source.tar.bz2.sig
+       fi
+       unpack freenet-build0${PV#*p}-source.tar.bz2
+       unpack seednodes-0.7.5_p1480.tar.gz
+
+       # we need NativeThread.c
+       unpack freenet-ext-${FEV}.tar.gz
+       mkdir "${S}/NativeThread" || die "mkdir NativeThread"
+       mv "${WORKDIR}/contrib-${FEV}/NativeThread/NativeThread.c" \
+               "${S}/NativeThread" || die "move NativeThread.c"
+}
+
+src_prepare() {
+       default # bug #780585
+       java-pkg-2_src_prepare
+
+       # Could not get resource : freenet/l10n/freenet.l10n.pt-PT.properties
+       # https://github.com/hyphanet/fred/pull/500
+       mv src/freenet/l10n/freenet.l10n.pt{_,-}PT.properties || die
+
+       # java-pkg-simple wants resources in JAVA_RESOURCE_DIRS
+       mkdir res || die
+       pushd src  > /dev/null || die
+               find -type f \
+                       ! -name '*.java' \
+                       ! -name 'package.html' \
+                       ! -path '*/simulator/readme.txt' \
+                       | xargs cp --parent -t ../res || die
+       popd > /dev/null || die
+
+       mkdir "${JAVA_RESOURCE_DIRS}/META-INF" || die
+       cat > "${JAVA_RESOURCE_DIRS}/META-INF/MANIFEST.MF" <<- EOF || die
+               Add-opens: java.base/java.lang java.base/java.util 
java.base/java.io
+       EOF
+
+       cat "${WORKDIR}"/seedrefs-build01480/* > "${S}"/seednodes.fref
+       cp "${FILESDIR}"/freenet-0.7.5_p1503-wrapper.conf freenet-wrapper.conf 
|| die
+       cp "${FILESDIR}"/run.sh-20090501 run.sh || die
+
+       sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
+               freenet-wrapper.conf || die "sed failed"
+
+       echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> 
freenet-wrapper.conf || die
+       if use nss; then
+               echo "wrapper.java.additional.11=-Dfreenet.jce.use.NSS=true" >> 
freenet-wrapper.conf || die
+       fi
+}
+
+src_compile() {
+       java-pkg-simple_src_compile
+
+       # Moved here because of using JAVA_GENTOO_CLASSPATH which is populated 
by java-pkg_gen-cp.
+       local i=2 pkg jars jar
+       local ifs_original=${IFS}
+       IFS=","
+       for pkg in ${JAVA_GENTOO_CLASSPATH} ; do
+               jars="$(java-pkg_getjars ${pkg})"
+               for jar in ${jars} ; do
+                       echo "wrapper.java.classpath.$((i++))=${jar}" >> 
freenet-wrapper.conf || die
+               done
+       done
+       IFS=${ifs_original}
+       echo 
"wrapper.java.library.path.2=/usr/$(get_libdir)/java-service-wrapper" >> 
freenet-wrapper.conf || die
+       echo "wrapper.java.library.path.3=/usr/$(get_libdir)/jna" >> 
freenet-wrapper.conf || die
+
+       einfo "NativeThread"
+       cd NativeThread || die "cd NativeThread"
+
+       einfo "Generate header"
+       ejavac -h . -classpath ../target/classes:"$(java-pkg_getjars jna)" \
+               ../src/freenet/support/io/NativeThread.java
+
+       mv {freenet_support_io_NativeThread_Linux,}NativeThread.h || die
+
+       "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
+               $(java-pkg_get-jni-cflags) -Ibuild/. \
+               -c -o libNativeThread.o NativeThread.c || die
+
+       "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
+               -shared -Wl,-soname,libNativeThread.so \
+               -o libNativeThread.so libNativeThread.o || die
+}
+
+src_test() {
+       JAVA_TEST_EXTRA_ARGS=(
+               -Djava.library.path="${EPREFIX}/usr/$(get_libdir)/jna/"
+               -Djna.nosys=false
+               -Dnetworkaddress.cache.negative.ttl=0
+               -Dnetworkaddress.cache.ttl=0
+               # 
https://github.com/hyphanet/fred/blob/build01497/build.gradle#L194-L196
+               # "test.l10npath_main" reads from the JAR file.
+               -Dtest.l10npath_test="freenet/l10n/"
+               -Dtest.l10npath_main="freenet/l10n/"
+               --enable-native-access=ALL-UNNAMED
+       )
+       local vm_version="$(java-config -g PROVIDES_VERSION)"
+       if ver_test "${vm_version}" -ge 17; then
+               JAVA_TEST_EXTRA_ARGS+=(
+                       --add-opens=java.base/java.{io,lang,util}=ALL-UNNAMED
+               )
+       fi
+
+       local JAVA_TEST_RUN_ONLY=$(find test -type f -name "*Test.java" -printf 
'%P\n')
+       JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
+       JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
+       java-pkg-simple_src_test
+}
+
+src_install() {
+       java-pkg-simple_src_install
+
+       doinitd "${FILESDIR}"/freenet
+
+       systemd_dounit "${FILESDIR}"/freenet.service
+
+       insinto /etc
+       doins freenet-wrapper.conf
+       insinto /var/freenet
+       doins run.sh seednodes.fref
+       fperms +x /var/freenet/run.sh
+
+       cd NativeThread || die "cd NativeThread"
+       dolib.so libNativeThread.so
+       dosym libNativeThread.so /usr/$(get_libdir)/libnative.so
+}
+
+pkg_postinst() {
+       elog " "
+       elog "1. Start freenet with rc-service freenet start."
+       elog "2. Open localhost:8888 in your browser for the web interface."
+       #workaround for previously existing freenet user
+       [[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
+               freenet:freenet /var/freenet
+}
+
+pkg_postrm() {
+       if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
+               elog " "
+               elog "If you dont want to use freenet any more"
+               elog "and dont want to keep your identity/other stuff"
+               elog "remember to do 'rm -rf /var/freenet' to remove everything"
+       fi
+}

Reply via email to