pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel thrift: updated to 0.12.0 and split into languag...

branches:  trunk
changeset: 339878:a53c20a06ddb
user:      adam <>
date:      Wed Sep 18 11:27:51 2019 +0000

thrift: updated to 0.12.0 and split into language modules

Thrift 0.12.0

New Languages
* Common LISP (cl)
* Swift
* Typescript (nodets)

Deprecated Languages
* Cocoa

Breaking Changes (since 0.11.0)
* Rust enum variants are now camel-cased instead of uppercased to conform to Rust naming conventions
* Support for golang 1.6 and earlier has been dropped.
* PHP now uses the PSR-4 loader by default instead of class maps.
* method signatures changed in the compiler's t_oop_generator.
* The C (GLib) compiler's handling of namespaces has been improved.

Known Issues (Blocker or Critical)
* build: use a single build system for thrift
* build: is missing from source tarball
* csharp: socket exhaustion in csharp implementation
* cocoa: Getters for fields defined with uppercase names do not work
* cocoa: Extended services aren't subclasses in generated Cocoa
* cocoa: Thrift de-capitalizes the name of IsSet property in Cocoa
* cpp: the http implementation is not standard; interop with other languages is spotty at best
* cpp: Impossible to build Thrift C++ library for Android (NDK)
* cpp: Using multiple async services simultaneously is not thread-safe
* haskell: Defaulted struct parameters on a service generates invalid Haskell
* nodejs: Exception swallowed by deserialization function
* nodejs: map<i64,value> key treated as hex value in JavaScript
* nodejs: ERROR in ./node_modules/thrift/lib/nodejs/lib/thrift/connection.js Module not found: Error: Can't resolve 'child_process'
* nodejs: Sequence numbering for multiplexed protocol broken
* php: sequence and reconnection management issues
* php: Error during deserialization int64 on 32-bit architecture
* php: thrift type i64 java to php serialize/deserealize not working
* php: PHP gets stuck in infinite loop
* python: sending int or float in a double field breaks the connection
* python: unix sockets can get stuck forever
* python: generated code is out of order and causes load issues
* py3: UnicodeDecideError in Python3

Build Process
* D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
* Use Ubuntu Bionic (18.04 LTS) for CI builds instead of Artful (17.10)
* Define CI operating system coverage rules for the project and (hopefully) simplify CI a little more
* ubuntu install instructions broken on 16.04
* Appveyor builds are failing due to a haskell / cabal update in chocolatey
* optimize Dockerfile (only onetime apt-get update)
* rm `build/docker/ubuntu-trusty/Dockerfile.orig`
* Ubuntu Artful doesn't appear to be compatible with Thrift and Haxe 3.4.2
* DLang Client Pool Test fails sporadically
* CL tutorial build fails sporadically
* Make haxelib download quiet so it doesn't blow up the build log
* fails if automake=1.16.1

* The C (GLib) compiler's handling of namespaces has been improved.
* glibC compilation issue
* c glib is unable to handle client close unexpectedly

cl (new language support in 0.12.0)
* Common Lisp support

* reserved Csharp keywords are not escaped in some cases
* C# async mode generates incorrect code with inherited services
* IAsyncResult style methods not being supported by certain transports leads to issues in mixed ISync/IAsync use cases
* Allow TBufferedTransport to be used as base class
* XML docs; code cleanup (tabs->spaces; String->string)
* protected ExceptionType type member of TApplicationException cannot be accessed
* JSONProtocol Base64 Encoding Trims Padding
* Missing dispose calls in ThreadedServer & ThreadpoolServer
* keep InnerException wherever appropriate
* IAsyncResult not supported by layered transports (buffered/framed)

* Typecasting problem on list items
* TNonblockingServer throwing THRIFT LOGGER: TConnection::workSocket(): THRIFT_EAGAIN (unavailable resources)
* TBufferTransports.h does not compile under Visual Studio 2017
* TNonblockingServer crash because of limitation of select()
* TZlibTransport.cpp doesn't ensure that there is enough space for the zlib flush marker in the buffer.
* ZeroMQ contrib library needs a refresh
* TSSLServerSocket incorrectly prints errors
* Move `TAsyncProtocolProcessor` into main thrift library
* evhttp_connection_new is deprecated; use evhttp_connection_base_new

