diff --git a/libthrift-0.14.0-sources.jar b/libthrift-0.14.0-sources.jar
new file mode 100644
index 0000000000000000000000000000000000000000..e5d9afd2286087ffc1fcf6c178ce5043abac1762
Binary files /dev/null and b/libthrift-0.14.0-sources.jar differ
diff --git a/libthrift-0.14.0.pom b/libthrift-0.14.0.pom
index 31d44dec4dc4f3a92b191035915492e4fea5c2c1..8a7842cedb59f15233c72a036d9ff0c0597f7dc6 100644
--- a/libthrift-0.14.0.pom
+++ b/libthrift-0.14.0.pom
@@ -11,7 +11,7 @@
The Apache Software License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
+ https://www.apache.org/licenses/LICENSE-2.0.txt
repo
@@ -31,26 +31,26 @@
org.slf4j
slf4j-api
- 1.7.25
+ 1.7.28
compile
org.apache.httpcomponents
httpclient
- 4.5.6
+ 4.5.10
compile
org.apache.httpcomponents
httpcore
- 4.4.1
+ 4.4.12
compile
- javax.servlet
- servlet-api
- 2.5
- provided
+ org.apache.tomcat.embed
+ tomcat-embed-core
+ 8.5.46
+ compile
javax.annotation
@@ -67,14 +67,31 @@
org.mockito
mockito-all
- 1.9.5
+ 1.10.19
test
org.slf4j
slf4j-log4j12
- 1.7.25
+ 1.7.28
test
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+ org/apache/thrift
+
diff --git a/thrift.spec b/thrift.spec
index 0acecef14ccb52c9dbb84a6d24114dc705846d67..2930794b5134a07c69d2d2853eba85e5d92ac8e3 100644
--- a/thrift.spec
+++ b/thrift.spec
@@ -4,7 +4,7 @@
%global have_mongrel 0
%global have_jsx 0
%global want_d 0
-%global want_java 0
+%global want_java 1
%if 0%{?want_java} == 0
%global java_configure --without-java
%else
@@ -38,20 +38,20 @@
%global lua_configure --without-lua
Name: thrift
Version: 0.14.0
-Release: 1
+Release: 2
Summary: Software framework for cross-language services development
License: ASL 2.0 and BSD and zlib and MIT
URL: https://thrift.apache.org/
Source0: https://archive.apache.org/dist/thrift/%{version}/thrift-%{version}.tar.gz
-Source1: https://repo1.maven.org/maven2/org/apache/thrift/libthrift/%{version}/libthrift-%{version}.pom
+# wget https://repo1.maven.org/maven2/org/apache/thrift/libthrift/%{version}/libthrift-%{version}.pom
+# add maven-compiler-plugin in build tag
+Source1: libthrift-%{version}.pom
Source2: https://raw.github.com/apache/thrift/%{version}/bootstrap.sh
+Source3: https://repo1.maven.org/maven2/org/apache/thrift/libthrift/%{version}/libthrift-%{version}-sources.jar
Patch0: thrift-char.patch
Patch2: configure-java-prefix.patch
-%if 0%{?want_java} > 0
-BuildRequires: ant >= 1.7
-%endif
BuildRequires: make autoconf automake bison boost-devel boost-static flex gcc-c++ glib2-devel
-BuildRequires: libevent-devel libstdc++-devel libtool openssl-devel qt5-qtbase-devel texlive
+BuildRequires: libevent-devel libstdc++-devel libtool maven openssl-devel qt5-qtbase-devel texlive
BuildRequires: zlib-devel
Obsoletes: libthrift-java < %{version}-%{release}
Obsoletes: libthrift-javadoc < %{version}-%{release}
@@ -131,15 +131,6 @@ BuildRequires: php-devel
%description -n php-thrift
The php-thrift package contains PHP bindings for thrift.
%endif
-%if 0%{?want_java} > 0
-
-%package -n libthrift-javadoc
-Summary: API documentation for java-thrift
-Requires: libthrift-java = %{version}-%{release}
-BuildArch: noarch
-%description -n libthrift-javadoc
-The libthrift-javadoc package contains API documentation for the
-Java bindings for thrift.
%package -n libthrift-java
Summary: Java support for thrift
@@ -153,7 +144,7 @@ Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
%description -n libthrift-java
The libthrift-java package contains Java bindings for thrift.
-%endif
+
%if 0%{?want_ruby} > 0
%package -n ruby-thrift
@@ -187,6 +178,14 @@ sed -i 's|ANT_VALID=.*|ANT_VALID=1|' aclocal/ax_javac_and_java.m4
shopt -s globstar
sed -i -E 's@^(#!.*/env) *python *$@\1 python3@' **/*.py
+#prepare libthrift's compiler environment
+mkdir libthrift_dir
+cp %{SOURCE1} ./libthrift_dir/pom.xml
+cp %{SOURCE3} ./libthrift_dir
+pushd libthrift_dir
+ jar -xvf libthrift-0.14.0-sources.jar
+popd
+
%build
export PY_PREFIX=%{_prefix}
export PERL_PREFIX=%{_prefix}
@@ -209,17 +208,15 @@ export PYTHON=%{_bindir}/python3
sed -i -e 's/ -shared / -Wl,--as-needed\0/g' libtool
%make_build
+pushd libthrift_dir
+ mvn package -DskipTests -Dtar
+popd
+
%install
%make_install
find %{buildroot} -name '*.la' -exec rm -f {} ';'
find %{buildroot} -name fastbinary.so | xargs -r chmod 755
find %{buildroot} -name \*.erl -or -name \*.hrl -or -name \*.app | xargs -r chmod 644
-%if 0%{?want_java} > 0
-find %{buildroot}/%{_javadir} -name libthrift-javadoc.jar -exec rm -f '{}' \;
-mkdir -p %{buildroot}%{_mavenpomdir}
-install -pm 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP-libthrift.pom
-%add_maven_depmap JPP-libthrift.pom libthrift.jar
-%endif
find %{buildroot} -name \*.jar -a \! -name \*thrift\* -exec rm -f '{}' \;
find %{buildroot} -name \*.pod -exec rm -f '{}' \;
find %{buildroot} -name .packlist -exec rm -f '{}' \;
@@ -234,6 +231,12 @@ find %{buildroot} -name Thread.h -exec chmod a-x '{}' \;
find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r chmod 755
%ldconfig_scriptlets
+install -d -m 755 %{buildroot}%{_datadir}/java/libthrift
+install -d -m 755 %{buildroot}%{_datadir}/maven-poms/libthrift
+cp libthrift_dir/target/libthrift-0.14.0.jar %{buildroot}%{_datadir}/java/libthrift/libthrift.jar
+cp libthrift_dir/pom.xml %{buildroot}%{_datadir}/maven-poms/libthrift/libthrift.pom
+%add_maven_depmap libthrift/libthrift.pom libthrift/libthrift.jar -f "libthrift"
+
%files
%doc LICENSE NOTICE
%{_bindir}/thrift
@@ -287,15 +290,17 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
%doc LICENSE NOTICE
%if 0%{?want_java} > 0
-%files -n libthrift-javadoc
-%{_javadocdir}/thrift
-%doc LICENSE NOTICE
-
-%files -n libthrift-java -f .mfiles
+%files -n libthrift-java
+%{_datadir}/java/libthrift/libthrift.jar
+%{_datadir}/maven-poms/libthrift/libthrift.pom
+%{_datadir}/maven-metadata/thrift-libthrift.xml
%doc LICENSE NOTICE
%endif
%changelog
+* Wed Jul 28 2021 Ge Wang - 0.14.0-2
+- Add libthrift-java subpackage
+
* Tue Feb 23 2021 wangyue - 0.14.0-1
- Update to 0.14.0 to fix CVE-2020-13949 and Drop fb303 package and switch to qt5