Sync changes + split java into smaller packages + build the lite runtime for java too

OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/protobuf?expand=0&rev=185
This commit is contained in:
Dirk Mueller 2024-10-23 08:14:56 +00:00 committed by Git OBS Bridge
parent b56b531df1
commit 8b6bd032ec
4 changed files with 228 additions and 22 deletions

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Mon Oct 21 20:55:21 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Java: mimic the bazel build and build also the protobuf-javalite
artifact
- Java: put the runtime artifacts to a protobuf-java-runtime package
and the protoc metadata into protobuf-java-protoc package.
* allows to make the runtime noarch
* keep the protoc subpackage archful
- Java: Let protobuf-java-runtime provide and obsolete protobuf-java
to render upgrade easier after we changed to the upstream
versioning for java bindings
-------------------------------------------------------------------
Mon Oct 21 13:27:27 UTC 2024 - Dirk Müller <dmueller@suse.com>
- Python: keep building for 15.4+
-------------------------------------------------------------------
Mon Oct 21 11:34:51 UTC 2024 - Fridrich Strba <fstrba@suse.com>
@ -50,8 +68,8 @@ Fri Aug 2 16:42:09 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
bytes in StreamDecoder
* Java: Add Automatic-Module-Name
* PHP: Regen stale files
* Ruby C-Extension: Regen stale files
* Ruby C-Extension: Regen stale files
-------------------------------------------------------------------
Sat Mar 9 20:36:14 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>

View File

