--- /dev/null
- thrift (0.15.0) stable; urgency=low
++thrift (0.16.0-6) unstable; urgency=medium
+
- * update to 0.15.0
++ * Replace outdated TLS test keys (closes: #1010120, #1015049).
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Wed, 03 Aug 2021 23:00:00 +0100
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 28 Aug 2022 12:41:21 +0200
+
- thrift (0.14.2) stable; urgency=low
++thrift (0.16.0-5) unstable; urgency=medium
+
- * update to 0.14.2
++ * Disable IPv4 tests for not working on IPv6 only hosts (closes: #1011011).
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Wed, 11 Jun 2021 01:00:00 +0100
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 15 May 2022 14:42:11 +0200
+
- thrift (0.14.1) stable; urgency=low
++thrift (0.16.0-4) unstable; urgency=medium
+
- * update to 0.14.1
++ * Specify libs as section for libthrift-0.16.0 .
++ * Backport upstream fix for out of memory when use TNonblockingServer.
++ * Backport upstream fix THRIFT-5449: use poll instead of select in Python
++ TNonblockingServer if available.
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Tue, 02 Mar 2021 21:00:00 +0100
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 26 Apr 2022 17:14:22 +0200
+
- thrift (0.14.0) stable; urgency=low
++thrift (0.16.0-3) unstable; urgency=medium
+
- * update to 0.14.0
++ * Upload to Sid.
++ * This release contains fix for Python 3.10 (closes: #1008810).
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Thu, 04 Feb 2021 17:00:00 -0500
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 19 Apr 2022 17:08:21 +0200
+
- thrift (0.13.0) stable; urgency=low
++thrift (0.16.0-2) experimental; urgency=medium
+
- * update to 0.13.0
++ * Run Go tests without non-portable race detector.
++ * Disable tests that seem to be incompatible with newer GLib versions.
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Wed, 11 Nov 2019 12:00:00 -0500
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 01 Apr 2022 17:14:34 +0200
+
- thrift (0.12.0) stable; urgency=low
++thrift (0.16.0-1) experimental; urgency=medium
+
- * update to 0.12.0
++ * New major upstream release (closes: #1008458):
++ - fixes CVE-2020-13949: potential DoS when processing untrusted payloads
++ (closes: #988949).
++ * Rename related packages to -0.16.0 suffix.
+
- -- Apache Thrift Developers <dev@thrift.apache.org> Wed, 28 Dec 2018 12:00:00 -0500
+
- thrift (0.11.0) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 28 Mar 2022 01:34:46 +0200
+
- * update to 0.11.0
++thrift (0.13.0-7) unstable; urgency=medium
+
- -- Jake Farrell <jfarrell@apache.org> Wed, 07 Dec 2017 20:07:00 -0500
++ * Remove python3-thrift-dbg package (closes: #994384).
++ * Update Standards-Version to 4.6.0 .
++ * Sync with Ubuntu.
+
- thrift (0.10.0) stable; urgency=low
++ [ Lucas Kanashiro <kanashiro@ubuntu.com> ]
++ * d/p/THRIFT-5318_support_php8.patch: Backport upstream patch to add support
++ for PHP 8 (LP: #1940473).
++ * d/rules: export GO111MODULE=off, this will make go.mod file not mandatory.
+
- * update to 0.10.0
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 24 Sep 2021 17:18:04 +0200
+
- -- Jake Farrell <jfarrell@apache.org> Wed, 03 Jan 2017 16:52:00 -0500
++thrift (0.13.0-6) unstable; urgency=medium
+
- thrift (0.9.3) stable; urgency=low
++ * Backport upstream fix for THRIFT-5322: Go compact_protocol allocating
++ unreasonable buffer size.
+
- * update to 0.9.3
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 14 Feb 2021 19:50:04 +0100
+
- -- Jake Farrell <jfarrell@apache.org> Wed, 11 Oct 2015 17:22:00 -0500
++thrift (0.13.0-5) unstable; urgency=medium
+
- thrift (0.9.0) stable; urgency=low
++ * Update Standards-Version to 4.5.0 .
+
- * update to 0.9.0
++ [ Adrian Bunk <bunk@debian.org> ]
++ * Link with libatomic on ARMel and MIPSel (closes: #972948).
+
- -- Jake Farrell <jfarrell@apache.org> Wed, 10 Oct 2012 12:00:00 -0500
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 26 Oct 2020 18:01:44 +0100
+
- thrift (0.7.0) stable; urgency=low
++thrift (0.13.0-4) unstable; urgency=medium
+
- * update to 0.7.0
++ * Add XS-Go-Import-Path field.
++ * Correct installed Go source files location.
++ * Update supported Ruby version (closes: #950742).
++ * Remove unneeded composer build dependency (closes: #970587).
++ * Don't remove needed config.h header (closes: #972225).
+
- -- Jake Farrell <jfarrell@apache.org> Tue, 10 Aug 2011 17:01:53 -0500
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Thu, 15 Oct 2020 17:07:25 +0200
+
- thrift (0.7.0-dev1) stable; urgency=low
- * added glib
- * fix location of libthrift.jar
++thrift (0.13.0-3) unstable; urgency=medium
+
- -- Roger Meier <roger@apache.org> Tue, 12 Apr 2011 21:41:18 +0200
++ * Backport upstream fix for wrong int to string conversions in Go testing
++ (closes: #971192).
+
- thrift (0.6.0-dev1) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 27 Sep 2020 21:31:25 +0200
+
- * update version field
- * added debian folder to thrift/contrib
- * changed a few details in control file
- * update copyright file
++thrift (0.13.0-2) unstable; urgency=medium
+
- -- Roger Meier <roger@apache.org> Tue, 14 Dec 2010 12:12:33 -0800
++ * Link C++ tests with atomic.
++ * Upload to Sid.
+
- thrift (0.5.0+nmu2) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 08 Dec 2019 12:24:18 +0000
+
- * Non-maintainer upload.
- * Merged THRIFT-71_v9.patch to skip ./bootstrap.sh if not exists.
- https://issues.apache.org/jira/secure/attachment/12465360/THRIFT-71_v9.patch
++thrift (0.13.0-1) experimental; urgency=high
+
- -- Yamashita Yuu <yamashita@geishatokyo.com> Tue, 07 Dec 2010 15:00:55 +0900
++ * New major upstream release:
++ - fixes CVE-2019-0205: endless loop when feed with specific input data,
++ - fixes CVE-2019-0210: Go server may panic when feed with invalid input
++ data,
++ - removed compiler plug-in mechanism (closes: #942337).
++ * Rework upstream distclean process (closes: #943653).
+
- thrift (0.5.0+nmu1) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 01 Dec 2019 10:46:55 +0000
+
- * Non-maintainer upload.
- * Imported package information for php5-thrift from https://github.com/simplegeo/thrift.
++thrift (0.12.0-1) experimental; urgency=medium
+
- -- Yamashita Yuu <yamashita@geishatokyo.com> Tue, 07 Dec 2010 01:00:17 +0900
++ * New major upstream release.
++ * Rename related packages to -0.12.0 suffix.
++ * Remove Python 2 bindings (closes: #938662).
++ * Update debhelper level to 11 .
+
- thrift (0.5.0) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 05 Oct 2019 08:58:11 +0000
+
- * update to 0.5.0
++thrift (0.11.0-6) unstable; urgency=medium
+
- -- Roger Meier <roger@apache.org> Fri, 08 Oct 2010 11:23:53 +0200
++ * Update copyright file (closes: #935713).
++ * Update Python packaging bits (closes: #935715).
+
- thrift (0.4.0) stable; urgency=low
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 25 Aug 2019 19:18:04 +0000
+
- * update to 0.4.0
++thrift (0.11.0-5) experimental; urgency=medium
+
- -- Roger Meier <roger@bufferoverflow.ch> Sun, 22 Aug 2010 21:26:00 +0100
++ * Fix Python 3 packaging.
++ * Sync with Ubuntu.
++ * Update Standards-Version to 4.4.0 .
+
- thrift (0.2008.12.30~8.04) hardy; urgency=low
++ [ Adam Cecile <acecile@le-vert.net> ]
++ * Build python3 package (closes: #913724).
+
- * Initial release.
++ [ Gianfranco Costamagna <locutusofborg@debian.org> ]
++ * Export HOME to make the build happy (closes: #935620).
++ * Fix another failure due to new go with upstream patch.
+
- -- Esteve Fernandez <esteve@fluidinfo.com> Thu, 15 Jan 2009 11:34:24 +0100
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 24 Aug 2019 15:47:34 +0000
++
++thrift (0.11.0-4) unstable; urgency=medium
++
++ * Backport upstream security fix for CVE-2018-11798: Node.js Filesever
++ webroot fixed path (closes: #918734).
++ * Update Standards-Version to 4.3.0 .
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 08 Jan 2019 21:31:07 +0000
++
++thrift (0.11.0-3) unstable; urgency=medium
++
++ * Build with latest PHP package version.
++ * Provide PHP package without version number.
++ * Upload to Sid (closes: #835294).
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 27 Oct 2018 20:57:18 +0000
++
++thrift (0.11.0-2) experimental; urgency=medium
++
++ * Disable failing Python self-tests to fix mips and s390x FTBFS.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 12 Oct 2018 00:12:09 +0000
++
++thrift (0.11.0-1) experimental; urgency=medium
++
++ * New major upstream release.
++ * Fixes CVE-2016-5397: command injection in format_go_output
++ (closes: #894577).
++ * Fix FTBFS problems (closes: #909067).
++ * Rename related packages to -0.11.0 suffix.
++ * Build with PHP 7.2 version.
++ * Remove libmaven-ant-tasks-java build dependency (closes: #877126).
++ * Update patches.
++ * Use auto-generated debug packages.
++ * Change package priority to optional.
++ * Update Standards-Version to 4.2.1 .
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Thu, 20 Sep 2018 18:16:39 +0000
++
++thrift (0.10.0-1) experimental; urgency=low
++
++ * New upstream release.
++ * Rename related packages to -0.10.0 suffix.
++ * Correct Perl install directory (closes: #859128).
++ * Fix building with Boost 1.62 version.
++ * Only build Go bindings on supported architectures.
++ * Add python{,3}-six build dependency for testing support.
++ * Disable failing TSimpleServer testing for Python.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 13 May 2017 08:15:21 +0000
++
++thrift (0.9.3-2) experimental; urgency=low
++
++ * Build Go bindings.
++ * Update to build with Java Servlet API 3.1 .
++ * Fix build with GCC 6.2 .
++ * Fix build with Boost 1.61 .
++ * Update Standards-Version to 3.9.8 .
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 17 Jul 2016 19:31:46 +0000
++
++thrift (0.9.3-1) experimental; urgency=low
++
++ * New upstream release.
++ * Patch SSLv3 support to use SSLv23_method function (closes: #804668).
++ * Specify Qt version to build and move to version 5 of the library.
++ * This release contains TestValidators.thrift , remove its patch.
++ * Add debug package for Pyton bindings.
++ * Update OpenJDK build dependency to version 8.
++ * Update Perl build dependency.
++ * Update Standards-Version to 3.9.7 .
++ * Keep rebuildable.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 20 Mar 2016 11:10:27 +0000
++
++thrift (0.9.2-2) experimental; urgency=low
++
++ * Specify openjdk-7-jdk to build with.
++ * Disable parallel testing.
++ * Update Boost build dependency to be version 1.58.0 at least.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 03 Aug 2015 20:09:47 +0200
++
++thrift (0.9.2-1) experimental; urgency=low
++
++ * Use monolithic upstream source for Thrift packaging (closes: #792097).
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 21 Mar 2015 17:45:29 +0000
--- /dev/null
- Priority: extra
- Build-Depends: dotnet-runtime-6.0, dotnet-sdk-6.0, debhelper (>= 9), build-essential, python-dev, ant,
- erlang-base, ruby-dev | ruby1.9.1-dev, ruby-bundler ,autoconf, automake,
- pkg-config, libtool, bison, flex, libboost-dev | libboost1.56-dev | libboost1.63-all-dev,
- python-all, python-setuptools, python-all-dev, python-all-dbg,
- python3-all, python3-setuptools, python3-all-dev, python3-all-dbg,
- openjdk-8-jdk | openjdk-8-jdk-headless | openjdk-11-jdk | openjdk-11-jdk-headless | default-jdk,
- libboost-test-dev | libboost-test1.56-dev | libboost-test1.63-dev, libevent-dev, libssl-dev, perl (>= 5.8.0-7),
- php (>= 5), php-dev (>= 5), libglib2.0-dev, qtchooser, qtbase5-dev-tools
- Maintainer: Thrift Developer's <dev@thrift.apache.org>
- Homepage: http://thrift.apache.org/
- Vcs-Git: https://github.com/apache/thrift.git
- Vcs-Browser: https://github.com/apache/thrift
- Standards-Version: 3.9.7
- X-Python-Version: >= 2.6
- X-Python3-Version: >= 3.3
+Source: thrift
+Section: devel
- Package: thrift-compiler
++Priority: optional
++Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Build-Depends: debhelper-compat (= 11), dh-python,
++ dh-golang, golang-golang-x-net-dev,
++ gem2deb,
++ bison, flex,
++ libboost-all-dev, libevent-dev, zlib1g-dev,
++ libssl-dev,
++ libglib2.0-dev,
++ qtbase5-dev,
++ python3-all-dev, python3-six,
++ golang-go, golang-github-golang-mock-dev,
++ pkg-php-tools (>= 1.14~), php-dev, phpunit, php-codesniffer,
++ perl, libbit-vector-perl, libclass-accessor-perl, libtest-exception-perl,
++# openjdk-11-jdk, javahelper, maven-debian-helper (>= 1.5), ant (>= 1.7), ant-optional,
++# libhttpclient-java, libslf4j-java, libservlet3.1-java (>= 8),
++# nodejs, npm,
++ ruby-dev, ruby, bundler, rake,
++ ruby-daemons, ruby-diff-lcs, ruby-eventmachine, ruby-rspec-core,
++ ruby-rack, ruby-rack-test, ruby-rspec, ruby-rspec-expectations,
++ ruby-rspec-mocks, thin,
++# erlang-dev, erlang-eunit,
++# liblua5.2-dev,
++# google-mock
++Build-Conflicts: rustc
++Standards-Version: 4.6.0
++Homepage: https://thrift.apache.org/
++XS-Ruby-Versions: ruby3.0
++XS-Go-Import-Path: github.com/apache/thrift/lib/go/thrift
+
- Description: Compiler for Thrift definition files
- 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.
++Package: libthrift-0.16.0
++Section: libs
+Architecture: any
++Multi-Arch: same
+Depends: ${shlibs:Depends}, ${misc:Depends}
- This package contains the Thrift compiler that is used for translating
- from .thrift files (containing the definitions) to the language binding
- for the supported languages.
++Description: Thrift C++ library
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: python-thrift
++ This package contains the runtime libraries needed for C++ applications
++ using Thrift.
+
- Section: python
- Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, python-six
- Recommends: python-twisted-web, python-backports.ssl-match-hostname, python-ipaddress
- Provides: ${python:Provides}
- Description: Python bindings for Thrift (Python 2)
- 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.
- .
- This package contains the Python bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to Python
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
++Package: libthrift-dev
++Section: libdevel
+Architecture: any
- This package installs the library for Python 2.
++Multi-Arch: same
++Depends: libthrift-0.16.0 (= ${binary:Version}), ${misc:Depends}, pkg-config
++Description: Thrift C++ library (development headers)
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: python-thrift-dbg
++ This package contains the development libraries required for writing C++
++ applications using Thrift.
+
- Section: debug
- Depends: ${shlibs:Depends}, ${misc:Depends}, python-thrift (= ${binary:Version}), python-all-dbg
- Provides: ${python:Provides}
- Description: Python bindings for Thrift (debug version)
- 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.
++Package: libthrift-c-glib0
++Section: libs
+Architecture: any
- This package contains the Python bindings for Thrift with debugging symbols.
- You will need the thrift tool (in the thrift-compiler package) to compile your
- definition to Python classes, and then the modules in this package will allow
- you to use those classes in your programs.
++Multi-Arch: same
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Description: Thrift glib library
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: python3-thrift
++ This package contains the glib based runtime libraries needed for C
++ applications using Thrift.
+
- Section: python
- Depends: ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends}, python3-six
- Recommends: python3-twisted-web
- Provides: ${python:Provides}
- Description: Python bindings for Thrift (Python 3)
- 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.
- .
- This package contains the Python bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to Python
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
++Package: libthrift-c-glib-dev
++Section: libdevel
+Architecture: any
- This package installs the library for Python 3.
++Multi-Arch: same
++Depends: libthrift-c-glib0 (= ${binary:Version}), ${misc:Depends}, pkg-config
++Description: Thrift glib library (development headers)
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: python3-thrift-dbg
++ This package contains the development libraries required for writing glib
++ based C applications using Thrift.
+
- Section: debug
- Depends: ${shlibs:Depends}, ${misc:Depends}, python3-thrift (= ${binary:Version}), python3-all-dbg
- Provides: ${python:Provides}
- Description: Python bindings for Thrift (debug version)
- 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.
- .
- This package contains the Python bindings for Thrift with debugging symbols.
- You will need the thrift tool (in the thrift-compiler package) to compile your
- definition to Python classes, and then the modules in this package will allow
- you to use those classes in your programs.
-
- Package: ruby-thrift
- Architecture: all
- Section: libs
- Depends: ruby | ruby-interpreter, ${shlibs:Depends}, ${misc:Depends}
- Provides: libthrift-ruby
- Replaces: libthrift-ruby
- Breaks: libthrift-ruby
- Description: Ruby bindings for Thrift
- 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.
- .
- This package contains the Ruby bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to Ruby
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
-
- Package: libthrift-java
- Architecture: all
- Section: java
- Depends: ${misc:Depends}
- Description: Java bindings for Thrift
- 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.
- .
- This package contains the Java bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to Java
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
-
- Package: libthrift-netstd
- Architecture: all
- Section: netstd
- Depends: dotnet-runtime-6.0, ${misc:Depends}
- Description: NET Standard bindings for Thrift
- 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.
- .
- This package contains the NET Standard bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to C#
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
-
- Package: libthrift-perl
- Architecture: all
- Section: perl
- Depends: perl (>= 5.8.0-7), ${misc:Depends}
- Description: Perl bindings for Thrift
- 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.
++Package: thrift-compiler
+Architecture: any
- This package contains the Perl bindings for Thrift. You will need the thrift
- tool (in the thrift-compiler package) to compile your definition to Perl
- classes, and then the modules in this package will allow you to use those
- classes in your programs.
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Conflicts: thrift-compiler (<= 0.9.1-2)
++Replaces: thrift-compiler (<= 0.9.1-2)
++Description: code generator/compiler for Thrift definitions
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: libthrift0
++ This package contains the compiler used to generate language code from
++ Thrift definition files.
+
- Depends: ${shlibs:Depends}, ${misc:Depends}
- Description: Thrift C++ library
- 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.
++Package: python3-thrift
++Section: python
+Architecture: any
- This package contains the runtime libraries needed for C++ applications
- using Thrift.
++Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}
++Provides: ${python3:Provides}
++Description: Python 3 library for Thrift
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with a code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: libthrift0-dbg
++ This package provides the Python 3 bindings for Thrift.
+
- Section: debug
- Depends: ${shlibs:Depends}, ${misc:Depends}, libthrift0 (= ${binary:Version})
- Description: Thrift C++ library debug symbols
- 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.
++#Package: libthrift-java
++#Section: java
++#Architecture: all
++#Depends: ${java:Depends}, ${misc:Depends}
++#Conflicts: libthrift-java (<= 0.9.1-2)
++#Replaces: libthrift-java (<= 0.9.1-2)
++#Description: Java language support for Thrift
++# Thrift is a software framework for the development of reliable and
++# performant communication and data serialization. It combines a software
++# stack with code generation to build services that operate seamlessly
++# across a number of different development languages.
++# .
++# This package provides the Java language support for Thrift.
++#
++#Package: libthrift-java-doc
++#Architecture: all
++#Section: doc
++#Depends: ${misc:Depends}
++#Suggests: libthrift-java
++#Description: Java language support for Thrift - documentation
++# Thrift is a software framework for the development of reliable and
++# performant communication and data serialization. It combines a software
++# stack with code generation to build services that operate seamlessly
++# across a number of different development languages.
++# .
++# This package contains Javadoc HTML documentation for libthrift-java .
++#
++Package: php-thrift
++Section: php
+Architecture: any
- This package contains the debug symbols for the Thrift C++ runtime libraries.
++Depends: ${phpcomposer:Debian-require}, ${shlibs:Depends}, ${misc:Depends}
++Provides: ${php:Provides}
++Conflicts: php7.0-thrift, php7.2-thrift
++Replaces: php7.0-thrift, php7.2-thrift
++Description: PHP language support for Thrift
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: libthrift-dev
- Architecture: any
- Section: libdevel
- Depends: ${shlibs:Depends}, ${misc:Depends}, libthrift0 (= ${binary:Version}), libglib2.0-dev
- Description: Thrift C++ library (development headers)
- 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.
++ This package provides the PHP5 language support for Thrift.
+
- This package contains the development libraries required for writing C++
- applications using Thrift.
++Package: libthrift-perl
++Section: perl
++Architecture: all
++Multi-Arch: foreign
++Depends: ${perl:Depends}, ${misc:Depends}
++Description: Perl language support for Thrift
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
- Package: php5-thrift
- Architecture: any
- Section: php
- Depends: ${php:Depends}, ${shlibs:Depends}, ${misc:Depends}
- Provides: ${php:Provides}
- Description: PHP bindings for Thrift
- 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.
++ This package provides the Perl language support for Thrift.
+
- This package contains the PHP bindings for Thrift.
++Package: golang-thrift-dev
++Architecture: amd64 arm64 armel armhf i386 ppc64el
++Multi-Arch: same
++Depends: ${misc:Depends}
++Description: Go language support for Thrift
++ Thrift is a software framework for the development of reliable and
++ performant communication and data serialization. It combines a software
++ stack with code generation to build services that operate seamlessly
++ across a number of different development languages.
+ .
++ This package provides the Go language support for Thrift.
++#
++#Package: ruby-thrift
++#Section: libs
++#Architecture: any
++#Depends: ${shlibs:Depends}, ${misc:Depends}
++#Description: Ruby library for Thrift
++# Thrift is a software framework for the development of reliable and
++# performant communication and data serialization. It combines a software
++# stack with a code generation to build services that operate seamlessly
++# across a number of different development languages.
++# .
++# This package provides the Ruby bindings for Thrift.
--- /dev/null
- This package was debianized by Thrift Developer's <dev@thrift.apache.org>.
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: thrift
++Source: https://www.apache.org/dist/thrift
+
++Files: *
++Copyright: Copyright 2006- Apache Software Foundation
++License: Apache-2.0
+
- This package and the Debian packaging is licensed under the Apache License,
- see `/usr/share/common-licenses/Apache-2.0'.
++Files: build/cmake/FindGLIB.cmake
++Copyright: Copyright (C) 2012 Raphael Kubo da Costa <rakuco@webkit.org>
++License: BSD-2-clause
++ All rights reserved.
++ .
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ .
++ 1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
- The following information was copied from Apache Thrift LICENSE file.
++Files: debian/*
++Copyright: Copyright 2012-2014 Eric Evans <eevans@debian.org>,
++ Copyright 2014- Laszlo Boszormenyi (GCS) <gcs@debian.org>
++License: GPL-2+
+
- --------------------------------------------------
- SOFTWARE DISTRIBUTED WITH THRIFT:
++License: GPL-2+
++ This program is free software; you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by the Free
++ Software Foundation; either version 2 of the License, or (at your option)
++ any later version.
++ .
++ This program is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ for more details.
++ .
++ You should have received a copy of the GNU General Public License along
++ with this package; if not, write to the Free Software Foundation, Inc.,
++ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ .
++ On Debian systems, the full text of the GNU General Public License version
++ 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
+
- The Apache Thrift software includes a number of subcomponents with
- separate copyright notices and license terms. Your use of the source
- code for the these subcomponents is subject to the terms and
- conditions of the following licenses.
++License: GPL-3+
++ This program is free software: you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
++ .
++ This package is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++ .
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
++ .
++ On Debian systems, the full text of the GNU General Public License
++ version 3 can be found in the file `/usr/share/common-licenses/GPL-3'.
+
- --------------------------------------------------
- Portions of the following files are licensed under the MIT License:
-
- lib/erl/Makefile.am
-
- Please see doc/licenses/otp-base-license.txt for the full terms of this license.
-
-
- --------------------------------------------------
- The following files contain some portions of code contributed under
- the Thrift Software License (see doc/licenses/old-thrift-license.txt), and relicensed
- under the Apache 2.0 License:
-
- compiler/cpp/Makefile.am
- compiler/cpp/src/thrift/generate/t_cpp_generator.cc
- compiler/cpp/src/thrift/generate/t_netstd_generator.cc
- compiler/cpp/src/thrift/generate/t_erl_generator.cc
- compiler/cpp/src/thrift/generate/t_hs_generator.cc
- compiler/cpp/src/thrift/generate/t_java_generator.cc
- compiler/cpp/src/thrift/generate/t_ocaml_generator.cc
- compiler/cpp/src/thrift/generate/t_perl_generator.cc
- compiler/cpp/src/thrift/generate/t_php_generator.cc
- compiler/cpp/src/thrift/generate/t_py_generator.cc
- compiler/cpp/src/thrift/generate/t_rb_generator.cc
- compiler/cpp/src/thrift/generate/t_st_generator.cc
- compiler/cpp/src/thrift/generate/t_xsd_generator.cc
- compiler/cpp/src/thrift/main.cc
- compiler/cpp/src/thrift/parse/t_field.h
- compiler/cpp/src/thrift/parse/t_program.h
- compiler/cpp/src/thrift/platform.h
- compiler/cpp/src/thrift/thriftl.ll
- compiler/cpp/src/thrift/thrifty.yy
- lib/netstd/Thrift/Protocol/TBinaryProtocol.cs
- lib/netstd/Thrift/Protocol/Entities/TField.cs
- lib/netstd/Thrift/Protocol/Entities/TList.cs
- lib/netstd/Thrift/Protocol/Entities/TMap.cs
- lib/netstd/Thrift/Protocol/Entities/TMessage.cs
- lib/netstd/Thrift/Protocol/Entities/TMessageType.cs
- lib/netstd/Thrift/Protocol/TProtocol.cs
- lib/netstd/Thrift/Protocol/TProtocolException.cs
- lib/netstd/Thrift/Protocol/TProtocolFactory.cs
- lib/netstd/Thrift/Protocol/Utilities/TProtocolUtil.cs
- lib/netstd/Thrift/Protocol/Entities/TSet.cs
- lib/netstd/Thrift/Protocol/Entities/TStruct.cs
- lib/netstd/Thrift/Protocol/Entities/TType.cs
- lib/netstd/Thrift/Server/TServer.cs
- lib/netstd/Thrift/Server/TSimpleAsyncServer.cs
- lib/netstd/Thrift/Server/TThreadPoolAsyncServer.cs
- lib/netstd/Thrift/TApplicationException.cs
- lib/netstd/Thrift/Thrift.csproj
- lib/netstd/Thrift.sln
- lib/netstd/Thrift/Transport/Server/TServerSocketTransport.cs
- lib/netstd/Thrift/Transport/Server/TServerTransport.cs
- lib/netstd/Thrift/Transport/Client/TSocketTransport.cs
- lib/netstd/Thrift/Transport/Client/TStreamTransport.cs
- lib/netstd/Thrift/Transport/TTransport.cs
- lib/netstd/Thrift/Transport/TTransportException.cs
- lib/netstd/Thrift/Transport/TTransportFactory.cs
- lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Properties/AssemblyInfo.cs
- lib/netstd/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
- lib/rb/lib/thrift.rb
- lib/st/README.md
- lib/st/thrift.st
- lib/cpp/test/OptionalRequiredTest.cpp
- test/OptionalRequiredTest.thrift
- test/ThriftTest.thrift
-
- --------------------------------------------------
- For the aclocal/ax_boost_base.m4 and contrib/fb303/aclocal/ax_boost_base.m4 components:
-
- # Copyright (c) 2007 Thomas Porschberg <thomas@randspringer.de>
- #
- # Copying and distribution of this file, with or without
- # modification, are permitted in any medium without royalty provided
- # the copyright notice and this notice are preserved.
++License: Apache-2.0
++ Licensed to the Apache Software Foundation (ASF) under one or more contributor
++ license agreements. The ASF licenses this work to You under the Apache License,
++ Version 2.0 (the "License"); you may not use this work except in compliance
++ with the License. You may obtain a copy of the License at
++ .
++ https://www.apache.org/licenses/LICENSE-2.0
++ .
++ On Debian systems, the complete text of the Apache License Version 2.0
++ can be found in the file '/usr/share/common-licenses/Apache-2.0'.
--- /dev/null
--- /dev/null
++lib/go/thrift /usr/share/gocode/src/github.com/apache/thrift/lib/go/
--- /dev/null
--- /dev/null
++usr/lib/*/libthrift-*.so
++usr/lib/*/libthriftnb-*.so
++usr/lib/*/libthriftqt5-*.so
++usr/lib/*/libthriftz-*.so
--- /dev/null
--- /dev/null
++libthrift 0.16.0 libthrift-0.16.0 (>= 0.16.0-1~)
++libthriftnb 0.16.0 libthrift-0.16.0 (>= 0.16.0-1~)
++libthriftqt5 0.16.0 libthrift-0.16.0 (>= 0.16.0-1~)
++libthriftz 0.16.0 libthrift-0.16.0 (>= 0.16.0-1~)
--- /dev/null
--- /dev/null
++usr/include/thrift/c_glib/
++usr/lib/*/libthrift_c_glib.a
++usr/lib/*/libthrift_c_glib.so
++usr/lib/*/pkgconfig/thrift_c_glib.pc
--- /dev/null
--- /dev/null
++usr/lib/*/libthrift_c_glib.so.*
--- /dev/null
- usr/lib/*.a
- usr/lib/*.la
- usr/lib/pkgconfig
- usr/include
++usr/include/thrift/*.h
++usr/include/thrift/async/
++usr/include/thrift/concurrency/
++usr/include/thrift/processor/
++usr/include/thrift/protocol/
++usr/include/thrift/qt/
++usr/include/thrift/server/
++usr/include/thrift/transport/
++usr/lib/*/libthrift.a
++usr/lib/*/libthriftnb.a
++usr/lib/*/libthriftqt5.a
++usr/lib/*/libthriftz.a
++usr/lib/*/libthriftnb.so
++usr/lib/*/libthriftqt5.so
++usr/lib/*/libthrift.so
++usr/lib/*/libthriftz.so
++usr/lib/*/pkgconfig/thrift-nb.pc
++usr/lib/*/pkgconfig/thrift.pc
++usr/lib/*/pkgconfig/thrift-qt5.pc
++usr/lib/*/pkgconfig/thrift-z.pc
--- /dev/null
--- /dev/null
++Document: libthrift-java-doc
++Title: Programmer API for Thrift Java support
++Author: Apache Software Foundation
++Section: Programming
++
++Format: HTML
++Index: /usr/share/doc/thrift/java/index.html
++Files: /usr/share/doc/thrift/java/*
--- /dev/null
--- /dev/null
++debian/_jh_build.javadoc/api/* /usr/share/doc/thrift/java/
--- /dev/null
--- /dev/null
++usr/lib/perl5/Thrift.pm /usr/share/perl5
++usr/lib/perl5/Thrift /usr/share/perl5
--- /dev/null
--- /dev/null
++From 54765854873e19b8ba50a0ec8080dd92d8323851 Mon Sep 17 00:00:00 2001
++From: Jens Geyer <jensg@apache.org>
++Date: Thu, 30 Jun 2022 17:55:40 +0200
++Subject: [PATCH] eplaced outdated TLS test keys
++
++---
++ test/keys/CA.pem | 187 +++++++++++++++++++++++++---------------
++ test/keys/client.crt | 47 +++++-----
++ test/keys/client.key | 50 +++++------
++ test/keys/client.pem | 113 ++++++++++++------------
++ test/keys/client_v3.crt | 50 ++++++-----
++ test/keys/client_v3.key | 50 +++++------
++ test/keys/server.crt | 59 ++++++++-----
++ test/keys/server.key | 76 ++++++++++------
++ test/keys/server.pem | 135 ++++++++++++++++++-----------
++ 11 files changed, 455 insertions(+), 312 deletions(-)
++
++diff --git a/test/keys/CA.pem b/test/keys/CA.pem
++index a747b9aca6..2d1cc26f1d 100644
++--- a/test/keys/CA.pem
+++++ b/test/keys/CA.pem
++@@ -1,82 +1,133 @@
++ Certificate:
++ Data:
++ Version: 3 (0x2)
++- Serial Number: 16582080088954381212 (0xe61f61fc3b34239c)
++- Signature Algorithm: sha1WithRSAEncryption
++- Issuer: C=US, ST=Maryland, L=Forest Hill, O=The Apache Software Foundation, OU=Apache Thrift, CN=localhost/emailAddress=dev@thrift.apache.org
+++ Serial Number:
+++ 0c:6f:84:20:71:35:10:57:ae:8f:47:5d:5a:dc:46:40:03:da:b6:df
+++ Signature Algorithm: sha256WithRSAEncryption
+++ Issuer: CN = localhost, emailAddress = dev@thrift.apache.org, OU = Apache Thrift, O = The Apache Software Foundation, L = Forest Hill, ST = Maryland, C = US
++ Validity
++- Not Before: Apr 7 18:58:00 2014 GMT
++- Not After : Jun 24 18:58:00 2022 GMT
++- Subject: C=US, ST=Maryland, L=Forest Hill, O=The Apache Software Foundation, OU=Apache Thrift, CN=localhost/emailAddress=dev@thrift.apache.org
+++ Not Before: Jun 30 22:37:28 2022 GMT
+++ Not After : Sep 16 22:37:28 2030 GMT
+++ Subject: CN = localhost, emailAddress = dev@thrift.apache.org, OU = Apache Thrift, O = The Apache Software Foundation, L = Forest Hill, ST = Maryland, C = US
++ Subject Public Key Info:
++ Public Key Algorithm: rsaEncryption
++- Public-Key: (2048 bit)
+++ RSA Public-Key: (4096 bit)
++ Modulus:
++- 00:aa:13:d4:c4:f7:01:17:a7:92:d1:b4:b4:15:0d:
++- 21:90:19:5e:fc:fb:b6:6d:3f:f2:3f:65:a2:7a:43:
++- a6:46:95:fc:43:16:f6:63:14:5e:f7:b1:e3:61:02:
++- f9:4a:95:89:bf:8d:f9:48:1d:82:e7:34:e0:b2:48:
++- df:08:d9:7c:3a:2f:d3:1b:0b:e8:ef:c2:41:0a:7d:
++- 0a:38:78:3a:31:66:73:99:8c:d1:79:27:5f:e5:66:
++- d0:5e:3a:8c:0c:92:18:73:04:c1:f5:45:db:37:e7:
++- 5f:c7:8c:a3:60:e9:92:a0:d8:29:5d:77:48:fb:1d:
++- b0:ed:12:2c:4e:2e:02:db:3d:1a:41:71:a6:2b:2e:
++- b3:4c:6a:c7:f7:1d:a9:7e:c7:cf:db:f2:e7:b6:f3:
++- 1f:77:1d:24:01:1a:66:66:30:85:30:02:29:c4:bb:
++- f7:cd:3f:89:4b:1a:5f:f4:91:96:fb:e9:39:f2:46:
++- 96:12:3d:8a:23:b5:2e:82:9e:41:fe:40:b6:27:b1:
++- 14:44:5c:96:30:0f:55:e4:bb:ad:8b:8a:99:17:c0:
++- 29:11:4e:76:79:9d:4b:03:31:7e:85:3c:a8:23:40:
++- 54:02:58:35:c6:fc:dd:3d:eb:e3:d1:51:00:02:86:
++- 1a:d7:b0:9f:a0:17:73:6a:5a:d0:e6:b6:b8:55:40:
++- 5e:27
+++ 00:cf:ee:6a:6d:c1:5e:32:34:c7:a8:5f:76:a7:6b:
+++ e0:04:db:88:30:3b:9e:20:fc:31:28:69:ca:a0:66:
+++ 76:93:16:bb:b9:e0:f7:58:2b:64:f0:83:97:b4:ff:
+++ eb:10:ab:75:3f:76:34:8e:e6:0a:99:c0:e6:10:4a:
+++ ff:45:bc:fb:96:3c:36:72:a3:93:06:72:9b:d1:f9:
+++ 90:ed:7c:15:0f:a1:1f:59:89:ab:76:f1:e7:b9:b1:
+++ b1:90:04:d4:8c:1b:af:6d:56:fc:ac:61:e8:9c:76:
+++ ef:d6:b2:cb:05:40:53:a9:7d:70:7f:da:4b:9b:77:
+++ a6:5d:2a:65:4c:ac:06:2d:e6:7b:62:7c:f3:3e:a8:
+++ 60:0d:c5:35:16:b1:5f:79:0e:e0:8f:22:26:36:2e:
+++ bc:87:e9:5a:65:df:f0:1c:bf:4c:e2:f3:36:44:75:
+++ a4:92:d7:7b:ce:3d:b4:01:ab:4e:d9:be:82:82:f0:
+++ e7:d4:4c:84:88:31:95:2d:39:0c:7d:e7:18:d2:9a:
+++ 99:64:38:82:bd:87:e5:da:3e:da:91:73:2a:8a:26:
+++ e2:f0:ab:c8:a8:1c:fc:d5:f2:11:03:5c:ff:51:51:
+++ 26:c8:b7:fd:72:bf:36:57:b3:a0:fc:3e:c5:5d:f7:
+++ 01:e0:e8:a6:69:8a:56:c4:38:44:93:8d:c9:59:60:
+++ 92:c0:83:d9:0d:a8:76:b0:91:fe:bc:aa:8a:b0:39:
+++ 05:31:fc:a5:01:5f:bc:24:1f:af:81:ba:ce:44:b3:
+++ 48:30:53:0b:d6:48:d8:82:31:24:5b:3c:ee:65:69:
+++ 72:ef:b4:9f:eb:b8:f3:6b:dd:c2:c5:00:78:1c:84:
+++ de:8a:40:f7:d3:18:ae:5a:d9:0e:32:d8:97:8d:18:
+++ d2:4c:d6:1c:ae:36:22:cd:e2:07:3d:37:07:85:45:
+++ 29:4a:ec:51:76:b9:6d:ca:ae:60:f9:2b:d6:85:72:
+++ 71:a9:87:d5:04:f0:5e:d8:24:53:a0:ec:a4:08:ee:
+++ 47:7b:54:41:3e:22:ee:c4:84:9e:85:7c:a4:69:74:
+++ 80:b5:a9:18:00:71:84:67:5e:d1:9d:15:ff:1d:78:
+++ 04:d1:49:f9:91:b6:ba:25:29:2e:f3:09:b2:1a:81:
+++ 95:ed:64:22:3f:82:ab:24:90:31:cd:e6:16:99:1d:
+++ 05:35:19:9f:25:55:b9:54:5c:eb:ea:06:19:f0:6e:
+++ 8c:eb:ea:14:ab:92:f6:b3:a1:a4:24:81:05:5c:1b:
+++ ab:9f:e5:3d:28:2d:bf:2d:ae:06:28:93:c2:51:4b:
+++ 32:03:ef:57:ae:97:c5:01:9b:6e:04:f1:3a:32:1d:
+++ ac:bd:62:ea:c9:83:ff:a4:57:91:b2:0c:28:e1:5b:
+++ fe:8e:0d
++ Exponent: 65537 (0x10001)
++ X509v3 extensions:
++ X509v3 Subject Key Identifier:
++- 28:F2:FD:30:CD:03:F1:DC:41:1E:C4:93:C6:97:13:CA:D4:FA:60:2A
+++ A8:04:E1:24:70:5A:ED:9C:C4:38:63:CD:E7:F8:79:49:94:9D:1D:DA
++ X509v3 Authority Key Identifier:
++- keyid:28:F2:FD:30:CD:03:F1:DC:41:1E:C4:93:C6:97:13:CA:D4:FA:60:2A
+++ keyid:A8:04:E1:24:70:5A:ED:9C:C4:38:63:CD:E7:F8:79:49:94:9D:1D:DA
++
++- X509v3 Basic Constraints:
++- CA:TRUE
++- Signature Algorithm: sha1WithRSAEncryption
++- 46:15:18:89:b2:57:17:d1:a2:64:c1:9a:73:4f:04:94:76:07:
++- 1f:29:ba:6f:34:46:c2:36:d5:68:85:f4:15:4c:8e:1a:fe:83:
++- 79:53:ec:aa:0d:92:60:de:f3:9a:3a:e8:80:66:ac:87:70:89:
++- 59:f2:ac:9e:b0:28:11:37:7d:78:4e:5e:3f:25:0f:be:09:6f:
++- 26:2a:3d:66:79:38:28:e5:81:71:71:96:26:4f:db:ec:23:70:
++- be:37:39:fc:e0:32:0d:80:8f:66:c7:ac:a4:b4:8b:77:40:e2:
++- 99:44:3a:73:c8:f9:14:cf:1b:32:27:c2:78:db:b0:da:8a:60:
++- eb:8d:34:7e:7d:3c:03:d4:38:74:f7:17:9e:32:74:9a:e7:37:
++- 95:d4:71:03:c8:94:ea:09:7b:ad:2d:eb:70:43:f2:32:7e:63:
++- 01:84:8c:7e:9e:f0:79:7f:ae:e9:cf:f9:be:0e:fe:95:d2:bd:
++- c8:a7:81:c2:71:d9:c3:50:31:89:6d:fa:ad:a2:ab:00:01:34:
++- 10:58:ef:96:5a:eb:30:07:a9:8e:84:36:ef:3d:3c:61:46:96:
++- 6a:e8:09:20:5a:ab:f8:4b:eb:b7:33:61:8e:af:9a:7d:16:b0:
++- 60:6a:f0:30:e5:b2:8e:e7:80:b4:a1:02:a9:37:fe:5f:b5:ae:
++- 65:e9:6b:34
+++ X509v3 Basic Constraints: critical
+++ CA:TRUE, pathlen:0
+++ X509v3 Key Usage: critical
+++ Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign, CRL Sign
+++ X509v3 Extended Key Usage:
+++ TLS Web Server Authentication, TLS Web Client Authentication
+++ X509v3 Subject Alternative Name:
+++ IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP Address:0:0:0:0:0:FFFF:7F00:1, DNS:localhost
+++ Signature Algorithm: sha256WithRSAEncryption
+++ 8b:25:e2:34:d2:d9:d6:eb:b7:b0:92:b6:fc:08:9d:ff:08:9e:
+++ 36:86:a8:ea:e3:e1:cd:07:0d:85:58:06:2d:f7:26:41:f1:59:
+++ ab:02:25:b8:ec:f9:85:ac:41:87:0a:df:fa:c4:f6:26:32:64:
+++ 0f:dc:c0:81:3c:f7:1d:9e:73:52:57:e3:64:ab:6b:23:cb:21:
+++ d5:05:e5:54:a8:f8:33:f7:92:74:c7:4a:2e:f3:b7:78:a0:9b:
+++ 38:b2:29:3b:0b:a2:58:88:4b:03:8a:c0:5e:66:75:cf:aa:78:
+++ e1:3c:0a:e1:31:8b:bc:48:57:8c:65:27:17:cc:f9:75:ba:69:
+++ e1:dd:b2:4a:1f:29:24:dd:e2:aa:b3:c8:ef:b0:31:ec:ca:6f:
+++ cb:bd:fd:bd:2b:30:63:42:bd:a3:35:7a:d7:16:36:5a:df:3f:
+++ 64:97:6b:22:c0:7c:59:0a:ca:94:9b:11:1d:6e:21:4c:e0:66:
+++ 78:52:1b:27:d8:79:ee:83:ac:80:13:8a:13:f2:3a:87:e3:6d:
+++ 46:ea:7c:5e:cc:26:d0:d3:a9:32:e1:aa:19:27:74:5f:93:ec:
+++ 84:76:2d:c4:78:5d:db:64:c6:d7:53:17:55:b0:29:c3:36:15:
+++ 7f:dc:8e:97:6d:19:7e:fa:53:a8:4f:0f:ab:96:5c:32:12:93:
+++ c2:22:4b:c1:d7:d7:4c:74:c1:a9:a5:56:f2:b7:cf:3f:54:b1:
+++ 6c:10:a7:90:c3:12:31:bf:5e:d3:14:e7:da:00:ca:28:86:21:
+++ b6:65:95:45:8a:38:e6:9b:09:c2:1d:f1:db:d8:67:0e:33:a0:
+++ e6:c2:ad:88:98:6f:6a:af:3d:c2:4f:c9:43:b3:70:23:e7:c2:
+++ c3:92:db:69:60:4e:a1:1f:a0:dc:e5:ae:68:77:f5:82:3c:a6:
+++ f3:43:87:eb:74:4a:42:bc:36:19:65:9b:8a:3f:84:84:24:23:
+++ 16:25:aa:ca:78:22:40:a7:cb:1a:4e:76:04:4c:b7:61:fe:f7:
+++ c1:42:34:b1:ac:dc:42:24:99:a7:8a:0f:8d:8e:ca:09:6f:77:
+++ 33:34:21:81:d3:d9:50:d1:7e:1c:29:8c:fb:d2:13:0f:e5:27:
+++ 26:08:8b:74:74:04:45:8d:18:0f:49:c7:e0:4a:65:1c:66:c8:
+++ e7:ab:52:a0:8c:98:89:b0:32:82:ed:2a:e7:44:1e:95:b3:e5:
+++ b5:dc:52:49:aa:b2:61:97:68:76:9b:55:6e:d9:de:77:cd:67:
+++ 07:52:2c:d1:e0:1c:b3:58:04:67:ba:02:4d:7d:f0:21:47:1a:
+++ 63:ff:f5:76:d5:e3:57:06:35:77:2d:7d:ef:76:6d:a0:ef:e4:
+++ 83:20:58:e8:b7:e5:7e:70
++ -----BEGIN CERTIFICATE-----
++-MIIENzCCAx+gAwIBAgIJAOYfYfw7NCOcMA0GCSqGSIb3DQEBBQUAMIGxMQswCQYD
++-VQQGEwJVUzERMA8GA1UECAwITWFyeWxhbmQxFDASBgNVBAcMC0ZvcmVzdCBIaWxs
++-MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFjAUBgNV
++-BAsMDUFwYWNoZSBUaHJpZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3
++-DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMB4XDTE0MDQwNzE4NTgwMFoXDTIy
++-MDYyNDE4NTgwMFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNYXJ5bGFuZDEU
++-MBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdh
++-cmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRocmlmdDESMBAGA1UEAwwJ
++-bG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcw
++-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqE9TE9wEXp5LRtLQVDSGQ
++-GV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCySN8I2Xw6
++-L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/HjKNg6ZKg
++-2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQBGmZmMIUw
++-AinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xku62LipkX
++-wCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDmtrhVQF4n
++-AgMBAAGjUDBOMB0GA1UdDgQWBBQo8v0wzQPx3EEexJPGlxPK1PpgKjAfBgNVHSME
++-GDAWgBQo8v0wzQPx3EEexJPGlxPK1PpgKjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3
++-DQEBBQUAA4IBAQBGFRiJslcX0aJkwZpzTwSUdgcfKbpvNEbCNtVohfQVTI4a/oN5
++-U+yqDZJg3vOaOuiAZqyHcIlZ8qyesCgRN314Tl4/JQ++CW8mKj1meTgo5YFxcZYm
++-T9vsI3C+Nzn84DINgI9mx6yktIt3QOKZRDpzyPkUzxsyJ8J427DaimDrjTR+fTwD
++-1Dh09xeeMnSa5zeV1HEDyJTqCXutLetwQ/IyfmMBhIx+nvB5f67pz/m+Dv6V0r3I
++-p4HCcdnDUDGJbfqtoqsAATQQWO+WWuswB6mOhDbvPTxhRpZq6AkgWqv4S+u3M2GO
++-r5p9FrBgavAw5bKO54C0oQKpN/5fta5l6Ws0
+++MIIGuTCCBKGgAwIBAgIUDG+EIHE1EFeuj0ddWtxGQAPatt8wDQYJKoZIhvcNAQEL
+++BQAwgbExEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3DQEJARYVZGV2QHRo
+++cmlmdC5hcGFjaGUub3JnMRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQK
+++DB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFDASBgNVBAcMC0ZvcmVz
+++dCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFuZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMw
+++MjIzNzI4WhcNMzAwOTE2MjIzNzI4WjCBsTESMBAGA1UEAwwJbG9jYWxob3N0MSQw
+++IgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFw
+++YWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRh
+++dGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1hcnlsYW5kMQsw
+++CQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM/uam3B
+++XjI0x6hfdqdr4ATbiDA7niD8MShpyqBmdpMWu7ng91grZPCDl7T/6xCrdT92NI7m
+++CpnA5hBK/0W8+5Y8NnKjkwZym9H5kO18FQ+hH1mJq3bx57mxsZAE1Iwbr21W/Kxh
+++6Jx279ayywVAU6l9cH/aS5t3pl0qZUysBi3me2J88z6oYA3FNRaxX3kO4I8iJjYu
+++vIfpWmXf8By/TOLzNkR1pJLXe849tAGrTtm+goLw59RMhIgxlS05DH3nGNKamWQ4
+++gr2H5do+2pFzKoom4vCryKgc/NXyEQNc/1FRJsi3/XK/NlezoPw+xV33AeDopmmK
+++VsQ4RJONyVlgksCD2Q2odrCR/ryqirA5BTH8pQFfvCQfr4G6zkSzSDBTC9ZI2IIx
+++JFs87mVpcu+0n+u482vdwsUAeByE3opA99MYrlrZDjLYl40Y0kzWHK42Is3iBz03
+++B4VFKUrsUXa5bcquYPkr1oVycamH1QTwXtgkU6DspAjuR3tUQT4i7sSEnoV8pGl0
+++gLWpGABxhGde0Z0V/x14BNFJ+ZG2uiUpLvMJshqBle1kIj+CqySQMc3mFpkdBTUZ
+++nyVVuVRc6+oGGfBujOvqFKuS9rOhpCSBBVwbq5/lPSgtvy2uBiiTwlFLMgPvV66X
+++xQGbbgTxOjIdrL1i6smD/6RXkbIMKOFb/o4NAgMBAAGjgcYwgcMwHQYDVR0OBBYE
+++FKgE4SRwWu2cxDhjzef4eUmUnR3aMB8GA1UdIwQYMBaAFKgE4SRwWu2cxDhjzef4
+++eUmUnR3aMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgHmMB0GA1Ud
+++JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHREENzA1hwR/AAABhxAAAAAA
+++AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI
+++hvcNAQELBQADggIBAIsl4jTS2dbrt7CStvwInf8InjaGqOrj4c0HDYVYBi33JkHx
+++WasCJbjs+YWsQYcK3/rE9iYyZA/cwIE89x2ec1JX42SrayPLIdUF5VSo+DP3knTH
+++Si7zt3igmziyKTsLoliISwOKwF5mdc+qeOE8CuExi7xIV4xlJxfM+XW6aeHdskof
+++KSTd4qqzyO+wMezKb8u9/b0rMGNCvaM1etcWNlrfP2SXayLAfFkKypSbER1uIUzg
+++ZnhSGyfYee6DrIATihPyOofjbUbqfF7MJtDTqTLhqhkndF+T7IR2LcR4XdtkxtdT
+++F1WwKcM2FX/cjpdtGX76U6hPD6uWXDISk8IiS8HX10x0wamlVvK3zz9UsWwQp5DD
+++EjG/XtMU59oAyiiGIbZllUWKOOabCcId8dvYZw4zoObCrYiYb2qvPcJPyUOzcCPn
+++wsOS22lgTqEfoNzlrmh39YI8pvNDh+t0SkK8Nhllm4o/hIQkIxYlqsp4IkCnyxpO
+++dgRMt2H+98FCNLGs3EIkmaeKD42OyglvdzM0IYHT2VDRfhwpjPvSEw/lJyYIi3R0
+++BEWNGA9Jx+BKZRxmyOerUqCMmImwMoLtKudEHpWz5bXcUkmqsmGXaHabVW7Z3nfN
+++ZwdSLNHgHLNYBGe6Ak198CFHGmP/9XbV41cGNXctfe92baDv5IMgWOi35X5w
++ -----END CERTIFICATE-----
++diff --git a/test/keys/client.crt b/test/keys/client.crt
++index 80a9ad0e2c..ceffe155f3 100644
++--- a/test/keys/client.crt
+++++ b/test/keys/client.crt
++@@ -1,23 +1,28 @@
++ -----BEGIN CERTIFICATE-----
++-MIID2DCCAsACAQEwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVTMREwDwYD
++-VQQIDAhNYXJ5bGFuZDEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRo
++-ZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRo
++-cmlmdDESMBAGA1UEAwwJbG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhy
++-aWZ0LmFwYWNoZS5vcmcwHhcNMTUxMjIzMDcwNzUwWhcNMjQwMzEwMDcwNzUwWjCB
++-sTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRQwEgYDVQQHDAtGb3Jl
++-c3QgSGlsbDEnMCUGA1UECgweVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
++-MRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MRIwEAYDVQQDDAlsb2NhbGhvc3QxJDAi
++-BgkqhkiG9w0BCQEWFWRldkB0aHJpZnQuYXBhY2hlLm9yZzCCASIwDQYJKoZIhvcN
++-AQEBBQADggEPADCCAQoCggEBALl/bJhg17Pu1t785JIuwlh7e2E51eoWFvuxMWfH
++-dsUAVqDaOz99O5sv8pgWKXrkPBttE98T+Mx/Pwz5JHs4Qcre3A5adm6cdab0AKug
++-eVG1PvHrWzV4aheg4KUfVSiMz8BG2K3Q1VGvZkgMRa/Q409FKjU6Z4D9vBG4Pas3
++-PN5FxnAL6P70yWCEr2Vu/tWJlCN+qrRDfSaE2hqmT1irxaoPa61GvuRVsGQ3TeoE
++-mGfENtvFqC6qQWuSCbG5aI47Rv66pqoWWxqkrcolNc7+vhx6rW+wdFO3IlqIT8IG
++-sdQVp+Y4ir/dGp2ejzqGZCremPJ1uEKjLMpIukdg25ymHC0CAwEAATANBgkqhkiG
++-9w0BAQsFAAOCAQEABcRdwc9mdY9zOvTixtThHrciVvqwp6RaiQqMEVomozYilZDR
++-J90M3H6KnlADJbCv0FXujsaApB53awq5I7sObAYWFhDJZ9LKlw0lDF7KchLXiAlk
++-XVyvL2nJjuJcxPCFPWktwrw5bTguRCBzG12Hzikn+xs6uPur7VQYM33jbXEda5PS
++-UEqvAVWaONJCX8MDYOscVoJF0ESyI+fN92ipFaXR7fGajod/rc0AfeN2GVMZETve
++-21pkUyDwwCGA44uvNUCd1e32NxE3ah9UApCRn5sGJ64R6urpFTXT3IALF3kaOO7U
++-VsMhFrUiZ7+Bw5nIeiK0QOF6Eipj+bJvrLZpSg==
+++MIIE2DCCAsACAQEwDQYJKoZIhvcNAQELBQAwgbExEjAQBgNVBAMMCWxvY2FsaG9z
+++dDEkMCIGCSqGSIb3DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMRYwFAYDVQQL
+++DA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZv
+++dW5kYXRpb24xFDASBgNVBAcMC0ZvcmVzdCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFu
+++ZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMwMjIzNzMxWhcNMzAwOTE2MjIzNzMxWjCB
+++sTESMBAGA1UEAwwJbG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0
+++LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFwYWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRo
+++ZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhp
+++bGwxETAPBgNVBAgMCE1hcnlsYW5kMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcN
+++AQEBBQADggEPADCCAQoCggEBAMkGl9ZGVq/mTrcojrq7eqZTww1gmgOPNWN1QNzv
+++i+cPI8Egbik04n/AFWvgtnvKKnKQfOLkBHJHyTdXmPqvdU9w8Zd9dvXk75mBvbtx
+++yse6UZCxZnXrqv5YfMGb2BEvcsL5I5s6d3gL4eNObYzFD7vUjAbpamUSE7NOeMn7
+++qO0rPIcODDXL+Okr9/TBcO/XvRSUK0exsX03FC07gtTddV9lEYCkJvQMCCQmFdQ5
+++al7Vz4iLleG5hsCwz/W5zHcsqVtzm8CEQzr00AoR8Ar/WkGh1ibmissi5Bo2DcvR
+++Ko3pvDVOAY+gj9Ypxe2z7MImn1T7ZVdr0JXUu9jmMgKMQz8CAwEAATANBgkqhkiG
+++9w0BAQsFAAOCAgEAH3QwBNbb2IP+ozcM5w4WppG7W/ha0WUcEKgf8Ay7w4/+X79Y
+++Z7mxltoCz5Bc54EMXDaoTg5PbwPSmTNDqoFSRf07Fhp8IG5n19CvrTCMFcM8BbDx
+++g5CZ6W1WoHpCW6/zNlflsSVFbGSrkwzmpgnn3+EJcVWzMDcQXufpkefbH2x7bHC/
+++0JsfEYh5iPyJeDWx0CyiyoqfRx08cDuB/OLZgq63dkDNnd4zqDTT8zLT6zMTq1Ka
+++pApb+5o0rapgHQP5+O3QAZrfnWLYXOPk17yQTekvwVpiSzwdPlOija5X+BLrLyNu
+++EEYlR7Vz2qj/DAUN9vhCIdF4Bk8Yfk9txH5oJUmC0c2bfUkrCJgfbyK1GL00BkON
+++aso8whDf8LF5BAl/ooofzvZXt+bw4Sp+LuX+OAcJUlqeK7IUdHQqnhhw5FOfenVO
+++Z7MkMt2qtm3BlPzMWlZoeLNrkx4BzsBElFJ0Ds37uLk+LIg3whg+MYMFJPwXqUhs
+++6Ss76/cu/AhoHoX8k5wT5eNpzyWL8hNyDSosGDAgejjYFBXMlNzFYvG5zVE0EP7C
+++i78cIdgSARKocOOeFpA3GEJL+ISi0g1ut8A1/kxgFp5dxGjfOAGHeDeaVWhWuhjz
+++m7CjPwlfAvIBJJlC96MhPakY6tbyA0hW0/GiOfaoanJvVdWJF7lEdKle1Zs=
++ -----END CERTIFICATE-----
++diff --git a/test/keys/client.key b/test/keys/client.key
++index 25dcfd7136..cb388d99a6 100644
++--- a/test/keys/client.key
+++++ b/test/keys/client.key
++@@ -1,27 +1,27 @@
++ -----BEGIN RSA PRIVATE KEY-----
++-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
++ -----END RSA PRIVATE KEY-----
++diff --git a/test/keys/client.pem b/test/keys/client.pem
++index 66ef626d92..a213fd03d7 100644
++--- a/test/keys/client.pem
+++++ b/test/keys/client.pem
++@@ -1,60 +1,67 @@
++ Bag Attributes
++- localKeyID: 39 EC 3D 5B 28 17 DA DD 09 7A 62 68 D5 44 1F C7 E2 F8 E0 CD
++-subject=/C=US/ST=Maryland/L=Forest Hill/O=The Apache Software Foundation/OU=Apache Thrift/CN=localhost/emailAddress=dev@thrift.apache.org
++-issuer=/C=US/ST=Maryland/L=Forest Hill/O=The Apache Software Foundation/OU=Apache Thrift/CN=localhost/emailAddress=dev@thrift.apache.org
+++ localKeyID: 16 42 EA 1B 7C AC BD 29 96 5A A8 B6 3C AB 85 E3 7D 12 C3 D4
+++subject=CN = localhost, emailAddress = dev@thrift.apache.org, OU = Apache Thrift, O = The Apache Software Foundation, L = Forest Hill, ST = Maryland, C = US
+++
+++issuer=CN = localhost, emailAddress = dev@thrift.apache.org, OU = Apache Thrift, O = The Apache Software Foundation, L = Forest Hill, ST = Maryland, C = US
+++
++ -----BEGIN CERTIFICATE-----
++-MIID2DCCAsACAQEwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAlVTMREwDwYD
++-VQQIDAhNYXJ5bGFuZDEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRo
++-ZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRo
++-cmlmdDESMBAGA1UEAwwJbG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhy
++-aWZ0LmFwYWNoZS5vcmcwHhcNMTUxMjIzMDcwNzUwWhcNMjQwMzEwMDcwNzUwWjCB
++-sTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRQwEgYDVQQHDAtGb3Jl
++-c3QgSGlsbDEnMCUGA1UECgweVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
++-MRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MRIwEAYDVQQDDAlsb2NhbGhvc3QxJDAi
++-BgkqhkiG9w0BCQEWFWRldkB0aHJpZnQuYXBhY2hlLm9yZzCCASIwDQYJKoZIhvcN
++-AQEBBQADggEPADCCAQoCggEBALl/bJhg17Pu1t785JIuwlh7e2E51eoWFvuxMWfH
++-dsUAVqDaOz99O5sv8pgWKXrkPBttE98T+Mx/Pwz5JHs4Qcre3A5adm6cdab0AKug
++-eVG1PvHrWzV4aheg4KUfVSiMz8BG2K3Q1VGvZkgMRa/Q409FKjU6Z4D9vBG4Pas3
++-PN5FxnAL6P70yWCEr2Vu/tWJlCN+qrRDfSaE2hqmT1irxaoPa61GvuRVsGQ3TeoE
++-mGfENtvFqC6qQWuSCbG5aI47Rv66pqoWWxqkrcolNc7+vhx6rW+wdFO3IlqIT8IG
++-sdQVp+Y4ir/dGp2ejzqGZCremPJ1uEKjLMpIukdg25ymHC0CAwEAATANBgkqhkiG
++-9w0BAQsFAAOCAQEABcRdwc9mdY9zOvTixtThHrciVvqwp6RaiQqMEVomozYilZDR
++-J90M3H6KnlADJbCv0FXujsaApB53awq5I7sObAYWFhDJZ9LKlw0lDF7KchLXiAlk
++-XVyvL2nJjuJcxPCFPWktwrw5bTguRCBzG12Hzikn+xs6uPur7VQYM33jbXEda5PS
++-UEqvAVWaONJCX8MDYOscVoJF0ESyI+fN92ipFaXR7fGajod/rc0AfeN2GVMZETve
++-21pkUyDwwCGA44uvNUCd1e32NxE3ah9UApCRn5sGJ64R6urpFTXT3IALF3kaOO7U
++-VsMhFrUiZ7+Bw5nIeiK0QOF6Eipj+bJvrLZpSg==
+++MIIE2DCCAsACAQEwDQYJKoZIhvcNAQELBQAwgbExEjAQBgNVBAMMCWxvY2FsaG9z
+++dDEkMCIGCSqGSIb3DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMRYwFAYDVQQL
+++DA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZv
+++dW5kYXRpb24xFDASBgNVBAcMC0ZvcmVzdCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFu
+++ZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMwMjIzNzMxWhcNMzAwOTE2MjIzNzMxWjCB
+++sTESMBAGA1UEAwwJbG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0
+++LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFwYWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRo
+++ZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhp
+++bGwxETAPBgNVBAgMCE1hcnlsYW5kMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcN
+++AQEBBQADggEPADCCAQoCggEBAMkGl9ZGVq/mTrcojrq7eqZTww1gmgOPNWN1QNzv
+++i+cPI8Egbik04n/AFWvgtnvKKnKQfOLkBHJHyTdXmPqvdU9w8Zd9dvXk75mBvbtx
+++yse6UZCxZnXrqv5YfMGb2BEvcsL5I5s6d3gL4eNObYzFD7vUjAbpamUSE7NOeMn7
+++qO0rPIcODDXL+Okr9/TBcO/XvRSUK0exsX03FC07gtTddV9lEYCkJvQMCCQmFdQ5
+++al7Vz4iLleG5hsCwz/W5zHcsqVtzm8CEQzr00AoR8Ar/WkGh1ibmissi5Bo2DcvR
+++Ko3pvDVOAY+gj9Ypxe2z7MImn1T7ZVdr0JXUu9jmMgKMQz8CAwEAATANBgkqhkiG
+++9w0BAQsFAAOCAgEAH3QwBNbb2IP+ozcM5w4WppG7W/ha0WUcEKgf8Ay7w4/+X79Y
+++Z7mxltoCz5Bc54EMXDaoTg5PbwPSmTNDqoFSRf07Fhp8IG5n19CvrTCMFcM8BbDx
+++g5CZ6W1WoHpCW6/zNlflsSVFbGSrkwzmpgnn3+EJcVWzMDcQXufpkefbH2x7bHC/
+++0JsfEYh5iPyJeDWx0CyiyoqfRx08cDuB/OLZgq63dkDNnd4zqDTT8zLT6zMTq1Ka
+++pApb+5o0rapgHQP5+O3QAZrfnWLYXOPk17yQTekvwVpiSzwdPlOija5X+BLrLyNu
+++EEYlR7Vz2qj/DAUN9vhCIdF4Bk8Yfk9txH5oJUmC0c2bfUkrCJgfbyK1GL00BkON
+++aso8whDf8LF5BAl/ooofzvZXt+bw4Sp+LuX+OAcJUlqeK7IUdHQqnhhw5FOfenVO
+++Z7MkMt2qtm3BlPzMWlZoeLNrkx4BzsBElFJ0Ds37uLk+LIg3whg+MYMFJPwXqUhs
+++6Ss76/cu/AhoHoX8k5wT5eNpzyWL8hNyDSosGDAgejjYFBXMlNzFYvG5zVE0EP7C
+++i78cIdgSARKocOOeFpA3GEJL+ISi0g1ut8A1/kxgFp5dxGjfOAGHeDeaVWhWuhjz
+++m7CjPwlfAvIBJJlC96MhPakY6tbyA0hW0/GiOfaoanJvVdWJF7lEdKle1Zs=
++ -----END CERTIFICATE-----
++ Bag Attributes
++- localKeyID: 39 EC 3D 5B 28 17 DA DD 09 7A 62 68 D5 44 1F C7 E2 F8 E0 CD
+++ localKeyID: 16 42 EA 1B 7C AC BD 29 96 5A A8 B6 3C AB 85 E3 7D 12 C3 D4
++ Key Attributes: <No Attributes>
++ -----BEGIN ENCRYPTED PRIVATE KEY-----
++-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIRKol42bAS3ACAggA
++-MBQGCCqGSIb3DQMHBAjOulcyHMaWsQSCBMgbeXQ8pIYTENKm08UPeqxkCR2nLxSO
++-gtRmBxDYjqYv35y4K8KhybBvSBlIPgE5jEWxUCcc1Qvy5ydUQ/X9pmkU8dnmAmDC
++-o0zwd3lt2eNPy+4WliqFDVmHrLfYQFOoIrHjuzC0lI4C2iPOjxhfa1zFumedgwGS
++-Gx10X5uEVH5N64fW6B3BvzQM0rn2qr0ONuSRmteRtI8NsznfkgeJ9a4CIAF7E5Z2
++-JTGI12edNzzUJ1JhX47ZW4miQwCU5Lcy01UZqTFuUpmK7FUQegtLy3e5eDKq+bIg
++-ZYq6Hx7lu8hjT5kWZGKy71aYmHKEjI0f727cAbqDTG5uZBHBjwK/3p/znQVQXxBb
++-1+E9CiKeFdXj2ElptsnDyoTvrSwJ/Jqu1wkXBcH5Embg7aJMod1IOs6OQB1rPDvd
++-FFa84zbqRNWHSxxxYZxcB8YZinL6/dQJnisKu9LMQd3BBGsGWqH8Zz5tEvXjS5Kv
++-3g9JRa7QDkSF005x6U+q/678G2MG+W+NWqje3NZx9Psh/Ptm+h+q9n2GSvnibiK5
++-mEj9FIwGquGpbZUTK5aXHcKN657dKiICsEJeNar1iZznRmzrMbZJ+DxqJnTw+GAv
++-7Yb63/CNAtqSxiyNHGZ6NM2ZA9vAKY1HXn0RVC0y1+9FmNpSRwv3u/+ydSCnJonR
++-GEKjzOqM9Dn7qxd+h4UnnA7hXWxITageB6G6KmfiXRxhiWyqtOICdCneCwpq8UZ4
++-e0fm05NRW6M2mqGQHsMNSvTWddwz5b8wgw4eVsb+xQytxVdj9lpBuB9KyjQjxUgU
++-3oZx4KyWLoEWjkztPAiK3uv5GfotNIMdznRfON1+xm1M5swtn3y3Ru1f6STZC7Sp
++-qvbG7jPmpB5gLEUri+chw+aKUYbJ0b820Od4FLQYnwLWr46VelYmV44xuR06wgqP
++-1HchMSsHtS+ZlIiQQU9jhdyTrl86EQHH33dh+Sua8AhfewPRy2VFp3Zk34AUsWcX
++-EfIYGemhqUD3drG0SMVbFFNOaFGp9e0tQouYOC6/qFBv/SNgQz3mAEkciJYbUuUZ
++-V4YQPvtdvSrISV0e7bjFgdSEjG7P7F6CFrWTrjUlHZuWj6/rJ3+/1PHeJViyhsrJ
++-ZYFe14W/48PDxBRl4IEAmxcN1Eb2Ez9eCqv0HW77HviG6zIgnkPrhWHjFGUpxKk4
++-jLfuB2Tfq9F7ozv4L2QAn+F/yKt1Rm2Hh5J61eUJtAT60pajg+gJtjmpu5Pr4HDn
++-b6p3xmYwaL5Let1zCAbbMfdlDK14YjdOdM/BEKpXb9y4EIubX5AMY4ljXeG9gx+T
++-B1TuQVdJ0P5wIK/D10TQzAWDKam0kv3RXidlzRxpZ3snRnN/L3EVd58Rntj1Oc0y
++-FiIiSKRszDbPzKDxQE2sNgQcdO24JNLSa/sZYtq2gRgspl/YqIDo4ZYqi9x8F5OS
++-rdPU5D/H8LWR4vpJLL8DYrHh5qFG3BX2OJIhPRS+48pDYtrRjp7S/1ZU64OJAytk
++-99hDqSrn1j2a6yFE8L2Ptz+4UCF2OQXEc9Rqqeb8QEUuMSkNH4oQ+A2F6uzLpZi0
++-XH64R2niNC56LxV2i+3T5KREFLahyk8epLZlv8YdxYR4Sb7J/5yiooK3g9hmYVKO
++-zLc=
+++MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIXssR4DibuUICAggA
+++MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECG0hY3ghCtwkBIIEyLAZKLA15mz3
+++ig2qipY2rD8xMs5/kP0bixjxwzpWsTAjkUTZq6UYWgQxE2CnAAysCUveftySMg5A
+++Fs0gvi6pTh7yGheqpJf7+tEjs7qhaIHdT39gS6d9A2+rAye0/FybW/3zGInQVQmb
+++47SF9lq93gevzR3nBFF6RWSeX3jCwhp6HpbuI0nt1XeJbmEW8ol+RqFHuzclj6UL
+++jXIgNBayW89HfSzIRCUDTlG9MTPIE+rdx5FyRVFgw5Z1lYJbm5rBEY7tQU6Ut7Kt
+++Is4KRTs5hAQkfe0K0i0hZn7Don5Go4EIBQQ4IZIaOm0F3SWpe9AuZi3NtwiBOTsn
+++ObKTZGI7v+j6IVwVRSTy61u1EiRvNzUBnoItuOZXbCMe/1VdqET1Gc909rSdkeYg
+++dEQ3XmGN09+0OKEcspEdtRC22T44LATm5RHiA3wkIqc7hI9IZ4tD0P5OzOrWkMLC
+++GXUmkWUodzLwQAASwUNrez4LVI4fA4mZNTdT0Kgo9H/xRq95I32E6pkP5GX+IklA
+++f7Yj5pfQHeL2ZygerApgaNwTvUhT+GyD6Ukd7eB21r599bn+FsTIYqkbBvE+Nle4
+++ZQfZ31lzUxkfkxfXMSbFufupAe6McfU3RdbPZL/4YEW/ukn96olThgJADSmtjxZI
++++5EifMdjmZlPsd6xmcSFIe0GgqYegpprj7niT0HUKH+1+1T7EmwSXaN18vDFtNlz
+++sVmM6ElSvdRR0VKlzGQ5E9JkeHN5ELqtZGPG0OeblCfu40t84t5N+Fyi2Ykdp7Yx
+++6AkBGuXNVnfCFPRgumtFTtUdSc/BdEWLnvE3spfolYpIfOsrw3bMjlr9sm5JpCfX
+++zZxlxjiSXjNrIIaG7VFUdBXsT1ctL/Oa6JbIzCW7nnPTfCHmlqsOczpF6pXP+gPR
+++tFy2nlk6dNPPyiEhiOdv8c9YlwmRi477bnz++jYJATFNbrtLQdN/jN3Txu6gDEcH
++++xvgibcVA7LG8U9T/olOqHdboOIcvOnHdBeOPZVmBQi+4+FPet42fzeP7d+wARED
+++Wou/+EXCqMDW8bhukkac7/1CBZmvnC3mlNtmjAEbi5NT0vPP0sv5ff5zr9KJZnFD
+++1ltO/Qk5GPuxm/2jW05WrUWv6Po0k25rlAKGnT54VoA+6Sl2288NgeZ9ZPC5WByU
+++BF68xMiyeiAyrkRg8sV7raxF6GX3pK+iNcgh63TI8Mko22tHyXsVB3z7mfNnpM+W
+++aSiHrXKQkX9vxjLj4GxkMTfVT9zZfMOMKkKS3EYVVulixJ7NYafw+nGv2018CZiA
+++FeTb0dBh1ATMhoxwpb5kdmzAjnf67wQejQhrI0mBPhn2gmO2ilQdRWydG6sXEi0s
+++dsBXyfSSE3pdC9MD7j98tG/KeXErjWlyfx3FP5YCTbhUKqzd8grwwtBp3Vb1iP8X
+++t9N2YaQq5djme+afg2A2iDahSgXCNuB0RV+roqq0Rroehgytt7QSMkva+AenX6t8
+++lJrAivnHAz7464eD8vzRPRUfxwgX7A1zyE0wV3n45NN9Fv0rrVTo1vaAeakurGWw
+++H5vqFcd2WVN/iKMzQ6S1IUDxUneoyf9qmgsGu4XxAtsOe2myaHaPylwS7fujQaz9
+++bk0ymLXuco7mflouywgROQ==
++ -----END ENCRYPTED PRIVATE KEY-----
++diff --git a/test/keys/client_v3.crt b/test/keys/client_v3.crt
++index a47f156a85..30b160cbd9 100644
++--- a/test/keys/client_v3.crt
+++++ b/test/keys/client_v3.crt
++@@ -1,24 +1,30 @@
++ -----BEGIN CERTIFICATE-----
++-MIIECDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVVMx
++-ETAPBgNVBAgMCE1hcnlsYW5kMRQwEgYDVQQHDAtGb3Jlc3QgSGlsbDEnMCUGA1UE
++-CgweVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uMRYwFAYDVQQLDA1BcGFj
++-aGUgVGhyaWZ0MRIwEAYDVQQDDAlsb2NhbGhvc3QxJDAiBgkqhkiG9w0BCQEWFWRl
++-dkB0aHJpZnQuYXBhY2hlLm9yZzAeFw0xNjAyMjIxMTU4NDFaFw0yNDA1MTAxMTU4
++-NDFaMIGLMQswCQYDVQQGEwJVUzERMA8GA1UECAwITWFyeWxhbmQxFDASBgNVBAcM
++-C0ZvcmVzdCBIaWxsMScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5k
++-YXRpb24xFjAUBgNVBAsMDUFwYWNoZSBUaHJpZnQxEjAQBgNVBAMMCWxvY2FsaG9z
++-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZ0wiQnXg5QMZZWugd/
++-O3woatyHuczJuFSmYiRGWLr3PugB+xtvjy0rTcE2MNx/bdsVxrapCKA+tMFORbEl
++-sF6jk0H+B7BzGoIwHr6N8GP1VOoA2esrhsNEz22aJI00VaFTFE8G/qgFcihyaVWH
++-ZsLa3MakOzFUmOBaV2tLBjCjaznqXw3eo3XwUI0BkgS9b9vqXjScmfWXDw5+1is4
++-bCgumG2zj9EpLypc9qCGNKFBO2YIg0XsIIJ8RprlianjL6P4MfC6GPOyW4NbZaLd
++-ESv/bumpVyuV/C/xqkPahvOwBuPE1loxZZPx6Qv368qn7SVNVZOLyX722spooA5G
++-6csCAwEAAaNPME0wCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwMwYDVR0RBCwwKocE
++-fwAAAYcQAAAAAAAAAAAAAAAAAAAAAYcQAAAAAAAAAAAAAP//fwAAATANBgkqhkiG
++-9w0BAQsFAAOCAQEABUEmeQkG/PS935jMHDrg/5zm4X2xrnFtmTwb0jdxfau6z/7h
++-AbxD5ioyY7FUTNCzI6SyMo9vJJtYCTCuEGr84JjT2R7232z60k4c1z/av01W3Orv
++-ExHfAZ8llhkfu0209T5TaIYCB7hDFj5KDbta8c6fEcwtmlHQWj3M31lSNsr4ZtWW
++-wObhK3sqTsOluHbhKNwlNEat48lbOQUC19I1Wi3dAS6n8lr0lEhfGKvqxu0ViASS
++-N1nLfdkREGp39bYpKg0n6EFw5bYyV4qE3cnIedFJp7NIOM/6xndJMh/c5l6N2uyZ
++-upArRQpw/3j+HkL1x9bs+900QK0GI6AxgjbopA==
+++MIIFOTCCAyGgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsTESMBAGA1UEAwwJbG9j
+++YWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAU
+++BgNVBAsMDUFwYWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdh
+++cmUgRm91bmRhdGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1h
+++cnlsYW5kMQswCQYDVQQGEwJVUzAeFw0yMjA2MzAyMjM3MzlaFw0zMDA5MTYyMjM3
+++MzlaMIGxMRIwEAYDVQQDDAlsb2NhbGhvc3QxJDAiBgkqhkiG9w0BCQEWFWRldkB0
+++aHJpZnQuYXBhY2hlLm9yZzEWMBQGA1UECwwNQXBhY2hlIFRocmlmdDEnMCUGA1UE
+++CgweVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uMRQwEgYDVQQHDAtGb3Jl
+++c3QgSGlsbDERMA8GA1UECAwITWFyeWxhbmQxCzAJBgNVBAYTAlVTMIIBIjANBgkq
+++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsqPCAkuOxPmJ773z1KWaJyYWswj7zTVI
+++Tm/uF0pIMSTzJh136Y7qJDMfKHZuO0EEEuvWgjxuDQCoi9G8lIyq3TV04scUmC0e
+++QpZDizz3XRqW7F2nMzapyp9I2dG0mRwVTb/iWlSIvGfIiWQZaX32P9V7/0CWH3zY
+++Bk7Sve9N5rymcjMQFR7aNlNpU4tw2Oa8Jz8d4CjsljeZQ8K2fE+R9fUN+aq0DQlv
+++hiBuKHHUCpypNneLdc5XB6dUUAsTlq8OjbWLbUqAiK3gdrsIgfx9dxKcBoQxXrkj
+++KM3/VAM2PNFVZ4nz6Klxt5n0QlZBsq4EQmcUxUr7JoVBFkeaJABiQwIDAQABo1ow
+++WDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DA+BgNVHREENzA1hwR/AAABhxAAAAAA
+++AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI
+++hvcNAQELBQADggIBAH8vPs4l8VITIOvuxPPtRngiUteSxU+MQ/oYbuASguNQ7s4f
+++ZmCnBFQm7n0TvFkaR8nSCKrKy0ok3Dm+RflCySq37K/aI+6okQXPkBk4VVcCnd/l
+++Z0V966pqibxrH5oLH69nOBelZPxpmcWy8ZgTYyNGph6GXQ0G5bFRpSNDjrMZjjtu
+++Om40MEMO/k8eD1xXJnuVxdIic8XcSFSLAeTV2ye/stFkU50ZNJy8zAa4D97tTc9z
+++AFgNgb3i08P6Rs8HYOmBY8DxOwFi32kEgsNDnh5oZMj69UwQUSYaFzh+uVPr1b9F
+++qEN66unWJl1/bb9XATfIvLU2nmVXZ32O5POIRdx/mhPSDUtO11OHlnfyrWqjYIUk
+++Q6+iKznR88w+aTQReL+85C71xtFa5UYeEjrsew9YdJZnfURh2gX8Lf8wxpiHatd9
+++msX5er86hqWsV/cbhTkeZiJyh2qP/LZF32VH1ztUkauK7/l3r15pKp9b0pDJl69O
+++KC6MzRWIS7cn/m3Hl9Ghcp3wAS3jgmwNg0PQKlCsWTQ/cmd+9Piy/wx4sdvu8N/M
+++b1lUrduLwO+NisfT+U4lI1aY100S5EjjyUXettorvdmt/947PbLxZgd4ydzXN1q8
+++jmoDZYxLFsbXR5NcbmJ8ldkKDf7E0NTGmHPuk5jM4EwmnnGttHMOnlgn+G5C
++ -----END CERTIFICATE-----
++diff --git a/test/keys/client_v3.key b/test/keys/client_v3.key
++index b989f738e9..1ef93abcfc 100644
++--- a/test/keys/client_v3.key
+++++ b/test/keys/client_v3.key
++@@ -1,27 +1,27 @@
++ -----BEGIN RSA PRIVATE KEY-----
++-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
++ -----END RSA PRIVATE KEY-----
++diff --git a/test/keys/server.crt b/test/keys/server.crt
++index 8a5ef3c3a9..9f04a08eec 100644
++--- a/test/keys/server.crt
+++++ b/test/keys/server.crt
++@@ -1,25 +1,38 @@
++ -----BEGIN CERTIFICATE-----
++-MIIENzCCAx+gAwIBAgIJAOYfYfw7NCOcMA0GCSqGSIb3DQEBBQUAMIGxMQswCQYD
++-VQQGEwJVUzERMA8GA1UECAwITWFyeWxhbmQxFDASBgNVBAcMC0ZvcmVzdCBIaWxs
++-MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFjAUBgNV
++-BAsMDUFwYWNoZSBUaHJpZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3
++-DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMB4XDTE0MDQwNzE4NTgwMFoXDTIy
++-MDYyNDE4NTgwMFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNYXJ5bGFuZDEU
++-MBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdh
++-cmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRocmlmdDESMBAGA1UEAwwJ
++-bG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcw
++-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqE9TE9wEXp5LRtLQVDSGQ
++-GV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCySN8I2Xw6
++-L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/HjKNg6ZKg
++-2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQBGmZmMIUw
++-AinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xku62LipkX
++-wCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDmtrhVQF4n
++-AgMBAAGjUDBOMB0GA1UdDgQWBBQo8v0wzQPx3EEexJPGlxPK1PpgKjAfBgNVHSME
++-GDAWgBQo8v0wzQPx3EEexJPGlxPK1PpgKjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3
++-DQEBBQUAA4IBAQBGFRiJslcX0aJkwZpzTwSUdgcfKbpvNEbCNtVohfQVTI4a/oN5
++-U+yqDZJg3vOaOuiAZqyHcIlZ8qyesCgRN314Tl4/JQ++CW8mKj1meTgo5YFxcZYm
++-T9vsI3C+Nzn84DINgI9mx6yktIt3QOKZRDpzyPkUzxsyJ8J427DaimDrjTR+fTwD
++-1Dh09xeeMnSa5zeV1HEDyJTqCXutLetwQ/IyfmMBhIx+nvB5f67pz/m+Dv6V0r3I
++-p4HCcdnDUDGJbfqtoqsAATQQWO+WWuswB6mOhDbvPTxhRpZq6AkgWqv4S+u3M2GO
++-r5p9FrBgavAw5bKO54C0oQKpN/5fta5l6Ws0
+++MIIGuTCCBKGgAwIBAgIUDG+EIHE1EFeuj0ddWtxGQAPatt8wDQYJKoZIhvcNAQEL
+++BQAwgbExEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3DQEJARYVZGV2QHRo
+++cmlmdC5hcGFjaGUub3JnMRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQK
+++DB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFDASBgNVBAcMC0ZvcmVz
+++dCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFuZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMw
+++MjIzNzI4WhcNMzAwOTE2MjIzNzI4WjCBsTESMBAGA1UEAwwJbG9jYWxob3N0MSQw
+++IgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFw
+++YWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRh
+++dGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1hcnlsYW5kMQsw
+++CQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM/uam3B
+++XjI0x6hfdqdr4ATbiDA7niD8MShpyqBmdpMWu7ng91grZPCDl7T/6xCrdT92NI7m
+++CpnA5hBK/0W8+5Y8NnKjkwZym9H5kO18FQ+hH1mJq3bx57mxsZAE1Iwbr21W/Kxh
+++6Jx279ayywVAU6l9cH/aS5t3pl0qZUysBi3me2J88z6oYA3FNRaxX3kO4I8iJjYu
+++vIfpWmXf8By/TOLzNkR1pJLXe849tAGrTtm+goLw59RMhIgxlS05DH3nGNKamWQ4
+++gr2H5do+2pFzKoom4vCryKgc/NXyEQNc/1FRJsi3/XK/NlezoPw+xV33AeDopmmK
+++VsQ4RJONyVlgksCD2Q2odrCR/ryqirA5BTH8pQFfvCQfr4G6zkSzSDBTC9ZI2IIx
+++JFs87mVpcu+0n+u482vdwsUAeByE3opA99MYrlrZDjLYl40Y0kzWHK42Is3iBz03
+++B4VFKUrsUXa5bcquYPkr1oVycamH1QTwXtgkU6DspAjuR3tUQT4i7sSEnoV8pGl0
+++gLWpGABxhGde0Z0V/x14BNFJ+ZG2uiUpLvMJshqBle1kIj+CqySQMc3mFpkdBTUZ
+++nyVVuVRc6+oGGfBujOvqFKuS9rOhpCSBBVwbq5/lPSgtvy2uBiiTwlFLMgPvV66X
+++xQGbbgTxOjIdrL1i6smD/6RXkbIMKOFb/o4NAgMBAAGjgcYwgcMwHQYDVR0OBBYE
+++FKgE4SRwWu2cxDhjzef4eUmUnR3aMB8GA1UdIwQYMBaAFKgE4SRwWu2cxDhjzef4
+++eUmUnR3aMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgHmMB0GA1Ud
+++JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHREENzA1hwR/AAABhxAAAAAA
+++AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI
+++hvcNAQELBQADggIBAIsl4jTS2dbrt7CStvwInf8InjaGqOrj4c0HDYVYBi33JkHx
+++WasCJbjs+YWsQYcK3/rE9iYyZA/cwIE89x2ec1JX42SrayPLIdUF5VSo+DP3knTH
+++Si7zt3igmziyKTsLoliISwOKwF5mdc+qeOE8CuExi7xIV4xlJxfM+XW6aeHdskof
+++KSTd4qqzyO+wMezKb8u9/b0rMGNCvaM1etcWNlrfP2SXayLAfFkKypSbER1uIUzg
+++ZnhSGyfYee6DrIATihPyOofjbUbqfF7MJtDTqTLhqhkndF+T7IR2LcR4XdtkxtdT
+++F1WwKcM2FX/cjpdtGX76U6hPD6uWXDISk8IiS8HX10x0wamlVvK3zz9UsWwQp5DD
+++EjG/XtMU59oAyiiGIbZllUWKOOabCcId8dvYZw4zoObCrYiYb2qvPcJPyUOzcCPn
+++wsOS22lgTqEfoNzlrmh39YI8pvNDh+t0SkK8Nhllm4o/hIQkIxYlqsp4IkCnyxpO
+++dgRMt2H+98FCNLGs3EIkmaeKD42OyglvdzM0IYHT2VDRfhwpjPvSEw/lJyYIi3R0
+++BEWNGA9Jx+BKZRxmyOerUqCMmImwMoLtKudEHpWz5bXcUkmqsmGXaHabVW7Z3nfN
+++ZwdSLNHgHLNYBGe6Ak198CFHGmP/9XbV41cGNXctfe92baDv5IMgWOi35X5w
++ -----END CERTIFICATE-----
++diff --git a/test/keys/server.key b/test/keys/server.key
++index 263cfce59a..91666cf052 100644
++--- a/test/keys/server.key
+++++ b/test/keys/server.key
++@@ -1,28 +1,52 @@
++ -----BEGIN PRIVATE KEY-----
++-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCqE9TE9wEXp5LR
++-tLQVDSGQGV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCy
++-SN8I2Xw6L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/H
++-jKNg6ZKg2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQB
++-GmZmMIUwAinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xk
++-u62LipkXwCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDm
++-trhVQF4nAgMBAAECggEAW/y52YYW6ypROGbZ94DQpFV0kLO7qT8q0Ksxw5sPNaIt
++-fEPRIymDa8ikyHWJS5Oxmw84wo5jnJV26jaLmwe2Lupq7Xf1lqej8f5LJtuv7cQR
++-xfzp1vM65KJFFJHp6WqjGqJ6HSSZOpVDsnQYcXQjQCdpyAmaSWd3p+FqYSZ1mQmD
++-bFNI7jqpczWSZhTdotQ7p7Hn9TVCehflP3yGIB3bQ+wCcCB85dOBz201L+YgaIck
++-Sz43A4NvWaQIRLRDw7s9GW4jY5T0Jv282WIeAlVpVxLIwu48r4R4yGTIx9Ydowvq
++-57+Y5iPPjAXxu0V9t00oS3bYxDaKh2DUfc/5zowq8QKBgQDYNVPXmaG0aIH4vjQ9
++-7fRdw/UDkYcQbn6CnglQOu77/S8ogQzpKCVJgJgkZNqOVtQMEPzekGEcLTbje1gU
++-8Bky2k+PL9UwbFy0emnOVh4rqrNXHsRvJcehNT/PRb5hjF3MUMFV/0iD4b+naFaE
++-jrSWiZ2ZXj2qfwAK52GFbtOuBQKBgQDJYQuGiY0r22E4waJmCSKczoBT3cwlVzWj
++-V2ljgA9RHLNTVkvNNYQLGu2qngFrtwpeaSnsMDerVG4wKAQWyCnYzxVrlnC4uDrJ
++-HXuFEltBWi9Ffbgfsnd3749AT0oBP1NT2tMleguyf5DFgjCR3VRJLdrVaaZ8row/
++-LqKcFMqnOwKBgB+OIO99l7E584Y3VG6ZdSneOLtNmRXX2pT7tcZE465ZdHGH7Dd3
++-SYHhx9K/+Xn+yDH+pLli/xlarAEldmSP6k2WuTfftlC78AfTOfAId5zN7CDR9791
++-Fx67I9X/itq33tS8EIuZl57P6uXm/4GXRloWOa8xpvRkVsBApuYPl8t1AoGATQDS
++-y2sllDObBXzlgGbV2WgNIgSZ311toTv3jJiXQsjauW8yJRHln+l4H9mzaWDgkiFc
++-ang1kUoDqF5k0eFQPxtQcYdhKwEnWWfwp33RbzfxA32DPnubuzzbZhfrkHaKgnIW
++-cyor9uFYlm2l7ODZLfJez2RKyTplXnOSsmQw6akCgYAz3dj9Hskyj+HVJ+ht1OcE
++-c7ai/ESkSA7Vajp0tjJp0EKjW/zq8DvUSXOtcdnJgkKycFluLwbmnaN4txBds1C1
++-Qr8Rt2sUCCBNZe1L6DHe3XBdbkJe9sgZVNTjtUSQrzy8UhvsCqG4YWeCu07Szcbc
++-rdPUV9/uQkdx8VrShxlD8A==
+++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
+++OV2cxV8xD52Pk7JlPVRIgWOT2Q==
++ -----END PRIVATE KEY-----
++diff --git a/test/keys/server.pem b/test/keys/server.pem
++index c45a9f8acf..127b25874c 100644
++--- a/test/keys/server.pem
+++++ b/test/keys/server.pem
++@@ -1,53 +1,90 @@
++ -----BEGIN CERTIFICATE-----
++-MIIENzCCAx+gAwIBAgIJAOYfYfw7NCOcMA0GCSqGSIb3DQEBBQUAMIGxMQswCQYD
++-VQQGEwJVUzERMA8GA1UECAwITWFyeWxhbmQxFDASBgNVBAcMC0ZvcmVzdCBIaWxs
++-MScwJQYDVQQKDB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFjAUBgNV
++-BAsMDUFwYWNoZSBUaHJpZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3
++-DQEJARYVZGV2QHRocmlmdC5hcGFjaGUub3JnMB4XDTE0MDQwNzE4NTgwMFoXDTIy
++-MDYyNDE4NTgwMFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNYXJ5bGFuZDEU
++-MBIGA1UEBwwLRm9yZXN0IEhpbGwxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdh
++-cmUgRm91bmRhdGlvbjEWMBQGA1UECwwNQXBhY2hlIFRocmlmdDESMBAGA1UEAwwJ
++-bG9jYWxob3N0MSQwIgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcw
++-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqE9TE9wEXp5LRtLQVDSGQ
++-GV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCySN8I2Xw6
++-L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/HjKNg6ZKg
++-2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQBGmZmMIUw
++-AinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xku62LipkX
++-wCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDmtrhVQF4n
++-AgMBAAGjUDBOMB0GA1UdDgQWBBQo8v0wzQPx3EEexJPGlxPK1PpgKjAfBgNVHSME
++-GDAWgBQo8v0wzQPx3EEexJPGlxPK1PpgKjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3
++-DQEBBQUAA4IBAQBGFRiJslcX0aJkwZpzTwSUdgcfKbpvNEbCNtVohfQVTI4a/oN5
++-U+yqDZJg3vOaOuiAZqyHcIlZ8qyesCgRN314Tl4/JQ++CW8mKj1meTgo5YFxcZYm
++-T9vsI3C+Nzn84DINgI9mx6yktIt3QOKZRDpzyPkUzxsyJ8J427DaimDrjTR+fTwD
++-1Dh09xeeMnSa5zeV1HEDyJTqCXutLetwQ/IyfmMBhIx+nvB5f67pz/m+Dv6V0r3I
++-p4HCcdnDUDGJbfqtoqsAATQQWO+WWuswB6mOhDbvPTxhRpZq6AkgWqv4S+u3M2GO
++-r5p9FrBgavAw5bKO54C0oQKpN/5fta5l6Ws0
+++MIIGuTCCBKGgAwIBAgIUDG+EIHE1EFeuj0ddWtxGQAPatt8wDQYJKoZIhvcNAQEL
+++BQAwgbExEjAQBgNVBAMMCWxvY2FsaG9zdDEkMCIGCSqGSIb3DQEJARYVZGV2QHRo
+++cmlmdC5hcGFjaGUub3JnMRYwFAYDVQQLDA1BcGFjaGUgVGhyaWZ0MScwJQYDVQQK
+++DB5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24xFDASBgNVBAcMC0ZvcmVz
+++dCBIaWxsMREwDwYDVQQIDAhNYXJ5bGFuZDELMAkGA1UEBhMCVVMwHhcNMjIwNjMw
+++MjIzNzI4WhcNMzAwOTE2MjIzNzI4WjCBsTESMBAGA1UEAwwJbG9jYWxob3N0MSQw
+++IgYJKoZIhvcNAQkBFhVkZXZAdGhyaWZ0LmFwYWNoZS5vcmcxFjAUBgNVBAsMDUFw
+++YWNoZSBUaHJpZnQxJzAlBgNVBAoMHlRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRh
+++dGlvbjEUMBIGA1UEBwwLRm9yZXN0IEhpbGwxETAPBgNVBAgMCE1hcnlsYW5kMQsw
+++CQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM/uam3B
+++XjI0x6hfdqdr4ATbiDA7niD8MShpyqBmdpMWu7ng91grZPCDl7T/6xCrdT92NI7m
+++CpnA5hBK/0W8+5Y8NnKjkwZym9H5kO18FQ+hH1mJq3bx57mxsZAE1Iwbr21W/Kxh
+++6Jx279ayywVAU6l9cH/aS5t3pl0qZUysBi3me2J88z6oYA3FNRaxX3kO4I8iJjYu
+++vIfpWmXf8By/TOLzNkR1pJLXe849tAGrTtm+goLw59RMhIgxlS05DH3nGNKamWQ4
+++gr2H5do+2pFzKoom4vCryKgc/NXyEQNc/1FRJsi3/XK/NlezoPw+xV33AeDopmmK
+++VsQ4RJONyVlgksCD2Q2odrCR/ryqirA5BTH8pQFfvCQfr4G6zkSzSDBTC9ZI2IIx
+++JFs87mVpcu+0n+u482vdwsUAeByE3opA99MYrlrZDjLYl40Y0kzWHK42Is3iBz03
+++B4VFKUrsUXa5bcquYPkr1oVycamH1QTwXtgkU6DspAjuR3tUQT4i7sSEnoV8pGl0
+++gLWpGABxhGde0Z0V/x14BNFJ+ZG2uiUpLvMJshqBle1kIj+CqySQMc3mFpkdBTUZ
+++nyVVuVRc6+oGGfBujOvqFKuS9rOhpCSBBVwbq5/lPSgtvy2uBiiTwlFLMgPvV66X
+++xQGbbgTxOjIdrL1i6smD/6RXkbIMKOFb/o4NAgMBAAGjgcYwgcMwHQYDVR0OBBYE
+++FKgE4SRwWu2cxDhjzef4eUmUnR3aMB8GA1UdIwQYMBaAFKgE4SRwWu2cxDhjzef4
+++eUmUnR3aMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgHmMB0GA1Ud
+++JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHREENzA1hwR/AAABhxAAAAAA
+++AAAAAAAAAAAAAAABhxAAAAAAAAAAAAAA//9/AAABgglsb2NhbGhvc3QwDQYJKoZI
+++hvcNAQELBQADggIBAIsl4jTS2dbrt7CStvwInf8InjaGqOrj4c0HDYVYBi33JkHx
+++WasCJbjs+YWsQYcK3/rE9iYyZA/cwIE89x2ec1JX42SrayPLIdUF5VSo+DP3knTH
+++Si7zt3igmziyKTsLoliISwOKwF5mdc+qeOE8CuExi7xIV4xlJxfM+XW6aeHdskof
+++KSTd4qqzyO+wMezKb8u9/b0rMGNCvaM1etcWNlrfP2SXayLAfFkKypSbER1uIUzg
+++ZnhSGyfYee6DrIATihPyOofjbUbqfF7MJtDTqTLhqhkndF+T7IR2LcR4XdtkxtdT
+++F1WwKcM2FX/cjpdtGX76U6hPD6uWXDISk8IiS8HX10x0wamlVvK3zz9UsWwQp5DD
+++EjG/XtMU59oAyiiGIbZllUWKOOabCcId8dvYZw4zoObCrYiYb2qvPcJPyUOzcCPn
+++wsOS22lgTqEfoNzlrmh39YI8pvNDh+t0SkK8Nhllm4o/hIQkIxYlqsp4IkCnyxpO
+++dgRMt2H+98FCNLGs3EIkmaeKD42OyglvdzM0IYHT2VDRfhwpjPvSEw/lJyYIi3R0
+++BEWNGA9Jx+BKZRxmyOerUqCMmImwMoLtKudEHpWz5bXcUkmqsmGXaHabVW7Z3nfN
+++ZwdSLNHgHLNYBGe6Ak198CFHGmP/9XbV41cGNXctfe92baDv5IMgWOi35X5w
++ -----END CERTIFICATE-----
++ -----BEGIN PRIVATE KEY-----
++-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCqE9TE9wEXp5LR
++-tLQVDSGQGV78+7ZtP/I/ZaJ6Q6ZGlfxDFvZjFF73seNhAvlKlYm/jflIHYLnNOCy
++-SN8I2Xw6L9MbC+jvwkEKfQo4eDoxZnOZjNF5J1/lZtBeOowMkhhzBMH1Rds351/H
++-jKNg6ZKg2Cldd0j7HbDtEixOLgLbPRpBcaYrLrNMasf3Hal+x8/b8ue28x93HSQB
++-GmZmMIUwAinEu/fNP4lLGl/0kZb76TnyRpYSPYojtS6CnkH+QLYnsRREXJYwD1Xk
++-u62LipkXwCkRTnZ5nUsDMX6FPKgjQFQCWDXG/N096+PRUQAChhrXsJ+gF3NqWtDm
++-trhVQF4nAgMBAAECggEAW/y52YYW6ypROGbZ94DQpFV0kLO7qT8q0Ksxw5sPNaIt
++-fEPRIymDa8ikyHWJS5Oxmw84wo5jnJV26jaLmwe2Lupq7Xf1lqej8f5LJtuv7cQR
++-xfzp1vM65KJFFJHp6WqjGqJ6HSSZOpVDsnQYcXQjQCdpyAmaSWd3p+FqYSZ1mQmD
++-bFNI7jqpczWSZhTdotQ7p7Hn9TVCehflP3yGIB3bQ+wCcCB85dOBz201L+YgaIck
++-Sz43A4NvWaQIRLRDw7s9GW4jY5T0Jv282WIeAlVpVxLIwu48r4R4yGTIx9Ydowvq
++-57+Y5iPPjAXxu0V9t00oS3bYxDaKh2DUfc/5zowq8QKBgQDYNVPXmaG0aIH4vjQ9
++-7fRdw/UDkYcQbn6CnglQOu77/S8ogQzpKCVJgJgkZNqOVtQMEPzekGEcLTbje1gU
++-8Bky2k+PL9UwbFy0emnOVh4rqrNXHsRvJcehNT/PRb5hjF3MUMFV/0iD4b+naFaE
++-jrSWiZ2ZXj2qfwAK52GFbtOuBQKBgQDJYQuGiY0r22E4waJmCSKczoBT3cwlVzWj
++-V2ljgA9RHLNTVkvNNYQLGu2qngFrtwpeaSnsMDerVG4wKAQWyCnYzxVrlnC4uDrJ
++-HXuFEltBWi9Ffbgfsnd3749AT0oBP1NT2tMleguyf5DFgjCR3VRJLdrVaaZ8row/
++-LqKcFMqnOwKBgB+OIO99l7E584Y3VG6ZdSneOLtNmRXX2pT7tcZE465ZdHGH7Dd3
++-SYHhx9K/+Xn+yDH+pLli/xlarAEldmSP6k2WuTfftlC78AfTOfAId5zN7CDR9791
++-Fx67I9X/itq33tS8EIuZl57P6uXm/4GXRloWOa8xpvRkVsBApuYPl8t1AoGATQDS
++-y2sllDObBXzlgGbV2WgNIgSZ311toTv3jJiXQsjauW8yJRHln+l4H9mzaWDgkiFc
++-ang1kUoDqF5k0eFQPxtQcYdhKwEnWWfwp33RbzfxA32DPnubuzzbZhfrkHaKgnIW
++-cyor9uFYlm2l7ODZLfJez2RKyTplXnOSsmQw6akCgYAz3dj9Hskyj+HVJ+ht1OcE
++-c7ai/ESkSA7Vajp0tjJp0EKjW/zq8DvUSXOtcdnJgkKycFluLwbmnaN4txBds1C1
++-Qr8Rt2sUCCBNZe1L6DHe3XBdbkJe9sgZVNTjtUSQrzy8UhvsCqG4YWeCu07Szcbc
++-rdPUV9/uQkdx8VrShxlD8A==
+++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
+++OV2cxV8xD52Pk7JlPVRIgWOT2Q==
++ -----END PRIVATE KEY-----
--- /dev/null
--- /dev/null
++From 88a45ac77518eafb57db08938ecdf38c5fcf7a31 Mon Sep 17 00:00:00 2001
++From: Yiyang Zhou <yiyangzhou123@ucla.edu>
++Date: Wed, 4 Aug 2021 21:55:04 +0800
++Subject: [PATCH] THRIFT-5449: Use poll instead of select in Python
++ TNonblockingServer if available Client: Python
++
++---
++ lib/py/src/server/TNonblockingServer.py | 46 +++++++++++++++++++++++--
++ 1 file changed, 44 insertions(+), 2 deletions(-)
++
++diff --git a/lib/py/src/server/TNonblockingServer.py b/lib/py/src/server/TNonblockingServer.py
++index ac06496511..fdf6779ad2 100644
++--- a/lib/py/src/server/TNonblockingServer.py
+++++ b/lib/py/src/server/TNonblockingServer.py
++@@ -253,6 +253,7 @@ def __init__(self,
++ self._read, self._write = socket.socketpair()
++ self.prepared = False
++ self._stop = False
+++ self.poll = select.poll() if hasattr(select, 'poll') else None
++
++ def setNumThreads(self, num):
++ """Set the number of worker threads that should be created."""
++@@ -318,13 +319,53 @@ def _select(self):
++ else:
++ return select.select(readable, writable, readable) + (True,)
++
+++ def _poll_select(self):
+++ """Does poll on open connections, if available."""
+++ remaining = []
+++
+++ self.poll.register(self.socket.handle.fileno(), select.POLLIN | select.POLLRDNORM)
+++ self.poll.register(self._read.fileno(), select.POLLIN | select.POLLRDNORM)
+++
+++ for i, connection in list(self.clients.items()):
+++ if connection.is_readable():
+++ self.poll.register(connection.fileno(), select.POLLIN | select.POLLRDNORM | select.POLLERR | select.POLLHUP | select.POLLNVAL)
+++ if connection.remaining or connection.received:
+++ remaining.append(connection.fileno())
+++ if connection.is_writeable():
+++ self.poll.register(connection.fileno(), select.POLLOUT | select.POLLWRNORM)
+++ if connection.is_closed():
+++ try:
+++ self.poll.unregister(i)
+++ except KeyError:
+++ logger.debug("KeyError in unregistering connections...")
+++ del self.clients[i]
+++ if remaining:
+++ return remaining, [], [], False
+++
+++ rlist = []
+++ wlist = []
+++ xlist = []
+++ pollres = self.poll.poll()
+++ for fd, event in pollres:
+++ if event & (select.POLLERR | select.POLLHUP | select.POLLNVAL):
+++ xlist.append(fd)
+++ elif event & (select.POLLOUT | select.POLLWRNORM):
+++ wlist.append(fd)
+++ elif event & (select.POLLIN | select.POLLRDNORM):
+++ rlist.append(fd)
+++ else: # should be impossible
+++ logger.debug("reached an impossible state in _poll_select")
+++ xlist.append(fd)
+++
+++ return rlist, wlist, xlist, True
+++
++ def handle(self):
++ """Handle requests.
++
++ WARNING! You must call prepare() BEFORE calling handle()
++ """
++ assert self.prepared, "You have to call prepare before handle"
++- rset, wset, xset, selected = self._select()
+++ rset, wset, xset, selected = self._select() if not self.poll else self._poll_select()
++ for readable in rset:
++ if readable == self._read.fileno():
++ # don't care i just need to clean readable flag
++@@ -343,6 +384,8 @@ def handle(self):
++ connection.read()
++ if connection.received:
++ connection.status = WAIT_PROCESS
+++ if self.poll:
+++ self.poll.unregister(connection.fileno())
++ msg = connection.received.popleft()
++ itransport = TTransport.TMemoryBuffer(msg.buffer, msg.offset)
++ otransport = TTransport.TMemoryBuffer()
++@@ -354,7 +397,6 @@ def handle(self):
++ self.clients[writeable].write()
++ for oob in xset:
++ self.clients[oob].close()
++- del self.clients[oob]
++
++ def close(self):
++ """Closes the server."""
--- /dev/null
--- /dev/null
++Description: these fail in chroot environments
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2021-09-26
++
++---
++
++--- thrift-0.10.0.orig/lib/cpp/test/Makefile.am
+++++ thrift-0.10.0/lib/cpp/test/Makefile.am
++@@ -113,9 +113,10 @@ check_PROGRAMS += \
++ endif
++
++ TESTS_ENVIRONMENT= \
++- BOOST_TEST_LOG_SINK=tests.xml \
++- BOOST_TEST_LOG_LEVEL=test_suite \
++- BOOST_TEST_LOG_FORMAT=XML
+++ BOOST_TEST_LOGGER=XML,test_suite,tests.xml
+++# BOOST_TEST_LOG_SINK=tests.xml \
+++# BOOST_TEST_LOG_LEVEL=test_suite \
+++# BOOST_TEST_LOG_FORMAT=XML
++
++ TESTS = \
++ $(check_PROGRAMS)
--- /dev/null
--- /dev/null
++Description: disable IPv4 only tests
++ As these tests are IPv4 only, fail to work on IPv6 hosts. Disable to prevent
++ FTBFS.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Forwarded: no
++Bug-Debian: https://bugs.debian.org/1011011
++Last-Update: 2022-05-15
++
++---
++
++--- a/lib/cpp/test/Makefile.am
+++++ b/lib/cpp/test/Makefile.am
++@@ -82,7 +82,6 @@ Benchmark_SOURCES = \
++ Benchmark_LDADD = libtestgencpp.la
++
++ check_PROGRAMS = \
++- UnitTests \
++ TFDTransportTest \
++ TPipedTransportTest \
++ DebugProtoTest \
++@@ -105,9 +104,9 @@ check_PROGRAMS = \
++ if AMX_HAVE_LIBEVENT
++ noinst_PROGRAMS += \
++ processor_test
++-check_PROGRAMS += \
++- TNonblockingServerTest \
++- TNonblockingSSLServerTest
+++#check_PROGRAMS += \
+++# TNonblockingServerTest \
+++# TNonblockingSSLServerTest
++ endif
++
++ TESTS_ENVIRONMENT= \
--- /dev/null
--- /dev/null
++Description: Disable TLS v1.0 and TLS v1.1 connection tests
++ TLS v1.0 and TLS v1.1 protocols are disabled as of OpenSSL 1.1.0f-4, see:
++ https://packages.qa.debian.org/o/openssl/news/20170806T233554Z.html
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Bug-Debian: https://bugs.debian.org/859128
++Last-Update: 2021-09-26
++
++---
++
++--- thrift-0.10.0.orig/lib/cpp/test/SecurityTest.cpp
+++++ thrift-0.10.0/lib/cpp/test/SecurityTest.cpp
++@@ -224,11 +224,11 @@ BOOST_AUTO_TEST_CASE(ssl_security_matrix
++ {
++ // server = SSLTLS SSLv2 SSLv3 TLSv1_0 TLSv1_1 TLSv1_2
++ // client
++- /* SSLTLS */ { true, false, false, true, true, true },
+++ /* SSLTLS */ { true, false, false, false, false, true },
++ /* SSLv2 */ { false, false, false, false, false, false },
++ /* SSLv3 */ { false, false, true, false, false, false },
++- /* TLSv1_0 */ { true, false, false, true, false, false },
++- /* TLSv1_1 */ { true, false, false, false, true, false },
+++ /* TLSv1_0 */ { false, false, false, true, false, false },
+++ /* TLSv1_1 */ { false, false, false, false, true, false },
++ /* TLSv1_2 */ { true, false, false, false, false, true }
++ };
++
--- /dev/null
--- /dev/null
++Description: disable failing tests
++ SSL and security tests don't work on buildd machines. Other tests that seem
++ to be incompatible with newer GLib versions.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2022-04-01
++
++---
++
++--- a/lib/c_glib/test/Makefile.am
+++++ b/lib/c_glib/test/Makefile.am
++@@ -47,7 +47,6 @@ check_PROGRAMS = \
++ testapplicationexception \
++ testcontainertest \
++ testtransportsocket \
++- testtransportsslsocket \
++ testbinaryprotocol \
++ testcompactprotocol \
++ testbufferedtransport \
++--- a/lib/cpp/test/Makefile.am
+++++ b/lib/cpp/test/Makefile.am
++@@ -94,8 +94,6 @@ check_PROGRAMS = \
++ TransportTest \
++ TInterruptTest \
++ TServerIntegrationTest \
++- SecurityTest \
++- SecurityFromBufferTest \
++ ZlibTest \
++ TFileTransportTest \
++ link_test \
++--- a/lib/c_glib/test/testthriftbinaryreadcheck.c
+++++ b/lib/c_glib/test/testthriftbinaryreadcheck.c
++@@ -272,8 +272,8 @@ main (int argc, char *argv[])
++ g_test_init (&argc, &argv, NULL);
++
++ g_test_add_func ("/testthriftbinaryreadcheck/CreateAndDestroy", test_create_and_destroy);
++- g_test_add_func ("/testthriftbinaryreadcheck/Initialize", test_initialize);
++- g_test_add_func ("/testthriftbinaryreadcheck/test_read_and_write_complex_types", test_read_and_wirte_complex_types);
+++// g_test_add_func ("/testthriftbinaryreadcheck/Initialize", test_initialize);
+++// g_test_add_func ("/testthriftbinaryreadcheck/test_read_and_write_complex_types", test_read_and_wirte_complex_types);
++
++ return g_test_run ();
++ }
++--- a/lib/c_glib/test/testthriftcompactreadcheck.c
+++++ b/lib/c_glib/test/testthriftcompactreadcheck.c
++@@ -267,9 +267,9 @@ main (int argc, char *argv[])
++
++ g_test_add_func ("/testthriftcompactreadcheck/CreateAndDestroy",
++ test_create_and_destroy);
++- g_test_add_func ("/testthriftcompactreadcheck/Initialize", test_initialize);
++- g_test_add_func ("/testthriftcompactreadcheck/ReadAndWriteComplexTypes",
++- test_read_and_write_complex_types);
+++// g_test_add_func ("/testthriftcompactreadcheck/Initialize", test_initialize);
+++// g_test_add_func ("/testthriftcompactreadcheck/ReadAndWriteComplexTypes",
+++// test_read_and_write_complex_types);
++
++ return g_test_run ();
++ }
++--- a/lib/c_glib/test/testthriftframedreadcheck.c
+++++ b/lib/c_glib/test/testthriftframedreadcheck.c
++@@ -216,7 +216,7 @@ main(int argc, char *argv[])
++ g_test_init (&argc, &argv, NULL);
++
++ g_test_add_func ("/testframedtransport/OpenAndClose", test_open_and_close);
++- g_test_add_func ("/testframedtransport/ReadAndWrite", test_read_and_write);
+++// g_test_add_func ("/testframedtransport/ReadAndWrite", test_read_and_write);
++
++ return g_test_run ();
++ }
--- /dev/null
--- /dev/null
++Description: disable locale specific tests
++ On buildd network locales might not be available.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Forwarded: no
++Last-Update: 2022-03-31
++
++---
++
++
++--- thrift-0.16.0.orig/lib/cpp/test/ToStringTest.cpp
+++++ thrift-0.16.0/lib/cpp/test/ToStringTest.cpp
++@@ -44,6 +44,7 @@ BOOST_AUTO_TEST_CASE(base_types_to_strin
++ // NOTE: Currently (as of 2021.08.12) the locale-based tests do not work on
++ // Windows in the AppVeyor Thrift CI build correctly. Therefore disabled on
++ // Windows:
+++/*
++ #ifndef _WIN32
++ BOOST_AUTO_TEST_CASE(locale_en_US_int_to_string) {
++ #ifdef _WIN32
++@@ -53,7 +54,9 @@ BOOST_AUTO_TEST_CASE(locale_en_US_int_to
++ #endif
++ BOOST_CHECK_EQUAL(to_string(1000000), "1000000");
++ }
+++*/
++
+++/*
++ BOOST_AUTO_TEST_CASE(locale_de_DE_floating_point_to_string) {
++ #ifdef _WIN32
++ std::locale::global(std::locale("de-DE.UTF-8"));
++@@ -65,6 +68,7 @@ BOOST_AUTO_TEST_CASE(locale_de_DE_floati
++ BOOST_CHECK_EQUAL(to_string(1.5L), "1.5");
++ }
++ #endif
+++*/
++
++ BOOST_AUTO_TEST_CASE(empty_vector_to_string) {
++ std::vector<int> l;
--- /dev/null
--- /dev/null
++Description: PHP tests are not phpunit 8 compatible
++ Disable those for now.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2019-09-22
++
++---
++
++--- thrift-0.12.0.orig/lib/php/test/Makefile.am
+++++ thrift-0.12.0/lib/php/test/Makefile.am
++@@ -35,13 +35,13 @@ deps: $(top_srcdir)/composer.json
++ all-local: deps
++
++ check-json-serializer: deps stubs
++- $(PHPUNIT) --log-junit=TEST-log-json-serializer.xml JsonSerialize/
+++# $(PHPUNIT) --log-junit=TEST-log-json-serializer.xml JsonSerialize/
++
++ check-validator: deps stubs
++- $(PHPUNIT) --log-junit=TEST-log-validator.xml Validator/
+++# $(PHPUNIT) --log-junit=TEST-log-validator.xml Validator/
++
++ check-protocol: deps stubs
++- $(PHPUNIT) --log-junit=TEST-log-protocol.xml Protocol/
+++# $(PHPUNIT) --log-junit=TEST-log-protocol.xml Protocol/
++
++ check: deps stubs \
++ check-protocol \
--- /dev/null
--- /dev/null
++From b664cfe2533e4bbf00fd5e7e0211bf7161ee2a04 Mon Sep 17 00:00:00 2001
++From: shangxu <shangxu@domob.cn>
++Date: Fri, 13 Nov 2020 18:03:01 +0800
++Subject: [PATCH] fix Out Of Memory when use TNonblockingServer
++
++---
++ lib/py/src/server/TNonblockingServer.py | 4 ++++
++ 1 file changed, 4 insertions(+)
++
++diff --git a/lib/py/src/server/TNonblockingServer.py b/lib/py/src/server/TNonblockingServer.py
++index f62d486ebc..ac06496511 100644
++--- a/lib/py/src/server/TNonblockingServer.py
+++++ b/lib/py/src/server/TNonblockingServer.py
++@@ -151,6 +151,10 @@ def read(self):
++ while len(self._rbuf) >= self._reading.end:
++ if self._reading.is_header:
++ mlen, = struct.unpack('!i', self._rbuf[:4])
+++ if mlen < 0:
+++ logger.error('could not read the head from frame')
+++ self.close()
+++ break
++ self._reading = Message(self._reading.end, mlen, False)
++ self.status = WAIT_MESSAGE
++ else:
--- /dev/null
--- /dev/null
++Description: Go mod can't be specified
++ Just delete those from Go invocation.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Forwarded: no
++Last-Update: 2022-04-01
++
++---
++
++--- thrift-0.16.0.orig/lib/go/Makefile.am
+++++ thrift-0.16.0/lib/go/Makefile.am
++@@ -31,13 +31,13 @@ install:
++ @echo '##############################################################'
++
++ check-local:
++- $(GO) test -mod=mod ./thrift
+++ $(GO) test ./thrift
++
++ clean-local:
++ $(RM) -rf pkg
++
++ all-local:
++- $(GO) build -mod=mod ./thrift
+++ $(GO) build ./thrift
++
++ EXTRA_DIST = \
++ thrift \
++--- thrift-0.16.0.orig/lib/go/test/Makefile.am
+++++ thrift-0.16.0/lib/go/test/Makefile.am
++@@ -89,7 +89,7 @@ gopath: $(THRIFT) $(THRIFTTEST) \
++ touch gopath
++
++ check: gopath
++- $(GO) build -mod=mod \
+++ $(GO) build \
++ ./gopath/src/includestest \
++ ./gopath/src/binarykeytest \
++ ./gopath/src/servicestest \
++@@ -107,14 +107,14 @@ check: gopath
++ ./gopath/src/duplicateimportstest \
++ ./gopath/src/equalstest \
++ ./gopath/src/conflictargnamestest
++- $(GO) test -mod=mod github.com/apache/thrift/lib/go/thrift
++- $(GO) test -mod=mod ./gopath/src/tests ./gopath/src/dontexportrwtest
+++ $(GO) test github.com/apache/thrift/lib/go/thrift
+++ $(GO) test ./gopath/src/tests ./gopath/src/dontexportrwtest
++
++ clean-local:
++ $(RM) -r gopath ThriftTest.thrift gen-go
++
++ client: stubs
++- $(GO) run -mod=mod TestClient.go
+++ $(GO) run TestClient.go
++
++ EXTRA_DIST = \
++ dontexportrwtest \
++--- thrift-0.16.0.orig/lib/go/test/fuzz/Makefile.am
+++++ thrift-0.16.0/lib/go/test/fuzz/Makefile.am
++@@ -19,12 +19,12 @@
++
++ gopathfuzz: $(THRIFT) fuzz.go
++ $(THRIFT) -r --gen go:thrift_import=github.com/apache/thrift/lib/go/thrift$(COMPILER_EXTRAFLAG) ../../../../tutorial/tutorial.thrift
++- cd gen-go/shared && go mod init shared
++- cd gen-go/tutorial && go mod init tutorial
+++# cd gen-go/shared && go mod init shared
+++# cd gen-go/tutorial && go mod init tutorial
++ touch gopathfuzz
++
++ check: gopathfuzz
++- go test -mod=mod -tags gofuzz
+++ go test -tags gofuzz
++
++ clean-local:
++ $(RM) -r gopathfuzz gen-go
++--- thrift-0.16.0.orig/test/go/Makefile.am
+++++ thrift-0.16.0/test/go/Makefile.am
++@@ -37,13 +37,13 @@ gopath: $(THRIFT) ThriftTest.thrift
++ touch gopath
++
++ bin/testclient: gopath
++- GOPATH=`pwd` $(GO) install -mod=mod ./src/bin/testclient
+++ GOPATH=`pwd` $(GO) install ./src/bin/testclient
++
++ bin/testserver: gopath
++- GOPATH=`pwd` $(GO) install -mod=mod ./src/bin/testserver
+++ GOPATH=`pwd` $(GO) install ./src/bin/testserver
++
++ bin/stress: gopath
++- GOPATH=`pwd` $(GO) install -mod=mod ./src/bin/stress
+++ GOPATH=`pwd` $(GO) install ./src/bin/stress
++
++ clean-local:
++ $(RM) -r src/gen src/github.com/golang src/thrift bin pkg gopath ThriftTest.thrift
++@@ -51,7 +51,7 @@ clean-local:
++ check_PROGRAMS: bin/testclient bin/testserver bin/stress
++
++ check: gopath genmock
++- $(GO) test -mod=mod -v ./src/common/...
+++ $(GO) test -v ./src/common/...
++
++ genmock: gopath
++ sh genmock.sh
--- /dev/null
--- /dev/null
++Description: wait a second after go serve socket
++ Multiple upstream wait time by hundred.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2021-09-26
++
++---
++
++--- thrift-0.11.0.orig/lib/go/test/tests/multiplexed_protocol_test.go
+++++ thrift-0.11.0/lib/go/test/tests/multiplexed_protocol_test.go
++@@ -84,7 +84,7 @@ func TestMultiplexedProtocolFirst(t *tes
++
++ defer server.Stop()
++ go server.Serve()
++- time.Sleep(10 * time.Millisecond)
+++ time.Sleep(1000 * time.Millisecond)
++
++ transport, err := createTransport(addr)
++ if err != nil {
++@@ -123,7 +123,7 @@ func TestMultiplexedProtocolSecond(t *te
++
++ defer server.Stop()
++ go server.Serve()
++- time.Sleep(10 * time.Millisecond)
+++ time.Sleep(1000 * time.Millisecond)
++
++ transport, err := createTransport(addr)
++ if err != nil {
--- /dev/null
--- /dev/null
++Description: add zlib library to link with
++ Need to specify which library contain the zlib functions during linking.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++
++---
++
++--- thrift-0.9.2.orig/test/cpp/Makefile
+++++ thrift-0.9.2/test/cpp/Makefile
++@@ -632,13 +632,13 @@ src/TestClient.$(OBJEXT): src/$(am__dirs
++
++ TestClient$(EXEEXT): $(TestClient_OBJECTS) $(TestClient_DEPENDENCIES) $(EXTRA_TestClient_DEPENDENCIES)
++ @rm -f TestClient$(EXEEXT)
++- $(AM_V_CXXLD)$(CXXLINK) $(TestClient_OBJECTS) $(TestClient_LDADD) $(LIBS)
+++ $(AM_V_CXXLD)$(CXXLINK) $(TestClient_OBJECTS) $(TestClient_LDADD) $(LIBS) $(ZLIB_LIBS)
++ src/TestServer.$(OBJEXT): src/$(am__dirstamp) \
++ src/$(DEPDIR)/$(am__dirstamp)
++
++ TestServer$(EXEEXT): $(TestServer_OBJECTS) $(TestServer_DEPENDENCIES) $(EXTRA_TestServer_DEPENDENCIES)
++ @rm -f TestServer$(EXEEXT)
++- $(AM_V_CXXLD)$(CXXLINK) $(TestServer_OBJECTS) $(TestServer_LDADD) $(LIBS)
+++ $(AM_V_CXXLD)$(CXXLINK) $(TestServer_OBJECTS) $(TestServer_LDADD) $(LIBS) $(ZLIB_LIBS)
++
++ mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++--- thrift-0.9.2.orig/test/cpp/Makefile.in
+++++ thrift-0.9.2/test/cpp/Makefile.in
++@@ -632,13 +632,13 @@ src/TestClient.$(OBJEXT): src/$(am__dirs
++
++ TestClient$(EXEEXT): $(TestClient_OBJECTS) $(TestClient_DEPENDENCIES) $(EXTRA_TestClient_DEPENDENCIES)
++ @rm -f TestClient$(EXEEXT)
++- $(AM_V_CXXLD)$(CXXLINK) $(TestClient_OBJECTS) $(TestClient_LDADD) $(LIBS)
+++ $(AM_V_CXXLD)$(CXXLINK) $(TestClient_OBJECTS) $(TestClient_LDADD) $(LIBS) $(ZLIB_LIBS)
++ src/TestServer.$(OBJEXT): src/$(am__dirstamp) \
++ src/$(DEPDIR)/$(am__dirstamp)
++
++ TestServer$(EXEEXT): $(TestServer_OBJECTS) $(TestServer_DEPENDENCIES) $(EXTRA_TestServer_DEPENDENCIES)
++ @rm -f TestServer$(EXEEXT)
++- $(AM_V_CXXLD)$(CXXLINK) $(TestServer_OBJECTS) $(TestServer_LDADD) $(LIBS)
+++ $(AM_V_CXXLD)$(CXXLINK) $(TestServer_OBJECTS) $(TestServer_LDADD) $(LIBS) $(ZLIB_LIBS)
++
++ mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
--- /dev/null
--- /dev/null
++Description: <short summary of the patch>
++ TODO: Put a short summary on the line above and replace this paragraph
++ with a longer explanation of this change. Complete the meta-information
++ with other relevant fields (see below for details). To make it easier, the
++ information below has been extracted from the changelog. Adjust it or drop
++ it.
++ .
++ thrift (0.16.0-1) experimental; urgency=medium
++ .
++ * New major upstream release.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++
++---
++The information above should follow the Patch Tagging Guidelines, please
++checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
++are templates for supplementary fields that you might want to add:
++
++Origin: <vendor|upstream|other>, <url of original patch>
++Bug: <url in upstream bugtracker>
++Bug-Debian: https://bugs.debian.org/<bugnumber>
++Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
++Forwarded: <no|not-needed|url proving that it has been forwarded>
++Reviewed-By: <name and email of someone who approved the patch>
++Last-Update: 2022-03-28
++
++--- thrift-0.16.0.orig/test/go/src/common/clientserver_test.go
+++++ thrift-0.16.0/test/go/src/common/clientserver_test.go
++@@ -21,14 +21,10 @@ package common
++
++ import (
++ "context"
++- "errors"
++- "reflect"
++ "sync"
++ "testing"
++
++- "github.com/golang/mock/gomock"
++
++- "github.com/apache/thrift/lib/go/thrift"
++ "github.com/apache/thrift/test/go/src/gen/thrifttest"
++ )
++
++@@ -61,6 +57,7 @@ func TestAllConnection(t *testing.T) {
++ }
++
++ func doUnit(t *testing.T, unit *test_unit) {
+++/*
++ ctrl := gomock.NewController(t)
++ defer ctrl.Finish()
++ handler := NewMockThriftTest(ctrl)
++@@ -84,6 +81,7 @@ func doUnit(t *testing.T, unit *test_uni
++ }
++ defer trans.Close()
++ callEverythingWithMock(t, client, handler)
+++*/
++ }
++
++ var rmapmap = map[int32]map[int32]int32{
++@@ -101,6 +99,7 @@ var xxs = &thrifttest.Xtruct{
++ var xcept = &thrifttest.Xception{ErrorCode: 1001, Message: "some"}
++ var defaultCtx = context.Background()
++
+++/*
++ func callEverythingWithMock(t *testing.T, client *thrifttest.ThriftTestClient, handler *MockThriftTest) {
++ gomock.InOrder(
++ handler.EXPECT().TestVoid(gomock.Any()),
++@@ -336,3 +335,4 @@ func callEverythingWithMock(t *testing.T
++ t.Errorf("Unexpected error in TestVoid() call: %s", err)
++ }
++ }
+++*/
--- /dev/null
--- /dev/null
++Description: do not use bundler as per Ruby policy
++ .
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Bug-Debian: https://bugs.debian.org/804668
++Last-Update: 2019-10-23
++
++---
++
++--- a/lib/rb/Makefile.am
+++++ b/lib/rb/Makefile.am
++@@ -22,20 +22,24 @@ DESTDIR ?= /
++ if HAVE_BUNDLER
++
++ all-local:
++- $(BUNDLER) install
++- $(BUNDLER) exec rake build_ext
+++ echo Do not use bundler for all-local
+++# $(BUNDLER) install
+++# $(BUNDLER) exec rake build_ext
++
++ install-exec-hook:
++- $(BUNDLER) exec rake install
+++ echo Do not use bundler for install-exec-hook
+++# $(BUNDLER) exec rake install
++
++ clean-local:
++- $(BUNDLER) install
++- $(BUNDLER) exec rake clean
+++ echo Do not use bundler for clean-local
+++# $(BUNDLER) install
+++# $(BUNDLER) exec rake clean
++ $(RM) -r spec/gen-rb/
++
++ check-local: all
++- $(BUNDLER) install
++- $(BUNDLER) exec rake
+++ echo Do not use bundler for check-local
+++# $(BUNDLER) install
+++# $(BUNDLER) exec rake
++
++ endif
++
++--- a/test/rb/Makefile.am
+++++ b/test/rb/Makefile.am
++@@ -26,8 +26,9 @@ precross: stubs
++
++ check: stubs
++ if HAVE_BUNDLER
++- $(BUNDLER) install
++- $(BUNDLER) exec $(RUBY) -I. test_suite.rb
+++ echo Do not use bundler for check
+++# $(BUNDLER) install
+++# $(BUNDLER) exec $(RUBY) -I. test_suite.rb
++ endif
++
++ clean-local:
--- /dev/null
--- /dev/null
++Description: <short summary of the patch>
++ TODO: Put a short summary on the line above and replace this paragraph
++ with a longer explanation of this change. Complete the meta-information
++ with other relevant fields (see below for details). To make it easier, the
++ information below has been extracted from the changelog. Adjust it or drop
++ it.
++ .
++ thrift (0.12.0-1) experimental; urgency=medium
++ .
++ * New major upstream release.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++
++---
++The information above should follow the Patch Tagging Guidelines, please
++checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
++are templates for supplementary fields that you might want to add:
++
++Origin: <vendor|upstream|other>, <url of original patch>
++Bug: <url in upstream bugtracker>
++Bug-Debian: https://bugs.debian.org/<bugnumber>
++Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
++Forwarded: <no|not-needed|url proving that it has been forwarded>
++Reviewed-By: <name and email of someone who approved the patch>
++Last-Update: 2019-09-18
++
++--- thrift-0.12.0.orig/lib/php/test/Makefile.am
+++++ thrift-0.12.0/lib/php/test/Makefile.am
++@@ -30,7 +30,7 @@ stubs: ../../../test/ThriftTest.thrift
++ $(THRIFT) --gen php:json -r --out ./packages/phpjs TestValidators.thrift
++
++ deps: $(top_srcdir)/composer.json
++- composer install --working-dir=$(top_srcdir)
+++ echo Disabled composer install --working-dir=$(top_srcdir)
++
++ all-local: deps
++
--- /dev/null
--- /dev/null
++Description: run simple Go test only
++ Race testing is available on amd64, ppc64le and arm64 only.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2022-04-01
++
++---
++
++--- a/lib/go/Makefile.am
+++++ b/lib/go/Makefile.am
++@@ -31,7 +31,7 @@ install:
++ @echo '##############################################################'
++
++ check-local:
++- $(GO) test -mod=mod -race ./thrift
+++ $(GO) test -mod=mod ./thrift
++
++ clean-local:
++ $(RM) -rf pkg
--- /dev/null
--- /dev/null
++Description: no need for ANT Maven task
++ Just disable its download.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++
++---
++
++--- thrift-0.9.2.orig/lib/java/build.xml
+++++ thrift-0.9.2/lib/java/build.xml
++@@ -295,7 +295,9 @@
++ </target>
++
++ <target name="mvn.ant.tasks.download" depends="setup.init,mvn.ant.tasks.check,proxy" unless="mvn.ant.tasks.found">
+++<!--
++ <get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/>
+++-->
++ </target>
++
++ <target name="mvn.ant.tasks.check">
--- /dev/null
--- /dev/null
++Description: don't test servers that need shmem
++ As buildd's don't have shmem enabled / mounted, tests would fail.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2017-09-11
++
++---
++
++--- thrift-0.9.2.orig/test/py/RunClientServer.py
+++++ thrift-0.9.2/test/py/RunClientServer.py
++@@ -69,7 +69,8 @@ def default_servers():
++ 'THttpServer',
++ ]
++ if platform.system() != 'Windows':
++- servers.append('TProcessPoolServer')
+++# buildd servers don't have shmem enabled
+++# servers.append('TProcessPoolServer')
++ servers.append('TForkingServer')
++ return servers
++
--- /dev/null
--- /dev/null
++Description: node is called nodejs in Debian
++ Use the proper binary name.
++Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
++Last-Update: 2019-10-23
++
++---
++
++--- a/lib/nodejs/test/testAll.sh
+++++ b/lib/nodejs/test/testAll.sh
++@@ -45,7 +45,7 @@ testServer()
++ ${ISTANBUL} cover ${DIR}/server.js --dir ${REPORT_PREFIX}${COUNT} --handle-sigint -- --type $2 -p $3 -t $4 $5 &
++ COUNT=$((COUNT+1))
++ else
++- node ${DIR}/server.js --${1} --type $2 -p $3 -t $4 $5 &
+++ nodejs ${DIR}/server.js --${1} --type $2 -p $3 -t $4 $5 &
++ fi
++ SERVERPID=$!
++ sleep 0.1
++@@ -53,7 +53,7 @@ testServer()
++ ${ISTANBUL} cover ${DIR}/client.js --dir ${REPORT_PREFIX}${COUNT} -- --${1} --type $2 -p $3 -t $4 $5 || RET=1
++ COUNT=$((COUNT+1))
++ else
++- node ${DIR}/client.js --${1} --type $2 -p $3 -t $4 $5 || RET=1
+++ nodejs ${DIR}/client.js --${1} --type $2 -p $3 -t $4 $5 || RET=1
++ fi
++ kill -2 $SERVERPID || RET=1
++ wait $SERVERPID
++@@ -117,9 +117,9 @@ fi
++
++ # unit tests
++
++-node ${DIR}/binary.test.js || TESTOK=1
++-node ${DIR}/int64.test.js || TESTOK=1
++-node ${DIR}/deep-constructor.test.js || TESTOK=1
+++nodejs ${DIR}/binary.test.js || TESTOK=1
+++nodejs ${DIR}/int64.test.js || TESTOK=1
+++nodejs ${DIR}/deep-constructor.test.js || TESTOK=1
++
++ # integration tests
++
--- /dev/null
--- /dev/null
++##link_with_zlib.patch
++#no_pom.patch
++node_is_nodejs.patch
++no_bundler_use.patch
++broken_boost_1.62.patch
++disable_TLSv1_0_and_TLSv1_1.patch
++no_shmem.patch
++disable_failing_tests.patch
++go_test_fail_on_busy_machine.patch
++no_composer_install.patch
++disable_php_testing.patch
++disable_locale_tests.patch
++no_go_race.patch
++#/no_gradlew.patch
++missing_go_test.patch
++#/link_tests_atomic.patch
++go_no_mod.patch
++fix_out_of_memory.patch
++THRIFT-5449.patch
++disable_IPv4_only_tests.patch
++Replace_outdated_TLS_test_keys.patch
--- /dev/null
--- /dev/null
++etc/php.d/thrift_protocol.ini /etc/php/7.3/mods-available/
++usr/lib/php/
--- /dev/null
--- /dev/null
++usr/lib/python3/*-packages/*.egg-info
++usr/lib/python3/*-packages/thrift/
--- /dev/null
- # Sample debian/rules that uses debhelper.
- #
- # This file was originally written by Joey Hess and Craig Small.
- # As a special exception, when this file is copied by dh-make into a
- # dh-make output file, you may use that output file without restriction.
- # This special exception was added by Craig Small in version 0.37 of dh-make.
- #
- # Modified to make a template file for a multi-binary package with separated
- # build-arch and build-indep targets by Bill Allombert 2001
+#!/usr/bin/make -f
+# -*- makefile -*-
- # This has to be exported to make some magic below work.
- export DH_OPTIONS
-
- PYVERS := $(shell pyversions -r)
-
- export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
- export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
- export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
- export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)
-
- configure: configure-stamp
- configure-stamp:
- dh_testdir
-
- # Add here commands to configure the package.
- if [ -f bootstrap.sh ]; then $(CURDIR)/bootstrap.sh; fi
- $(CURDIR)/configure --prefix=/usr --enable-plugin=no
-
- touch configure-stamp
-
-
- #Architecture
- build: build-arch build-indep
- # Tests disabled
- # $(MAKE) -C test check
-
- build-arch: build-arch-stamp
- $(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp
-
- # Compile compiler
- $(MAKE) -C $(CURDIR)/compiler/cpp
-
- # Compile C++ library
- $(MAKE) -C $(CURDIR)/lib/cpp
-
- # Compile C (glib) library
- $(MAKE) -C $(CURDIR)/lib/c_glib
-
- # Python library
- cd $(CURDIR)/lib/py && \
- for py in $(PYVERS); do \
- $$py setup.py build; \
- $$py-dbg setup.py build; \
- done
-
- # PHP
- cd $(CURDIR)/lib/php/src/ext/thrift_protocol && \
- phpize && \
- ./configure && $(MAKE)
-
- touch $@
-
- build-indep: build-indep-stamp
- build-indep-stamp: configure-stamp $(CURDIR)/compiler/cpp/thrift
-
- # Add here commands to compile the indep part of the package.
- #$(MAKE) doc
-
- # Java
- cd $(CURDIR)/lib/java && \
- ./gradlew --no-daemon -Prelease=true jar
-
- # C#
- $(MAKE) -C $(CURDIR)/lib/netstd
-
- # Ruby
- $(MAKE) -C $(CURDIR)/lib/rb
-
- # Perl
- $(MAKE) -C $(CURDIR)/lib/perl INSTALLDIRS=vendor
-
- touch $@
-
- clean:
- dh_testdir
- dh_testroot
- rm -f build-arch-stamp build-indep-stamp configure-stamp
-
- cd $(CURDIR)/lib/py && python setup.py clean --all
-
- # Add here commands to clean up after the build process.
- -$(MAKE) clean
-
- dh_clean
-
- install: install-indep install-arch
- install-indep:
- dh_testdir
- dh_testroot
- dh_prep -i
- dh_installdirs -i
-
- # Add here commands to install the indep part of the package into
- # debian/<package>-doc.
- #INSTALLDOC#
-
- # Java
- mkdir -p $(CURDIR)/debian/libthrift-java/usr/share/java/ && \
- cp $(CURDIR)/lib/java/build/libs/libthrift*.jar \
- $(CURDIR)/debian/libthrift-java/usr/share/java/
-
- # Ruby
- mkdir -p $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 && \
- cp $(CURDIR)/lib/rb/lib/thrift.rb \
- $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1
- cp -r $(CURDIR)/lib/rb/lib/thrift \
- $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1
-
- # C#
- mkdir -p $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/ && \
- cp $(CURDIR)/lib/netstd/Thrift/bin/Release/netstandard2.0/Thrift.dll \
- $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/Thrift.dll
-
- # Perl
- $(MAKE) -C $(CURDIR)/lib/perl install DESTDIR=$(CURDIR)/debian/libthrift-perl
- mkdir -p $(CURDIR)/debian/libthrift-perl/usr/share
- mv $(CURDIR)/debian/libthrift-perl/usr/local/lib/perl5 $(CURDIR)/debian/libthrift-perl/usr/share
- rmdir $(CURDIR)/debian/libthrift-perl/usr/local/lib
- rmdir $(CURDIR)/debian/libthrift-perl/usr/local
-
- dh_install -i
-
- install-arch:
- dh_testdir
- dh_testroot
- dh_clean -k -s
- dh_installdirs -s
-
- # Add here commands to install the arch part of the package into
- # debian/tmp.
- #$(MAKE) DESTDIR=$(CURDIR)/debian/thrift install
-
- # Compiler
- mkdir -p $(CURDIR)/debian/thrift-compiler/usr/bin && \
- cp $(CURDIR)/compiler/cpp/thrift \
- $(CURDIR)/debian/thrift-compiler/usr/bin/thrift && \
- rmdir $(CURDIR)/debian/thrift-compiler/usr/sbin
-
- # Python
- cd $(CURDIR)/lib/py && \
- python2 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift && \
- python2-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift-dbg && \
- python3 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift && \
- python3-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift-dbg
-
- find $(CURDIR)/debian/python-thrift -name "*.py[co]" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python-thrift -name "__pycache__" -print0 | xargs -0 rm -fr
- find $(CURDIR)/debian/python-thrift-dbg -name "__pycache__" -print0 | xargs -0 rm -fr
- find $(CURDIR)/debian/python-thrift-dbg -name "*.py[co]" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf
- find $(CURDIR)/debian/python-thrift-dbg -depth -type d -empty -exec rmdir {} \;
-
- find $(CURDIR)/debian/python3-thrift -name "*.py[co]" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python3-thrift -name "__pycache__" -print0 | xargs -0 rm -fr
- find $(CURDIR)/debian/python3-thrift-dbg -name "__pycache__" -print0 | xargs -0 rm -fr
- find $(CURDIR)/debian/python3-thrift-dbg -name "*.py[co]" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python3-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f
- find $(CURDIR)/debian/python3-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf
- find $(CURDIR)/debian/python3-thrift-dbg -depth -type d -empty -exec rmdir {} \;
-
- # PHP
- mkdir -p $(CURDIR)/debian/php5-thrift
- cd $(CURDIR)/lib/php && \
- $(MAKE) DESTDIR=$(CURDIR)/debian/php5-thrift install
-
- # C++ and C (glib)
- mkdir -p $(CURDIR)/debian/tmp; \
- cd $(CURDIR)/lib/cpp && \
- $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
- cd $(CURDIR)/lib/c_glib && \
- $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
- dh_install --sourcedir=debian/tmp -s
-
-
- # Must not depend on anything. This is to be called by
- # binary-arch/binary-indep
- # in another 'make' thread.
- binary-common:
- dh_testdir
- dh_testroot
- dh_installchangelogs
- dh_installdocs
- dh_installexamples
- dh_installman
- dh_link
- dh_strip -plibthrift0 --dbg-package=libthrift0-dbg
- dh_strip -ppython-thrift --dbg-package=python-thrift-dbg
- dh_strip -ppython3-thrift --dbg-package=python3-thrift-dbg
- dh_strip -pthrift-compiler
- dh_compress
- dh_fixperms
- dh_makeshlibs
- dh_installdeb
- dh_perl
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
- # Build architecture independent packages using the common target.
- binary-indep: build-indep install-indep
- $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
-
- # Build architecture dependent packages using the common target.
- binary-arch: build-arch install-arch
- echo "php:Depends=phpapi-$(shell php-config5 --phpapi)" > $(CURDIR)/debian/substvars
- $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
-
- binary: binary-arch binary-indep
- .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
++export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++
++# for Java install
++#export CLASSPATH=/usr/share/java/commons-codec.jar:/usr/share/java/commons-logging.jar:/usr/share/java/slf4j-simple.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/servlet-api-3.1.jar:/usr/share/java/httpcore.jar:/usr/share/java/httpclient.jar:/usr/share/java/junit4.jar:/usr/share/java/ant-junit.jar:.
++
++export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions
++
++ifneq (,$(filter $(DEB_HOST_ARCH), armel mipsel))
++ export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
++endif
++
++# Go 1.16 expects a go.mod file by default and thrift Go extension does not
++# contain that, let's turn it off for now.
++#export GO111MODULE=off
++
++# for Go install
++export DH_GOPKG=thrift
++export XDG_CACHE_HOME=$(CURDIR)/go-cache/
++
++# for Ruby install
++export DESTDIR=$(CURDIR)/debian/tmp/
++
++#export JAVA_PREFIX=/usr/share/java/
++export PERL_PREFIX=/usr/
++export INSTALLDIRS=vendor
++
++export QT_SELECT=qt5
++
++# Set install Perl locations
++ARCHLIB := $(shell perl -MConfig -e 'print $$Config{vendorarch}')
++
++RUBY_LIBDIR := $(shell ruby -rrbconfig -e'print RbConfig::CONFIG["vendordir"]')
++
++PYTHON3_VERSIONS = $(shell py3versions -r)
++
++override_dh_autoreconf:
++ $(CURDIR)/bootstrap.sh
++
++override_dh_auto_clean:
++ $(RM) -r $(CURDIR)/go-cache/
++ $(RM) $(CURDIR)/test/go/genmock.sh
++ $(RM) -r $(CURDIR)/lib/py/build/ \
++ $(CURDIR)/lib/py/thrift.egg-info/
++ $(RM) $(CURDIR)/test/go/src/github.com \
++ $(CURDIR)/test/go/src/golang.org/x/tools \
++ $(CURDIR)/test/go/src/golang.org/x/net \
++ $(CURDIR)/lib/go/test/gopath/src/golang.org/x/net \
++ $(CURDIR)/lib/go/test/gopath/src/github.com/golang/mock
++ [ ! -f Makefile ] || $(MAKE) clean
++ cd $(CURDIR)/lib/php/src/ext/thrift_protocol/ && phpize --clean
++ find $(CURDIR) \( -name Makefile -o -name Makefile.in \) -exec rm {} \;
++ find $(CURDIR) -name .dirstamp -exec rm {} \;
++ $(RM) aclocal/libtool.m4 aclocal/lt*
++ $(RM) aclocal.m4 config.guess config.h config.log config.status \
++ config.sub configure configure.scan depcomp libtool stamp-h1 \
++ lib/cpp/*.pc lib/c_glib/thrift_c_glib.pc
++ $(RM) lib/c_glib/src/thrift/config.h \
++ lib/c_glib/src/thrift/stamp-h3 \
++ lib/cpp/src/thrift/config.h \
++ lib/cpp/src/thrift/stamp-h2 \
++ lib/cpp/test/tests.xml
++ $(RM) autoscan.log config.hin
++# jh_clean
++ # let dh clean
++ dh_auto_clean
++
++override_dh_auto_configure:
++ dh_auto_configure -- \
++ --with-cpp --with-c_glib --with-php --with-php_extension \
++ --with-perl --without-python --with-py3 --without-java \
++ --without-nodejs --without-erlang --without-lua \
++ --with-go --with-ruby \
++ --with-qt4=no --with-qt5=yes \
++ --without-rust \
++ --disable-tutorial
++
++override_dh_auto_build:
++# mkdir -p $(CURDIR)/lib/java/build/lib/
++ # symlinks for Go build
++ mkdir -p $(CURDIR)/lib/go/test/gopath/src/
++ ln -s /usr/share/gocode/src/github.com \
++ $(CURDIR)/test/go/src/
++ mkdir -p $(CURDIR)/lib/go/test/gopath/src/golang.org/x/
++ ln -s /usr/share/gocode/src/golang.org/x/net \
++ $(CURDIR)/lib/go/test/gopath/src/golang.org/x/
++
++ dh_auto_build --no-parallel
++ set -ex; cd lib/py && for python in $(PYTHON3_VERSIONS); do \
++ $$python setup.py build; \
++ done
++# jh_build thrift.jar $(CURDIR)/lib/java/src/
++
++override_dh_auto_install:
++ dh_auto_install -- INSTALLDIRS=vendor
++ set -ex; cd lib/py && for python in $(PYTHON3_VERSIONS); do \
++ $$python setup.py install --install-layout=deb --root=$(CURDIR)/debian/tmp; \
++ done
++# jh_installlibs -plibthrift-java thrift.jar
++# jh_installjavadoc
++# jh_depends
++
++ find $(CURDIR)/debian/tmp/ -name \*.la -exec rm {} \;
++ find $(CURDIR)/debian/tmp/ -name config.h -exec rm {} \;
++
++override_dh_missing:
++ dh_missing --list-missing
++
++override_dh_auto_test:
++ cd $(CURDIR)/lib/c_glib/test/ && \
++ $(MAKE) gen-c_glib/t_test_enum_test_types.h
++ mkdir -p $(CURDIR)/vendor/bin/
++ ln -s /usr/bin/phpunit $(CURDIR)/vendor/bin/
++ ln -s $(CURDIR)/lib/php/src/autoload.php $(CURDIR)/vendor/
++ touch $(CURDIR)/test/go/genmock.sh
++ mkdir -p $(CURDIR)/test/go/src/golang.org/x/
++ # symlinks for Go testing
++ ln -s /usr/share/gocode/src/golang.org/x/tools \
++ $(CURDIR)/test/go/src/golang.org/x/
++ ln -s /usr/share/gocode/src/golang.org/x/net/ \
++ $(CURDIR)/test/go/src/golang.org/x/
++ # GOPATH set automatically to $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)
++ mkdir -p $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/github.com/apache/thrift/lib/
++ ln -s $(CURDIR)/lib/go \
++ $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/github.com/apache/thrift/lib/
++ mkdir -p $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/github.com/golang/
++ ln -s /usr/share/gocode/src/github.com/golang/mock \
++ $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/github.com/golang/
++ ln -s $(CURDIR)/lib/go/test/fuzz/gen-go/shared \
++ $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/
++ ln -s $(CURDIR)/lib/go/test/fuzz/gen-go/tutorial \
++ $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/
++ ln -s $(CURDIR)/test \
++ $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)/src/github.com/apache/thrift/
++ dh_auto_test --no-parallel
++
++%:
++ dh $@ --with python3,ruby,phpcomposer
++
++.PHONY: override_dh_autoreconf override_dh_auto_clean \
++ override_dh_auto_configure override_dh_auto_install \
++ override_dh_missing override_dh_auto_test
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++# Long lines only
++source-is-missing [lib/js/test/phantom-client.js]
++source-is-missing [lib/js/test/test-async.js]
++source: source-is-missing [lib/js/test/test-es6.js]
++source: source-is-missing [lib/js/test/test.js]
++
++# Only one file, not the whole source
++license-problem-php-license debian/copyright
--- /dev/null
--- /dev/null
++NOTICE
--- /dev/null
--- /dev/null
++tutorial/tutorial.thrift
++tutorial/shared.thrift
--- /dev/null
--- /dev/null
++usr/bin/
--- /dev/null
--- /dev/null
++debian/thrift.1
--- /dev/null
- #DOCS#
-
++NOTICE
--- /dev/null
--- /dev/null
++.TH "THRIFT" "1" "July 9, 2012" "thrift-compiler" "thrift"
++.SH NAME
++thrift \ - code generator/compiler for Thrift IDL
++.SH SYNOPSIS
++.B thrift
++[options] \fIsource_file\fR
++.SH DESCRIPTION
++Thrift is a framework for efficient serialization and RPC services. The
++.B thrift
++compiler accepts a source file containing definitions of Thrift structs and services,
++and generates the language-specific code to implement them.
++.SH OPTIONS
++.TP
++\fB\-version\fR
++.RS 4
++print the compiler version and exit
++.RE
++.TP
++\fB\-o DIRECTORY\fR
++.RS 4
++Set the output directory for gen-* packages (default: current directory)
++.RE
++.TP
++\fB\-out DIRECTORY\fR
++.RS 4
++Set the ouput location for generated files. (no gen-* folder will be created)
++.RE
++.TP
++\fB\-I DIRECTORY\fR
++.RS 4
++Add a directory to the list of directories searched for include directives
++.RE
++.TP
++\fB\-nowarn\fR
++.RS 4
++Suppress all compiler warnings (BAD!)
++.RE
++.TP
++\fB\-strict\fR
++.RS 4
++Strict compiler warnings on
++.RE
++.TP
++\fB\-v[erbose]\fR
++.RS 4
++Verbose mode
++.RE
++.TP
++\fB\-r[ecurse]\fR
++.RS 4
++Also generate included files
++.RE
++.TP
++\fB\-debug\fR
++.RS 4
++Parse debug trace to stdout
++.RE
++.TP
++\fB\-\-gen STRING\fR
++.RS 4
++Generate code with a dynamically-registered generator. STRING has the form
++language[:key1=val1[,key2,[key3=val3]]]. Keys and values are options passed to
++the generator. Many options will not require values. For a complete list of
++supported generators, run
++.B thrift
++without arguments.
++.RE
++.SH AUTHOR
++Thrift is a top-level project of the Apache Software Foundation, (see
++http://thrift.apache.org).
++.PP
++This manual page was written by Eric Evans <eevans@debian.org> for the Debian
++system (but may be used by others). Permission is granted to copy, distribute
++and/or modify this document under the terms of the GNU General Public License,
++Version 2 or any later version published by the Free Software Foundation.
++.PP
++On Debian systems, the complete text of the GNU General Public License can be
++found in /usr/share/common-licenses/GPL.
--- /dev/null
--- /dev/null
++version=3
++https://thrift.apache.org/download .*/thrift-(\d[\d\.]+)\.(?:tgz|tar\.(?:gz|bz2|xz))