* Compiler cannot be compiled on macOS(maybe also on other platforms with clang)
* Thrift generates wrong Python code for immutable structures with optional members
* thrift generated code is not stable for constants
* Avoid updating Thrift compiler generated code if the output has not changed
* Visual Studio Compiler project should link runtime statically in release builds
* plugin.thrift t_const_value is not used as a union in C++ code -- fix this
* Dealing with language keywords in Thrift (e.g. service method names)
* repeated runs of compiler produce different binary output at plugin interface

* Thrift will not build with dlang 2.078 or later
* dlang servers logError on normal client disconnection
* D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang

* Effective Dart and Exceptions
* Shouldn't download dart.deb directly.

* Calling wrong exception CTOR leads to "call failed: unknown result" instead of the real exception being thrown
* uncompileable code with member names that are also types under specific conditions
* Add Async implementation via IFuture
* Possible invalid ptr AV with overlapped read/write on pipes
* Thrift exceptions should derive from TException
* buffered transport broken when trying to re-open a formerly closed transport
* Move Thrift.Console.pas out of the Library
* Allow a default service as fallback for multiplex processors connected by old clients
* Large writes/reads may cause range check errors in debug mode
* Compiler directive should match Delphi XE4
* First line in Console duplicated
* FPU ctrl word settings may cause an unexpected "denormalized" error

* Erlang records should use map() for map type
* Erlang records should allow 'undefined' for non-required fields
* Fix erlang tutorial unpack on Windows
* Ubuntu Xenial erlang 18.3 "make check" fails

* Support for golang 1.6 and earlier has been dropped.
* Go generator assigns strings to field in const instead of pointers.
* Unions Field Count Does Not Consider Binary
* Golang: Panic on p.c.Call when using deprecated initializers
* Required field incorrectly marked as set when fieldType does not match
* Golang: -remote.go client cleanup
* TSimpleServer can exit Accept loop with lock still acquired
* Add support for go 1.10
* golang tests rely on gomock, which has change behaviour, causing tests to fail
* Communication crash when using binary/compact protocol and zlib transport
* golang race detected when closing listener socket

* Haskell builds with older cabal cannot reconcile complex version requirements

* Thrift does not compile due to Ant Maven task errors
* Compiling Thrift from source: Class doesn't support the nested "typefound" element
* proposal: add nullability annotations to generated Java code
* Generate missing @Nullable annotations for Java iterator getters
* Getter of binary field in Java creates unnecessary copy
* libthrift is deployed on central with pom packaging instead of jar
* Java Configure Fails for Ant >= 1.10
* Java libraries missing from package when using cmake
* pom files are not generated or provided in the build
* Maven can't download resource from central when behind a proxy and won't use local repository
* Optional rethrow of unhandled exceptions in java processor
* Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters
* Pass message of unhandled exception to optional rethrow.
* Remove assertion in Java SASL code that would be ignored in release builds
* Include popular IDE file templates to gitignore
* Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization
* Fix logic of THRIFT-2268
* Increase Java Socket Buffer Size
* Remove Magic Number In TFIleTransport

* JavaScript: Use modern Promise implementations
* let / const variable decorators for es6 compiler
* ES6 Classes
* JS: readI32 performance on large arrays is very poor in Chrome
* js and nodejs libraries need to be refreshed with current libraries
* thrift.js: Incorrect usage of 'this' in TWebSocketTransport.__onOpen
* Deserialization of nested list discards content
* JS WebSocket client callbacks invoked twice on parallel requests
* Duplicate declaration of InputBufferUnderrunError in lib/nodejs/lib/thrift/json_protocol.js
* Add prettier for consistent JS code formatting

* lua client uses two write() calls per framed message send
* Can't "make install" Lua Library

* .NET Core Server doesn't close properly when cancelled
* Update .NET Core components, add tests for .Net Core library and .Net Core compiler, fix bugs and build process
* JSONProtocol Base64 Encoding Trims Padding

