commit:     75c3af6a2297f8557881391ba6c517c6ff21e042
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sun Aug  3 14:45:36 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 05:08:44 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75c3af6a

dev-java/commons-net: add 3.12.0

For generating module-info.java this version uses eclass fuctionality
instead of doing it all in the ebuild.

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

 dev-java/commons-net/Manifest                      |   5 +
 dev-java/commons-net/commons-net-3.12.0.ebuild     | 106 +++++++++++++++
 .../commons-net-3.12.0-skipFailingTests.patch      | 147 +++++++++++++++++++++
 3 files changed, 258 insertions(+)

diff --git a/dev-java/commons-net/Manifest b/dev-java/commons-net/Manifest
index b5d71b6d6de8..f0c5caf1b377 100644
--- a/dev-java/commons-net/Manifest
+++ b/dev-java/commons-net/Manifest
@@ -1,2 +1,7 @@
 DIST commons-net-3.11.1-src.tar.gz 460104 BLAKE2B 
5542a7d9d3d8f2f07a90b3ab21e4e8a66bceecfef8f1ae8ec378003e4c3906414435b095cc0c0016f24d3e174a5e16da52cf4c5503209c08d5e550ef25a7bbdc
 SHA512 
0999067cc73cb0e0ab4940302180a0afa998b37c51f93c1c744bf1d346d14c89283166a665283d98200e98f0b8c39854f17493890d49ddad5769c4deb49de37e
 DIST commons-net-3.11.1-src.tar.gz.asc 488 BLAKE2B 
ea6ba15b7b6800b1c249cb82d784057f701fb13775fc9838e5247e1e8ead9360a7c5381083fa0c0e2b783e339b6e4ebb8ff66cb8c8924b3c00c9b28ee696e7a3
 SHA512 
c9e4c896d2f514996aa50c8af20bab6564d574db4fef69832fe2391beefabfed74a727faf7fe9227b037e943cdba5b2ac143164d5c0df3140b9b7c44ca316e53
+DIST commons-net-3.12.0-src.tar.gz 469615 BLAKE2B 
7c563d5c0d909e67ec41699bc35e1b03a26453d7ed84d0f7c8b534c4fd2d40aa47cfe491869fc4af41ccc11a13f34a90117e3c53e233a32dda3a5999f788b5ed
 SHA512 
f33da0d8f279a174e3c4eb4514a091a5ac74bd55067d6f230b268bab425fe92941f7322665c613ab2984c78dcc376cac5d665f966626108dd70604ffe682d149
+DIST commons-net-3.12.0-src.tar.gz.asc 488 BLAKE2B 
3fcaf77c3580933dce4b4b4bc2b3f93786cf09e4b78dfde3f49956cdb53119645caddcf3733694a5aa45ce08ac83cb37aac0ce49d7eb46f3ae379ea3329a6993
 SHA512 
c2605f71ff721b2c6fa964a565c5d34129392e5c95e81b77eb83366082e99768913e99581f0a04f65310c9a9dfe47a5aae17bdb8ede07c6eb101c6582058f461
+DIST ftplet-api-1.2.1.jar 23347 BLAKE2B 
89ceb01114f6a342eb9bae4b14c1ee5664278253e9f9c9a888342994021f3c8563cab35944ddc26cf33508f80d745da3102d3164666922071e71462073788b60
 SHA512 
8f13c2daf5ffb246d45d04c7dec2e4236ab35b8230255b791701fe2b94206eada6d303a4a9f48200d0e633353fdba5fd5e7f78d7e25d46904e8f87c19a047f35
+DIST ftpserver-core-1.2.1.jar 319560 BLAKE2B 
10bd90b7cf66834687de1317ed53552aecd67bab6f5390752880e07874e886e15a792d33ec8491991dbe272a0b2d866ac6d6e7672b06dfcd6240664cf899cc83
 SHA512 
665e8150c4ee4eb091faab77fdb08c49452ddf3141cdd8701ad14479378d170c4482a146f4ec2225c7b72321a26e64bb8b1cd8b7ec4167905ccbe17a5005d77e
+DIST mina-core-2.2.4.jar 701671 BLAKE2B 
10c7b357a12dbce4e9f989fb8d518629b2748b3808ddac8fa938b7aac8045a6e7fe59ccfa36ef5ec0c9a1a6a7e95e88bcf01cd3753e1191e72e850a8224bcf12
 SHA512 
4269e2e16c99692e2490ad1bcc80ec02958b2c40704d8059f3ef1ff04671ef6bd88747637666a497c99a791a7aa7e3e0f98875cf742af849667aed9c16155f74

