commit:     6f047e3b9ea36cc26161389c618fd41502a02018
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Thu Sep  4 08:35:39 2025 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Fri Sep  5 07:57:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f047e3b

net-p2p/biglybt: add 3.9.0.0 with tests enabled

Bug: https://bugs.gentoo.org/902111
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/43626
Closes: https://github.com/gentoo/gentoo/pull/43626
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 net-p2p/biglybt/Manifest               |   1 +
 net-p2p/biglybt/biglybt-3.9.0.0.ebuild | 146 +++++++++++++++++++++++++++++++++
 2 files changed, 147 insertions(+)

diff --git a/net-p2p/biglybt/Manifest b/net-p2p/biglybt/Manifest
index 803b796e58b5..21b49be7ae6a 100644
--- a/net-p2p/biglybt/Manifest
+++ b/net-p2p/biglybt/Manifest
@@ -1,2 +1,3 @@
 DIST biglybt-3.7.0.0.tar.gz 44021778 BLAKE2B 
9ce54062b298d2e47f9fcc88a3fa8da935c7d3c4ad24f28cf2975300b78140b547e3e43c377cae50fd1276d49d53a43bc77e36957133dc6fe1fa7e301ebe80fe
 SHA512 
815ce2f2b327de266650d9650dcbc539247dca2a8bce727ca0a4fc6eb7dfbcee770ffce04dd3b96aef458df1ee20ce39229f6a3d409725a532d081c82d4504bd
 DIST biglybt-3.8.0.2.tar.gz 46676464 BLAKE2B 
d78f07cfc0d71ef29bc17c75c4dc834001ed91f6c4e0ae1e4be80f6a175c55fcba05c802a2739fd4636df3b28c7feda2e127cd99554acca9a8820338cf4eac12
 SHA512 
3679a153cdaaf861f0e5c3ead1164358435f2031999f2fd14fe6944d162bdd0e88ca253f053c94b4958f5a8550e3a89a923857d09ad022b6c1b9e6d17f089698
+DIST biglybt-3.9.0.0.tar.gz 53470140 BLAKE2B 
7bd12cb42cb6a31fd672140db8b768b0d2fb955082aec1732033c86d79f16ad6b5324c8b2e420d58bc9789e2badab901efaa33b9a132d7d85a93ff64d6be19e8
 SHA512 
f1605b8f77442f94b6cb4144287efb9fa241f89a03b15ee5926b28ff839d23bbc3131997185900ab5779be9882ac0e89f196435ec2f0d8f2d0626ad99e84874e

