commit: 2a8299e14eca9672b4bfe0c108b43a8adeb4d3be Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net> AuthorDate: Sun Feb 8 23:40:47 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Feb 9 01:14:41 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a8299e1
net-p2p/freenet: add 0.7.5_p1505 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net> Part-of: https://github.com/gentoo/gentoo/pull/45699 Closes: https://github.com/gentoo/gentoo/pull/45699 Signed-off-by: Sam James <sam <AT> gentoo.org> net-p2p/freenet/Manifest | 2 + net-p2p/freenet/freenet-0.7.5_p1505.ebuild | 233 +++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+) diff --git a/net-p2p/freenet/Manifest b/net-p2p/freenet/Manifest index 917e8a8757a2..68f09833a8c6 100644 --- a/net-p2p/freenet/Manifest +++ b/net-p2p/freenet/Manifest @@ -2,5 +2,7 @@ DIST freenet-build01503-source.tar.bz2 6766859 BLAKE2B f23091d3c0d03eb6cc85e6417 DIST freenet-build01503-source.tar.bz2.sig 566 BLAKE2B 525c749eaa0f499ffdd1ebeac1b4473c22259b9370143706576fba44a618e569cf986b7ad8e4a91730eb2c7809e413a5f433e3b9641dda1be3d7a6ed7856fb58 SHA512 52f2fa65d6cef59ea2b85a510c361470e5cf042d591ef0f3275eed4eb82a55529a52cf3452b5e507554cd822adbaff56121ac134b43a3adac62fbed350d5e881 DIST freenet-build01504-source.tar.bz2 6840333 BLAKE2B 4dc8291b9edc3ba0e59ee57738e8cb627089d35fc12c71955e2fa4c86fdc7eb3fba56f68e939108a6187927c1089ad08d630e72d8df670080f7b03a82df40823 SHA512 02f78761664d24a6fda21a389ff817f32562971050e7f95ef08d45839b01bac173b441a5b76df89c9da1ac2e0eb404be8ecb6c6d4c6c4d459721b499afb31554 DIST freenet-build01504-source.tar.bz2.sig 566 BLAKE2B dfdd27e35252ac79a05ec9c38e089893b8f2349ba49e74cbd109d9811a83d57f978961b45d3c7e3891b1403a380136362c8d0f45fbe92312fff0b1ea2e5df270 SHA512 0afe377861a0f1b142cd05a8294d8743b565fe2ec95278e5502151dfb2d80644e689963db94e5442ad962c79679e9056ca91047c65c5ab4c51895f4a6a765e41 +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-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_p1505.ebuild b/net-p2p/freenet/freenet-0.7.5_p1505.ebuild new file mode 100644 index 000000000000..e76c42cbea5d --- /dev/null +++ b/net-p2p/freenet/freenet-0.7.5_p1505.ebuild @@ -0,0 +1,233 @@ +# 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" + +CP_DEPEND=" + dev-java/bcprov:0 + dev-java/commons-compress:0 + >=dev-java/commons-io-2.19.0:0 + >=dev-java/freenet-ext-29-r2: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/mersennetwister: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 + 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 +}
