Update to thrift 0.10.0

This commit is contained in:
Christopher Tubbs 2017-03-07 17:20:17 -05:00
parent 3a041d9d4d
commit 3632b2acec
12 changed files with 214 additions and 436 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/0.9.1.tar.gz
/thrift-0.10.0.tar.gz

View File

@ -38,6 +38,14 @@ else
exit 1
fi
# we require automake 1.13 or later
# check must happen externally due to use of newer macro
AUTOMAKE_VERSION=`automake --version | grep automake | egrep -o '([0-9]{1,}\.)+[0-9]{1,}'`
if [ "$AUTOMAKE_VERSION" \< "1.13" ]; then
echo >&2 "automake version $AUTOMAKE_VERSION is too old (need 1.13 or later)"
exit 1
fi
autoscan
$LIBTOOLIZE --copy --automake
aclocal -I ./aclocal

View File

@ -0,0 +1,16 @@
diff --git a/configure.ac b/configure.ac
index 0972abf..77107fc 100755
--- a/configure.ac
+++ b/configure.ac
@@ -34,10 +34,7 @@ AC_ARG_VAR([PY_PREFIX], [Prefix for installing Python modules.
AS_IF([test "x$PY_PREFIX" = x], [PY_PREFIX="/usr"])
AC_ARG_VAR([JAVA_PREFIX], [Prefix for installing the Java lib jar.
- Default = "/usr/local/lib"])
-AS_IF([test "x$JAVA_PREFIX" != x], [JAVA_PREFIX="$JAVA_PREFIX/usr/local/lib"],
- [test "x$PREFIX" != x], [JAVA_PREFIX="$PREFIX/usr/local/lib"],
- [JAVA_PREFIX="/usr/local/lib"])
+ Default = "/usr/share/java"])
AC_ARG_VAR([RUBY_PREFIX], [Prefix for installing Ruby modules.
(Normal --prefix is ignored for Ruby because

View File

@ -12,15 +12,6 @@ index 8f2fa51..d89f05e 100755
<!-- project wide settings. All directories relative to basedir -->
<property name="thrift.root" location="${basedir}/../../../"/>
@@ -26,7 +25,7 @@
<property name="interface.dir" value="${basedir}/../if"/>
<property name="thrift.java.dir" location="${thrift.root}/lib/java"/>
<property name="build.tools.dir" location="${thrift.java.dir}/build/tools/"/>
- <property name="thrift_compiler" value="${thrift.root}/compiler/cpp/thrift"/>
+ <property name="thrift_compiler" value="${thrift.root}/compiler/cpp/thrift"/>
<!-- inherit from the java build file for version and other properties -->
<property file="${thrift.java.dir}/build.properties" />
@@ -38,8 +37,8 @@
</condition>
<property name="version" value="${thrift.version}-snapshot"/>

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.thrift</groupId>
<artifactId>libfb303</artifactId>
<version>0.9.1</version>
<version>0.10.0</version>
<packaging>pom</packaging>
<name>Apache Thrift</name>
<description>Thrift is a software framework for scalable cross-language services development.</description>
@ -98,7 +98,7 @@
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.1</version>
<version>0.10.0</version>
</dependency>
</dependencies>
</project>

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.1</version>
<version>0.10.0</version>
<packaging>pom</packaging>
<name>Apache Thrift</name>
<description>Thrift is a software framework for scalable cross-language services development.</description>
@ -98,12 +98,7 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
@ -114,12 +109,12 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.5</version>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2.4</version>
<version>4.4.1</version>
</dependency>
</dependencies>
</project>

View File

@ -1 +1 @@
147e8f2d3e48a272559aea554afdaf81 0.9.1.tar.gz
SHA512 (thrift-0.10.0.tar.gz) = 3695cf0fb0e4080b02446ab694fb61476997d8b181942dd6fe1e3e7cf0dcf990b4184ea33f9d0bc290b96200f702cf1ac1579e36b6b5bfe9ba8914b2d2938ddc

View File

@ -1,5 +1,5 @@
diff --git a/lib/java/build.xml b/lib/java/build.xml
index c2bfd9c..69525e7 100755
index 40e5284..db1ce54 100644
--- a/lib/java/build.xml
+++ b/lib/java/build.xml
@@ -17,8 +17,7 @@
@ -9,16 +9,16 @@ index c2bfd9c..69525e7 100755
-<project name="libthrift" default="dist" basedir="."
- xmlns:artifact="antlib:org.apache.maven.artifact.ant">
+<project name="libthrift" default="dist" basedir=".">
<description>Thrift Build File</description>
<property name="thrift.root" location="../../"/>
@@ -64,8 +63,15 @@
@@ -67,8 +66,15 @@
<property name="pom.xml" location="${build.dir}/${final.name}.pom"/>
<path id="compile.classpath">
- <fileset dir="${build.lib.dir}">
- <fileset dir="${build.lib.dir}">
- <include name="**/*.jar"/>
+ <fileset dir="/usr/share/java">
+ <fileset dir="/usr/share/java">
+ <include name="commons-codec.jar"/>
+ <include name="commons-lang.jar"/>
+ <include name="commons-logging.jar"/>
@ -30,23 +30,24 @@ index c2bfd9c..69525e7 100755
</fileset>
</path>
@@ -75,10 +81,14 @@
@@ -78,11 +84,14 @@
<pathelement location="${build.test.dir}"/>
<pathelement location="${jar.file}"/>
<pathelement location="${test.jar.file}"/>
+ <fileset dir="/usr/share/java">
-
+ <fileset dir="/usr/share/java">
+ <include name="junit.jar"/>
+ <include name="slf4j/log4j12.jar"/>
+ </fileset>
</path>
<!-- Tasks -->
<!-- Tasks -->
- <target name="init" depends="setup.init,mvn.init" unless="init.finished">
+ <target name="init" depends="setup.init" unless="init.finished">
<property name="init.finished" value="true"/>
</target>
@@ -262,121 +272,12 @@
@@ -295,120 +304,12 @@
</target>
<target name="mvn.ant.tasks.download" depends="setup.init,mvn.ant.tasks.check,proxy" unless="mvn.ant.tasks.found">
@ -57,7 +58,7 @@ index c2bfd9c..69525e7 100755
- <condition property="mvn.ant.tasks.found">
- <typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
- </condition>
</target>
</target>
- <target name="mvn.init" depends="mvn.ant.tasks.download" unless="mvn.finished">
- <!-- Download mvn ant tasks, download dependencies, and setup pom file -->
@ -68,10 +69,10 @@ index c2bfd9c..69525e7 100755
- <artifact:remoteRepository id="apache" url="${apache.repo}"/>
-
- <!-- Pom file information -->
- <artifact:pom id="pom"
- groupId="${thrift.groupid}"
- <artifact:pom id="pom"
- groupId="${thrift.groupid}"
- artifactId="${thrift.artifactid}"
- version="${version}"
- version="${version}"
- url="http://thrift.apache.org"
- name="Apache Thrift"
- description="Thrift is a software framework for scalable cross-language services development."
@ -80,7 +81,7 @@ index c2bfd9c..69525e7 100755
- <remoteRepository refid="central"/>
- <remoteRepository refid="apache"/>
- <license name="The Apache Software License, Version 2.0" url="${license}"/>
- <scm connection="scm:git:https://git-wip-us.apache.org/repos/asf/thrift.git"
- <scm connection="scm:git:https://git-wip-us.apache.org/repos/asf/thrift.git"
- developerConnection="scm:git:https://git-wip-us.apache.org/repos/asf/thrift.git"
- url="https://git-wip-us.apache.org/repos/asf?p=thrift.git"
- />
@ -106,7 +107,6 @@ index c2bfd9c..69525e7 100755
-
- <!-- Thrift dependencies list -->
- <dependency groupId="org.slf4j" artifactId="slf4j-api" version="${slf4j.version}"/>
- <dependency groupId="org.apache.commons" artifactId="commons-lang3" version="${commons-lang3.version}"/>
- <dependency groupId="javax.servlet" artifactId="servlet-api" version="${servlet.version}" scope="provided"/>
- <dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="${httpclient.version}"/>
- <dependency groupId="org.apache.httpcomponents" artifactId="httpcore" version="${httpcore.version}"/>
@ -126,7 +126,7 @@ index c2bfd9c..69525e7 100755
-
- <!-- Dependencies needed for testing -->
- <artifact:dependencies filesetId="test-dependency-jars" useScope="runtime">
- <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.5.8"/>
- <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="${slf4j.version}"/>
- <dependency groupId="junit" artifactId="junit" version="4.4"/>
- </artifact:dependencies>
-
@ -148,7 +148,7 @@ index c2bfd9c..69525e7 100755
- <attribute name="pom" default=""/>
- <sequential>
- <artifact:mvn fork="true">
- <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file"/>
- <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.6:sign-and-deploy-file"/>
- <arg value="-DrepositoryId=${maven-repository-id}"/>
- <arg value="-Durl=${maven-repository-url}"/>
- <arg value="-DpomFile=@{pom}"/>
@ -164,13 +164,13 @@ index c2bfd9c..69525e7 100755
- <!-- Compile, package, test and then send release to apache maven repo -->
- <!-- run with: ant -Drelease=true publish-->
- <signAndDeploy file="${pom.xml}" packaging="pom" classifier="" pom="${pom.xml}"/>
- <signAndDeploy file="${jar.file}" packaging="jar" classifier="" pom="${pom.xml}"/>
- <signAndDeploy file="${javadoc.jar.file}" packaging="jar" classifier="javadoc" pom="${pom.xml}"/>
- <signAndDeploy file="${source.tar.gz}" packaging="src" classifier="tar.gz" pom="${pom.xml}"/>
- <signAndDeploy file="${jar.file}" classifier="" pom="${pom.xml}"/>
- <signAndDeploy file="${javadoc.jar.file}" classifier="javadoc" pom="${pom.xml}"/>
- <signAndDeploy file="${source.jar.file}" classifier="sources" pom="${pom.xml}"/>
- </target>
</project>
diff --git a/tutorial/java/build.xml b/tutorial/java/build.xml
index eceeca7..bc6a837 100644
index 7638d5b..c5ca703 100644
--- a/tutorial/java/build.xml
+++ b/tutorial/java/build.xml
@@ -29,13 +29,33 @@
@ -179,7 +179,7 @@ index eceeca7..bc6a837 100644
</fileset>
- <fileset dir="../../lib/java/build/lib">
- <include name="*.jar" />
+ <fileset dir="/usr/share/java">
+ <fileset dir="/usr/share/java">
+ <include name="commons-codec.jar"/>
+ <include name="commons-lang.jar"/>
+ <include name="commons-logging.jar"/>
@ -197,7 +197,7 @@ index eceeca7..bc6a837 100644
+ <include name="*.jar" />
+ <exclude name="-test.jar" />
+ </fileset>
+ <fileset dir="/usr/share/java">
+ <fileset dir="/usr/share/java">
+ <include name="commons-codec.jar"/>
+ <include name="commons-lang.jar"/>
+ <include name="commons-logging.jar"/>
@ -210,19 +210,8 @@ index eceeca7..bc6a837 100644
</path>
<path id="tutorial.classpath">
<path refid="build.classpath" />
@@ -50,8 +70,8 @@
</target>
<target name="compile" depends="init, generate">
- <javac srcdir="${gen}" destdir="${build}" classpathref="libs.classpath" />
- <javac srcdir="${src}" destdir="${build}" classpathref="build.classpath" />
+ <javac srcdir="${gen}" destdir="${build}" classpathref="libs.classpath" includeantruntime="false" />
+ <javac srcdir="${src}" destdir="${build}" classpathref="build.classpath" includeantruntime="false" />
</target>
<target name="test" depends="tutorial" />
diff --git a/tutorial/js/build.xml b/tutorial/js/build.xml
index 73d535d..e3ee1e2 100644
index a9a9ad4..2fddf0c 100644
--- a/tutorial/js/build.xml
+++ b/tutorial/js/build.xml
@@ -35,8 +35,16 @@
@ -232,7 +221,7 @@ index 73d535d..e3ee1e2 100644
- <fileset dir="../../lib/java/build/lib">
- <include name="*.jar" />
+
+ <fileset dir="/usr/share/java">
+ <fileset dir="/usr/share/java">
+ <include name="commons-codec.jar"/>
+ <include name="commons-lang.jar"/>
+ <include name="commons-logging.jar"/>

View File

@ -1,147 +0,0 @@
From 049d078b605900efec98c6a9caceb17cdc10c5e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Wed, 30 Mar 2016 14:47:26 +0200
Subject: [PATCH] Adapt to GCC 6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
GCC 6 produces this error:
src/generate/t_java_generator.cc: In member function 'void t_java_generator::generate_process_async_function(t_service*, t_function*)':
src/generate/t_java_generator.cc:2830:14: error: operands to ?: have different types 'bool' and 'std::basic_ostream<char>'
first ? first = false : indent(f_service_) << "else ";
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This patch ports relevant part of upstream commit:
t 16a23a6618754a5a87aeb8df99a72516b0272fb3
Author: Konrad Grochowski <hcorg@apache.org>
Date: Thu Nov 13 15:33:38 2014 +0100
THRIFT-2729: C++ - .clang-format created and applied
Client: C++
Patch: Konrad Grochowski
make style command added
and:
commit 5f2d34e5ab33651059a085525b3adbab6a877e6f
Author: Roger Meier <roger@apache.org>
Date: Sat Nov 16 16:43:41 2013 +0100
THRIFT-2229 thrift failed to build on OSX 10.9 GM
that are part of 0.9.3 release.
<https://bugzilla.redhat.com/show_bug.cgi?id=1306671>
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
compiler/cpp/src/generate/t_java_generator.cc | 3 ++-
compiler/cpp/src/generate/t_rb_generator.cc | 8 ++++----
tutorial/cpp/CppClient.cpp | 6 +++---
tutorial/cpp/CppServer.cpp | 16 ++++++++--------
4 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index e443dc0..0f8740e 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -2827,7 +2827,8 @@ void t_java_generator::generate_process_async_function(t_service* tservice,
bool first = true;
if (xceptions.size() > 0) {
for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) {
- first ? first = false : indent(f_service_) << "else ";
+ if (x_iter != xceptions.begin())
+ indent(f_service_) << "else ";
indent(f_service_) << "if (e instanceof " << type_name((*x_iter)->get_type(), false, false)<<") {" << endl;
indent(f_service_) << indent() << "result." << (*x_iter)->get_name() << " = (" << type_name((*x_iter)->get_type(), false, false) << ") e;" << endl;
indent(f_service_) << indent() << "result.set" << get_cap_name((*x_iter)->get_name()) << get_cap_name("isSet") << "(true);" << endl;
diff --git a/compiler/cpp/src/generate/t_rb_generator.cc b/compiler/cpp/src/generate/t_rb_generator.cc
index 082f316..fc679a1 100644
--- a/compiler/cpp/src/generate/t_rb_generator.cc
+++ b/compiler/cpp/src/generate/t_rb_generator.cc
@@ -359,21 +359,21 @@ void t_rb_generator::generate_enum(t_enum* tenum) {
// Create a hash mapping values back to their names (as strings) since ruby has no native enum type
f_types_.indent() << "VALUE_MAP = {";
- bool first = true;
for(c_iter = constants.begin(); c_iter != constants.end(); ++c_iter) {
// Populate the hash
int value = (*c_iter)->get_value();
- first ? first = false : f_types_ << ", ";
+ if (c_iter != constants.begin())
+ f_types_ << ", ";
f_types_ << value << " => \"" << capitalize((*c_iter)->get_name()) << "\"";
}
f_types_ << "}" << endl;
// Create a set with valid values for this enum
f_types_.indent() << "VALID_VALUES = Set.new([";
- first = true;
for (c_iter = constants.begin(); c_iter != constants.end(); ++c_iter) {
// Populate the set
- first ? first = false : f_types_ << ", ";
+ if (c_iter != constants.begin())
+ f_types_ << ", ";
f_types_ << capitalize((*c_iter)->get_name());
}
f_types_ << "]).freeze" << endl;
diff --git a/tutorial/cpp/CppClient.cpp b/tutorial/cpp/CppClient.cpp
index ba71caa..b91df2e 100644
--- a/tutorial/cpp/CppClient.cpp
+++ b/tutorial/cpp/CppClient.cpp
@@ -38,9 +38,9 @@ using namespace shared;
using namespace boost;
int main(int argc, char** argv) {
- shared_ptr<TTransport> socket(new TSocket("localhost", 9090));
- shared_ptr<TTransport> transport(new TBufferedTransport(socket));
- shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
+ boost::shared_ptr<TTransport> socket(new TSocket("localhost", 9090));
+ boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
+ boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
CalculatorClient client(protocol);
try {
diff --git a/tutorial/cpp/CppServer.cpp b/tutorial/cpp/CppServer.cpp
index d0dbad9..f19258c 100644
--- a/tutorial/cpp/CppServer.cpp
+++ b/tutorial/cpp/CppServer.cpp
@@ -113,11 +113,11 @@ protected:
int main(int argc, char **argv) {
- shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
- shared_ptr<CalculatorHandler> handler(new CalculatorHandler());
- shared_ptr<TProcessor> processor(new CalculatorProcessor(handler));
- shared_ptr<TServerTransport> serverTransport(new TServerSocket(9090));
- shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
+ boost::shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
+ boost::shared_ptr<CalculatorHandler> handler(new CalculatorHandler());
+ boost::shared_ptr<TProcessor> processor(new CalculatorProcessor(handler));
+ boost::shared_ptr<TServerTransport> serverTransport(new TServerSocket(9090));
+ boost::shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
TSimpleServer server(processor,
serverTransport,
@@ -128,10 +128,10 @@ int main(int argc, char **argv) {
/**
* Or you could do one of these
- shared_ptr<ThreadManager> threadManager =
+ boost::shared_ptr<ThreadManager> threadManager =
ThreadManager::newSimpleThreadManager(workerCount);
- shared_ptr<PosixThreadFactory> threadFactory =
- shared_ptr<PosixThreadFactory>(new PosixThreadFactory());
+ boost::shared_ptr<PosixThreadFactory> threadFactory =
+ boost::shared_ptr<PosixThreadFactory>(new PosixThreadFactory());
threadManager->threadFactory(threadFactory);
threadManager->start();
TThreadPoolServer server(processor,
--
2.5.5

View File

@ -1,39 +0,0 @@
From f4e6e62ea091b94322ecc99756269dbee1c06380 Mon Sep 17 00:00:00 2001
From: Ben Craig <bencraig@apache.org>
Date: Tue, 5 Nov 2013 19:49:12 -0600
Subject: [PATCH 081/223] THRIFT-2214: System header sys/param.h is included
inside the Thrift namespace Client: cpp Patch: Vladimir Strisovsky
---
lib/cpp/src/thrift/protocol/TProtocol.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/cpp/src/thrift/protocol/TProtocol.h b/lib/cpp/src/thrift/protocol/TProtocol.h
index d6ecc0f..e72033a 100644
--- a/lib/cpp/src/thrift/protocol/TProtocol.h
+++ b/lib/cpp/src/thrift/protocol/TProtocol.h
@@ -75,10 +75,6 @@ static inline To bitwise_cast(From from) {
}
-namespace apache { namespace thrift { namespace protocol {
-
-using apache::thrift::transport::TTransport;
-
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
@@ -140,6 +136,10 @@ using apache::thrift::transport::TTransport;
# error "Can't define htonll or ntohll!"
#endif
+namespace apache { namespace thrift { namespace protocol {
+
+using apache::thrift::transport::TTransport;
+
/**
* Enumerated definition of the types that the Thrift protocol supports.
* Take special note of the T_END type which is used specifically to mark
--
2.6.1

View File

@ -1,9 +0,0 @@
--- a/lib/erl/rebar.config 2013-08-21 15:39:39.121081905 -0500
+++ b/lib/erl/rebar.config 2013-08-21 15:43:19.351633734 -0500
@@ -1,5 +1,4 @@
{erl_opts, [debug_info]}.
{lib_dirs, ["deps"]}.
{deps, [
- { jsx, "1.2.1", {git, "git://github.com/talentdeficit/jsx.git", {tag, "v1.2.1"}}}
- ]}.
+]}.

View File

@ -1,22 +1,12 @@
%global pkg_version 0.9.1
%global fb303_version 1.0.0.dev0
%global pkg_rel 17
%global py_version 2.7
%global php_extdir %(php-config --extension-dir 2>/dev/null || echo "undefined")
%{?perl_default_filter}
%global __provides_exclude_from ^(%{python_sitearch}/.*\\.so|%{php_extdir}/.*\\.so)$
%global __provides_exclude_from ^(%{python2_sitearch}/.*\\.so|%{php_extdir}/.*\\.so)$
%global have_mongrel 0
%if 0%{?fedora} >= 19 && 0%{?fedora} < 21
# erlang-jsx is available in F19 but orphaned in F22
%global have_jsx 1
%else
%global have_jsx 0
%endif
# We should be able to enable this in the future
%global want_d 0
@ -58,80 +48,60 @@
%global want_golang 0
%global golang_configure --without-go
Name: thrift
Version: %{pkg_version}
Release: %{pkg_rel}%{?dist}.6
Summary: Software framework for cross-language services development
Name: thrift
Version: 0.10.0
Release: 1%{?dist}
Summary: Software framework for cross-language services development
# Parts of the source are used under the BSD and zlib licenses, but
# these are OK for inclusion in an Apache 2.0-licensed whole:
# http://www.apache.org/legal/3party.html
# https://www.apache.org/legal/3party.html
# Here's the breakdown:
# thrift-0.9.1/lib/py/compat/win32/stdint.h is 2-clause BSD
# thrift-0.9.1/compiler/cpp/src/md5.[ch] are zlib
License: ASL 2.0 and BSD and zlib
URL: http://thrift.apache.org/
# ./lib/py/compat/win32/stdint.h is 2-clause BSD
# ./compiler/cpp/src/md5.[ch] are zlib
License: ASL 2.0 and BSD and zlib
URL: https://thrift.apache.org/
%if "%{version}" != "0.9.1"
Source0: http://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}.tar.gz
%else
# Unfortunately, the distribution tarball for thrift-0.9.1 is broken, so we're
# using an exported tarball from git. This will change in the future.
Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}.tar.gz
Source0: https://github.com/apache/thrift/archive/0.9.1.tar.gz
%endif
Source1: https://repo1.maven.org/maven2/org/apache/thrift/lib%{name}/%{version}/lib%{name}-%{version}.pom
Source2: https://raw.github.com/apache/%{name}/%{version}/bootstrap.sh
Source1: http://repo1.maven.org/maven2/org/apache/thrift/lib%{name}/%{version}/lib%{name}-%{version}.pom
Source2: https://raw.github.com/apache/%{name}/%{version}/bootstrap.sh
Source3: https://gitorious.org/pkg-scribe/thrift-deb-pkg/raw/master:debian/manpage.1.ex
Source4: http://repo1.maven.org/maven2/org/apache/thrift/libfb303/%{version}/libfb303-%{version}.pom
Source3: https://gitorious.org/pkg-scribe/thrift-deb-pkg/raw/master:debian/manpage.1.ex
Source4: https://repo1.maven.org/maven2/org/apache/thrift/libfb303/%{version}/libfb303-%{version}.pom
# this patch is adapted from Gil Cattaneo's thrift-0.7.0 package
Patch0: thrift-0.9.1-buildxml.patch
# don't use bundled rebar executable
Patch1: thrift-0.9.1-rebar.patch
Patch0: %{name}-%{version}-buildxml.patch
# for fb303, excise maven ant tasks; build against system libraries; etc.
Patch2: fb303-0.9.1-buildxml.patch
# required to get it build on aarch64
Patch3: thrift-0.9.1-THRIFT-2214-System-header-sys-param.h-is-included-in.patch
# Adapt to GCC 6, bug #1306671, in 0.9.3
Patch4: thrift-0.9.1-Adapt-to-GCC-6.patch
Patch1: fb303-%{version}-buildxml.patch
# fix configure.ac insistence on using /usr/local/lib for JAVA_PREFIX
Patch2: configure-java-prefix.patch
Group: Development/Libraries
Group: Development/Libraries
# BuildRequires for language-specific bindings are listed under these
# subpackages, to facilitate enabling or disabling individual language
# bindings in the future
BuildRequires: libstdc++-devel
BuildRequires: boost-devel
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: openssl-devel
BuildRequires: zlib-devel
BuildRequires: bison-devel
BuildRequires: flex-devel
BuildRequires: glib2-devel
BuildRequires: texlive
BuildRequires: qt-devel
BuildRequires: libtool
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: bison-devel
BuildRequires: flex-devel
BuildRequires: ant
BuildRequires: ant >= 1.7
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: flex
BuildRequires: flex-devel
BuildRequires: glib2-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: openssl-devel
BuildRequires: qt-devel
BuildRequires: texlive
BuildRequires: zlib-devel
%if 0%{?want_golang} > 0
BuildRequires: golang
Requires: golang
BuildRequires: golang
Requires: golang
%endif
%description
@ -141,13 +111,13 @@ development combines a software stack with a code generation engine to
build services that work efficiently and seamlessly between C++, Java,
Python, %{?php_langname}and other languages.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
Requires: boost-devel
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
Requires: boost-devel
%description devel
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
@ -165,127 +135,128 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description glib
The %{name}-qt package contains GLib bindings for %{name}.
%package -n python-%{name}
Summary: Python support for %{name}
BuildRequires: python2-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python2
%package -n python2-%{name}
Summary: Python 2 support for %{name}
BuildRequires: python2-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python2
Obsoletes: python-%{name} < 0.10.0-1%{?dist}
%description -n python-%{name}
The python-%{name} package contains Python bindings for %{name}.
%description -n python2-%{name}
The python2-%{name} package contains Python bindings for %{name}.
%package -n perl-%{name}
Summary: Perl support for %{name}
Provides: perl(Thrift) = %{version}-%{release}
BuildRequires: perl-generators
BuildRequires: perl(Bit::Vector)
BuildRequires: perl(ExtUtils::MakeMaker)
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(Bit::Vector)
Requires: perl(Encode)
Requires: perl(HTTP::Request)
Requires: perl(IO::Select)
Requires: perl(IO::Socket::INET)
Requires: perl(IO::String)
Requires: perl(LWP::UserAgent)
Requires: perl(POSIX)
Requires: perl(base)
Requires: perl(constant)
Requires: perl(strict)
Requires: perl(utf8)
Requires: perl(warnings)
BuildArch: noarch
%package -n perl-%{name}
Summary: Perl support for %{name}
Provides: perl(Thrift) = %{version}-%{release}
BuildRequires: perl(Bit::Vector)
BuildRequires: perl(Class::Accessor)
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl-generators
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(Bit::Vector)
Requires: perl(Encode)
Requires: perl(HTTP::Request)
Requires: perl(IO::Select)
Requires: perl(IO::Socket::INET)
Requires: perl(IO::String)
Requires: perl(LWP::UserAgent)
Requires: perl(POSIX)
Requires: perl(base)
Requires: perl(constant)
Requires: perl(strict)
Requires: perl(utf8)
Requires: perl(warnings)
BuildArch: noarch
%description -n perl-%{name}
The perl-%{name} package contains Perl bindings for %{name}.
%if %{?want_d}
%package -n d-%{name}
Summary: D support for %{name}
BuildRequires: ldc
%package -n d-%{name}
Summary: D support for %{name}
BuildRequires: ldc
%description -n d-%{name}
The d-%{name} package contains D bindings for %{name}.
%endif
%if 0%{?want_php} != 0
%package -n php-%{name}
Summary: PHP support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
Requires: php(language) >= 5.3.0
Requires: php-date
Requires: php-json
BuildRequires: php-devel
%package -n php-%{name}
Summary: PHP support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
Requires: php(language) >= 5.3.0
Requires: php-date
Requires: php-json
BuildRequires: php-devel
%description -n php-%{name}
The php-%{name} package contains PHP bindings for %{name}.
%endif
%package -n lib%{name}-javadoc
Summary: API documentation for java-%{name}
Requires: lib%{name}-java = %{version}-%{release}
BuildArch: noarch
%package -n lib%{name}-javadoc
Summary: API documentation for java-%{name}
Requires: lib%{name}-java = %{version}-%{release}
BuildArch: noarch
%description -n lib%{name}-javadoc
The lib%{name}-javadoc package contains API documentation for the
Java bindings for %{name}.
%package -n lib%{name}-java
Summary: Java support for %{name}
%package -n lib%{name}-java
Summary: Java support for %{name}
BuildRequires: java-devel
BuildRequires: javapackages-tools
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-lang
BuildRequires: apache-commons-logging
BuildRequires: httpcomponents-client
BuildRequires: httpcomponents-core
BuildRequires: junit
BuildRequires: log4j
BuildRequires: slf4j
BuildRequires: tomcat-servlet-3.1-api
Requires: java-headless >= 1:1.6.0
Requires: javapackages-tools
Requires: mvn(org.slf4j:slf4j-api)
Requires: mvn(commons-lang:commons-lang)
Requires: mvn(org.apache.httpcomponents:httpclient)
Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-lang
BuildRequires: apache-commons-logging
BuildRequires: httpcomponents-client
BuildRequires: httpcomponents-core
BuildRequires: java-devel
BuildRequires: javapackages-tools
BuildRequires: junit
BuildRequires: log4j
BuildRequires: slf4j
BuildRequires: tomcat-servlet-3.1-api
Requires: java-headless >= 1:1.6.0
Requires: javapackages-tools
Requires: mvn(org.slf4j:slf4j-api)
Requires: mvn(commons-lang:commons-lang)
Requires: mvn(org.apache.httpcomponents:httpclient)
Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
%description -n lib%{name}-java
The lib%{name}-java package contains Java bindings for %{name}.
%if 0%{?want_ruby} > 0
%package -n ruby-%{name}
Summary: Ruby support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ruby(release)
BuildRequires: ruby-devel
%package -n ruby-%{name}
Summary: Ruby support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ruby(release)
BuildRequires: ruby-devel
%description -n ruby-%{name}
The ruby-%{name} package contains Ruby bindings for %{name}.
%endif
%if 0%{?want_erlang} > 0
%package -n erlang-%{name}
Summary: Erlang support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: erlang
Requires: erlang-jsx
BuildRequires: erlang
BuildRequires: erlang-rebar
%package -n erlang-%{name}
Summary: Erlang support for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: erlang
Requires: erlang-jsx
BuildRequires: erlang
BuildRequires: erlang-rebar
%description -n erlang-%{name}
The erlang-%{name} package contains Erlang bindings for %{name}.
%endif
%package -n fb303
Summary: Basic interface for Thrift services
Requires: %{name}%{?_isa} = %{version}-%{release}
Summary: Basic interface for Thrift services
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n fb303
fb303 is the shared root of all Thrift services; it provides a
@ -293,41 +264,37 @@ standard interface to monitoring, dynamic options and configuration,
uptime reports, activity, etc.
%package -n fb303-devel
Summary: Development files for fb303
Requires: fb303%{?_isa} = %{version}-%{release}
Summary: Development files for fb303
Requires: fb303%{?_isa} = %{version}-%{release}
%description -n fb303-devel
The fb303-devel package contains header files for fb303
%package -n python-fb303
Summary: Python bindings for fb303
Requires: fb303%{?_isa} = %{version}-%{release}
BuildRequires: python2-devel
%package -n python2-fb303
Summary: Python 2 bindings for fb303
Requires: fb303%{?_isa} = %{version}-%{release}
BuildRequires: python2-devel
Obsoletes: python-fb303 < 0.10.0-1%{?dist}
%description -n python-fb303
The python-fb303 package contains Python bindings for fb303.
%description -n python2-fb303
The python2-fb303 package contains Python bindings for fb303.
%package -n fb303-java
Summary: Java bindings for fb303
Requires: java >= 1:1.6.0
Requires: javapackages-tools
Requires: mvn(org.slf4j:slf4j-api)
Requires: mvn(commons-lang:commons-lang)
Requires: mvn(org.apache.httpcomponents:httpclient)
Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
Summary: Java bindings for fb303
Requires: java >= 1:1.6.0
Requires: javapackages-tools
Requires: mvn(org.slf4j:slf4j-api)
Requires: mvn(commons-lang:commons-lang)
Requires: mvn(org.apache.httpcomponents:httpclient)
Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
%description -n fb303-java
The fb303-java package contains Java bindings for fb303.
%global _default_patch_fuzz 2
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%autosetup -p1
%{?!el5:sed -i -e 's/^AC_PROG_LIBTOOL/LT_INIT/g' configure.ac}
@ -347,6 +314,10 @@ echo 'EXTRA_libthriftz_la_DEPENDENCIES = libthrift.la' >> lib/cpp/Makefile.am
sed -i 's|libfb303_so_LDFLAGS = $(SHARED_LDFLAGS)|libfb303_so_LDFLAGS = $(SHARED_LDFLAGS) -lthrift -L../../../lib/cpp/.libs -Wl,--as-needed|g' contrib/fb303/cpp/Makefile.am
# fix broken upstream check for ant version; we enforce this with BuildRequires, so no need to check here
sed -i 's|ANT_VALID=.*|ANT_VALID=1|' aclocal/ax_javac_and_java.m4
sed -i 's|ANT_VALID=.*|ANT_VALID=1|' contrib/fb303/aclocal/ax_javac_and_java.m4
%build
export PY_PREFIX=%{_prefix}
export PERL_PREFIX=%{_prefix}
@ -401,7 +372,7 @@ make %{?_smp_mflags}
# build fb303
(
cd contrib/fb303
chmod 755 bootstrap.sh
sed -i '/^[.][/]configure.*/d' bootstrap.sh
sh bootstrap.sh
%configure --disable-static --with-java --without-php --libdir=%{_libdir}
make %{?_smp_mflags}
@ -469,12 +440,10 @@ install -pm 644 %{SOURCE4} %{buildroot}%{_mavenpomdir}/JPP-libfb303.pom
# Ensure all python scripts are executable
find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r chmod 755
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%doc LICENSE NOTICE
%{_bindir}/thrift
@ -494,6 +463,8 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
%{_includedir}/thrift
%exclude %{_includedir}/thrift/fb303
%{_libdir}/*.so
%{_libdir}/*.so.0
%{_libdir}/*.so.0.0.0
%exclude %{_libdir}/lib*-%{version}.so
%exclude %{_libdir}/libfb303.so
%{_libdir}/pkgconfig/thrift-z.pc
@ -521,9 +492,9 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
%doc LICENSE NOTICE
%endif
%files -n python-%{name}
%{python_sitearch}/%{name}
%{python_sitearch}/%{name}-%{version}-py%{py_version}.egg-info
%files -n python2-%{name}
%{python2_sitearch}/%{name}
%{python2_sitearch}/%{name}-%{version}-py%{python2_version}.egg-info
%doc LICENSE NOTICE
%files -n lib%{name}-javadoc
@ -542,16 +513,19 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
%{_includedir}/thrift/fb303
%doc LICENSE NOTICE
%files -n python-fb303
%{python_sitelib}/fb303
%{python_sitelib}/fb303_scripts
%{python_sitelib}/%{name}_fb303-%{fb303_version}-py%{py_version}.egg-info
%files -n python2-fb303
%{python2_sitelib}/fb303
%{python2_sitelib}/fb303_scripts
%{python2_sitelib}/%{name}_fb303-%{version}-py%{python2_version}.egg-info
%doc LICENSE NOTICE
%files -n fb303-java -f .mfiles-fb303
%doc LICENSE NOTICE
%changelog
* Tue Mar 07 2017 Christopher Tubbs <ctubbsii@fedoraproject.org> - 0.10.0-1
- Update to thrift 0.10.0
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.1-17.6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
@ -603,7 +577,6 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
* Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 0.9.1-13.3
- Rebuild for boost 1.57.0
* Thu Aug 28 2014 Jitka Plesnikova <jplesnik@redhat.com> - 0.9.1-13.2
- Perl 5.20 rebuild