Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package thrift for openSUSE:Factory checked in at 2022-01-17 22:34:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/thrift (Old) and /work/SRC/openSUSE:Factory/.thrift.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "thrift" Mon Jan 17 22:34:10 2022 rev:14 rq:946898 version:0.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/thrift/thrift.changes 2021-04-14 10:11:59.937597016 +0200 +++ /work/SRC/openSUSE:Factory/.thrift.new.1892/thrift.changes 2022-01-17 22:34:53.214277147 +0100 @@ -1,0 +2,169 @@ +Sun Jan 16 13:49:26 UTC 2022 - Ben Greiner <[email protected]> + +- Update to 0.15.0 + * Known Open Issues (Blocker or Critical) + - [THRIFT-3877] - C++: library don't work with HTTP (csharp + server, cpp client; need cross test enhancement) + * Removed Languages + - [THRIFT-5229] - ActionScript 3 support dropped + - [THRIFT-5347] - Haskell support dropped + * Breaking Changes + - [THRIFT-5381] - possible collisions at VOID type with some + 3rd-party libraries on Haxe cpp targets + - [THRIFT-5396] - deprecate netstd "Async" method postfix + - [THRIFT-5453] - go: NewTSocketConf and NewTSSLSocketConf no + longer return an error + * AS3 + - [THRIFT-5229] - Deprecate/remove ActionScript 3 support + * Build Process + - [THRIFT-5334] - version of thrift-maven-plugin is not sync + with the main project + - [THRIFT-5394] - AppVeyor CI tries to download outdated cmake + - [THRIFT-5429] - build: autotools: add foreign to + AM_INIT_AUTOMAKE + * C glib + - [THRIFT-5244] - Dynamic exception specifications are + deprecated in C++11[-Wdeprecated] + - [THRIFT-5265] - Add the zlib transport to c_glib + - [THRIFT-5399] - Fix socket leak in abnormal situation + - [THRIFT-5421] - Fix the problem of incorrect setting of errno + in some files + * C++ + - [THRIFT-5341] - Fix Old-Style-Cast, Missing override and + Possible noexcept + - [THRIFT-5342] - Apply 'noexcept' attribute to Init/Copy/Move + Constructors and Assignments + - [THRIFT-5355] - Do not rely on compiler and check boundaries + * D language + - [THRIFT-4303] - D deprecation warnings + - [THRIFT-4979] - Still D deprecation warnings about + std.datetime.* in current master + - [THRIFT-5376] - Fix deprecation warnings in D library + * Dart + - [THRIFT-5285] - Update to dart 2, widen range on http package + * Delphi + - [THRIFT-5350] - 0.14.0 fails to build on non-x86 + - [THRIFT-5438] - Inconsistent handling of exceptions during + message read vs. message write phase + - [THRIFT-5384] - Improved error message for HTTP transports + - [THRIFT-5385] - XML-HTTP client reports IsOpen=TRUE even if + it is not + - [THRIFT-5386] - XML-HTTP client may throw "max message size + reached" incorrectly + - [THRIFT-5387] - Improved and simplified Delphi test setup + - [THRIFT-5390] - Named Pipes transport hardening + - [THRIFT-5428] - Prevent costly reallocations to improve + performance + - [THRIFT-5437] - Make TProtocolImpl CTOR virtual + * Documentation + - [THRIFT-5332] - Question: list all the reserved words in + thrift doc + - [THRIFT-5348] - Update debian/copyright + * Erlang + - [THRIFT-5377] - Remove Erlang R16 support + * Go + - [THRIFT-5337] - Go set fields write improvement + - [THRIFT-5353] - Namespace from type is ignored in generated + code + - [THRIFT-5358] - Add go.mod file(s) + - [THRIFT-5369] - Malformed payload can still cause huge + allocations + - [THRIFT-5389] - Thrift compiler generates uncompilable go + code around optional constants + - [THRIFT-5404] - TTransportException.Timeout would correctly + return true when it's connect timeout during TSocket.Open + call + - [THRIFT-5447] - Update supported Go versions before 0.15.0 + release + - [THRIFT-5453] - go: NewTSocketConf should not call + net.ResolveTCPAddr + - [THRIFT-5459] - Adding a new exception to an endpoint is + kinda breaking in go + * Haskell + - [THRIFT-5347] - Deprecate Haskell bindings + * Haxe + - [THRIFT-5370] - Haxe 4 compatibility + - [THRIFT-5381] - possible collisions at VOID type with some + 3rd-party libraries on Haxe cpp targets + - [THRIFT-5393] - Incorrect namespaces for included types + - [THRIFT-3036] - create official haxelib Thrift package + - [THRIFT-5413] - Int vs String in method get_size required by + property size + * Java + - [THRIFT-5375] - Put org.apache.tomcat.embed:tomcat-embed-core + into scope test + - [THRIFT-5383] - TJSONProtocol Java readString throws on + bounds check + - [THRIFT-5400] - Java library does not export the .annotation + package + - [THRIFT-5425] - Throw an exception when reading TSimpleJson + in Java + - [THRIFT-5430] - FieldMetaData synchronized method can trigger + deadlock during static class initialization in JVM native + code + - [THRIFT-5432] - TSaslTransport throw TTransportException of + MaxMessageSize reached + - [THRIFT-5433] - Add Counter To Thread Name of + TThreadPoolServer + * JavaScript + - [THRIFT-3508] - JS:TS Generator set all fields of the struct + as required + * Lua + - [THRIFT-5417] - Fix Lua compiler omitting default values in + Lua service functions + - [THRIFT-5439] - Lua Generator does not support const i64 + * netstd + - [THRIFT-5354] - disable IDE0083 warning + - [THRIFT-5382] - Netstd default list/set enums values are + generated incorrectly in some cases + - [THRIFT-5395] - inconsistent treatment of methods ending in + "Async" + - [THRIFT-5396] - deprecate "Async" method postfix + - [THRIFT-5408] - Support for deprecated methods (via + annotation) + - [THRIFT-5414] - Use of specific parameter names generates + uncompileable code + - [THRIFT-5442] - Separate client service calls into send/recv + methods and make them public + - [THRIFT-5444] - Netstd generator produces uncompileable code + for enums ending with "_result" or "_args" + - [THRIFT-5445] - "cancellationToken" cannot be used as + argument name + - [THRIFT-5236] - THttpTransport.cs still has bad timeout code + - [THRIFT-5349] - Add net5.0 as supported platform + - [THRIFT-5373] - HTTP status in case of Protocol/Transport + exceptions + - [THRIFT-5391] - Named pipes transport hardening + - [THRIFT-5398] - ThreadPoolServer not stoppable via + CancellationToken + - [THRIFT-5407] - Keep support for .NET Core 3.1 + - [THRIFT-5419] - Incorrect usage of thread pool in + TThreadPoolAsyncServer may lead to poor performance + - [THRIFT-5422] - add threadpool server to netstd test suite + impl + - [THRIFT-5431] - Response should include 'content-type' header + - [THRIFT-5436] - Timeout.Infinite is not a good default + * PHP + - [THRIFT-5318] - PHP 8 compatible version of binary protocol + - [THRIFT-5440] - Add php8 to composer.json + * Python + - [THRIFT-5352] - Python: IDL exceptions with no fields can't + be instantiated + * Ruby + - [THRIFT-5312] - The Ruby compilation configuration in the + .gemspec file is modified to be compatible with later bundler + versions. + - [THRIFT-5367] - Ruby library crashes when using GC.compact + * Rust + - [THRIFT-4098] - Support user-defined output namespaces in + generated Rust modules + - [THRIFT-4101] - Make auto-generated Rust enums and unions + more user-extensible + - [THRIFT-5314] - Enum forward compatibility + - [THRIFT-5363] - All-caps constant rendered incorrectly +- Add thrift-pr2487-py310.patch for Python 3.10 compatibility + * gh#apache/thrift#2487 + * https://issues.apache.org/jira/browse/THRIFT-5488 + * required by python-fastparquet + +------------------------------------------------------------------- Old: ---- thrift-0.14.1.tar.gz thrift-0.14.1.tar.gz.asc New: ---- thrift-0.15.0.tar.gz thrift-0.15.0.tar.gz.asc thrift-pr2487-py310.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ thrift.spec ++++++ --- /var/tmp/diff_new_pack.pCQLFO/_old 2022-01-17 22:34:53.650277435 +0100 +++ /var/tmp/diff_new_pack.pCQLFO/_new 2022-01-17 22:34:53.654277438 +0100 @@ -1,7 +1,7 @@ # # spec file for package thrift # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%define libversion 0_14_1 +%define libversion 0_15_0 %define libgversion 0 %bcond_without perl %bcond_without c @@ -30,11 +30,9 @@ %endif %if %{without python3} %define skip_python3 1 -%define skip_python36 1 -%define skip_python38 1 %endif Name: thrift -Version: 0.14.1 +Version: 0.15.0 Release: 0 Summary: Framework for scalable cross-language services development License: Apache-2.0 @@ -43,6 +41,8 @@ Source0: https://www.apache.org/dist/thrift/%{version}/%{name}-%{version}.tar.gz Source1: https://www.apache.org/dist/thrift/%{version}/%{name}-%{version}.tar.gz.asc Source2: %{name}.keyring +# PATCH-FIX-UPSTREAM thrift-pr2487-py310.patch -- gh#apache/thrift#2487 and https://issues.apache.org/jira/browse/THRIFT-5488 +Patch0: thrift-pr2487-py310.patch BuildRequires: automake BuildRequires: bison BuildRequires: fdupes @@ -76,8 +76,8 @@ %if %{with python2} || %{with python3} BuildRequires: %{python_module devel} BuildRequires: python-rpm-macros -%if 0%{?python38_version_nodots} -# if python multiflavor is in place yet, use it to generate subpackages +%if 0%{?suse_version} >= 1550 +# if python multiflavor is available, use it to generate subpackages %define python_subpackage_only 1 %python_subpackages %else @@ -183,6 +183,7 @@ Caml, and Haskell. %else + %package -n python2-thrift Summary: Python bindings for the Thrift software framework Group: Development/Libraries/Python @@ -225,7 +226,7 @@ %prep -%setup -q +%autosetup -p1 %build export CXXFLAGS="%{optflags} -fPIC" ++++++ thrift-0.14.1.tar.gz -> thrift-0.15.0.tar.gz ++++++ ++++ 123381 lines of diff (skipped) ++++++ thrift-pr2487-py310.patch ++++++ >From 5f88c7b2372884514046cc2b9b256dfdef188f1e Mon Sep 17 00:00:00 2001 From: Ali-Akber Saifee <[email protected]> Date: Sat, 11 Dec 2021 08:39:24 -0800 Subject: [PATCH] Define PY_SSIZE_T_CLEAN to use PyObject_CallFunction When using the building functions for the fallback scenario in readBytes, a SystemError is raised in python 3.10 (raised as a warning till python 3.9) due to the use of "#yi" for the output buffer argument. Extra test cases are added to cover serialization/deserialization both with compact & binary protocol both with and without the c-extension --- (lib/py/Makefile.am) | 2 + lib/py/src/ext/binary.cpp | 1 + lib/py/src/ext/compact.cpp | 1 + .../test/test_thrift_file/TestServer.thrift | 6 +- lib/py/test/thrift_TSerializer.py | 84 +++++++++++++++++++ 5 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 lib/py/test/thrift_TSerializer.py diff --git a/lib/py/src/ext/binary.cpp b/lib/py/src/ext/binary.cpp index 85d8d922ee..423fa8fee0 100644 --- a/lib/py/src/ext/binary.cpp +++ b/lib/py/src/ext/binary.cpp @@ -17,6 +17,7 @@ * under the License. */ +#define PY_SSIZE_T_CLEAN #include "ext/binary.h" namespace apache { namespace thrift { diff --git a/lib/py/src/ext/compact.cpp b/lib/py/src/ext/compact.cpp index 15a99a077f..ae89f2a655 100644 --- a/lib/py/src/ext/compact.cpp +++ b/lib/py/src/ext/compact.cpp @@ -17,6 +17,7 @@ * under the License. */ +#define PY_SSIZE_T_CLEAN #include "ext/compact.h" namespace apache { diff --git a/lib/py/test/test_thrift_file/TestServer.thrift b/lib/py/test/test_thrift_file/TestServer.thrift index 0de8856a0a..7be1dbbe05 100644 --- a/lib/py/test/test_thrift_file/TestServer.thrift +++ b/lib/py/test/test_thrift_file/TestServer.thrift @@ -16,7 +16,11 @@ # specific language governing permissions and limitations # under the License. # - + +struct Message { + 1: optional string body, + 2: optional i64 num, +} service TestServer{ string add_and_get_msg(1:string msg) diff --git a/lib/py/test/thrift_TSerializer.py b/lib/py/test/thrift_TSerializer.py new file mode 100644 index 0000000000..b94165483e --- /dev/null +++ b/lib/py/test/thrift_TSerializer.py @@ -0,0 +1,84 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import unittest +import os +import sys + +gen_path = os.path.join( + os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "gen-py" +) +sys.path.append(gen_path) + +import _import_local_thrift # noqa +from thrift.protocol.TBinaryProtocol import TBinaryProtocolFactory +from thrift.protocol.TBinaryProtocol import TBinaryProtocolAcceleratedFactory +from thrift.protocol.TCompactProtocol import TCompactProtocolFactory +from thrift.protocol.TCompactProtocol import TCompactProtocolAcceleratedFactory +from thrift.transport import TTransport +from thrift.TSerialization import serialize, deserialize +from TestServer.ttypes import Message + + +class TestSerializer(unittest.TestCase): + def setUp(self): + self.message = Message("hello thrift", 42) + self.binary_serialized = b"\x0b\x00\x01\x00\x00\x00\x0chello thrift\n\x00\x02\x00\x00\x00\x00\x00\x00\x00*\x00" + self.compact_serialized = b'\x18\x0chello thrift\x16T\x00' + + def verify(self, serialized, factory): + self.assertEqual(serialized, serialize(self.message, factory)) + + self.assertEqual( + "hello thrift", + deserialize(Message(), serialized, factory).body, + ) + self.assertEqual( + 42, deserialize(Message(), serialized, factory).num + ) + + self.assertRaises(EOFError, deserialize, Message(), None, factory) + self.assertRaises(EOFError, deserialize, Message(), b'', factory) + self.assertRaises(TypeError, deserialize, Message(), "test", factory) + + + def test_TBinaryProtocol(self): + buf = TTransport.TMemoryBuffer() + transport = TTransport.TBufferedTransportFactory().getTransport(buf) + factory = TBinaryProtocolFactory(transport) + self.verify(self.binary_serialized, factory) + + + def test_TBinaryProtocolAccelerated(self): + buf = TTransport.TMemoryBuffer() + transport = TTransport.TBufferedTransportFactory().getTransport(buf) + factory = TBinaryProtocolAcceleratedFactory(transport) + self.verify(self.binary_serialized, factory) + + def test_TCompactProtocol(self): + factory = TCompactProtocolFactory() + self.verify(self.compact_serialized, factory) + + def test_TCompactProtocolAccelerated(self): + factory = TCompactProtocolAcceleratedFactory() + self.verify(self.compact_serialized, factory) + + +if __name__ == "__main__": + unittest.main()
