diff --git a/baselibs.conf b/baselibs.conf index dd02a9e..c81c188 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,3 +1,3 @@ -libprotobuf11 -libprotoc11 -libprotobuf-lite11 +libprotobuf13 +libprotoc13 +libprotobuf-lite13 diff --git a/protobuf-3.1.0.tar.gz b/protobuf-3.1.0.tar.gz deleted file mode 100644 index 6fb99f6..0000000 --- a/protobuf-3.1.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a0ae63cbffc274efb573bdde9a253e3f32e458c41261df51c5dbc5ad541e8f7 -size 4051503 diff --git a/protobuf-3.3.0.tar.gz b/protobuf-3.3.0.tar.gz new file mode 100644 index 0000000..8092727 --- /dev/null +++ b/protobuf-3.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94c414775f275d876e5e0e4a276527d155ab2d0da45eed6b7734301c330be36e +size 4336596 diff --git a/protobuf.changes b/protobuf.changes index 8c1b35d..ef58967 100644 --- a/protobuf.changes +++ b/protobuf.changes @@ -1,3 +1,74 @@ +------------------------------------------------------------------- +Sun Jun 11 17:15:13 UTC 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 00:47:42 UTC 2017 - stefan.bruens@rwth-aachen.de diff --git a/protobuf.spec b/protobuf.spec index a7df60f..9964d5b 100644 --- a/protobuf.spec +++ b/protobuf.spec @@ -16,15 +16,25 @@ # -%define soname 11 +%define soname 13 %define tarname protobuf # requires gmock, which is not yet in the distribution %bcond_with check %bcond_without protobuf_java %bcond_without protobuf_python +%if %{with protobuf_python} +%if 0%{?suse_version} > 1320 +%define protobuf_python3 1 +%define python2_prefix python2 +%else +%define protobuf_python3 0 +%define python2_prefix python +%endif +%endif + Name: protobuf -Version: 3.1.0 +Version: 3.3.0 Release: 0 Summary: Protocol Buffers - Google's data interchange format License: BSD-3-Clause @@ -47,11 +57,18 @@ BuildRequires: pkg-config BuildRequires: java-devel >= 1.6.0 %endif %if %{with protobuf_python} -BuildRequires: python-dateutil -BuildRequires: python-devel -BuildRequires: python-python-gflags -BuildRequires: python-pytz -BuildRequires: python-setuptools +BuildRequires: %{python2_prefix}-devel +BuildRequires: %{python2_prefix}-python-dateutil +BuildRequires: %{python2_prefix}-python-gflags +BuildRequires: %{python2_prefix}-pytz +BuildRequires: %{python2_prefix}-setuptools +%if %{protobuf_python3} +BuildRequires: python3-devel +BuildRequires: python3-python-dateutil +BuildRequires: python3-python-gflags +BuildRequires: python3-pytz +BuildRequires: python3-setuptools +%endif BuildRequires: zlib-devel %endif @@ -113,17 +130,31 @@ This package contains the Java bindings for Google Protocol Buffers. %endif %if %{with protobuf_python} -%package -n python-%{name} -Summary: Python Bindings for Google Protocol Buffers +%package -n %{python2_prefix}-%{name} +Summary: Python2 Bindings for Google Protocol Buffers Group: Development/Libraries/Python +%if 0%{?protobuf_python3} +Provides: python-%{name} = %{version} +Obsoletes: python-%{name} < %{version} +%endif %if 0%{?suse_version} %py_requires %else Requires: python %endif -%description -n python-%{name} +%description -n %{python2_prefix}-%{name} This package contains the Python bindings for Google Protocol Buffers. + +%if 0%{?protobuf_python3} +%package -n python3-%{name} +Summary: Python3 Bindings for Google Protocol Buffers +Group: Development/Libraries/Python +Requires: python3 + +%description -n python3-%{name} +This package contains the Python bindings for Google Protocol Buffers. +%endif %endif %prep @@ -161,11 +192,21 @@ popd %endif %if %{with protobuf_python} -pushd python -python setup.py build +cp -Ra python python2 +pushd python2 +python2 setup.py build # setup.py seems to be broken, some files are only installed on the second invocation -python setup.py build +python2 setup.py build popd + +%if 0%{?protobuf_python3} +cp -Ra python python3 +pushd python3 +python3 setup.py build +# setup.py seems to be broken, some files are only installed on the second invocation +python3 setup.py build +popd +%endif %endif %if %{with check} @@ -188,17 +229,28 @@ popd %endif %if %{with protobuf_python} -pushd python -python setup.py install --skip-build \ +pushd python2 +python2 setup.py install --skip-build \ --prefix=%{_prefix} \ --root %{buildroot} \ - --install-lib=%{py_sitedir} \ + --install-lib=%{python_sitearch} \ --install-data=%{_datadir} \ --record-rpm=INSTALLED_FILES popd -%endif +%fdupes -s %{buildroot}%{python_sitearch} -%fdupes -s %{buildroot}%{py_sitedir} +%if 0%{?protobuf_python3} +pushd python3 +python3 setup.py install --skip-build \ + --prefix=%{_prefix} \ + --root %{buildroot} \ + --install-lib=%{python3_sitearch} \ + --install-data=%{_datadir} \ + --record-rpm=INSTALLED_FILES +popd +%fdupes -s %{buildroot}%{python3_sitearch} +%endif +%endif %post -n libprotobuf%{soname} -p /sbin/ldconfig @@ -240,8 +292,13 @@ popd %endif %if %{with protobuf_python} -%files -n python-%{name} -f python/INSTALLED_FILES +%files -n %{python2_prefix}-%{name} -f python2/INSTALLED_FILES %defattr(-,root,root) + +%if 0%{?protobuf_python3} +%files -n python3-%{name} -f python3/INSTALLED_FILES +%defattr(-,root,root) +%endif %endif %changelog