summaryrefslogtreecommitdiff
path: root/dev-java/protobuf-java
diff options
context:
space:
mode:
authorFlorian Schmaus <flow@gentoo.org>2025-04-15 11:44:26 +0200
committerFlorian Schmaus <flow@gentoo.org>2025-04-15 12:34:53 +0200
commit314e6c223bc95dcc30f857b13a17332d9b759b79 (patch)
treeede40684ab82b6e74cef417fdafb95910645c332 /dev-java/protobuf-java
parentb333df49e48e0c2d5a3f796b8ecfaba3c1580eb6 (diff)
downloadgentoo-314e6c223bc95dcc30f857b13a17332d9b759b79.tar.gz
gentoo-314e6c223bc95dcc30f857b13a17332d9b759b79.tar.bz2
gentoo-314e6c223bc95dcc30f857b13a17332d9b759b79.zip
dev-java/protobuf-java: update SRC_URI and fix src_test
The protobuf packages use a shared distfile. However, some packages use github's release artifacts, e.g., https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protobuf-30.2.tar.gz while protobuf-java used github's archive artifacts, e.g., https://github.com/protocolbuffers/protobuf/archive/v${MY_PV}.tar.gz This can cause a distfile mismatch. If the user has protobuf-30.2.tar.gz from releases in its DISTDIR and then tries to emerge protobuf-java. Fix this by switching protobuf-java's SRC_URI to the release artifacts. Furthermore, fix src_test. The JAVA_TEST_RUN_ONLY array would contain fully qualified Java class names prefixed by two dots. For example '..com.example.FooTest' instead of 'com.example.FooTest'. This is caused by invoking 'find' with ./* instead of *, and the JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}" substitution. Fix this by adjusting the 'find' invocation. Furthermore, move a 'rm' from src_test to src_prepare, where it belongs. Having 'rm' in src_test makes it harder to re-execute subsequent ebuild phases using the 'ebuild' command, e.g., "ebuild protobuf-java-4.30.2.ebuild test", as the 'rm' would fail because the file no longer exists. Also zap CodedInputStreamTest as it requires the TestParameterInjector library, which is currently not available in ::gentoo. It seems like the ebuild's src_test could never have succeeded so far. Finally, drop unused protobuf_ABSL_PROVIDER=package cmake argument and fix this QA warning. This option is replaced with upstream's protobuf_LOCAL_DEPENDENCIES_ONLY=ON to prevent automatic dep fetching. Signed-off-by: Florian Schmaus <flow@gentoo.org>
Diffstat (limited to 'dev-java/protobuf-java')
-rw-r--r--dev-java/protobuf-java/protobuf-java-4.30.2.ebuild19
1 files changed, 11 insertions, 8 deletions
diff --git a/dev-java/protobuf-java/protobuf-java-4.30.2.ebuild b/dev-java/protobuf-java/protobuf-java-4.30.2.ebuild
index d6c978e01de4..23bafe370339 100644
--- a/dev-java/protobuf-java/protobuf-java-4.30.2.ebuild
+++ b/dev-java/protobuf-java/protobuf-java-4.30.2.ebuild
@@ -21,7 +21,7 @@ MY_PV="$(ver_cut 2-3)"
MY_PV="${MY_PV/_rc/-rc}"
TV="1.4.4"
SRC_URI="
- https://github.com/protocolbuffers/protobuf/archive/v${MY_PV}.tar.gz -> protobuf-${MY_PV}.tar.gz
+ https://github.com/protocolbuffers/protobuf/releases/download/v${MY_PV}/protobuf-${MY_PV}.tar.gz
test? (
https://repo1.maven.org/maven2/com/google/truth/truth/${TV}/truth-${TV}.jar
)
@@ -97,12 +97,19 @@ src_prepare() {
# Split the file in two parts, one for each run-protoc call
awk '/--java_out/{x="test-sources-build-"++i;}{print > x;}' \
java/core/generate-test-sources-build.xml || die
+
+ # Requires TestParameterInjector library, currently not available in Gentoo.
+ rm java/core/src/test/java/com/google/protobuf/CodedInputStreamTest.java || die
+
+ # java/core/src/test/java/editions_unittest/TestDelimited.java:2867:
+ # error: package editions_unittest.MessageImport does not exist
+ rm java/core/src/test/java/com/google/protobuf/TextFormatTest.java || die
}
src_configure() {
local mycmakeargs=(
-Dprotobuf_BUILD_TESTS=OFF
- -Dprotobuf_ABSL_PROVIDER=package
+ -Dprotobuf_LOCAL_DEPENDENCIES_ONLY=ON
)
if ! use system-protoc; then
cmake_src_configure
@@ -136,21 +143,17 @@ src_test() {
run-protoc @test-sources-build-2 \
|| die "run-protoc test-sources-build-2 failed"
- # java/core/src/test/java/editions_unittest/TestDelimited.java:2867:
- # error: package editions_unittest.MessageImport does not exist
- rm java/core/src/test/java/com/google/protobuf/TextFormatTest.java || die
-
einfo "Running tests"
# Invalid test class 'map_test.MapInitializationOrderTest':
# 1. Test class should have exactly one public constructor
# Invalid test class 'protobuf_unittest.CachedFieldSizeTest':
# 1. Test class should have exactly one public constructor
pushd "${JAVA_TEST_SRC_DIR}" >/dev/null || die
- local JAVA_TEST_RUN_ONLY=$(find ./* \
+ local JAVA_TEST_RUN_ONLY=$(find * \
-path "**/*Test.java" \
! -path "**/Abstract*Test.java" \
! -name "MapInitializationOrderTest.java" \
- ! -path '*protobuf_unittest/CachedFieldSizeTest.java'
+ ! -name CachedFieldSizeTest.java
)
popd >/dev/null || die
JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"