代码拉取完成,页面将自动刷新
%global php_extdir %(php-config --extension-dir 2>/dev/null || echo "undefined")
%{?perl_default_filter}
%global __provides_exclude_from ^(%{python3_sitearch}/.*\\.so|%{php_extdir}/.*\\.so)$
%global have_mongrel 0
%global have_jsx 0
%global want_d 0
%global want_java 1
%if 0%{?want_java} == 0
%global java_configure --without-java
%else
%global java_configure --with-java
%endif
%if 0%{?have_mongrel} == 0
%global ruby_configure --without-ruby
%global with_ruby 0
%else
%global ruby_configure --with-ruby
%global want_ruby 1
%endif
%if 0%{?have_jsx} == 0
%global erlang_configure --without-erlang
%global want_erlang 0
%else
%global erlang_configure --with-erlang
%global want_erlang 1
%endif
%global want_php 0
%if 0%{?want_php} == 0
%global php_langname %{nil}
%global php_configure --without-php
%else
%global php_langname PHP,\
%global php_configure --with-php
%endif
%global want_golang 0
%global golang_configure --without-go
%global want_lua 0
%global lua_configure --without-lua
Name: thrift
Version: 0.14.0
Release: 7
Summary: Software framework for cross-language services development
License: Apache-2.0 and BSD-3-Clause and Zlib
URL: https://thrift.apache.org/
Source0: https://archive.apache.org/dist/thrift/%{version}/thrift-%{version}.tar.gz
# 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
Patch3: backport-THRIFT-5348-Update-debian-copyright.patch
BuildRequires: make autoconf automake bison boost-devel boost-static flex gcc-c++ glib2-devel
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}
Obsoletes: fb303 < %{version}-%{release}
Obsoletes: python3-fb303 < %{version}-%{release}
Obsoletes: fb303-devel < %{version}-%{release}
Obsoletes: fb303-java < %{version}-%{release}
%if 0%{?want_golang} > 0
BuildRequires: golang
Requires: golang
%endif
%description
The Apache Thrift software framework for cross-language services
development combines a software stack with a code generation engine to
build services that work efficiently and seamlessly between C++, Java,
Python, %{?php_langname}and other languages.
%package devel
Summary: Development files for thrift
Requires: thrift%{?_isa} = %{version}-%{release} pkgconfig boost-devel
%description devel
The thrift-devel package contains libraries and header files for
developing applications that use thrift.
%package qt
Summary: Qt support for thrift
Requires: thrift%{?_isa} = %{version}-%{release}
%description qt
The thrift-qt package contains Qt bindings for thrift.
%package glib
Summary: GLib support for thrift
Requires: thrift%{?_isa} = %{version}-%{release}
%description glib
The thrift-qt package contains GLib bindings for thrift.
%package -n python3-thrift
Summary: Python 3 support for thrift
BuildRequires: python3-devel python3-setuptools
Requires: thrift%{?_isa} = %{version}-%{release} python3
Obsoletes: python-thrift < 0.10.0-1
Obsoletes: python2-thrift < 0.10.0-14
%description -n python3-thrift
The python3-thrift package contains Python bindings for thrift.
%package -n perl-thrift
Summary: Perl support for thrift
Provides: perl(Thrift) = %{version}-%{release}
BuildRequires: perl(Bit::Vector) perl(Class::Accessor) perl(ExtUtils::MakeMaker)
BuildRequires: perl-generators
Requires: perl(Bit::Vector) perl(Encode) perl(HTTP::Request) perl(IO::Select)
Requires: perl(IO::Socket::INET) perl(IO::String) perl(LWP::UserAgent) perl(POSIX)
Requires: perl(base) perl(constant) perl(strict) perl(utf8) perl(warnings)
Provides: perl(Thrift::Exception)
Provides: perl(Thrift::MessageType)
Provides: perl(Thrift::Type)
BuildArch: noarch
%description -n perl-thrift
The perl-thrift package contains Perl bindings for thrift.
%if %{?want_d}
%package -n d-thrift
Summary: D support for thrift
BuildRequires: ldc
%description -n d-thrift
The d-thrift package contains D bindings for thrift.
%endif
%if 0%{?want_php} != 0
%package -n php-thrift
Summary: PHP support for thrift
Requires: thrift%{?_isa} = %{version}-%{release} php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api} php(language) >= 5.3.0 php-date php-json
BuildRequires: php-devel
%description -n php-thrift
The php-thrift package contains PHP bindings for thrift.
%endif
%package -n libthrift-java
Summary: Java support for thrift
BuildRequires: apache-commons-codec apache-commons-lang apache-commons-logging
BuildRequires: httpcomponents-client httpcomponents-core java-devel javapackages-tools
BuildRequires: javapackages-local junit log4j slf4j
BuildRequires: mvn(javax.servlet:javax.servlet-api) = 3.1.0
Requires: java-headless >= 1:1.6.0 javapackages-tools mvn(org.slf4j:slf4j-api)
Requires: mvn(commons-lang:commons-lang) mvn(org.apache.httpcomponents:httpclient)
Requires: mvn(org.apache.httpcomponents:httpcore)
BuildArch: noarch
%description -n libthrift-java
The libthrift-java package contains Java bindings for thrift.
%if 0%{?want_ruby} > 0
%package -n ruby-thrift
Summary: Ruby support for thrift
Requires: thrift%{?_isa} = %{version}-%{release} ruby(release)
BuildRequires: ruby-devel
%description -n ruby-thrift
The ruby-thrift package contains Ruby bindings for thrift.
%endif
%if 0%{?want_erlang} > 0
%package -n erlang-thrift
Summary: Erlang support for thrift
Requires: thrift%{?_isa} = %{version}-%{release} erlang erlang-jsx
BuildRequires: erlang erlang-rebar
%description -n erlang-thrift
The erlang-thrift package contains Erlang bindings for thrift.
%endif
%prep
%autosetup -p1
%{?!el5:sed -i -e 's/^AC_PROG_LIBTOOL/LT_INIT/g' configure.ac}
find . -name \*.cpp -or -name \*.cc -or -name \*.h | xargs -r chmod 644
cp -p %{SOURCE2} bootstrap.sh
echo 'libthrift_c_glib_la_LIBADD = $(GLIB_LIBS) $(GOBJECT_LIBS) -L../cpp/.libs ' >> lib/c_glib/Makefile.am
echo 'libthriftqt5_la_LIBADD = $(QT_LIBS) -lthrift -L.libs' >> lib/cpp/Makefile.am
echo 'libthriftz_la_LIBADD = $(ZLIB_LIBS) -lthrift -L.libs' >> lib/cpp/Makefile.am
echo 'EXTRA_libthriftqt5_la_DEPENDENCIES = libthrift.la' >> lib/cpp/Makefile.am
echo 'EXTRA_libthriftz_la_DEPENDENCIES = libthrift.la' >> lib/cpp/Makefile.am
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-%{version}-sources.jar
popd
%build
export PY_PREFIX=%{_prefix}
export PERL_PREFIX=%{_prefix}
export PHP_PREFIX=%{php_extdir}
export JAVA_PREFIX=%{_javadir}
export RUBY_PREFIX=%{_prefix}
export GLIB_LIBS=$(pkg-config --libs glib-2.0)
export GLIB_CFLAGS=$(pkg-config --cflags glib-2.0)
export GOBJECT_LIBS=$(pkg-config --libs gobject-2.0)
export GOBJECT_CFLAGS=$(pkg-config --cflags gobject-2.0)
find %{_builddir} -name rebar -exec rm -f '{}' \;
find . -name Makefile\* -exec sed -i -e 's/[.][/]rebar/rebar/g' {} \;
sed -i 's|-Dinstall.javadoc.path=$(DESTDIR)$(docdir)/java|-Dinstall.javadoc.path=$(DESTDIR)%{_javadocdir}/thrift|' lib/java/Makefile.*
sed -i 's|$(INSTALL) $$p|$(INSTALL) --mode 644 $$p|g' lib/erl/Makefile.am
sh ./bootstrap.sh
export PYTHON=%{_bindir}/python3
%ifarch loongarch64
%configure --disable-dependency-tracking --disable-static --with-boost=/usr --with-boost-libdir=/usr/lib64 \
%else
%configure --disable-dependency-tracking --disable-static --with-boost=/usr \
%endif
--docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/thrift-%{version}} \
%{java_configure} %{ruby_configure} %{erlang_configure} %{golang_configure} %{php_configure} %{lua_configure}
sed -i -e 's/ -shared / -Wl,--as-needed\0/g' libtool
%make_build
pushd libthrift_dir
mvn package -DskipTests -Dtar
popd
%install
%make_install
%delete_la
find %{buildroot} -name fastbinary.so | xargs -r chmod 755
find %{buildroot} -name \*.erl -or -name \*.hrl -or -name \*.app | xargs -r chmod 644
find %{buildroot} -name \*.jar -a \! -name \*thrift\* -exec rm -f '{}' \;
find %{buildroot} -name \*.pod -exec rm -f '{}' \;
find %{buildroot} -name .packlist -exec rm -f '{}' \;
find %{buildroot}/usr/lib/perl5 -type d -empty -delete
mkdir -p %{buildroot}/%{perl_vendorlib}/
mv %{buildroot}/usr/lib/perl5/* %{buildroot}/%{perl_vendorlib}
%if 0%{?want_php} != 0
mkdir -p %{buildroot}/%{_datadir}/php/
mv %{buildroot}/%{php_extdir}/Thrift %{buildroot}/%{_datadir}/php/
%endif # want_php
find %{buildroot} -name Thread.h -exec chmod a-x '{}' \;
find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r chmod 755
install -d -m 755 %{buildroot}%{_datadir}/java/libthrift
install -d -m 755 %{buildroot}%{_datadir}/maven-poms/libthrift
cp libthrift_dir/target/libthrift-%{version}.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
%{_libdir}/libthrift-%{version}.so
%{_libdir}/libthriftz-%{version}.so
%{_libdir}/libthriftnb-%{version}.so
%files glib
%{_libdir}/libthrift_c_glib.so
%{_libdir}/libthrift_c_glib.so.*
%files qt
%{_libdir}/libthriftqt5.so
%{_libdir}/libthriftqt5-%{version}.so
%files devel
%{_includedir}/thrift
%{_libdir}/*.so
%{_libdir}/*.so.0
%{_libdir}/*.so.0.0.0
%exclude %{_libdir}/lib*-%{version}.so
%{_libdir}/pkgconfig/thrift-z.pc
%{_libdir}/pkgconfig/thrift-qt5.pc
%{_libdir}/pkgconfig/thrift-nb.pc
%{_libdir}/pkgconfig/thrift.pc
%{_libdir}/pkgconfig/thrift_c_glib.pc
%doc LICENSE NOTICE
%files -n perl-thrift
%{perl_vendorlib}/Thrift
%{perl_vendorlib}/Thrift.pm
%doc LICENSE NOTICE
%if 0%{?want_php} != 0
%files -n php-thrift
%config(noreplace) /etc/php.d/thrift_protocol.ini
%{_datadir}/php/Thrift/
%{php_extdir}/thrift_protocol.so
%doc LICENSE NOTICE
%endif
%if %{?want_erlang} > 0
%files -n erlang-thrift
%{_libdir}/erlang/lib/thrift-%{version}/
%doc LICENSE NOTICE
%endif
%files -n python3-thrift
%{python3_sitearch}/thrift
%{python3_sitearch}/thrift-%{version}-py%{python3_version}.egg-info
%doc LICENSE NOTICE
%if 0%{?want_java} > 0
%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
* Thu Jan 16 2025 Funda Wang <fundawang@yeah.net> - 0.14.0-7
- drop useless perl(:MODULE_COMPAT) requirement
* Thu May 18 2023 Wenlong Zhang <zhangwenlong@loongson.cn> - 0.14.0-6
- specify boost-libdir for loongarch64
* Fri Dec 30 2022 Cao Jingbo <caojb@chinatelecom.cn> - 0.14.0-5
- Use version macro relpace version number text.
* Wed Dec 28 2022 Cao Jingbo <caojb@chinatelecom.cn> - 0.14.0-4
- THRIFT-5348: Update debian/copyright [skip ci] Patch: Jihoon Seo
* Mon Jun 13 2022 fushanqing <fushanqing@kylinos.cn> - 0.14.0-3
- Remove the dist tag
* Wed Jul 28 2021 Ge Wang <wangge20@huawei.com> - 0.14.0-2
- Add libthrift-java subpackage
* Tue Feb 23 2021 wangyue <wangyue92@huawei.com> - 0.14.0-1
- Update to 0.14.0 to fix CVE-2020-13949 and Drop fb303 package and switch to qt5
* Thu Nov 12 2020 wangxiao <wangxiao65@huawei.com> - 0.10.0-3
- Fix CVE-2019-0205 and CVE-2019-0210
* Thu Nov 05 2020 wangyue <wangyue92@huawei.com> - 0.10.0-2
- Fix CVE-2018-11798 and CVE-2018-1320.
* Tue Aug 18 2020 yaokai <yaokai13@huawei.com> - 0.10.0-1
- package init
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。