diff --git a/dev-java/commons-net/commons-net-3.12.0.ebuild 
b/dev-java/commons-net/commons-net-3.12.0.ebuild
new file mode 100644
index 000000000000..770bf73b06ee
--- /dev/null
+++ b/dev-java/commons-net/commons-net-3.12.0.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="commons-net:commons-net:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-jupiter"
+
+inherit java-pkg-2 java-pkg-simple junit5 verify-sig
+
+DESCRIPTION="Client-oriented Java library to implement many Internet protocols"
+HOMEPAGE="https://commons.apache.org/proper/commons-net/";
+FSV="1.2.1"    # apache-ftpserver isn't yet packaged
+MCV="2.2.4"
+SRC_URI="mirror://apache/commons/net/source/${P}-src.tar.gz
+       test? (
+               
https://repo1.maven.org/maven2/org/apache/ftpserver/ftpserver-core/${FSV}/ftpserver-core-${FSV}.jar
+               
https://repo1.maven.org/maven2/org/apache/ftpserver/ftplet-api/${FSV}/ftplet-api-${FSV}.jar
+               
https://repo1.maven.org/maven2/org/apache/mina/mina-core/${MCV}/mina-core-${MCV}.jar
+       )
+       verify-sig? ( 
https://downloads.apache.org/commons/net/source/${P}-src.tar.gz.asc )"
+S="${WORKDIR}/${P}-src"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ggregory )"
+
+DEPEND="
+       >=dev-java/commons-io-2.20.0:0
+       >=virtual/jdk-11:*
+       test? (
+               >=dev-java/commons-collections-4.5.0:4
+               >=dev-java/commons-lang-3.18.0:0
+               dev-java/junit:4
+               dev-java/opentest4j:0
+               dev-java/slf4j-api:0
+       )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=( CONTRIBUTING.md {NOTICE,RELEASE-NOTES}.txt )
+PATCHES=( "${FILESDIR}/commons-net-3.12.0-skipFailingTests.patch" )
+
+JAVA_CLASSPATH_EXTRA="commons-io"
+JAVA_GENTOO_CLASSPATH_EXTRA=:"${DISTDIR}/ftplet-api-${FSV}.jar"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/ftpserver-core-${FSV}.jar"
+JAVA_GENTOO_CLASSPATH_EXTRA+=:"${DISTDIR}/mina-core-${MCV}.jar"
+JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
+JAVA_MODULE_INFO_OUT="src/main"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_GENTOO_CLASSPATH="commons-collections-4 commons-lang junit-4 junit-5 
opentest4j slf4j-api"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ggregory.asc"
+
+src_unpack() {
+       use verify-sig && verify-sig_verify_detached 
"${DISTDIR}"/${P}-src.tar.gz{,.asc}
+       default
+}
+
+src_prepare() {
+       default #780585
+       java-pkg-2_src_prepare
+
+       # pom.xml lines 179-188 (do not put it in the main jar)
+       mkdir -p src/examples/java/org/apache/commons/net/ || die
+       mv src/{main,examples}/java/org/apache/commons/net/examples || die "mv 
java"
+       mkdir -p target/examples || die
+       mv {src/main/resources,target/examples}/org || die "mv resources"
+}
+
+src_test() {
+       # Some examples are needed only for compiling tests but won't be 
packaged.
+       mkdir -p target/examples || die
+       local examples_sources
+       find src/examples/java -type f -name '*.java' \
+               > examples_sources || die "sources"
+       ejavac -d target/examples @examples_sources \
+               -classpath "$(java-pkg_getjars --build-only 
commons-io)":commons-net.jar
+       JAVA_GENTOO_CLASSPATH_EXTRA+=":target/examples"
+
+       # src/test/java/org/apache/commons/net/util/SubnetUtilsTest.java:39: 
error: cannot find symbol
+       # import org.junit.jupiter.params.provider.FieldSource;
+       rm src/test/java/org/apache/commons/net/util/SubnetUtilsTest.java || 
die "rm SubnetUtilsTest.java"
+
+       # pom.xml lines 208-209
+       find src/test/java -type f -name '*FunctionalTest.java' -delete || die
+       find src/test/java -type f -name 'POP3*Test.java' -delete || die
+
+       JAVA_TEST_EXCLUDES=(
+               # caught: java.net.UnknownHostException:
+               # jdk.internal.util.Exceptions$NonSocketInfo@32f61a31tux: Name 
or service not known
+               org.apache.commons.net.tftp.TFTPAckPacketTest
+               org.apache.commons.net.tftp.TFTPDataPacketTest
+               org.apache.commons.net.tftp.TFTPErrorPacketTest
+               org.apache.commons.net.tftp.TFTPReadRequestPacketTest
+               org.apache.commons.net.tftp.TFTPRequestPacketTest
+               org.apache.commons.net.tftp.TFTPWriteRequestPacketTest
+       )
+       junit5_src_test
+}