@ -79,9 +79,7 @@ BuildRequires: mvn(com.google.errorprone:error_prone_annotations)
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(com.google.j2objc:j2objc-annotations)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
Requires: %{tarname}-devel >= %{baseversion}
Requires: java >= 1.8
Obsoletes: %{tarname}-devel < %{baseversion}
%description
Protocol Buffers are a way of encoding structured data in an efficient yet
@ -90,6 +88,30 @@ RPC protocols and file formats.
This package contains the Java bindings.
%package runtime
Summary: Java Bindings for Google Protocol Buffers
Provides: %{name} = %{baseversion}
Obsoletes: %{name} < %{baseversion}
BuildArch: noarch
%description runtime
Protocol Buffers are a way of encoding structured data in an efficient yet
extensible format. Google uses Protocol Buffers for almost all of its internal
RPC protocols and file formats.
This package contains the runtime for Java bindings.
%package protoc
Summary: Java Bindings for Google Protocol Buffers (maven metadata for protoc)
Requires: %{tarname}-devel >= %{baseversion}
%description protoc
Protocol Buffers are a way of encoding structured data in an efficient yet
extensible format. Google uses Protocol Buffers for almost all of its internal
RPC protocols and file formats.
This package contains the maven artifact metadata to describe the protoc binary.
%package parent
Summary: Java Bindings for Google Protocol Buffers (parent pom)
BuildArch: noarch
@ -132,7 +154,6 @@ cp %{SOURCE2} lite/pom.xml
cp %{SOURCE3} util/pom.xml
%pom_disable_module kotlin
%pom_disable_module kotlin-lite
%pom_disable_module lite
%pom_remove_plugin :animal-sniffer-maven-plugin
%pom_xpath_set "pom:plugin[pom:artifactId[text()='maven-compiler-plugin']]/pom:configuration/pom:source" "1.8"
%pom_xpath_set "pom:plugin[pom:artifactId[text()='maven-compiler-plugin']]/pom:configuration/pom:target" "1.8"
@ -147,12 +168,12 @@ popd
%build
pushd java
# Core build
protoc \
--java_out=core/src/main/java \
--proto_path=../src \
--proto_path=core/src/main/resources/google/protobuf \
core/src/main/resources/google/protobuf/java_features.proto
for i in \
--java_out=core/src/main/java \
--proto_path=../src \
--proto_path=core/src/main/resources/google/protobuf \
core/src/main/resources/google/protobuf/java_features.proto \
../src/google/protobuf/any.proto \
../src/google/protobuf/api.proto \
../src/google/protobuf/descriptor.proto \
@ -164,14 +185,148 @@ for i in \
../src/google/protobuf/timestamp.proto \
../src/google/protobuf/type.proto \
../src/google/protobuf/wrappers.proto \
../src/google/protobuf/compiler/plugin.proto; do
protoc \
--java_out=core/src/main/java \
--proto_path=../src \
--proto_path=core/src/main/resources/google/protobuf \
${i}
cp ${i} core/src/main/resources/google/protobuf/
done
../src/google/protobuf/compiler/plugin.proto
cp \
../src/google/protobuf/any.proto \
../src/google/protobuf/api.proto \
../src/google/protobuf/descriptor.proto \
../src/google/protobuf/duration.proto \
../src/google/protobuf/empty.proto \
../src/google/protobuf/field_mask.proto \
../src/google/protobuf/source_context.proto \
../src/google/protobuf/struct.proto \
../src/google/protobuf/timestamp.proto \
../src/google/protobuf/type.proto \
../src/google/protobuf/wrappers.proto \
../src/google/protobuf/compiler/plugin.proto \
core/src/main/resources/google/protobuf/
# Lite build
mkdir -p lite/src/main/resources/google/protobuf
mkdir -p lite/src/main/java/com/google/protobuf
# lite sources from lite/BUILD.bazel
cp \
core/src/main/java/com/google/protobuf/AbstractMessageLite.java \
core/src/main/java/com/google/protobuf/AbstractParser.java \
core/src/main/java/com/google/protobuf/AbstractProtobufList.java \
core/src/main/java/com/google/protobuf/AllocatedBuffer.java \
core/src/main/java/com/google/protobuf/Android.java \
core/src/main/java/com/google/protobuf/ArrayDecoders.java \
core/src/main/java/com/google/protobuf/BinaryReader.java \
core/src/main/java/com/google/protobuf/BinaryWriter.java \
core/src/main/java/com/google/protobuf/BooleanArrayList.java \
core/src/main/java/com/google/protobuf/BufferAllocator.java \
core/src/main/java/com/google/protobuf/ByteBufferWriter.java \
core/src/main/java/com/google/protobuf/ByteOutput.java \
core/src/main/java/com/google/protobuf/ByteString.java \
core/src/main/java/com/google/protobuf/CanIgnoreReturnValue.java \
core/src/main/java/com/google/protobuf/CheckReturnValue.java \
core/src/main/java/com/google/protobuf/CodedInputStream.java \
core/src/main/java/com/google/protobuf/CodedInputStreamReader.java \
core/src/main/java/com/google/protobuf/CodedOutputStream.java \
core/src/main/java/com/google/protobuf/CodedOutputStreamWriter.java \
core/src/main/java/com/google/protobuf/CompileTimeConstant.java \
core/src/main/java/com/google/protobuf/DoubleArrayList.java \
core/src/main/java/com/google/protobuf/ExperimentalApi.java \
core/src/main/java/com/google/protobuf/ExtensionLite.java \
core/src/main/java/com/google/protobuf/ExtensionRegistryFactory.java \
core/src/main/java/com/google/protobuf/ExtensionRegistryLite.java \
core/src/main/java/com/google/protobuf/ExtensionSchema.java \
core/src/main/java/com/google/protobuf/ExtensionSchemaLite.java \
core/src/main/java/com/google/protobuf/ExtensionSchemas.java \
core/src/main/java/com/google/protobuf/FieldInfo.java \
core/src/main/java/com/google/protobuf/FieldSet.java \
core/src/main/java/com/google/protobuf/FieldType.java \
core/src/main/java/com/google/protobuf/FloatArrayList.java \
core/src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java \
core/src/main/java/com/google/protobuf/GeneratedMessageLite.java \
core/src/main/java/com/google/protobuf/InlineMe.java \
core/src/main/java/com/google/protobuf/IntArrayList.java \
core/src/main/java/com/google/protobuf/Internal.java \
core/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java \
core/src/main/java/com/google/protobuf/IterableByteBufferInputStream.java \
core/src/main/java/com/google/protobuf/Java8Compatibility.java \
core/src/main/java/com/google/protobuf/JavaType.java \
core/src/main/java/com/google/protobuf/LazyField.java \
core/src/main/java/com/google/protobuf/LazyFieldLite.java \
core/src/main/java/com/google/protobuf/LazyStringArrayList.java \
core/src/main/java/com/google/protobuf/LazyStringList.java \
core/src/main/java/com/google/protobuf/ListFieldSchema.java \
core/src/main/java/com/google/protobuf/ListFieldSchemaLite.java \
core/src/main/java/com/google/protobuf/ListFieldSchemas.java \
core/src/main/java/com/google/protobuf/LongArrayList.java \
core/src/main/java/com/google/protobuf/ManifestSchemaFactory.java \
core/src/main/java/com/google/protobuf/MapEntryLite.java \
core/src/main/java/com/google/protobuf/MapFieldLite.java \
core/src/main/java/com/google/protobuf/MapFieldSchema.java \
core/src/main/java/com/google/protobuf/MapFieldSchemaLite.java \
core/src/main/java/com/google/protobuf/MapFieldSchemas.java \
core/src/main/java/com/google/protobuf/MessageInfo.java \
core/src/main/java/com/google/protobuf/MessageInfoFactory.java \
core/src/main/java/com/google/protobuf/MessageLite.java \
core/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java \
core/src/main/java/com/google/protobuf/MessageLiteToString.java \
core/src/main/java/com/google/protobuf/MessageSchema.java \
core/src/main/java/com/google/protobuf/MessageSetSchema.java \
core/src/main/java/com/google/protobuf/MutabilityOracle.java \
core/src/main/java/com/google/protobuf/NewInstanceSchema.java \
core/src/main/java/com/google/protobuf/NewInstanceSchemaLite.java \
core/src/main/java/com/google/protobuf/NewInstanceSchemas.java \
core/src/main/java/com/google/protobuf/OneofInfo.java \
core/src/main/java/com/google/protobuf/Parser.java \
core/src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java \
core/src/main/java/com/google/protobuf/ProtoSyntax.java \
core/src/main/java/com/google/protobuf/Protobuf.java \
core/src/main/java/com/google/protobuf/ProtobufArrayList.java \
core/src/main/java/com/google/protobuf/ProtocolStringList.java \
core/src/main/java/com/google/protobuf/RawMessageInfo.java \
core/src/main/java/com/google/protobuf/Reader.java \
core/src/main/java/com/google/protobuf/RopeByteString.java \
core/src/main/java/com/google/protobuf/RuntimeVersion.java \
core/src/main/java/com/google/protobuf/Schema.java \
core/src/main/java/com/google/protobuf/SchemaFactory.java \
core/src/main/java/com/google/protobuf/SchemaUtil.java \
core/src/main/java/com/google/protobuf/SmallSortedMap.java \
core/src/main/java/com/google/protobuf/StructuralMessageInfo.java \
core/src/main/java/com/google/protobuf/TextFormatEscaper.java \
core/src/main/java/com/google/protobuf/UninitializedMessageException.java \
core/src/main/java/com/google/protobuf/UnknownFieldSchema.java \
core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java \
core/src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java \
core/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java \
core/src/main/java/com/google/protobuf/UnsafeByteOperations.java \
core/src/main/java/com/google/protobuf/UnsafeUtil.java \
core/src/main/java/com/google/protobuf/Utf8.java \
core/src/main/java/com/google/protobuf/WireFormat.java \
core/src/main/java/com/google/protobuf/Writer.java \
lite/src/main/java/com/google/protobuf/
protoc \
--java_out=lite:lite/src/main/java \
--proto_path=../src \
--proto_path=core/src/main/resources/google/protobuf \
../src/google/protobuf/any.proto \
../src/google/protobuf/api.proto \
../src/google/protobuf/descriptor.proto \
../src/google/protobuf/duration.proto \
../src/google/protobuf/empty.proto \
../src/google/protobuf/field_mask.proto \
../src/google/protobuf/source_context.proto \
../src/google/protobuf/struct.proto \
../src/google/protobuf/timestamp.proto \
../src/google/protobuf/type.proto \
../src/google/protobuf/wrappers.proto
cp \
../src/google/protobuf/any.proto \
../src/google/protobuf/api.proto \
../src/google/protobuf/descriptor.proto \
../src/google/protobuf/duration.proto \
../src/google/protobuf/empty.proto \
../src/google/protobuf/field_mask.proto \
../src/google/protobuf/source_context.proto \
../src/google/protobuf/struct.proto \
../src/google/protobuf/timestamp.proto \
../src/google/protobuf/type.proto \
../src/google/protobuf/wrappers.proto \
lite/src/main/resources/google/protobuf/
%{mvn_build} -f -- -Dprotoc=$(type -p protoc)
popd
@ -198,8 +353,10 @@ cat <<__PROTOBUF__ >>%{buildroot}%{_datadir}/maven-metadata/%{name}-protoc.xml
__PROTOBUF__
popd
%files -f java/.mfiles
%files runtime -f java/.mfiles
%license LICENSE
%files protoc
%{_datadir}/maven-metadata/%{name}-protoc.xml
%files bom -f java/.mfiles-bom

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Mon Oct 21 20:55:21 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Java: mimic the bazel build and build also the protobuf-javalite
artifact
- Java: put the runtime artifacts to a protobuf-java-runtime package
and the protoc metadata into protobuf-java-protoc package.
* allows to make the runtime noarch
* keep the protoc subpackage archful
- Java: Let protobuf-java-runtime provide and obsolete protobuf-java
to render upgrade easier after we changed to the upstream
versioning for java bindings
-------------------------------------------------------------------
Mon Oct 21 13:27:27 UTC 2024 - Dirk Müller <dmueller@suse.com>
- Python: keep building for 15.4+
-------------------------------------------------------------------
Mon Oct 21 11:34:51 UTC 2024 - Fridrich Strba <fstrba@suse.com>
@ -50,8 +68,8 @@ Fri Aug 2 16:42:09 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
bytes in StreamDecoder
* Java: Add Automatic-Module-Name
* PHP: Regen stale files
* Ruby C-Extension: Regen stale files
* Ruby C-Extension: Regen stale files
-------------------------------------------------------------------
Sat Mar 9 20:36:14 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>

View File

@ -1,7 +1,20 @@
-------------------------------------------------------------------
Mon Oct 21 20:55:21 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Java: mimic the bazel build and build also the protobuf-javalite
artifact
- Java: put the runtime artifacts to a protobuf-java-runtime package
and the protoc metadata into protobuf-java-protoc package.
* allows to make the runtime noarch
* keep the protoc subpackage archful
- Java: Let protobuf-java-runtime provide and obsolete protobuf-java
to render upgrade easier after we changed to the upstream
versioning for java bindings
-------------------------------------------------------------------
Mon Oct 21 13:27:27 UTC 2024 - Dirk Müller <dmueller@suse.com>
- keep building for 15.4+
- Python: keep building for 15.4+
-------------------------------------------------------------------
Mon Oct 21 11:34:51 UTC 2024 - Fridrich Strba <fstrba@suse.com>