SHA256
1
0
forked from pool/thrift

Accepting request 946800 from home:bnavigator:branches:devel:languages:python:numeric

- 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

OBS-URL: https://build.opensuse.org/request/show/946800
OBS-URL: https://build.opensuse.org/package/show/devel:tools/thrift?expand=0&rev=38
This commit is contained in:
Martin Pluskal 2022-01-17 07:34:36 +00:00 committed by Git OBS Bridge
parent 3cf7961493
commit f61231ddbd
7 changed files with 349 additions and 25 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13da5e1cd9c8a3bb89778c0337cc57eb0c29b08f3090b41cf6ab78594b410ca5
size 4311458

View File

@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEjNh/GG8G6VjvypY9dr00D8S3WGUFAmA+ogoACgkQdr00D8S3
WGUYXQwAmEja+xyWo6+VMZvPrUlVDH8z8/0AOd1rnhQyTi7Ug9AOD4t0HZoQlAa5
UKDSW/QdHWPSAPaV0LYTdivHtLH1y3TfRUW9h/B7bbLVr7zm4x5hJ8dRBiCrbWdV
KAW7eXnce+CiG8CSaRSbr6fdEZ4Nfx17IN677NEYnzE6pwjmQ0TPs4cXhQiTJM5Z
KoffLCF6kCEscTCaBSa2CNZJ8FRTr3L5UeeyYQeVCfSgc/Nt6f3H6DPWZSiY1Mdw
ICbe0naS9IDuRh6dJCagoHOTaTGNJE8y2TLbYtT9H9TfgciFGZ6PLEaN32i6cUG7
IHEkfo7xT1PXWlGPUmXLhv76MhQS3E5hbsNc2VDQFrn6+2GbSWTbpK6hbXHc1AHF
rHBLWcZuGIfPOLx2/3fmRhxlaPjE3q2/DP/07Nxo9X6FVB2nTszu43z4jz4Cggx3
BxoPHD1yiLRr2zqPhikpH6KxJ5n3OGw+K1Ms979YPVnAVHZms+V9R6i2/KNanteD
dU4LVTs1
=JdvM
-----END PGP SIGNATURE-----

3
thrift-0.15.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5883566d161f8f6ddd4e21f3a9e3e6b8272799d054820f1c25b11e86718f86b
size 4046460

14
thrift-0.15.0.tar.gz.asc Normal file
View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEjNh/GG8G6VjvypY9dr00D8S3WGUFAmEzyRsACgkQdr00D8S3
WGV4XQv/d0vhMdaHrpIm3DlmvmuJN0tAOTx1Rs1HKebsXABERKZJxvYaqQgcpaTW
9CrdPqFeOnWObNgBvOPWY4t3NmYPIMlpWPA0GfoK/VMHlP67Fh/uq2vO8Qy94x0J
MNok8qrJgV1M9UsVCAaxxCU+lJHw+EWHevGO5J6gH7aJlsTlTfCCMIMsc16pcYQt
bp7dqFHEeNDK8Y8fpg1hcUCFgEtitslMIDWdpeIurSvV33BJcBIlaP57JWNIyiTm
nHEi9ekX4NBhMY39kbQBMiOZmnBF7jfEhtroAn9D3YE0rk0KukkyNf5uYhpwFODD
lBbAGB+xptp0f+4KtR+g6aAl7bT5kp8O1ZMd7t4mf5iHMVMLnl7W0R/k0eZM9TcO
Jn1z6DFwhwRSkWcTXV/iELukYOmgsEiGwrfo44qtHGR1AnIRJNkce9drp6RsNZOD
tfOOqTk529MFapmf9DZ8y9y7roZMCwuTSvSdPOZfB7VJHBkkKnnp48PzSMW7srL+
5+0Soh7z
=XQ7e
-----END PGP SIGNATURE-----

154
thrift-pr2487-py310.patch Normal file
View File

@ -0,0 +1,154 @@
From 5f88c7b2372884514046cc2b9b256dfdef188f1e Mon Sep 17 00:00:00 2001
From: Ali-Akber Saifee <ali@indydevs.org>
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()

View File

@ -1,3 +1,172 @@
-------------------------------------------------------------------
Sun Jan 16 13:49:26 UTC 2022 - Ben Greiner <code@bnavigator.de>
- 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
-------------------------------------------------------------------
Tue Apr 13 23:29:20 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>

View File

@ -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 @@ URL: https://thrift.apache.org
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 @@ BuildRequires: perl(Class::Accessor)
%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 @@ Ruby, Perl, PHP, Objective C/Cocoa, Smalltalk, Erlang, Objective
Caml, and Haskell.
%else
%package -n python2-thrift
Summary: Python bindings for the Thrift software framework
Group: Development/Libraries/Python
@ -225,7 +226,7 @@ Caml, and Haskell.
%prep
%setup -q
%autosetup -p1
%build
export CXXFLAGS="%{optflags} -fPIC"