commit:     1dae83917f61c8e9fbe095ac3ad9b1c928f75f38
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Fri Dec 19 15:57:09 2025 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Tue Jan 27 19:51:25 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1dae8391

net-p2p/biglybt: add 4.0.0.0

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Part-of: https://github.com/gentoo/gentoo/pull/45096
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 net-p2p/biglybt/Manifest               |   1 +
 net-p2p/biglybt/biglybt-4.0.0.0.ebuild | 152 +++++++++++++++++++++++++++++++++
 2 files changed, 153 insertions(+)

diff --git a/net-p2p/biglybt/Manifest b/net-p2p/biglybt/Manifest
index 09a73ed4cf77..226285f51ffa 100644
--- a/net-p2p/biglybt/Manifest
+++ b/net-p2p/biglybt/Manifest
@@ -1 +1,2 @@
 DIST biglybt-3.9.0.0.tar.gz 53470140 BLAKE2B 
7bd12cb42cb6a31fd672140db8b768b0d2fb955082aec1732033c86d79f16ad6b5324c8b2e420d58bc9789e2badab901efaa33b9a132d7d85a93ff64d6be19e8
 SHA512 
f1605b8f77442f94b6cb4144287efb9fa241f89a03b15ee5926b28ff839d23bbc3131997185900ab5779be9882ac0e89f196435ec2f0d8f2d0626ad99e84874e
+DIST biglybt-4.0.0.0.tar.gz 56012777 BLAKE2B 
58bc921058da81325c07c72bddb0f13df67e176f924978973a4b9e33145f20996949962fa70469e6eb0efbcf135d74dae9ee3b322ac585cd43430c45014b5867
 SHA512 
b185e55b4a491e63e99bf9a675dca4e6505094e1044c4f06894ae9fe77f06a31b18ca3ac792ce894e4d623dab98c020a4b440aa1ba11dd0d403d573a4daf3132

diff --git a/net-p2p/biglybt/biglybt-4.0.0.0.ebuild 
b/net-p2p/biglybt/biglybt-4.0.0.0.ebuild
new file mode 100644
index 000000000000..ac5e5ca3a233
--- /dev/null
+++ b/net-p2p/biglybt/biglybt-4.0.0.0.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2026 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]
+# Restrict to max jdk:25 because of a compilation error with jdk:26.
+# core/src/com/biglybt/core/security/impl/SESecurityManagerImpl.java:415: 
error: cannot find symbol
+#                      t.stop();
+#                       ^
+#   symbol:   method stop()
+#   location: variable t of type Thread
+DEPEND="
+       ${CP_DEPEND}
+       || ( virtual/jdk:25 virtual/jdk:21 virtual/jdk:17 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