diff --git 
a/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch 
b/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch
new file mode 100644
index 000000000000..56113e25f5de
--- /dev/null
+++ b/dev-java/commons-net/files/commons-net-3.12.0-skipFailingTests.patch
@@ -0,0 +1,147 @@
+
+testGetTime()
+     tags: []
+ uniqueId: 
[engine:junit-jupiter]/[class:org.apache.commons.net.daytime.DaytimeUDPClientTest]/[method:testGetTime()]
+   parent: 
[engine:junit-jupiter]/[class:org.apache.commons.net.daytime.DaytimeUDPClientTest]
+   source: MethodSource [className = 
'org.apache.commons.net.daytime.DaytimeUDPClientTest', methodName = 
'testGetTime', methodParameterTypes = '']
+   caught: org.opentest4j.AssertionFailedError: Unexpected exception type 
thrown, expected: <java.lang.NullPointerException> but was: 
<java.net.UnknownHostException>
+               at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
+               at 
org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:67)
+               at 
org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)
+               at 
org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115)
+               at 
org.apache.commons.net.daytime.DaytimeUDPClientTest.testGetTime(DaytimeUDPClientTest.java:49)
+               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)
+             Caused by: java.net.UnknownHostException: 
jdk.internal.util.Exceptions$NonSocketInfo@2024293ctux: Name or service not 
known
+               at 
java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1800)
+               at 
org.apache.commons.net.daytime.DaytimeUDPClientTest.lambda$testGetTime$0(DaytimeUDPClientTest.java:49)
+               at 
org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)
+               ... 6 more
+             Caused by: java.net.UnknownHostException: tux: Name or service 
not known
+               at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native 
Method)
+               at 
java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)
+               at 
java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1134)
+               at 
java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712)
+               at 
java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060)
+               at 
java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1702)
+               at 
java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1796)
+               ... 8 more
+ duration: 9 ms
+   status: ✘ FAILED
+
+--- a/src/test/java/org/apache/commons/net/daytime/DaytimeUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/daytime/DaytimeUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ 
+ import java.net.InetAddress;
+ 
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ 
+ /**
+@@ -42,7 +43,7 @@ public class DaytimeUDPClientTest {
+         assertDoesNotThrow(DaytimeUDPClient::new);
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testGetTime() {
+         try (DaytimeUDPClient client = new DaytimeUDPClient()) {
+             // Not connected
+--- a/src/test/java/org/apache/commons/net/time/TimeUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/time/TimeUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ 
+ import java.net.InetAddress;
+ 
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ 
+ /**
+@@ -36,7 +37,7 @@ public class TimeUDPClientTest {
+         }
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testGetDate() {
+         try (TimeUDPClient client = new TimeUDPClient()) {
+             // Not connected failures
+@@ -45,7 +46,7 @@ public class TimeUDPClientTest {
+         }
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testGetTime() {
+         try (TimeUDPClient client = new TimeUDPClient()) {
+             // Not connected failures
+--- a/src/test/java/org/apache/commons/net/chargen/CharGenUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/chargen/CharGenUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ 
+ import java.net.InetAddress;
+ 
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ 
+ /**
+@@ -43,7 +44,7 @@ public class CharGenUDPClientTest {
+         }
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testSend() {
+         try (CharGenUDPClient client = new CharGenUDPClient()) {
+             // Not connected
+--- a/src/test/java/org/apache/commons/net/discard/DiscardUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/discard/DiscardUDPClientTest.java
+@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ 
+ import java.net.InetAddress;
+ 
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ 
+ /**
+@@ -35,7 +36,7 @@ public class DiscardUDPClientTest {
+         assertDoesNotThrow(DiscardUDPClient::new);
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testSend() {
+         try (DiscardUDPClient client = new DiscardUDPClient()) {
+             // Not connected
+--- a/src/test/java/org/apache/commons/net/echo/EchoUDPClientTest.java
++++ b/src/test/java/org/apache/commons/net/echo/EchoUDPClientTest.java
+@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
+ 
+ import java.net.InetAddress;
+ 
++import org.junit.jupiter.api.Disabled;
+ import org.junit.jupiter.api.Test;
+ 
+ /**
+@@ -37,7 +38,7 @@ public class EchoUDPClientTest {
+         }
+     }
+ 
+-    @Test
++    @Test @Disabled
+     public void testSend() {
+         try (EchoUDPClient client = new EchoUDPClient()) {
+             // Not connected
+--- a/src/test/java/org/apache/commons/net/tftp/TFTPTest.java
++++ b/src/test/java/org/apache/commons/net/tftp/TFTPTest.java
+@@ -164,7 +164,7 @@ public class TFTPTest extends TestCase {
+         }
+     }
+ 
+-    public void testSend() throws IOException {
++    public void moTestSend() throws IOException {
+         try (TFTP tftp = new TFTP()) {
+             tftp.open();
+             tftp.send(new TFTPDataPacket(InetAddress.getLocalHost(), 
tftp.getLocalPort(), 0, new byte[10]));

Reply via email to