commit:     25990f675ca55e3e81ad41c9d4b2608a41134a7c
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Thu Apr 24 06:42:40 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 05:06:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25990f67

dev-java/gson: add 2.13.2

uses dev-java/truth instead of precompiled jar

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

 dev-java/gson/Manifest           |  1 +
 dev-java/gson/gson-2.13.2.ebuild | 74 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)

diff --git a/dev-java/gson/Manifest b/dev-java/gson/Manifest
index e21ed0c2effb..31ace9b67fe4 100644
--- a/dev-java/gson/Manifest
+++ b/dev-java/gson/Manifest
@@ -1,2 +1,3 @@
 DIST gson-parent-2.11.0.tar.gz 458360 BLAKE2B 
88d242c725b054ac5e7e3ef31f312f77dd03aea29f6604770253564d80f84cd752b43d74dd416785836d08884e462275f8ec924a00e2ffee195c0237bc2bac0b
 SHA512 
1834b7c95f0a40ff1bcf8088f3ffdb8332ae38d452bab4ad2c9271421e75a9236645d1ee0fdb58c2f32eac86cf503afa3de19f08eb422cc91c4d32e370c36eac
+DIST gson-parent-2.13.2.tar.gz 467484 BLAKE2B 
46f60960c35aa268eaa4d1f0264f824f32f44d780a353bf4b2208a5fb7351c88a4d04248ca215dfd11ace6ea8ed8c4080e7342e818ddf1d30aace9d004b92043
 SHA512 
042eec392b52d040579fa23f48edc08f469d970e04904422e8173893f5c700a4ec3df34fec4feecc9da7197d4784392a37cfc8dbde355dcbbca22fe4e7bc1c11
 DIST truth-1.1.3.jar 243021 BLAKE2B 
a59149038c62ef5dd352b13d4b393e1b7715fbafe5ed86ec2d16d722c738a31dcdca10132fc73b17b367ac4309e5407ba2e489f8d4c8fbca60ce5f35ae75d1e3
 SHA512 
f29a9fb070aff8a32358a7b6c8998c0095de5d8d68afa7f7bac759c7050309deff929e767657ecbbefd96163460f10255ca01bc567ab30df4834b9d916a4fae8

diff --git a/dev-java/gson/gson-2.13.2.ebuild b/dev-java/gson/gson-2.13.2.ebuild
new file mode 100644
index 000000000000..d0c6e3472c1c
--- /dev/null
+++ b/dev-java/gson/gson-2.13.2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2025 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
+
+DESCRIPTION="Gson JSON library"
+HOMEPAGE="https://github.com/google/gson";
+SRC_URI="https://github.com/google/gson/archive/gson-parent-${PV}.tar.gz";
+S="${WORKDIR}/gson-gson-parent-${PV}/gson"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+       >=dev-java/error-prone-annotations-2.41.0:0
+       >=virtual/jdk-11:*
+       test? (
+               >=dev-java/guava-33.4.8:0
+               >=dev-java/guava-testlib-33.4.8:0
+               dev-java/truth:0
+       )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=(
+       ../CHANGELOG.md
+       ../GsonDesignDocument.md
+       ../README.md
+       ../Troubleshooting.md
+       ../UserGuide.md
+)
+
+JAVA_CLASSPATH_EXTRA="error-prone-annotations"
+JAVA_INTERMEDIATE_JAR_NAME="com.google.gson"
+JAVA_RELEASE_SRC_DIRS=( ["9"]="src/main/java9" )
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR=( src/main/java{,-templates} )
+
+# requires the test class to be obfuscated using proguard which we do not have 
atm
+JAVA_TEST_EXCLUDES=( "com.google.gson.functional.EnumWithObfuscatedTest" )
+
+JAVA_TEST_GENTOO_CLASSPATH="guava guava-testlib junit-4 truth"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+       java-pkg-2_src_prepare
+
+       sed -e "s/\${project.version}/${PV}/g" \
+               -i 
src/main/java-templates/com/google/gson/internal/GsonBuildConfig.java \
+                       || die "Failed to set version"
+
+       # Upstream builds it as META-INF/versions/9/module-info.class
+       mkdir -p src/main/java9 || die "mkdir java9"
+       mv src/main/java{,9}/module-info.java || die "move module-info.java"
+}
+
+src_test() {
+       # src/test/java/com/google/gson/functional/Java17RecordTest.java:78:
+       # error: records are not supported in -source 11
+       local vm_version="$(java-config -g PROVIDES_VERSION)"
+       if ver_test "${vm_version}" -ge 17 ; then
+               JAVAC_ARGS="--source 17 --target 17" java-pkg-simple_src_test
+       else
+               einfo "Tests need at least Java 17"
+       fi
+}

Reply via email to