* Error handling malformed arguments leaks memory, corrupts transport buffers causing next RPC to fail
* Memory leak while calling oneway method
* add typescript directory support
* TBufferedTransport can leave corrupt data in the buffer
* Node.js Fileserver webroot path
* Unix domain socket support for NodeJS client
* node.js json_protocol throws error in skip function
* NodeJS: Expose Int64 from browser.js for consumption by browser
* NodeJS warning on binary_protocol writeMessageEnd when seqid = 0

* Replace the use of Perl Indirect Object Syntax calls to new()
* Thrift CPAN release is missing Makefile.PL and the clients are unable to build the module
* Perl CPAN Packaging Improvements

* PHP generator use PSR-4 default
* PHP generated code match PSR-2
* Extending Thrift class results in "Attempt serialize from non-Thrift object"
* TSocket block on read
* migrate php library to psr-4
* infinite loop in latest PHP library
* TBufferedTransport must have underlying transport
* lib/php/test should be checked for PSR-2
* add phpcs back
* php library use PSR-2
* TCurlClient doesn't check for HTTP status code
* TCurlClient: show actual error message when throwing TTransportException
* Add stream context support into PHP/THttpClient
* reduce php library directory depth

* Twisted, slots, and void method fails with "object has no attribute 'success'"
* Potentially server-crashing typo in Python TNonblockingServer
* Supporting TBinaryProtocolAccelerated protocol when using TMultiplexedProcessor in Python
* Outdated cipher string in python unit test
* python build on Vagrant Windows boxes fails
* THeader for Python
* make socket backlog configurable for python
* Python: cleanup socket timeout settings

* Thrift RSpec test suite fails with Ruby 2.4.x due to Fixnum deprecation
* Support ruby rspec 3
* Add ssl socket option to ruby cross tests
* Add seek support to TCompactInputProtocol in Rust
* Codegen Creates Invalid Ruby for Recursive Structs
* Fix the genspec for ruby so it does not complain about an invalid license

* Rust const string calls function at compile time
* Rust enum name wrong case in generated structs
* Avoid generating conflicting struct names in Rust code
* Rust generation should include #![allow(non_snake_case)] or force conform to Rust style guidelines
* Rust binary protocol and buffered transport cannot handle writes above 4096 bytes
* Rust framed transport cannot handle writes above 4096 bytes
* Rust's TBinaryInputProtocol fails when strict is false
* Dart -> Rust Framed cross tests fail
* Rust cannot create ReadHalf/WriteHalf to implement custom tranports

swift (new language support in 0.12.0)
* Swift Library

test suite
* Gracefully shutdown cross-test servers to fully test teardown
* Add .NET Core to the make cross standard test suite
* Add unix domain sockets in ruby to cross test - code exists

typescript (new language support in 0.12.0)
* add typescript directory support


 devel/Makefile                                                                 |    7 +-
 devel/go-thrift/DESCR                                                          |    7 +
 devel/go-thrift/Makefile                                                       |   14 +
 devel/go-thrift/PLIST                                                          |   64 ++
 devel/go-thrift/distinfo                                                       |    6 +
 devel/libthrift/DESCR                                                          |   11 +-
 devel/libthrift/Makefile                                                       |   44 +-
 devel/libthrift/PLIST                                                          |  301 +---------
 devel/libthrift/                                                  |    9 +-
 devel/libthrift/distinfo                                                       |    8 -
 devel/libthrift/                                                     |  124 ----
 devel/libthrift/patches/patch-configure                                        |   34 -
 devel/libthrift/patches/patch-lib_cpp_src_thrift_server_TNonblockingServer.cpp |   17 -
 devel/libthrift_c_glib/DESCR                                                   |    7 +
 devel/libthrift_c_glib/Makefile                                                |   16 +
 devel/libthrift_c_glib/PLIST                                                   |   34 +
 devel/lua-thrift/DESCR                                                         |   10 +
 devel/lua-thrift/Makefile                                                      |   14 +
 devel/lua-thrift/PLIST                                                         |    6 +
 devel/p5-thrift/DESCR                                                          |    7 +
 devel/p5-thrift/Makefile                                                       |   18 +
 devel/p5-thrift/distinfo                                                       |    6 +
 devel/py-thrift/DESCR                                                          |   15 +-
 devel/py-thrift/Makefile                                                       |   22 +-
 devel/py-thrift/PLIST                                                          |   19 +-
 devel/py-thrift/distinfo                                                       |   10 +-
 devel/ruby-thrift/DESCR                                                        |    8 +-
 devel/ruby-thrift/Makefile                                                     |   18 +-
 devel/ruby-thrift/PLIST                                                        |   59 +-
 devel/ruby-thrift/distinfo                                                     |   12 +-
 devel/ruby-thrift/patches/patch-ext_extconf.rb                                 |   16 +-
 devel/thrift/DESCR                                                             |    5 +
 devel/thrift/Makefile                                                          |    8 +
 devel/thrift/Makefile.common                                                   |   17 +
 devel/thrift/Makefile.version                                                  |   14 +
 devel/thrift/PLIST                                                             |    2 +
 devel/thrift/distinfo                                                          |    8 +
 devel/thrift/patches/patch-configure                                           |   34 +
 devel/thrift/patches/patch-lib_cpp_src_thrift_server_TNonblockingServer.cpp    |   17 +
 39 files changed, 445 insertions(+), 603 deletions(-)

