summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/jdbc-mysql/Manifest1
-rw-r--r--dev-java/jdbc-mysql/jdbc-mysql-8.1.0.ebuild56
-rw-r--r--dev-java/maven-bin/Manifest1
-rw-r--r--dev-java/maven-bin/maven-bin-3.9.3.ebuild64
-rw-r--r--dev-java/protobuf-java/Manifest1
-rw-r--r--dev-java/protobuf-java/protobuf-java-3.24.2.ebuild167
6 files changed, 225 insertions, 65 deletions
diff --git a/dev-java/jdbc-mysql/Manifest b/dev-java/jdbc-mysql/Manifest
index 0af98f2a0950..3c205b5b2fdb 100644
--- a/dev-java/jdbc-mysql/Manifest
+++ b/dev-java/jdbc-mysql/Manifest
@@ -1,2 +1,3 @@
DIST mysql-connector-j-8.0.32.tar.gz 4229102 BLAKE2B bb4f89ac9eb4ebc5ed4a8f3d0b63a75d0dbb237e0c434c705d970ec20bbbbec89526d6b0cb11cbceb5e9e5bb485b9d7b17420407d7b01017c7531d5d531c30d8 SHA512 96d920cd137c8aadd7669d3bdc84893bb1dd2c76e81128356844c4321104fc6d2debf950ca1dfdfe958d848b16cd91ee475aad7d3d9b52478f8ac58dbf51922b
+DIST mysql-connector-j-8.1.0.tar.gz 4241696 BLAKE2B 930257a876b1b512b598ebf8397125145bb9d1a438fe33bb55ca208dddfdd29bd436a365cc35b9128cdee6eee436da688dd53cc3ed6cd04efb22d1f5af731863 SHA512 f8a7c621397f49981dd7d19e880d92ee051015ad011c027380ac85760dc22ce2f4117fd27b8d72325c5e2bc40a1a9c22e9534f7200208916ee62bbf1e5ad0c75
DIST oci-java-sdk-common-2.47.0.jar 439209 BLAKE2B b3b28bb0cf4b8dbca37bb34df7bb48029901be5d9f7754a2ccce888a9af4a06b3348cd545d480127f942687b9b0d63336c37b5f95ecb9f96111c9388a4bc6053 SHA512 73e7376c92d47d81e0630e2ad2d510a483068664874ae31622629dad6dc016d746499c2d29682563e5cdee35ddb6e9e59a2e7557d32e1eeec5fb12206f9d1d6e
diff --git a/dev-java/jdbc-mysql/jdbc-mysql-8.1.0.ebuild b/dev-java/jdbc-mysql/jdbc-mysql-8.1.0.ebuild
new file mode 100644
index 000000000000..b9e815bc0824
--- /dev/null
+++ b/dev-java/jdbc-mysql/jdbc-mysql-8.1.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Tests disabled, see bug #902723
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="com.mysql:mysql-connector-j:8.1.0"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+# Bundling a binary version of oci-java-sdk-common
+# https://github.com/oracle/oci-java-sdk/blob/v2.47.0/bmc-common/pom.xml
+OSC="2.47.0"
+
+DESCRIPTION="JDBC Type 4 driver for MySQL"
+HOMEPAGE="https://dev.mysql.com/doc/connector-j/en/"
+SRC_URI="https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-${PV}.tar.gz
+ https://repo1.maven.org/maven2/com/oracle/oci/sdk/oci-java-sdk-common/${OSC}/oci-java-sdk-common-${OSC}.jar"
+
+S="${WORKDIR}/mysql-connector-j-${PV}"
+
+LICENSE="GPL-2-with-MySQL-FLOSS-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+CP_DEPEND="
+ dev-java/c3p0:0
+ dev-java/protobuf-java:0
+ dev-java/slf4j-api:0
+"
+DEPEND=" ${CP_DEPEND}
+ >=virtual/jdk-1.8:*
+"
+RDEPEND=" ${CP_DEPEND}
+ >=virtual/jre-1.8:*
+"
+
+DOCS=( CHANGES README )
+
+JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/oci-java-sdk-common-${OSC}.jar"
+JAVA_JAR_FILENAME="mysql-connector-j.jar"
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR=(
+ "src/generated"
+ "src/legacy/java"
+ "src/main/core-api/java"
+ "src/main/core-impl/java"
+ "src/main/protocol-impl/java"
+ "src/main/user-api/java"
+ "src/main/user-impl/java"
+)
+JAVA_TEST_GENTOO_CLASSPATH="junit-4"
+JAVA_TEST_RESOURCE_DIRS="src/test/config"
+JAVA_TEST_SRC_DIR="src/test/java"
diff --git a/dev-java/maven-bin/Manifest b/dev-java/maven-bin/Manifest
index 20b12f11edca..363690cb927e 100644
--- a/dev-java/maven-bin/Manifest
+++ b/dev-java/maven-bin/Manifest
@@ -1,3 +1,2 @@
DIST apache-maven-3.8.8-bin.tar.gz 8296049 BLAKE2B af6353193365ed33e8f2f0a7e4d31933132751f142ebbdb68aab7a74ad2dda6593bf34cef9d8d56d6c93ff93293b75517a10a5c1c048733b8c911f4ac150bdf6 SHA512 332088670d14fa9ff346e6858ca0acca304666596fec86eea89253bd496d3c90deae2be5091be199f48e09d46cec817c6419d5161fb4ee37871503f472765d00
-DIST apache-maven-3.9.3-bin.tar.gz 9258617 BLAKE2B fb73e0f8d9c9cf70912329c58f36044858021753ea7b3b0d0a2a95addd68202ad18c4c049c513af884ba2651165acef042500c3c0536ca52a5eabf883f43e97e SHA512 400fc5b6d000c158d5ee7937543faa06b6bda8408caa2444a9c947c21472fde0f0b64ac452b8cec8855d528c0335522ed5b6c8f77085811c7e29e1bedbb5daa2
DIST apache-maven-3.9.4-bin.tar.gz 9336368 BLAKE2B 826698e405389e1104fd1c6f0065533de1d235a012766fc185b4f205e7ecf5c12117dc87c8a941898355aededa41b78de7e83c337c146600eb9b4a6bb4d337f6 SHA512 deaa39e16b2cf20f8cd7d232a1306344f04020e1f0fb28d35492606f647a60fe729cc40d3cba33e093a17aed41bd161fe1240556d0f1b80e773abd408686217e
diff --git a/dev-java/maven-bin/maven-bin-3.9.3.ebuild b/dev-java/maven-bin/maven-bin-3.9.3.ebuild
deleted file mode 100644
index 59bdf23384c1..000000000000
--- a/dev-java/maven-bin/maven-bin-3.9.3.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-pkg-2
-
-MY_PN=apache-${PN%%-bin}
-MY_PV=${PV/_alpha/-alpha-}
-MY_P="${MY_PN}-${MY_PV}"
-MY_MV="${PV%%.*}"
-
-DESCRIPTION="Project Management and Comprehension Tool for Java"
-SRC_URI="mirror://apache/maven/maven-${MY_MV}/${PV}/binaries/${MY_P}-bin.tar.gz"
-HOMEPAGE="https://maven.apache.org/"
-
-LICENSE="Apache-2.0"
-SLOT="3.9"
-KEYWORDS="amd64 x86"
-
-DEPEND="
- >=virtual/jdk-1.8:*
- app-eselect/eselect-java"
-
-RDEPEND="
- >=virtual/jre-1.8:*"
-
-S="${WORKDIR}/${MY_P}"
-
-MAVEN="${PN}-${SLOT}"
-MAVEN_SHARE="/usr/share/${MAVEN}"
-
-QA_FLAGS_IGNORED=(
- "${MAVEN_SHARE}/lib/jansi-native/linux32/libjansi.so"
- "${MAVEN_SHARE}/lib/jansi-native/linux64/libjansi.so"
-)
-
-# TODO:
-# We should use jars from packages, instead of what is bundled.
-src_install() {
- dodir "${MAVEN_SHARE}"
-
- cp -Rp bin boot conf lib "${ED}/${MAVEN_SHARE}" || die "failed to copy"
-
- java-pkg_regjar "${ED}/${MAVEN_SHARE}"/boot/*.jar
- java-pkg_regjar "${ED}/${MAVEN_SHARE}"/lib/*.jar
-
- dodoc NOTICE README.txt
-
- dodir /usr/bin
- dosym "${MAVEN_SHARE}/bin/mvn" /usr/bin/mvn-${SLOT}
-
- # See bug #342901.
- echo "CONFIG_PROTECT=\"${MAVEN_SHARE}/conf\"" > "${T}/25${MAVEN}" || die
- doenvd "${T}/25${MAVEN}"
-}
-
-pkg_postinst() {
- eselect maven update mvn-${SLOT}
-}
-
-pkg_postrm() {
- eselect maven update
-}
diff --git a/dev-java/protobuf-java/Manifest b/dev-java/protobuf-java/Manifest
index 7295e78febd3..60307769f3dc 100644
--- a/dev-java/protobuf-java/Manifest
+++ b/dev-java/protobuf-java/Manifest
@@ -1,2 +1,3 @@
DIST protobuf-23.0.tar.gz 5039837 BLAKE2B 63e02590b03fd9206cdfc4a26edeb2fa55dac902f5365c33c9e9340a722f552e4a5c82d1a0b25b84fcb675d5d06b768fd92cf472743d2361295129ae9faa02f3 SHA512 46c263fab189fdc310c7310d1a3d9e76472e5d96f16228bc4b946d4211afc64188d563ec70250c11a3dd05d18158b72ccf173567bd59aa45310eff62cd5f194d
+DIST protobuf-24.2.tar.gz 5179130 BLAKE2B a1e3da4e95072391fa4abf671a9eb77806f1b3864219e1e0c024156558e2ecd9e3cabee367efaf15626a199ae413dced3f29f601820611d37dd733c92ffc06c0 SHA512 fee9f5fc0e615e49347320e37b560112f43d13c63050701e25b3348e9d4aa59e80c7d810f7da12764b1b9eeee8efa35be7743c5ebbb0a12c78f5924f1544c356
DIST truth-1.1.3.jar 243021 BLAKE2B a59149038c62ef5dd352b13d4b393e1b7715fbafe5ed86ec2d16d722c738a31dcdca10132fc73b17b367ac4309e5407ba2e489f8d4c8fbca60ce5f35ae75d1e3 SHA512 f29a9fb070aff8a32358a7b6c8998c0095de5d8d68afa7f7bac759c7050309deff929e767657ecbbefd96163460f10255ca01bc567ab30df4834b9d916a4fae8
diff --git a/dev-java/protobuf-java/protobuf-java-3.24.2.ebuild b/dev-java/protobuf-java/protobuf-java-3.24.2.ebuild
new file mode 100644
index 000000000000..cbedc3f3e508
--- /dev/null
+++ b/dev-java/protobuf-java/protobuf-java-3.24.2.ebuild
@@ -0,0 +1,167 @@
+# Copyright 2008-2023 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:protobuf-java:3.24.2"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple cmake
+
+DESCRIPTION="Core Protocol Buffers library"
+HOMEPAGE="https://protobuf.dev"
+# Currently we bundle the binary version of truth.jar used only for tests, we don't install it.
+# And we build artifact 3.24.0 from the 24.0 tarball in order to allow sharing the tarball with
+# dev-libs/protobuf.
+MY_PV3="${PV#3.}"
+MY_PV="${MY_PV3/_rc/-rc}"
+SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${MY_PV}.tar.gz -> protobuf-${MY_PV}.tar.gz
+ test? ( https://repo1.maven.org/maven2/com/google/truth/truth/1.1.3/truth-1.1.3.jar )"
+S="${WORKDIR}/protobuf-${MY_PV}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="system-protoc"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/guava:0
+ dev-java/mockito:4
+ )
+"
+RDEPEND=">=virtual/jre-1.8:*"
+
+BDEPEND="
+ system-protoc? ( ~dev-libs/protobuf-${MY_PV3}:0 )
+ !system-protoc? ( >=dev-cpp/abseil-cpp-20230125.3 )
+"
+
+PATCHES=(
+ "${FILESDIR}/protobuf-java-3.23.0-unittest_retention.proto.patch"
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
+JAVA_JAR_FILENAME="protobuf.jar"
+JAVA_RESOURCE_DIRS="java/core/src/main/resources"
+JAVA_SRC_DIR="java/core/src/main/java"
+
+JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
+JAVA_TEST_SRC_DIR="java/core/src/test/java"
+
+run-protoc() {
+ if use system-protoc; then
+ protoc $1
+ else
+ "${BUILD_DIR}"/protoc $1
+ fi
+}
+
+src_prepare() {
+ # If the corrsponding version of system-protoc is not available we build protoc locally
+ if use system-protoc; then
+ default # apply patches
+ else
+ cmake_src_prepare
+ fi
+ java-pkg-2_src_prepare
+
+ mkdir "${JAVA_RESOURCE_DIRS}" || die
+ # https://github.com/protocolbuffers/protobuf/blob/v24.2/java/core/pom.xml#L43-L62
+ PROTOS=( $(sed \
+ -n '/google\/protobuf.*\.proto/s:.*<include>\(.*\)</include>:\1:p' \
+ "${S}/java/core/pom.xml") ) || die
+ pushd src > /dev/null || die
+ cp --parents -v "${PROTOS[@]}" ../"${JAVA_RESOURCE_DIRS}" || die
+ popd > /dev/null || die
+
+ # https://github.com/protocolbuffers/protobuf/blob/v24.2/java/core/generate-sources-build.xml
+ einfo "Replace variables in generate-sources-build.xml"
+ sed \
+ -e 's:${generated.sources.dir}:java/core/src/main/java:' \
+ -e 's:${protobuf.source.dir}:src:' \
+ -e 's:^.*value="::' -e 's:\"/>::' \
+ -e '/project\|echo\|mkdir\|exec/d' \
+ -i java/core/generate-sources-build.xml || die "sed to sources failed"
+
+ # https://github.com/protocolbuffers/protobuf/blob/v24.2/java/core/generate-test-sources-build.xml
+ einfo "Replace variables in generate-test-sources-build.xml"
+ sed \
+ -e 's:${generated.testsources.dir}:java/core/src/test/java:' \
+ -e 's:${protobuf.source.dir}:src:' \
+ -e 's:${test.proto.dir}:java/core/src/test/proto:' \
+ -e 's:^.*value="::' -e 's:\"/>::' \
+ -e '/project\|mkdir\|exec\|Also generate/d' \
+ -i java/core/generate-test-sources-build.xml || die "sed to test sources failed"
+
+ # 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
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Dprotobuf_BUILD_TESTS=OFF
+ -Dprotobuf_ABSL_PROVIDER=package
+ )
+ if use system-protoc; then
+ :
+ else
+ cmake_src_configure
+ fi
+}
+
+src_compile() {
+ if use system-protoc; then
+ :
+ else
+ cmake_src_compile
+ fi
+
+ einfo "Run protoc to generate sources"
+ run-protoc \
+ @java/core/generate-sources-build.xml \
+ || die "protoc sources failed"
+
+ java-pkg-simple_src_compile
+}
+
+src_test() {
+ # https://github.com/protocolbuffers/protobuf/blob/v24.2/java/core/pom.xml#L63-L71
+ jar cvf testdata.jar \
+ -C src google/protobuf/testdata/golden_message_oneof_implemented \
+ -C src google/protobuf/testdata/golden_packed_fields_message || die
+
+ JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/truth-1.1.3.jar:testdata.jar"
+
+ einfo "Running protoc on first part of generate-test-sources-build.xml"
+ run-protoc @test-sources-build-1 \
+ || die "run-protoc test-sources-build-1 failed"
+
+ einfo "Running protoc on second part of generate-test-sources-build.xml"
+ run-protoc @test-sources-build-2 \
+ || die "run-protoc test-sources-build-2 failed"
+
+ 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}" || die
+ local JAVA_TEST_RUN_ONLY=$(find * \
+ -path "**/*Test.java" \
+ ! -path "**/Abstract*Test.java" \
+ ! -name "MapInitializationOrderTest.java" \
+ ! -path '*protobuf_unittest/CachedFieldSizeTest.java'
+ )
+ popd
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
+ java-pkg-simple_src_test
+}
+
+src_install() {
+ java-pkg-simple_src_install
+}