# # spec file for package protobuf # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define sover 22 %define tarname protobuf %define src_install_dir %{_prefix}/src/%{name} %define extra_java_flags -source 7 -target 7 # requires gmock, which is not yet in the distribution %bcond_with check %bcond_with java %bcond_without python2 %bcond_without python3 Name: protobuf Version: 3.11.4 Release: 1.3 Summary: Protocol Buffers - Google's data interchange format License: BSD-3-Clause Group: Development/Libraries/C and C++ URL: https://github.com/google/protobuf/ Source0: https://github.com/google/protobuf/archive/v%{version}.tar.gz#/%{tarname}-%{version}.tar.gz Source1: manifest.txt.in Source2: baselibs.conf BuildRequires: %{python_module devel} BuildRequires: %{python_module python-dateutil} BuildRequires: %{python_module python-gflags} BuildRequires: %{python_module pytz} BuildRequires: %{python_module setuptools} BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: python-rpm-macros BuildRequires: zlib-devel %if %{with check} BuildRequires: libgmock-devel >= 1.7.0 %endif %if %{with java} BuildRequires: java-devel >= 1.6.0 BuildRequires: javapackages-local %endif %description 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. %package -n libprotobuf%{sover} Summary: Protocol Buffers - Google's data interchange format Group: System/Libraries %description -n libprotobuf%{sover} 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. %package -n libprotoc%{sover} Summary: Protocol Buffers - Google's data interchange format Group: System/Libraries %description -n libprotoc%{sover} 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. %package -n libprotobuf-lite%{sover} Summary: Protocol Buffers - Google's data interchange format Group: System/Libraries %description -n libprotobuf-lite%{sover} 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. %package devel Summary: Header files, libraries and development documentation for %{name} Group: Development/Libraries/C and C++ Requires: gcc-c++ Requires: libprotobuf%{sover} = %{version} Requires: libprotobuf-lite%{sover} Requires: zlib-devel Conflicts: protobuf2-devel Provides: libprotobuf-devel = %{version} %description devel 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. %package source Summary: Source code of protobuf Group: Development/Sources BuildArch: noarch %description source 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 source code for Protocol Buffers. %package -n %{name}-java Summary: Java Bindings for Google Protocol Buffers Group: Development/Libraries/Java Requires: java >= 1.6.0 %description -n %{name}-java This package contains the Java bindings for Google Protocol Buffers. %package -n python2-%{name} Summary: Python2 Bindings for Google Protocol Buffers Group: Development/Libraries/Python Provides: python-%{name} = %{version} Obsoletes: python-%{name} < %{version} %description -n python2-%{name} This package contains the Python bindings for Google Protocol Buffers. %package -n python3-%{name} Summary: Python3 Bindings for Google Protocol Buffers Group: Development/Libraries/Python %description -n python3-%{name} This package contains the Python bindings for Google Protocol Buffers. %prep %autosetup -n %{tarname}-%{version} mkdir gmock %if %{with python2} || %{with python3} # only needed for test suite which we don't call anyways. # googleapis is broken on sle12 sed -i '/apputils/d' python/setup.py sed -i '/google_test_dir/d' python/setup.py %endif # kill shebang that we do not really want sed -i -e '/env python/d' python/google/protobuf/internal/*.py %build %define _lto_cflags %{nil} autoreconf -fvi %configure \ --disable-static make %{?_smp_mflags} %if %{with java} pushd java ../src/protoc --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto mkdir classes javac %{extra_java_flags} -d classes core/src/main/java/com/google/protobuf/*.java sed -e 's/@VERSION@/%{version}/' < %{SOURCE1} > manifest.txt jar cfm %{name}-java-%{version}.jar manifest.txt -C classes com popd %endif pushd python %python_build popd %if %{with check} %check make %{?_smp_mflags} check %endif %install %make_install install -Dm 0644 editors/proto.vim %{buildroot}%{_datadir}/vim/site/syntax/proto.vim # no need for that find %{buildroot} -type f -name "*.la" -delete -print %if %{with java} pushd java install -D -m 0644 %{name}-java-%{version}.jar %{buildroot}%{_javadir}/%{name}-java.jar ln -s %{name}-java.jar %{buildroot}%{_javadir}/%{name}.jar install -D -m 0644 pom.xml %{buildroot}%{_mavenpomdir}/%{name}-parent.pom %add_maven_depmap %{name}-parent.pom install -D -m 0644 bom/pom.xml %{buildroot}%{_mavenpomdir}/%{name}-bom.pom %add_maven_depmap %{name}-bom.pom install -D -m 0644 core/pom.xml %{buildroot}%{_mavenpomdir}/%{name}-java.pom %add_maven_depmap %{name}-java.pom %{name}-java.jar popd %endif pushd python %python_install popd %python_expand %fdupes %{buildroot}%{$python_sitelib} mkdir -p %{buildroot}%{src_install_dir} tar -xzf %{SOURCE0} --strip-components=1 -C %{buildroot}%{src_install_dir} %fdupes %{buildroot}%{src_install_dir} # Fix env-script-interpreter rpmlint error find %{buildroot}%{src_install_dir} -type f -name "*.js" -exec sed -i 's|#!.*%{_bindir}/env node|#!%{_bindir}/node|' "{}" + find %{buildroot}%{src_install_dir} -type f -name "*.py" -exec sed -i 's|#!.*%{_bindir}/env python2.7|#!%{_bindir}/python2.7|' "{}" + find %{buildroot}%{src_install_dir} -type f -name "*.py" -exec sed -i 's|#!.*%{_bindir}/env python|#!%{_bindir}/python|' "{}" + find %{buildroot}%{src_install_dir} -type f -name "*.rb" -exec sed -i 's|#!.*%{_bindir}/env ruby|#!%{_bindir}/ruby|' "{}" + find %{buildroot}%{src_install_dir} -type f -name "*.sh" -exec sed -i 's|#!.*%{_bindir}/env bash|#!/bin/bash|' "{}" + # And stop requiring ridiculously old Python version find %{buildroot}%{src_install_dir} -type f -name "*.py" -exec sed -i 's|#!%{_bindir}/python2.4|#!%{_bindir}/python2.7|' "{}" + # Fix spurious-executable-perm rpmlint error chmod -x %{buildroot}%{src_install_dir}/src/google/protobuf/arenastring.h chmod -x %{buildroot}%{src_install_dir}/src/google/protobuf/compiler/js/js_generator.h chmod -x %{buildroot}%{src_install_dir}/src/google/protobuf/reflection.h # Fix version-control-internal-file rpmlint warning find %{buildroot}%{src_install_dir} -type f -name ".gitignore" -exec rm -f "{}" + %fdupes %{buildroot}%{_prefix} %post -n libprotobuf%{sover} -p /sbin/ldconfig %postun -n libprotobuf%{sover} -p /sbin/ldconfig %post -n libprotoc%{sover} -p /sbin/ldconfig %postun -n libprotoc%{sover} -p /sbin/ldconfig %post -n libprotobuf-lite%{sover} -p /sbin/ldconfig %postun -n libprotobuf-lite%{sover} -p /sbin/ldconfig %files -n libprotobuf%{sover} %license LICENSE %{_libdir}/libprotobuf.so.%{sover}* %files -n libprotoc%{sover} %{_libdir}/libprotoc.so.%{sover}* %files -n libprotobuf-lite%{sover} %{_libdir}/libprotobuf-lite.so.%{sover}* %files devel %doc CHANGES.txt CONTRIBUTORS.txt README.md %{_bindir}/protoc %{_includedir}/google %{_libdir}/*.so %{_libdir}/pkgconfig/* %{_datadir}/vim %files source %{src_install_dir} %if %{with java} %files -n %{name}-java -f java/.mfiles %{_javadir}/%{name}.jar %endif %if %{with python2} %files -n python2-%{name} %license LICENSE %{python2_sitelib}/* %endif %if %{with python3} %files -n python3-%{name} %license LICENSE %{python3_sitelib}/* %endif %changelog * Fri Mar 6 2020 Nico Kruber - Update to version 3.11.4; notable changes since 3.9.2: * C++: Make serialization method naming consistent * C++: Moved ShutdownProtobufLibrary() to message_lite.h. For backward compatibility a declaration is still available in stubs/common.h, but users should prefer message_lite.h * C++: Removed non-namespace macro EXPECT_OK() * C++: Removed mathlimits.h from stubs in favor of using std::numeric_limits from C++11 * C++: Support direct pickling of nested messages * C++: Disable extension code gen for C# * C++: Switch the proto parser to the faster MOMI parser * C++: Unused imports of files defining descriptor extensions will now be reported * C++: Add proto2::util::RemoveSubranges to remove multiple subranges in linear time * C++: Support 32 bit values for ProtoStreamObjectWriter to Struct * C++: Removed the internal-only header coded_stream_inl.h and the internal-only methods defined there * C++: Enforced no SWIG wrapping of descriptor_database.h (other headers already had this restriction) * C++: Implementation of the equivalent of the MOMI parser for serialization. This removes one of the two serialization routines, by making the fast array serialization routine completely general. SerializeToCodedStream can now be implemented in terms of the much much faster array serialization. The array serialization regresses slightly, but when array serialization is not possible this wins big * C++: Add move constructor for Reflection's SetString * Java: Remove the usage of MethodHandle, so that Android users prior to API version 26 can use protobuf-java * Java: Publish ProGuard config for javalite * Java: Include unknown fields when merging proto3 messages in Java lite builders * Java: Have oneof enums implement a separate interface (other than EnumLite) for clarity * Java: Opensource Android Memory Accessors * Java: Change ProtobufArrayList to use Object[] instead of ArrayList for 5-10%% faster parsing * Java: Make a copy of JsonFormat.TypeRegistry at the protobuf top level package. This will eventually replace JsonFormat.TypeRegistry * Java: Add Automatic-Module-Name entries to the Manifest * Python: Add float_precision option in json format printer * Python: Optionally print bytes fields as messages in unknown fields, if possible * Python: Experimental code gen (fast import protobuf module) which only work with cpp generated code linked in * Python: Add descriptor methods in descriptor_pool are deprecated * Python: Added delitem for Python extension dict * JavaScript: Remove guard for Symbol iterator for jspb.Map * JavaScript: Remove deprecated boolean option to getResultBase64String() * JavaScript: Change the parameter types of binaryReaderFn in ExtensionFieldBinaryInfo to (number, ?, ?) * JavaScript: Create dates.ts and time_of_days.ts to mirror Java versions. This is a near-identical conversion of c.g.type.util.{Dates,TimeOfDays} respectively * JavaScript: Migrate moneys to TypeScript * PHP: Increase php7.4 compatibility * PHP: Implement lazy loading of php class for proto messages * Ruby: Support hashes for struct initializers * C#: Experimental proto2 support is now officially available * C#: Change _Extensions property to normal body rather than expression * Objective C: Remove OSReadLittle* due to alignment requirements * Other: Override CocoaPods module to lowercase * further bugfixes and optimisations * Fri Dec 20 2019 Martin Pluskal - Use tarball provided by upstream - Small package cleanup * Thu Dec 19 2019 Madhu Mohan Nelemane - Updated to version 3.9.2 (bsc#1162343) (Objective-C) * Remove OSReadLittle* due to alignment requirements. (#6678) * Don't use unions and instead use memcpy for the type swaps. (#6672) * Fri Sep 27 2019 Fridrich Strba - Package also the protobuf-bom pom file * Thu Aug 22 2019 Jan Engelhardt - Update to new upstream release 3.9.1 * Optimized the implementation of RepeatedPtrFieldBase. * Added delimited parse and serialize util. * Added FieldDescriptor::PrintableNameForExtension() and DescriptorPool::FindExtensionByPrintableName(). The latter will replace Reflection::FindKnownExtensionByName(). * Created a new Add method in repeated field that allows adding a range of elements all at once. * Drop building wheel for Python 3.4. * Sat Jun 8 2019 Fridrich Strba - Specify java source and target levels in order to build compatible protobuf-java binaries * Wed Jun 5 2019 Jan Engelhardt - Update to new upstream release 3.8.0 * Introduced new MOMI (maybe-outside-memory-interval) parser. * Added use of C++ override keyword where appropriate. * Always declare enums to be int-sized. * Append '_' to C++ reserved keywords for message, enum, extension. - Remove 0001-remove-PACKAGE_NAME-and-REPOSITORY_NAME-deprecated.patch (upstreamed) * Wed Apr 24 2019 Martin Liška - Disable LTO (boo#1133277). * Wed Feb 20 2019 Michał Rostecki - Add upstream patch which fixes build with Bazel 0.22.0. * 0001-remove-PACKAGE_NAME-and-REPOSITORY_NAME-deprecated.patch * Tue Jan 8 2019 Michał Rostecki - Add protobuf-source package - some programs using gRPC and protobuf need protobuf definitions which are included inside the source code, but are not included in the devel package. * Mon Dec 17 2018 Fridrich Strba - Add maven pom files to the protobuf-java package * Wed Sep 12 2018 Thomas Bechtold - update to version v3.6.1: * PHP namespaces for nested messages and enums (#4536) * Allows the json marshaller to be passed json marshal options (#4252) * Make sure to delete temporary maps used by FileDescriptorTables * fix python cpp kokoro build * Change C# reflection to avoid using expression trees * Updated checked-in generated code * Removed unused variables in repeated_scalar_container.cc * Removed unused code pertaining to shared_ptr * Include no_package.proto in Python test * Only check filenames when end with .py in _CalledFromGeneratedFile() (#4262) * Convert descriptortype to type for upb_msgval_sizeof (#4357) * Removed duplicate using statement from ReflectionUtil.cs * Add support for power ppc64le * Cat the test-suite.log on errors for presubits * Address review comments * Add third-party RPC implementation: raster - a network framework supports pbrpc by 'service' keyword. * Delete javanano kokoro build configs. * Updated Ruby conformance test failure list * Removed use of some type traits * Adopt php_metadata_namespace in php code generator (#4622) * Move to Xcode 9.3 which also means a High Sierra image. * Add protoc release script for Linux build. * protoc-artifacts: Avoid storing temporary files and use fewer layers * Rewrite go_benchmark * Add files to build ruby artifact for mac on kokoro (#4814) * Remove javanano. * Comment out unused command from release script. * Avoid direct check of class name (#4601) * The JsonParseOptions::ignore_unknown_fields option behavior treats * Fix php memory leak test (#4692) * Fix benchmark build * Add VS2017 optional component dependency details to the C# readme (#4128) * Fix initialization with Visual Studio * For windows, all python version should use /MT (#4468) * use brew install instead of easy_install in OSX (#4537) * Sync upb change (#4373) * Always add -std=c++11 for mac (#4684) * Add kokoro build status badges. * Removed unrecognized option from no_package.proto * Fixed up proto3_lite_unittest.cc * Update Xcode settings * Cleanup LICENSE file. * Remove js_embed binary. (#4709) * Fixed JS parsing of unspecified map keys * Update version number to 3.6.0 * Deliberately call simple code to avoid Unity linker pruning * Revert "Move `compiler/plugin.pb.cc` to libprotobuf with the other WKT sources." * protoc-artifacts: Use ENTRYPOINT to enable devtoolset-1.1 * MinGW build failed * Support using MSVC intrinsics in Log2FloorNonZero * Fix array constructor in c extension for compatibility (#4667) * Add space between class name and concat message (#4577) * fix python * Add performance.md and add instruction for linking tcmalloc * Add script for run and upload the benchmark result to bq * Add test for failing write of raw pointer to output stream * [objectivec] Fix memory leak of exceptions raised by RaiseException() (#4556) * Remove stray indent on normal imports. * Fix python ext build on kokoro (#4527) * Add compile test sources for to test include order. * Fixed a Visual Studio 2017 build error. (#4488) * fix linux kokoro build in docker * Fixes MSVC compiler warning C4800 "Forcing value to bool 'true' or 'false'" (#4350) * Updated Docker setup to use GCC 4.8 * Remove broken build status icons. * Run autogen.sh in release script. * Output *_pb2_grpc.py when use_grpc_plugin=True * Adopt ruby_package in ruby generated code. (#4627) * Cygwin build failed * Work around an "old runtime" issue with reflection * Added Kokoro protoc release build for OS X (#4770) * Updated change log for 3.6.1 release * Move methods out of class (#4697) * Fix to allow AOT compilers to play nicely with reflection * Update Makefile.am for Java lite files. * Added map_lite_test.proto to fix LiteTest * Introduce a compatiblity shim to support .NET 3.5 delegate creation * Revert "Removed mention of Buffer in byteSourceToUint8Array" * Add gogo benchmark * Set ext.no_native = true for non mac platform * Removed atomicops.h since it is no longer used * Rename a shadowed variable. * Add kokoro bazel configs for 3.6.x branch. * Deleted scoped_ptr.h * Check the message to be encoded is the wrong type. (#4885) (#4949) * protoc-artifacts: Avoid checking out protobuf code * Add conformance test for null value in list JSON * Build ruby gem on kokoro (#4819) * Try using a new version of Visual Studio on AppVeyor * Make ruby release configs consistent with protoc. * fix for API change in PHP 7.3 (#4898) * Add .proto files to extract_includes.bat * Update protoc build scripts. * Blacklist all WELL_KNOWN_PROTOS from Bazel C++ code generation. * Additional support for building and deploying ppcle_64 artifacts * Fix php tests * Cleanup + documentation for Java Lite runtime. * Added Kokoro Windows release build config for protoc (#4766) * typo * fix golang kokoro linux build * Fix spelling error of __GNUC_MINOR__ * Update code to work for Xcode 10b1 (#4729) * Added pyext/thread_unsafe_shared_ptr.h * Added missing .inc files to BUILD * js message support for jstype string on integers (#4332) * Improve error message when googletest is missing. * Make assertEquals pass for message (#4947) * Sync internal benchmark changes * Removed some unused C++ source files * Fix missing LIBPROTOC_EXPORT. * Added new test source files to Makefile.am * Update php version to 3.6.0 (#4736) * Fix RepeatedField#delete_if (#4292) * Merge branch (#4466) * Implement array constructor in php c extension. * protoc-artifacts: Update centos base from 6.6 to 6.9 * PHP array constructors for protobuf messages (#4530) * Fix problem: cmake build failed in c++11 by clang * Don't assume Windows builds use MSVC. * Use legacy name in php runtime (#4741) * Add file option php_metadata_namespace and ruby_package (#4609) * Fix cpp benchmark dependency on mac * Use the first enum value instead of 0 in DefaultValueObjectWriter::FindEnumDefault * Check return value on write of raw pointer * Delete unused directories. * Replace //:protoc and similar default macro arguments with * Add extra C# file to Makefile.am * includes the expected class in the exception, otherwise the error is harder to track down (#3371) * Update instructions about getting protobuf source. * Add cpp tests under release docker image. * fix java benchmark, fix dashboard build * `update_file_lists.sh` depends on Bash features, thus needs Bash sebang. * Rename build_artifacts.cfg to release.cfg (#4818) * Fix bug: whether always_print_enums_as_ints is true or false, it always print the default value of enums as strings * source code info for interpreted options; fix source code info for extension range options (#4342) * Updated version numbers to 3.6.1 * Trim imports for bundled generated protos. * Require C++11 and pass -std=c++11 * Remove the iOS Test App. * fix duplicate mkdir in update_file_lists.sh * Updated csharp/README.md to reflect testing changes * Fix bazel build of examples. * Add missing ruby/tests/test_ruby_package.proto * Fix cpp_distcheck * Updated the change log with changes for 3.6.0 * some fix * CMake: Update CXX Standard management * Add the files added in #4485. * Change to deal all messages in one loop * Fix php conformance test. * Add __init__.py files to compiler and util subpackages (#4117) * Updated .gitignore to exclude downloaded gmock/ directory * Fix error in Clang UndefinedBehaviorSanitizer * Work around MSVC issue with std::atomic initialization (#4777) * Updated conformance failure lists * Add back GeneratedClassName to public (#4686) * Add continuous test for ruby 2.3, 2.4 and 2.5 (#4829) * Throw error if user want to access message properties (#4603) * fix json_decode call parameters (#4381) * Move `compiler/plugin.pb.cc` to libprotobuf with the other WKT sources. * PHP: fixed typo in message.c * Add go benchmark * Allow list values to be null when parsing * Added instruction for existing ZLIB configuration * Fix 32bit php tests * Removed javanano from post_process_dist.sh * Don't generate imports for the WKTs unless generating the WKTs. * For encoding upb needs descriptor type instead of type. (#4354) * Include googletest as a submodule (#3993) * Write messages to backing field in generated C# cloning code (#4440) * Integrated internal changes from Google - Drop adding-Release_CompareAndSwap-64-bit-variant.patch . Applied upstream. - bump soname version * Mon May 14 2018 tbechtold@suse.com update to version v3.5.2: * Update release date * Disable pip cache when testing uploaded packages * Replace private timelib_update_ts with public date_timestamp_get * Remove py2.6 support. * Cherrypick for csharp, including: * Update changelog * Update changelog for 3.5.1 * Fix uploading binary wheel. * Fix memory leak when creating map field via array. * Update rake file to build of 2.1.6. * Avoid using php_date_get_date_ce() in case date extension is not * Update protoc-artfacts * Fix string::back() usage in googletest.cc * Fix memory leak in php7 * Support ruby2.5 * io_win32: support non-ASCII paths * Explicitly propagate the status of Flush(). * Add discard unknown API in ruby. (#3990) * Update version for 3.5.0.post1 * remove nullptr * Fix more memory leak for php c extension (#4211) * Bumping number to fix ruby 2.1 on mac * io_win32_unittest: remove incorrect error check * Fix memory leak when creating repeated field via array. * Update version number for php c extension (#3896) * Fix file permission for python package. * Create containing directory before generating well_known_types_embed.cc * Replace C++11 only method std::map::at * Recursively clear unknown fields in submessages. (#3982) * Update version number to 3.5.1 * io_win32_unittest: fix condition in GetCwdAsUtf8 * Add release log * io_win32_unittest: use CWD as last tempdir * Add PROTOBUF_ENABLE_TIMESTAMP to let user decide whether timestamp util * Add support for Windows ARM64 build * Add protobuf-all in post release * Use fully qualifed name for DescriptorPool in Any.php to avoid name (#3886) * Add _file_desc_by_toplevel_extension back * Fix setup.py for windows build. * io_win32_unittest: make //:win32_test run again * Provide discardUnknonwnFields API in php (#3976) * Update php c extension version number to 3.5.0.1 * Fix ruby gc_test in ruby 2.4 (#4011) * Remove duplicate typedef. (#3975) * Accept DatetimeInterface in fromDatetime * io_win32: add more encoding-related tests * Bump version number to 3.5.2 * Bump protoc-artifact version for a patch rebuild * Call php method via function name instead of calling directly. * Well known types are not initialized properly. (#4139) * Use matching enum type for IsPOD. * Fix several more memory leak * Fix for php5.5 * Add backslach to make class explict in global namespace * Fri Feb 23 2018 mlin@suse.com - Add adding-Release_CompareAndSwap-64-bit-variant.patch * Fix compile error undefined reference to `google::protobuf::internal::Release_CompareAndSwap(long volatile*, long, long)' on s390x https://github.com/google/protobuf/issues/3937 * Mon Jan 22 2018 tchvatal@suse.com - Conditionalize python2 and python3 in order to be able to build without python2 present in distribution * Use singlespec macros to simplify the logic - Run fdupes on python modules to avoid duplicates - Remove shebangs from import-only code * Mon Dec 11 2017 jengelh@inai.de - Update to new upstream release 3.5.0 * Proto3 messages are now preserving unknown fields by default. If you rely on unknowns fields being dropped, use DiscardUnknownFields() explicitly. * Deprecated the unsafe_arena_release_* and unsafe_arena_add_allocated_* methods for string fields. * Added move constructor and move assignment to RepeatedField, RepeatedPtrField and google::protobuf::Any. * Added perfect forwarding in Arena::CreateMessage. * In-progress experimental support for implicit weak fields with lite protos. This feature allows the linker to strip out more unused messages and reduce binary size. - Rename %%soname to %%sover to better reflect its use. * Fri Jun 16 2017 mpluskal@suse.com - Install LICENSE * Sun Jun 11 2017 alarrosa@suse.com - Update to 3.3.0 : * C++: * Fixed map fields serialization of DynamicMessage to correctly serialize both key and value regardless of their presence. * Parser now rejects field number 0 correctly. * New API Message::SpaceUsedLong() that’s equivalent to Message::SpaceUsed() but returns the value in size_t. * JSON support - New flag always_print_enums_as_ints in JsonPrintOptions. - New flag preserve_proto_field_names in JsonPrintOptions. It will instruct the JSON printer to use the original field name declared in the .proto file instead of converting them to lowerCamelCase when printing JSON. - JsonPrintOptions.always_print_primtive_fields now works for oneof message fields. - Fixed a bug that doesn’t allow different fields to set the same json_name value. - Fixed a performance bug that causes excessive memory copy when printing large messages. * Various performance optimizations. * Java: * Map field setters eagerly validate inputs and throw NullPointerExceptions as appropriate. * Added ByteBuffer overloads to the generated parsing methods and the Parser interface. * proto3 enum's getNumber() method now throws on UNRECOGNIZED values. * Output of JsonFormat is now locale independent. * Python: * Added FindServiceByName() in the pure-Python DescriptorPool. This works only for descriptors added with DescriptorPool.Add(). Generated descriptor_pool does not support this yet. * Added a descriptor_pool parameter for parsing Any in text_format.Parse(). * descriptor_pool.FindFileContainingSymbol() now is able to find nested extensions. * Extending empty [] to repeated field now sets parent message presence. - Update to 3.2.0 : * Added protoc version number to protoc plugin protocol. It can be used by protoc plugin to detect which version of protoc is used with the plugin and mitigate known problems in certain version of protoc. * C++: * The default parsing byte size limit has been raised from 64MB to 2GB. * Added rvalue setters for non-arena string fields. * Enabled debug logging for Android. * Fixed a double-free problem when using Reflection::SetAllocatedMessage() with extension fields. * Fixed several deterministic serialization bugs: * MessageLite::SerializeAsString() now respects the global deterministic serialization flag. * Extension fields are serialized deterministically as well. Fixed protocol compiler to correctly report importing-self as an error. * Fixed FileDescriptor::DebugString() to print custom options correctly. * Various performance/codesize optimizations and cleanups. * Java: * The default parsing byte size limit has been raised from 64MB to 2GB. * Added recursion limit when parsing JSON. * Fixed a bug that enumType.getDescriptor().getOptions() doesn't have custom options. * Fixed generated code to support field numbers up to 2^29-1. * Python: * You can now assign NumPy scalars/arrays (np.int32, np.int64) to protobuf fields, and assigning other numeric types has been optimized for performance. * Pure-Python: message types are now garbage-collectable. * Python/C++: a lot of internal cleanup/refactoring. - Increase soname to 13 - Generate python2-protobuf and python3-protobuf packages in Factory - Make the python2-protobuf package provide and obsolete python-protobuf to make the transition smooth in Tumbleweed * Sun Jan 22 2017 stefan.bruens@rwth-aachen.de - Fix an issue with setup.py where some files are built on the first invocation, but only copied on the second. This resulted in an incomplete protobuf-python package. * Sat Jan 7 2017 stefan.bruens@rwth-aachen.de - Update to protobuf v3.1.0. Protobuf v3.0.0 introduceced a new version of the protocol buffer language, proto3, which supersedes proto2. The protoc compiler is able to read old proto2 protocol definitions, and defaults to the proto2 syntax if a syntax is not specified, thus packages can be recompiled to link to the new library. For backwards compatibility, the old library version is available from the protobuf2 package. As the API for proto2 is not compatible to the proto3 API, proto3 should only be used for new Protocol Buffers, whereas current users are advised to keep using proto2. For a detailed list of changes, see https://github.com/google/protobuf/releases - Drop no longer needed patches: * protobuf-setuptools-2.4.1.patch * protobuf-return-no-nonvoid.patch * Fri Dec 16 2016 stefan.bruens@rwth-aachen.de - Use py_sitedir for library installation with setup.py install * Wed Dec 14 2016 mpluskal@suse.com - Drop protobuf-libs as it is just workaround for rpmlint issue * Sat Dec 10 2016 stefan.bruens@rwth-aachen.de - Cleanup specfile: * remove any conditionals for versions predating SLES 12/Leap 42.x * add Provides: protobuf-libs to fix rpmlint warning * Mon Dec 7 2015 lnussel@suse.de - disable google-apputils usage. They are only used for the testsuite which wasn't called anyways. The next upstream version will not use apputils anymore anyways. Fixes build on SLE12. https://github.com/google/protobuf/commit/9f42f5f4a423b923f7b07ae8c5e8db4943df49c6 bnc#957472 * Thu Nov 12 2015 alarrosa@suse.com - Python bindings require a recent python-google-apputils, so build them where it's available (that's anything recent except SLE12) * Thu Nov 12 2015 alarrosa@suse.com - Fix check so python bindings are not built in SLE12 * Fri Nov 6 2015 edogawa@aon.at - tweak spec to build python bindings for Leap 42.1 * Wed Jul 29 2015 dimstar@opensuse.org - Fix baselibs.conf: last time the sonames were bumped, baselibs.conf has not been updated accordingly. * Sat Feb 28 2015 mpluskal@suse.com - Add protobuf-return-no-nonvoid.patch - Do not install examples - Remove 0001-Add-generic-GCC-support-for-atomic-operations.patch * Fri Feb 27 2015 mpluskal@suse.com - Use current url's - Update dependencies * python bindings now require recent python-google-apputils which are available only in recet (13.1 and higher releases of openSUSE) - Update to 2.6.1 * Added atomicops support for Solaris. * Released memory allocated by InitializeDefaultRepeatedFields() and GetEmptyString(). Some memory sanitizers reported them as memory leaks. * Updated DynamicMessage.setField() to handle repeated enum values correctly. * Fixed a bug that caused NullPointerException to be thrown when converting manually constructed FileDescriptorProto to FileDescriptor. - Changes for 2.6.0 * Added oneofs(unions) feature. Fields in the same oneof will share memory and at most one field can be set at the same time. * Files, services, enums, messages, methods and enum values can be marked as deprecated now. * Added Support for list values, including lists of mesaages, when parsing text-formatted protos in C++ and Java. * Enhanced customization on TestFormat printing. * Added SwapFields() in reflection API to swap a subset of fields. * Added SetAllocatedMessage() in reflection API. * Repeated primitive extensions are now packable. The [packed=true] option only affects serializers. Therefore, it is possible to switch a repeated extension field to packed format without breaking backwards-compatibility. * Various speed optimizations. * writeTo() method in ByteString can now write a substring to an output stream. Added endWith() method for ByteString. * ByteString and ByteBuffer are now supported in CodedInputStream and CodedOutputStream. * java_generate_equals_and_hash can now be used with the LITE_RUNTIME. * A new C++-backed extension module (aka "cpp api v2") that replaces the old ("cpp api v1") one. Much faster than the pure Python code. This one resolves many bugs and is recommended for general use over the pure Python when possible. * Tue Nov 5 2013 sleep_walker@suse.cz - fix java flags to build package for SLE_11_SP3 * Fri Jun 7 2013 dvaleev@suse.com - package google/protobuf/stubs/atomicops_internals_generic_gcc.h mosh reqires it * Mon May 27 2013 dvaleev@suse.com - Build on architectures where no specialized code has been written 0001-Add-generic-GCC-support-for-atomic-operations.patch * Fri Apr 12 2013 ftake@geeko.jp - Upstream update to 2.5.0 * New construct "import public" * New enum option "allow_alias" * C++: New generated method set_allocated_foo(Type* foo) * C++: Added SetAllocatedExtension() and ReleaseExtension() to extensions API * Java: Added getters/setters to access the underlying ByteString of a string field * Java: New operations for substring(), prepend(), and append() * Java: New method findInitializationErrors() * Python: Support for dynamic message creation * Python: Fixed custom options were not correctly populated * Python: Added EnumTypeWrapper * Python: Added ParseMessage(descriptor, bytes) * Various bug fixes and optimazations - Drop gtest-1.5, which is now included by the archive from the upstream * Sat May 19 2012 crrodriguez@opensuse.org - BuildRequire zlib-devel otherwise gzip_stream is not built thus breaking newer releases of mosh. * Fri Mar 16 2012 dimstar@opensuse.org - Add gtest-1.5.0.tar.bz2: This is the release tarball of gtest 1.5 which is being used by make check. The included 1.4.0 does not work with gcc 4.7, thus replacing the gtest folder with this snapshot. - Wrapped the gtest extraction with a version check... on next version the package will fail in order to remember to take this out again (next release of protobuf bundles gtest 1.5.0) - Add libtool BuildRequires and call to autoreconf, as gtest 1.5.0 needs to be bootstrapped. * Wed Dec 21 2011 coolo@suse.com - remove %%release from requires * Wed Oct 12 2011 tony@daylessday.org - Update to Protobuf 2.4.1: C++ * Fixed the frendship problem for old compilers to make the library now gcc 3 compatible again. * Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h. Java * Removed usages of JDK 1.6 only features to make the library now JDK 1.5 compatible again. * Fixed a bug about negative enum values. * serialVersionUID is now defined in generated messages for java serializing. * Fixed protoc to use java.lang.Object, which makes "Object" now a valid message name again. Python * Experimental C++ implementation now requires C++ protobuf library installed. See the README.txt in the python directory for details. * Mon Apr 18 2011 ro@suse.de - update baselibs.conf * Wed Dec 15 2010 lnussel@suse.de - provide libprotobuf-devel for compatibility * Mon Apr 26 2010 lnussel@suse.de - merge features with version from devel:tools:building * build java and python versions * disable static libraries * Sat Apr 24 2010 lnussel@suse.de - new version 2.3.0 * Sat Apr 24 2010 lnussel@suse.de - separate soname define * Mon Dec 7 2009 lnussel@suse.de - new version 2.2.0a * Tue Mar 31 2009 lnussel@suse.de - move protoc to devel package - split according to library policy - install vim syntax file * Tue Sep 2 2008 Lenz Grimmer - Update to version 2.0.1 * Tue Aug 12 2008 Lenz Grimmer - Initial package the openSUSE build service (Version 2.0.0beta)