diff --git a/net-p2p/biglybt/biglybt-3.9.0.0.ebuild 
b/net-p2p/biglybt/biglybt-3.9.0.0.ebuild
new file mode 100644
index 000000000000..73821034f8e8
--- /dev/null
+++ b/net-p2p/biglybt/biglybt-3.9.0.0.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# for 3.8.0.2 USE=doc produces 2 errors:
+#   uis/src/com/biglybt/ui/swt/plugin/net/buddy/swt/BuddyPluginView.java:68:
+#   
uis/src/com/biglybt/ui/swt/plugin/net/buddy/swt/BuddyPluginViewChat.java:45:
+#   error: package com.biglybt.ui.swt.plugin.net.buddy does not exist
+JAVA_PKG_IUSE="source test"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+MAVEN_PROVIDES="com.${PN}:${PN}-core:${PV} com.${PN}:${PN}-ui:${PV}"
+
+inherit desktop java-pkg-2 java-pkg-simple junit5 optfeature xdg
+
+DESCRIPTION="Feature-filled Bittorrent client based on Azureus"
+HOMEPAGE="https://www.biglybt.com";
+SRC_URI="https://github.com/BiglySoftware/BiglyBT/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/BiglyBT-${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+CP_DEPEND="
+       >=dev-java/bcprov-1.80:0
+       dev-java/commons-cli:0
+       dev-java/swt:0[cairo]
+"
+
+# Due to removal of AENameServiceDescriptor it would fail to start under 
jdk:1.8
+# StartServer ERROR: unable to bind to 127.0.0.1:6880 listening for passed 
torrent info: \
+# sun.net.spi.nameservice.NameServiceDescriptor: Provider 
com.biglybt.core.util.spi.AENameServiceDescriptor not found
+#
+# NOTE: BiglyBT works with [headless-awt]
+DEPEND="
+       ${CP_DEPEND}
+       >=virtual/jdk-11:*
+       test? ( dev-java/assertj-core:3 )
+"
+
+RDEPEND="
+       ${CP_DEPEND}
+       >=virtual/jre-1.8:*
+"
+
+DOCS=( README.md ChangeLog.txt )
+
+PATCHES=(
+       "${FILESDIR}"/biglybt-3.2.0.0-disable-SWTUpdateChecker.patch
+       "${FILESDIR}"/biglybt-3.2.0.0-disable-shared-plugins.patch
+       "${FILESDIR}"/biglybt-3.5.0.0-Entities.javadoc.patch
+       "${FILESDIR}"/biglybt-3.6.0.0-disable-PluginUpdatePlugin.patch
+       "${FILESDIR}"/biglybt-3.6.0.0-fix-ambiguous.patch
+       "${FILESDIR}"/biglybt-3.8.0.2-unbundle-bcprov.patch #936549
+)
+
+JAVA_GENTOO_CLASSPATH_EXTRA="target/classes"
+JAVA_JAR_FILENAME="BiglyBT.jar"
+JAVA_MAIN_CLASS="com.${PN}.ui.Main"
+JAVA_RESOURCE_DIRS=( {core,uis}/resources )    # both are needed
+JAVA_SRC_DIR="uis/src" # we compile core manually to avoid bloating the jar
+
+#  source: MethodSource [className = 
'com.biglybt.core.internat.PropertyFilesTest', methodName = 
'noSplitlinesInPropertyFilesForLocalizations', methodParameterTypes = '']
+#  caught: java.lang.NullPointerException: Resource not found: 
com/biglybt/internat/MessagesBundle_he_IL.properties
+#              at 
org.assertj.core.util.Preconditions.checkNotNull(Preconditions.java:92)
+#              at 
com.biglybt.core.internat.PropertyFilesTest.noSplitlinesInPropertyFilesForLocalizations(PropertyFilesTest.java:36)
+#              at java.base/java.lang.reflect.Method.invoke(Method.java:565)
+#              at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+#              at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
+#duration: 144 ms
+#  status: ✘ FAILED
+JAVA_TEST_EXCLUDES=(
+       com.biglybt.core.internat.PropertyFilesTest
+       com.biglybt.core.WikiTest
+)
+
+JAVA_TEST_GENTOO_CLASSPATH="assertj-core-3 junit-5"
+JAVA_TEST_SRC_DIR="core/src.test"
+
+declare -r ASSET_DIR="${S}"/assets/linux
+src_prepare() {
+       default #780585
+       rm -r core/src/org/gudy || die "removing bundled bouncycastle failed" 
#936549
+       java-pkg-2_src_prepare
+
+       find -type f -name ".editorconfig" -o -name ".gitignore" -delete \
+               || die "Cleaning distfile artifacts failed"
+
+       # AENameServiceDescriptor fails to compile with jdk >= 11
+       # "error: package sun.net.spi.nameservice does not exist"
+       # https://github.com/BiglySoftware/BiglyBT/pull/2611
+       rm -r core/src/com/biglybt/core/util/spi || die "deleting spi failed"
+
+       # java-pkg-simple.eclass expects resources in a separate directory
+       # REVIEW: instead of copying all and deleting it would be better to 
copy selectively
+       local module
+       for module in core uis; do
+               cp -r ${module}/{src,resources} || die "copying source for 
resources failed"
+               find ${module}/resources -type f -name "*.java" -delete || die 
"deleting java files failed"
+       done
+       rm -r core/resources/META-INF || die "deleting copied META-INF failed"
+
+       # patch the desktop file
+       sed -i \
+               -e '/#!/d' \
+               -e 's|${installer:dir.main}/||' \
+               -e 's|.svg||' \
+               "${ASSET_DIR}"/${PN}.desktop || die "patching desktop file 
failed"
+
+       # https://github.com/BiglySoftware/BiglyBT/pull/3523
+       sed -i 's/Application;//g' "${ASSET_DIR}"/${PN}.desktop || die
+}
+
+src_compile() {
+       # build core classes, needed for compiling uis
+       ejavac -d target/classes \
+               -cp "$(java-pkg_getjars commons-cli):$(java-pkg_getjars 
swt):$(java-pkg_getjars bcprov)" \
+               $(find core/src -type f -name "*.java")
+
+       java-pkg-simple_src_compile
+
+       # see top comment
+       # use doc && JAVA_SRC_DIR=( {core,uis}/src ) ejavadoc
+}
+
+src_install() {
+       java-pkg-simple_src_install
+
+       doicon -s 256 "${ASSET_DIR}"/${PN}.png
+       doicon -s scalable "${ASSET_DIR}"/${PN}.svg
+       domenu "${ASSET_DIR}"/${PN}.desktop
+
+       if use source; then
+               java-pkg_dosrc "core/src/*"
+               java-pkg_dosrc "uis/src/*"
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       optfeature_header "If you are using plugin proxies, you might want to 
swap them for these native packages:"
+       optfeature "I2P SOCKS proxy" net-vpn/i2p net-vpn/i2pd
+       optfeature "Tor SOCKS proxy" net-vpn/tor
+}

Reply via email to