summaryrefslogtreecommitdiff
path: root/dev-java/protobuf-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/protobuf-java')
-rw-r--r--dev-java/protobuf-java/Manifest10
-rw-r--r--dev-java/protobuf-java/metadata.xml3
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.19.6.ebuild102
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.20.3.ebuild102
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.21.8.ebuild102
-rw-r--r--dev-java/protobuf-java/protobuf-java-9999.ebuild103
6 files changed, 394 insertions, 28 deletions
diff --git a/dev-java/protobuf-java/Manifest b/dev-java/protobuf-java/Manifest
index fd3f0cd0bb6f..c699495997ad 100644
--- a/dev-java/protobuf-java/Manifest
+++ b/dev-java/protobuf-java/Manifest
@@ -1,6 +1,12 @@
+DIST protobuf-21.8.tar.gz 5110670 BLAKE2B 3c1b0c857a86e9586481d63896341d0cb11290dbd710d87a6f7889d34f5f262abe2986a29ed19a730f8fa5df0b5c62d77a4db6aa415a72b239f7483ae8d6380c SHA512 cb17be759311e91172801add1f88fe7a0291b547170c40d2e3303f5c248570dddeade96bd48740edd628215f55269c97475e2f4c4a41c50f1018d525f52036cb
DIST protobuf-3.19.3.tar.gz 5293258 BLAKE2B c05b70ffca97f7166ea6a511a36907eed125edf1ebf17f908718221d9b851be84dfb2b1b39973f2faf35f6ade630e6ba4f9e8b91b8fbc922c5db97079323ee6e SHA512 1c003e7cbc8eae6a038f46e688b401ee202ba47f502561e909df79770f6e8b7daf3dc1ccc727e31bfb5b52cd04cb4fef7d2d2a28d650c13f396872ad4aa076c6
+DIST protobuf-3.19.6.tar.gz 5299501 BLAKE2B 3121f76b95f83c5309ce49ce296b738eff7be9d3a5093c564fbe2339fb5f3729e406f1b44bfcc05feb0d31ab63838bb4f54685017977c73a33b91215a6776072 SHA512 8f92242f2be8e1bbfba41341c87709ad91ad83b8b3e3df88bb430411541d3399295f49291fd52b50e3487b0fce33181cb4d175685fd25aac72adfaee26a612d4
DIST protobuf-3.20.1.tar.gz 5368262 BLAKE2B 1ce1aef2e4c4f3ea4863629cc75d89fe17d0c7ac0c342ac641c787456fd4a12756c2892a27ddadedc94a7201494ec84566638ce33a03cb0c867b04e9eee0edb3 SHA512 fde3eb9f13946887ddfd87df428c5615ad09aaf191e4478b24e98e5e13231feeff4e70b4ca6a2ff7d9b9b2e2c60bc1d5479526edeafa78f9a8ed3bef2e0bacb0
+DIST protobuf-3.20.3.tar.gz 5374320 BLAKE2B fb51f2a0ecf5b83235f5252051f8192ae377bb7a5e030c3f3e9435ccde25919c059830cf476e840fa6c970928a32c0075e213c9d5d4d9e3d3b24732c39a9fbfa SHA512 01d6703bdbe769a1200ee6e4ebcdcb99688ec21f576988c60d82ec36e0822820fb245fcb4ca53293143d53e666d748b5a0c6937bc659fb3cdc4cd9b05ed12a1c
EBUILD protobuf-java-3.19.3.ebuild 1451 BLAKE2B c0bad09302e1e52cff018223c055939e2d4335874f2be95e913705368926106c6967b5a98d7f0a392037060c040fd3116210f0d1de567dc17e66bfc252202e4b SHA512 a74e044d91db564a682f8d9b82fa73608fc10f2b0a917b1eb696375f5993e62cf03289a31b7e28aa27cbfdf027bf62160083ff39186d1f8333b52633ba5ed0fb
+EBUILD protobuf-java-3.19.6.ebuild 2852 BLAKE2B b131c6753d9af1c5038d449e40476455256905f323cad1eaa9c0378e5b0aaf132e11dec4e2622e5f51edc2952e1ab6de2de25cd0b8d5e5d205b7be9ae3c56a75 SHA512 2b5c46eab2b9b9fa398cdfbb4a2bb12a7f0dcdce4a977b9bc63a955a54283da548f8921231349a89442d7222708afb803335518bafe2ddd6f424e7fe5866dc2a
EBUILD protobuf-java-3.20.1.ebuild 1430 BLAKE2B 8625de036d5ed22f587b922cd69620ce7e8dd1a0a30e77bc2154937156c2d1686c2ba27efaa1d55fc68720c420f16b14ba3520175791cefe99a754425d496a0a SHA512 e78e00cb7584d7d909b64feea2dc430819f63558ed124b86cdc2e518106a0e288638db14919286947fb86db15bbc47668398ca0081245a61e8294d56c5963d85
-EBUILD protobuf-java-9999.ebuild 1365 BLAKE2B 6d6876bc2cd65b0e17e4dfdf4de0fe4cde077a3f040ea1318511ff6da9915331a3f0686b132fe893aeda8d31c0f8031f338efef43c9f6e7e92d7ce75c1c8dc5a SHA512 f7c9ac0f8f37fe746aa3a0febd35d176e51600250ef512b2f7f28e17f6225fcd550b9bd708eb5eb5540f841b3e5116d18b011ef6bd75ee1a8e319124157df53c
-MISC metadata.xml 548 BLAKE2B 2468487e12d536d67daebf5b7a21cd63a9c4af321a8979132e63d9b8394bf577e347f891326c73bfa6907e82ca355ea0d4ec40a37bb297db0da1e55a62b6ef33 SHA512 c0c2556fbf8821f3a75ed344daa59b4fc355029f96efb8f9784f54c819916adeb46b2c5d8c2e8d405dc58395c2f18b30cda69c6d406948a066bd1d78a55df80b
+EBUILD protobuf-java-3.20.3.ebuild 2852 BLAKE2B c214278702be2c18ff5637fcc80171f34b8993a0369e6d01a142c365b53f281a81cdfbe4b834f7a58a1502608fc0a3b672a4c975d73be7a24b999d7ff56bb878 SHA512 ea67fa3fc66d97bcd6e95621c79ba7747a396d48d68689715a23c1dbcd03d71e4e2897a4d7418b49152af94c43f69876ce31b2e866647b037faa1e7dbeeb75e1
+EBUILD protobuf-java-3.21.8.ebuild 2854 BLAKE2B c9ee0042e0550d67b211360f9f37bac37b7ca592f20cc6cf8830279f1d22f91b571e1100e19f3158b757bff969575705bb52f26b8ebb56b753be98fcecbd8c7a SHA512 c60a2a04a9601a3d7afff24de4dafd48121c771c8aa92818f44c0a6a7de468e797d6287787969be546d744b1b8ddaa9e73e3121c115ba25b39fbb988dbb91ff9
+EBUILD protobuf-java-9999.ebuild 2995 BLAKE2B e1538e1a635ba897a9c2f75db235384cb4122c4390ed8bab3a9f46c57f74b1db58ef54e6df65e328df6458067e6b671b3dda4a08226c94e9929388aaa8efe386 SHA512 94b01edfaee931cc4a5944940429e89cf8837f74c25efe026c3ad7fb3a637da21f794b68d7fda90e9bbef58251bab3f3b0271fc4a50ea29c4389578fa3597e16
+MISC metadata.xml 625 BLAKE2B 13394b9a2148b9117ce719954591e79088f845ac1ceb667bbdd2645b989daadcfea09525f9dde68c405e3f1cce5cc1af32de9fb4dff629e4745e13fa92727dd7 SHA512 47f693db57dbde04f419ed65494d81b0a800c9ac49d790c9b794baef34fb1f876da29c5a0662c45aa3c01cecd34af648e196fb76110fcc0066198c59543049b3
diff --git a/dev-java/protobuf-java/metadata.xml b/dev-java/protobuf-java/metadata.xml
index 7fc9e27ef82d..5fdb33c1c7c3 100644
--- a/dev-java/protobuf-java/metadata.xml
+++ b/dev-java/protobuf-java/metadata.xml
@@ -9,6 +9,9 @@
<email>cjk@gentoo.org</email>
<name>Cjk</name>
</maintainer>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
<slots>
<subslots>Soname version number of Protobuf</subslots>
</slots>
diff --git a/dev-java/protobuf-java/protobuf-java-3.19.6.ebuild b/dev-java/protobuf-java/protobuf-java-3.19.6.ebuild
new file mode 100644
index 000000000000..6adff3a717e4
--- /dev/null
+++ b/dev-java/protobuf-java/protobuf-java-3.19.6.ebuild
@@ -0,0 +1,102 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="com.google.protobuf:${PN}:${PV}"
+# Tests not enabled, depend on com.google.truth which is not packaged
+# https://github.com/protocolbuffers/protobuf/blob/v3.19.6/java/core/pom.xml#L35-L40
+# JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+PARENT_PN="${PN/-java/}"
+PARENT_PV="${PV}"
+PARENT_P="${PARENT_PN}-${PARENT_PV}"
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${PARENT_P}"
+else
+ SRC_URI="
+ https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
+ -> ${PARENT_P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Java bindings"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/30"
+
+S="${WORKDIR}/${PARENT_P}/java"
+
+BDEPEND="
+ dev-libs/protobuf:${SLOT}
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/guava:0
+ dev-java/mockito:4
+ )
+"
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
+JAVA_JAR_FILENAME="protobuf.jar"
+JAVA_RESOURCE_DIRS="core/src/main/resources"
+JAVA_SRC_DIR="core/src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
+JAVA_TEST_RESOURCE_DIRS="../src"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+# Same than PATCHES but from repository's root directory,
+# please see function `src_prepare` below.
+# Simplier for users IMHO.
+PARENT_PATCHES=(
+)
+
+# Here for patches within "java/" subdirectory.
+PATCHES=(
+)
+
+src_prepare() {
+ pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
+ [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
+ eapply_user
+ popd > /dev/null || die
+
+ # Remove bundled jars
+ java-pkg_clean
+
+ java-pkg-2_src_prepare
+
+ # There is also compiler/plugin, but not in this list because in a subdirectory
+ core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
+
+ # Copy resources from ../src/google/protobuf according to
+ # https://github.com/protocolbuffers/protobuf/blob/v3.19.6/java/core/pom.xml#L45-L61
+ mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
+ cp "../src/google/protobuf/${core_protos[@]}.proto" \
+ "${JAVA_RESOURCE_DIRS}/google/protobuf" || die
+ cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
+
+ # Generate 146 .java files according to
+ # https://github.com/protocolbuffers/protobuf/blob/v3.19.6/java/core/generate-sources-build.xml
+ for proto in "${core_protos[@]}" compiler/plugin; do
+ "${BROOT}/usr/bin/protoc" \
+ --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${proto}".proto || die
+ done
+}
diff --git a/dev-java/protobuf-java/protobuf-java-3.20.3.ebuild b/dev-java/protobuf-java/protobuf-java-3.20.3.ebuild
new file mode 100644
index 000000000000..2e58b824d118
--- /dev/null
+++ b/dev-java/protobuf-java/protobuf-java-3.20.3.ebuild
@@ -0,0 +1,102 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="com.google.protobuf:${PN}:${PV}"
+# Tests not enabled, depend on com.google.truth which is not packaged
+# https://github.com/protocolbuffers/protobuf/blob/v3.20.3/java/core/pom.xml#L35-L40
+# JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+PARENT_PN="${PN/-java/}"
+PARENT_PV="${PV}"
+PARENT_P="${PARENT_PN}-${PARENT_PV}"
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${PARENT_P}"
+else
+ SRC_URI="
+ https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
+ -> ${PARENT_P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Java bindings"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/31"
+
+S="${WORKDIR}/${PARENT_P}/java"
+
+BDEPEND="
+ dev-libs/protobuf:${SLOT}
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/guava:0
+ dev-java/mockito:4
+ )
+"
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
+JAVA_JAR_FILENAME="protobuf.jar"
+JAVA_RESOURCE_DIRS="core/src/main/resources"
+JAVA_SRC_DIR="core/src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
+JAVA_TEST_RESOURCE_DIRS="../src"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+# Same than PATCHES but from repository's root directory,
+# please see function `src_prepare` below.
+# Simplier for users IMHO.
+PARENT_PATCHES=(
+)
+
+# Here for patches within "java/" subdirectory.
+PATCHES=(
+)
+
+src_prepare() {
+ pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
+ [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
+ eapply_user
+ popd > /dev/null || die
+
+ # Remove bundled jars
+ java-pkg_clean
+
+ java-pkg-2_src_prepare
+
+ # There is also compiler/plugin, but not in this list because in a subdirectory
+ core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
+
+ # Copy resources from ../src/google/protobuf according to
+ # https://github.com/protocolbuffers/protobuf/blob/v3.20.2/java/core/pom.xml#L45-L61
+ mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
+ cp "../src/google/protobuf/${core_protos[@]}.proto" \
+ "${JAVA_RESOURCE_DIRS}/google/protobuf" || die
+ cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
+
+ # Generate 146 .java files according to
+ # https://github.com/protocolbuffers/protobuf/blob/v3.20.3/java/core/generate-sources-build.xml
+ for proto in "${core_protos[@]}" compiler/plugin; do
+ "${BROOT}/usr/bin/protoc" \
+ --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${proto}".proto || die
+ done
+}
diff --git a/dev-java/protobuf-java/protobuf-java-3.21.8.ebuild b/dev-java/protobuf-java/protobuf-java-3.21.8.ebuild
new file mode 100644
index 000000000000..abe81a5bcd1d
--- /dev/null
+++ b/dev-java/protobuf-java/protobuf-java-3.21.8.ebuild
@@ -0,0 +1,102 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="com.google.protobuf:${PN}:${PV}"
+# Tests not enabled, depend on com.google.truth which is not packaged
+# https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/pom.xml#L35-L40
+# JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+PARENT_PN="${PN/-java/}"
+PARENT_PV="$(ver_cut 2-)"
+PARENT_P="${PARENT_PN}-${PARENT_PV}"
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${PARENT_P}"
+else
+ SRC_URI="
+ https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
+ -> ${PARENT_P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Java bindings"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/32"
+
+S="${WORKDIR}/${PARENT_P}/java"
+
+BDEPEND="
+ dev-libs/protobuf:${SLOT}
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/guava:0
+ dev-java/mockito:4
+ )
+"
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
+JAVA_JAR_FILENAME="protobuf.jar"
+JAVA_RESOURCE_DIRS="core/src/main/resources"
+JAVA_SRC_DIR="core/src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
+JAVA_TEST_RESOURCE_DIRS="../src"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+# Same than PATCHES but from repository's root directory,
+# please see function `src_prepare` below.
+# Simplier for users IMHO.
+PARENT_PATCHES=(
+)
+
+# Here for patches within "java/" subdirectory.
+PATCHES=(
+)
+
+src_prepare() {
+ pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
+ [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
+ eapply_user
+ popd > /dev/null || die
+
+ # Remove bundled jars
+ java-pkg_clean
+
+ java-pkg-2_src_prepare
+
+ # There is also compiler/plugin, but not in this list because in a subdirectory
+ core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
+
+ # Copy resources from ../src/google/protobuf according to
+ # https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/pom.xml#L45-L61
+ mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
+ cp "../src/google/protobuf/${core_protos[@]}.proto" \
+ "${JAVA_RESOURCE_DIRS}/google/protobuf" || die
+ cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
+
+ # Generate 146 .java files according to
+ # https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/generate-sources-build.xml
+ for proto in "${core_protos[@]}" compiler/plugin; do
+ "${BROOT}/usr/bin/protoc" \
+ --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${proto}".proto || die
+ done
+}
diff --git a/dev-java/protobuf-java/protobuf-java-9999.ebuild b/dev-java/protobuf-java/protobuf-java-9999.ebuild
index 43fa605b496c..ab4856250e05 100644
--- a/dev-java/protobuf-java/protobuf-java-9999.ebuild
+++ b/dev-java/protobuf-java/protobuf-java-9999.ebuild
@@ -3,52 +3,103 @@
EAPI=8
-JAVA_PKG_IUSE="doc source"
+JAVA_PKG_IUSE="doc source test"
+# Version based on value in (java/)core/pom.xml from main branch
+# Please update me when new release
+# Maybe find a way to automatically change it?
+MAVEN_ID="com.google.protobuf:${PN}:3.21.7"
+# Tests not enabled, depend on com.google.truth which is not packaged
+# https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/pom.xml#L35-L40
+# JAVA_TESTING_FRAMEWORKS="junit-4"
inherit java-pkg-2 java-pkg-simple
-if [[ "${PV}" == "9999" ]]; then
+PARENT_PN="${PN/-java/}"
+PARENT_PV="${PV}"
+PARENT_P="${PARENT_PN}-${PARENT_PV}"
+
+if [[ "${PV}" == *9999 ]]; then
inherit git-r3
- EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}"
- EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
EGIT_SUBMODULES=()
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${PARENT_P}"
+else
+ SRC_URI="
+ https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
+ -> ${PARENT_P}.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
fi
DESCRIPTION="Google's Protocol Buffers - Java bindings"
-HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
-if [[ "${PV}" == "9999" ]]; then
- SRC_URI=""
-else
- SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> protobuf-${PV}.tar.gz"
-fi
-S="${WORKDIR}/protobuf-${PV}/java"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
LICENSE="BSD"
-SLOT="0/31"
-KEYWORDS=""
+SLOT="0/32"
+
+S="${WORKDIR}/${PARENT_P}/java"
-COMMON_DEPEND=">=virtual/jdk-1.8:*"
BDEPEND="
- ~dev-libs/protobuf-${PV}
- ${COMMON_DEPEND}
+ dev-libs/protobuf:${SLOT}
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/guava:0
+ dev-java/mockito:4
+ )
+"
+RDEPEND="
+ >=virtual/jre-1.8:*
"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${DEPEND}"
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
+JAVA_JAR_FILENAME="protobuf.jar"
+JAVA_RESOURCE_DIRS="core/src/main/resources"
+JAVA_SRC_DIR="core/src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
+JAVA_TEST_RESOURCE_DIRS="../src"
+JAVA_TEST_SRC_DIR="core/src/test/java"
+
+# Same than PATCHES but from repository's root directory,
+# please see function `src_prepare` below.
+# Simplier for users IMHO.
+PARENT_PATCHES=(
+)
+
+# Here for patches within "java/" subdirectory.
+PATCHES=(
+)
src_prepare() {
- pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die
+ pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
+ [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
eapply_user
popd > /dev/null || die
+ # Remove bundled jars
+ java-pkg_clean
+
java-pkg-2_src_prepare
-}
-src_compile() {
- "${BROOT}/usr/bin/protoc" --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto || die
- JAVA_SRC_DIR="core/src/main/java" JAVA_JAR_FILENAME="protobuf.jar" java-pkg-simple_src_compile
-}
+ # There is also compiler/plugin, but not in this list because in a subdirectory
+ core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
+
+ # Copy resources from ../src/google/protobuf according to
+ # https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/pom.xml#L45-L61
+ mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
+ cp "../src/google/protobuf/${core_protos[@]}.proto" \
+ "${JAVA_RESOURCE_DIRS}/google/protobuf" || die
+ cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
-src_install() {
- JAVA_SRC_DIR="core/src/main/java" JAVA_JAR_FILENAME="protobuf.jar" java-pkg-simple_src_install
+ # Generate 146 .java files according to
+ # https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/generate-sources-build.xml
+ for proto in "${core_protos[@]}" compiler/plugin; do
+ "${BROOT}/usr/bin/protoc" \
+ --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${proto}".proto || die
+ done
}