diffs (truncated from 1400 to 300 lines):

diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/Makefile
--- a/devel/Makefile    Wed Sep 18 10:04:51 2019 +0000
+++ b/devel/Makefile    Wed Sep 18 11:27:51 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2914 2019/09/16 11:08:33 nia Exp $
+# $NetBSD: Makefile,v 1.2915 2019/09/18 11:27:51 adam Exp $
 COMMENT=       Development utilities
@@ -429,6 +429,7 @@
 SUBDIR+=       go-sys
 SUBDIR+=       go-termbox
 SUBDIR+=       go-testify
+SUBDIR+=       go-thrift
 SUBDIR+=       go-tools
 SUBDIR+=       go-try
 SUBDIR+=       go-viper
@@ -718,6 +719,7 @@
 SUBDIR+=       libtecla
 SUBDIR+=       libthai
 SUBDIR+=       libthrift
+SUBDIR+=       libthrift_c_glib
 SUBDIR+=       libtool
 SUBDIR+=       libtool-base
 SUBDIR+=       libtool-fortran
@@ -767,6 +769,7 @@
 SUBDIR+=       lua-std-_debug
 SUBDIR+=       lua-std-normalize
 SUBDIR+=       lua-stdlib
+SUBDIR+=       lua-thrift
 SUBDIR+=       lutok
 SUBDIR+=       lwp
 SUBDIR+=       m17n-lib
@@ -1926,6 +1929,7 @@
 SUBDIR+=       p5-strictures
 SUBDIR+=       p5-subversion
 SUBDIR+=       p5-syntax
+SUBDIR+=       p5-thrift
 SUBDIR+=       p5-version
 SUBDIR+=       p8-platform
 SUBDIR+=       palmpower
@@ -2795,6 +2799,7 @@
 SUBDIR+=       tex-xifthen
 SUBDIR+=       tex-xifthen-doc
 SUBDIR+=       threadweaver
+SUBDIR+=       thrift
 SUBDIR+=       tig
 SUBDIR+=       tinycthread
 SUBDIR+=       tkcvs
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/go-thrift/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/go-thrift/DESCR     Wed Sep 18 11:27:51 2019 +0000
@@ -0,0 +1,7 @@
+The Apache Thrift software framework, for scalable cross-language services
+development, combines a software stack with a code generation engine to build
+services that work efficiently and seamlessly between C++, Java, Python, PHP,
+Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml
+and Delphi and other languages.
+This package provides Go bindings for the Apache Thrift RPC system.
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/go-thrift/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/go-thrift/Makefile  Wed Sep 18 11:27:51 2019 +0000
@@ -0,0 +1,14 @@
+# $NetBSD: Makefile,v 1.1 2019/09/18 11:27:52 adam Exp $
+.include "../../devel/thrift/Makefile.version"
+PKGNAME=       go-${DISTNAME}
+COMMENT=       Go bindings for the Apache Thrift RPC system
+GO_DIST_BASE=  ${DISTNAME}/lib/go/thrift
+.include "../../lang/go/"
+.include "../../mk/"
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/go-thrift/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/go-thrift/PLIST     Wed Sep 18 11:27:51 2019 +0000
@@ -0,0 +1,64 @@
+@comment $NetBSD: PLIST,v 1.1 2019/09/18 11:27:52 adam Exp $
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/go-thrift/distinfo
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/go-thrift/distinfo  Wed Sep 18 11:27:51 2019 +0000
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2019/09/18 11:27:52 adam Exp $
+SHA1 (thrift-0.12.0.tar.gz) = 6735e618f0752a16d62da5c24dcbe8991043506a
+RMD160 (thrift-0.12.0.tar.gz) = dc6286d9523ae0e073f12057987b42fffdddd754
+SHA512 (thrift-0.12.0.tar.gz) = e6f08c81b690f03f9dfc40870cade89b3d58fe670eeae0e8207fd4a1a67c64dbe5d9bba323ec5823238a80e9fb6206199a59a792dd121931066de295c3ede6e7
+Size (thrift-0.12.0.tar.gz) = 3906291 bytes
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/libthrift/DESCR
--- a/devel/libthrift/DESCR     Wed Sep 18 10:04:51 2019 +0000
+++ b/devel/libthrift/DESCR     Wed Sep 18 11:27:51 2019 +0000
@@ -1,4 +1,7 @@
-Thrift is a software framework for scalable cross-language services
-development. It combines a software stack with a code generation engine to
-build services that work efficiently and seamlessly between C++, Java,
-Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.
+The Apache Thrift software framework, for scalable cross-language services
+development, combines a software stack with a code generation engine to build
+services that work efficiently and seamlessly between C++, Java, Python, PHP,
+Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml
+and Delphi and other languages.
+This package provides C++ bindings for the Apache Thrift RPC system.
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/libthrift/Makefile
--- a/devel/libthrift/Makefile  Wed Sep 18 10:04:51 2019 +0000
+++ b/devel/libthrift/Makefile  Wed Sep 18 11:27:51 2019 +0000
@@ -1,38 +1,20 @@
-# $NetBSD: Makefile,v 1.75 2019/08/22 12:23:02 ryoon Exp $
+# $NetBSD: Makefile,v 1.76 2019/09/18 11:27:52 adam Exp $
-DISTNAME=      thrift-0.11.0
+.include "../../devel/thrift/Makefile.common"
 PKGNAME=       lib${DISTNAME}
-CATEGORIES=    devel
-EXTRACT_SUFX=  .tar.gz
+COMMENT=       C++ bindings for the Apache Thrift RPC system
-COMMENT=       Cross-language data serialization library
-LICENSE=       apache-2.0
-# No rule to make target 'gen-cpp/Service.cpp', needed by 'Service.lo'.  Stop.
-#MAKE_JOBS_SAFE=               no
+DEPENDS+=      thrift-[0-9]*:../../devel/thrift
+BUILD_DIRS=    lib/cpp
-USE_LANGUAGES=         c c++11
-USE_LIBTOOL=           yes
-USE_TOOLS+=            gmake pkg-config yacc
-GNU_CONFIGURE=         yes
-TEST_TARGET=   check
-.include "../../mk/"
+CONFIGURE_ENV+=                THRIFT=${PREFIX}/bin/thrift
-.if !empty(PKGSRC_COMPILER:Mclang)
-CXXFLAGS+=     -Wno-error=c++11-narrowing
-.include ""
+.include "../../devel/boost-headers/"
+.include "../../devel/libevent/"
+.include "../../devel/zlib/"
 .include "../../security/openssl/"
-.include "../../devel/zlib/"
-.include "../../devel/libevent/"
-.include "../../devel/boost-libs/"
 .include "../../mk/"
diff -r 8402ce5ba1e2 -r a53c20a06ddb devel/libthrift/PLIST
--- a/devel/libthrift/PLIST     Wed Sep 18 10:04:51 2019 +0000
+++ b/devel/libthrift/PLIST     Wed Sep 18 11:27:51 2019 +0000
@@ -1,6 +1,4 @@
-@comment $NetBSD: PLIST,v 1.11 2018/05/15 10:16:17 jperkin Exp $
+@comment $NetBSD: PLIST,v 1.12 2019/09/18 11:27:52 adam Exp $
@@ -88,306 +86,9 @@

Home | Main Index | Thread Index | Old Index