diff --git a/.gitignore b/.gitignore index 2a688c5..bd50136 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,3 @@ /thrift-0.10.0.tar.gz /thrift-0.13.0.tar.gz /thrift-0.14.0.tar.gz -/thrift-0.15.0.tar.gz -/thrift-0.20.0.tar.gz diff --git a/gcc15.patch b/gcc15.patch deleted file mode 100644 index 2f3294c..0000000 --- a/gcc15.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 1920f04398ca32e320f6cf942534ba9d8b3231fd Mon Sep 17 00:00:00 2001 -From: Sutou Kouhei -Date: Mon, 23 Dec 2024 12:33:22 +0900 -Subject: [PATCH] THRIFT-5842: Add missing cstdint include for int64_t in - Mutex.h - -Client: cpp - -GCC 15 (not released yet) requires `#include ` for `int64_t` -but `lib/cpp/src/thrift/concurrency/Mutex.h` doesn't have it. So we -can't build Thrift with GCC 15: - - [80/359] Building CXX object lib/cpp/CMakeFiles/thrift.dir/src/thrift/transport/TSSLServerSocket.cpp.o - FAILED: lib/cpp/CMakeFiles/thrift.dir/src/thrift/transport/TSSLServerSocket.cpp.o - /bin/g++-15 -DBOOST_ALL_DYN_LINK -DBOOST_TEST_DYN_LINK -DTHRIFT_STATIC_DEFINE -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/kou/work/cpp/thrift.kou.build/lib/cpp -I/home/kou/work/cpp/thrift.kou/lib/cpp -I/home/kou/work/cpp/thrift.kou.build -I/home/kou/work/cpp/thrift.kou/lib/cpp/src -g -std=c++11 -MD -MT lib/cpp/CMakeFiles/thrift.dir/src/thrift/transport/TSSLServerSocket.cpp.o -MF lib/cpp/CMakeFiles/thrift.dir/src/thrift/transport/TSSLServerSocket.cpp.o.d -o lib/cpp/CMakeFiles/thrift.dir/src/thrift/transport/TSSLServerSocket.cpp.o -c /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/transport/TSSLServerSocket.cpp - In file included from /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/transport/TServerSocket.h:25, - from /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/transport/TSSLServerSocket.h:23, - from /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/transport/TSSLServerSocket.cpp:21: - /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/concurrency/Mutex.h:47:26: error: 'int64_t' has not been declared - 47 | virtual bool timedlock(int64_t milliseconds) const; - | ^~~~~~~ - /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/concurrency/Mutex.h:25:1: note: 'int64_t' is defined in header ''; this is probably fixable by adding '#include ' - 24 | #include - +++ |+#include - 25 | - /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/concurrency/Mutex.h:60:29: error: 'int64_t' has not been declared - 60 | Guard(const Mutex& value, int64_t timeout = 0) : mutex_(&value) { - | ^~~~~~~ - /home/kou/work/cpp/thrift.kou/lib/cpp/src/thrift/concurrency/Mutex.h:60:29: note: 'int64_t' is defined in header ''; this is probably fixable by adding '#include ' - -See also: https://github.com/apache/arrow/issues/45096 ---- - lib/cpp/src/thrift/concurrency/Mutex.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/cpp/src/thrift/concurrency/Mutex.h b/lib/cpp/src/thrift/concurrency/Mutex.h -index 1e5c3fba37c..12f1729d6bf 100644 ---- a/lib/cpp/src/thrift/concurrency/Mutex.h -+++ b/lib/cpp/src/thrift/concurrency/Mutex.h -@@ -20,6 +20,7 @@ - #ifndef _THRIFT_CONCURRENCY_MUTEX_H_ - #define _THRIFT_CONCURRENCY_MUTEX_H_ 1 - -+#include - #include - #include - diff --git a/libthrift-0.14.0.pom b/libthrift-0.14.0.pom new file mode 100644 index 0000000..31d44de --- /dev/null +++ b/libthrift-0.14.0.pom @@ -0,0 +1,80 @@ + + + 4.0.0 + org.apache.thrift + libthrift + 0.14.0 + Apache Thrift + Thrift is a software framework for scalable cross-language services development. + http://thrift.apache.org + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + dev + Apache Thrift Developers + dev@thrift.apache.org + + + + scm:git:https://github.com/apache/thrift.git + scm:git:git@github.com:apache/thrift.git + https://github.com/apache/thrift + + + + org.slf4j + slf4j-api + 1.7.25 + compile + + + org.apache.httpcomponents + httpclient + 4.5.6 + compile + + + org.apache.httpcomponents + httpcore + 4.4.1 + compile + + + javax.servlet + servlet-api + 2.5 + provided + + + javax.annotation + javax.annotation-api + 1.3.2 + compile + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.9.5 + test + + + org.slf4j + slf4j-log4j12 + 1.7.25 + test + + + diff --git a/libthrift-0.20.0.pom b/libthrift-0.20.0.pom deleted file mode 100644 index 7cc8e43..0000000 --- a/libthrift-0.20.0.pom +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - 4.0.0 - org.apache.thrift - libthrift - 0.20.0 - Apache Thrift - Thrift is a software framework for scalable cross-language services development. - http://thrift.apache.org - - - The Apache Software License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - dev - Apache Thrift Developers - dev@thrift.apache.org - - - - scm:git:https://github.com/apache/thrift.git - scm:git:git@github.com:apache/thrift.git - https://github.com/apache/thrift - - - - org.slf4j - slf4j-api - 1.7.36 - runtime - - - org.apache.httpcomponents.client5 - httpclient5 - 5.2.1 - runtime - - - org.apache.httpcomponents.core5 - httpcore5 - 5.2 - runtime - - - jakarta.servlet - jakarta.servlet-api - 5.0.0 - runtime - - - jakarta.annotation - jakarta.annotation-api - 2.1.1 - runtime - - - org.apache.commons - commons-lang3 - 3.12.0 - runtime - - - diff --git a/sources b/sources index 458d2a6..d140fab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (thrift-0.20.0.tar.gz) = 8dc77f666e60141a6b3cf7ee1407b08a0e80d176f8ccfee69317d7df89ab87aea2c7b3ba3e59d4561835edf1ce23762443ad5aeed0099bf075b010853d5eb1cd +SHA512 (thrift-0.14.0.tar.gz) = 4bf1c9f8f7eeb75c5d70f14657d530a574002846266668c56c1153c6820e6ba199bb462893505cb8cfb7a4cc481b11a4fe84d0d26a3279424c5948f45fa8ce3f diff --git a/thrift-char.patch b/thrift-char.patch new file mode 100644 index 0000000..3004d36 --- /dev/null +++ b/thrift-char.patch @@ -0,0 +1,13 @@ +diff --git a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc +index d3ad76a32..eac46a6c7 100644 +--- a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc ++++ b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc +@@ -1062,7 +1062,7 @@ std::string t_delphi_generator::make_pascal_string_literal(std::string value) { + } + + result << "'"; +- for (char const &c: value) { ++ for (signed char const c: value) { + if( (c >= 0) && (c < 32)) { // convert ctrl chars, but leave UTF-8 alone + result << "#" << (int)c; + } else if (c == '\'') { diff --git a/thrift.spec b/thrift.spec index dc82a8e..9cd8ef3 100644 --- a/thrift.spec +++ b/thrift.spec @@ -3,6 +3,11 @@ # 9223372036854775800] [-Werror=free-nonheap-object] # https://bugzilla.redhat.com/show_bug.cgi?id=2046213 # +# Fails to build with gcc 12 +# https://issues.apache.org/jira/browse/THRIFT-5498 +# +# Work around this for now by disabling LTO: +%global _lto_cflags %{nil} %global php_extdir %(php-config --extension-dir 2>/dev/null || echo "undefined") @@ -70,8 +75,8 @@ # NOTE: thrift versions their libraries by package version, so each version # change is a SONAME change and dependencies need to be rebuilt Name: thrift -Version: 0.20.0 -Release: 8%{?dist} +Version: 0.14.0 +Release: 11%{?dist} Summary: Software framework for cross-language services development # Parts of the source are used under the BSD and zlib licenses, but @@ -81,7 +86,7 @@ Summary: Software framework for cross-language services development # Here's the breakdown: # ./lib/py/compat/win32/stdint.h is 2-clause BSD # ./compiler/cpp/src/md5.[ch] are zlib -License: Apache-2.0 AND BSD-3-Clause AND Zlib +License: ASL 2.0 and BSD and zlib URL: https://thrift.apache.org/ Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}.tar.gz @@ -89,10 +94,11 @@ Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}.t 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 +# Fix char warning +# https://issues.apache.org/jira/browse/THRIFT-5350 +Patch0: thrift-char.patch # fix configure.ac insistence on using /usr/local/lib for JAVA_PREFIX Patch2: configure-java-prefix.patch -# fix build with GCC 15: https://github.com/apache/thrift/pull/3078 -Patch3: gcc15.patch # BuildRequires for language-specific bindings are listed under these @@ -174,6 +180,7 @@ 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) @@ -335,8 +342,8 @@ sed -i 's|$(INSTALL) $$p|$(INSTALL) --mode 644 $$p|g' lib/erl/Makefile.am sh ./bootstrap.sh # use unversioned doc dirs where appropriate (via _pkgdocdir macro) -export PYTHON=%{__python3} -%configure --disable-dependency-tracking --disable-static --with-boost=%{_prefix} \ +export PYTHON=%{_bindir}/python3 +%configure --disable-dependency-tracking --disable-static --with-boost=/usr \ --docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} \ %{java_configure} %{ruby_configure} %{erlang_configure} %{golang_configure} %{php_configure} %{lua_configure} @@ -367,16 +374,16 @@ find %{buildroot} -name \*.jar -a \! -name \*thrift\* -exec rm -f '{}' \; # Move perl files into appropriate places find %{buildroot} -name \*.pod -exec rm -f '{}' \; find %{buildroot} -name .packlist -exec rm -f '{}' \; -find %{buildroot}%{_prefix}/lib/perl5 -type d -empty -delete +find %{buildroot}/usr/lib/perl5 -type d -empty -delete mkdir -p %{buildroot}/%{perl_vendorlib}/ -mv %{buildroot}%{_prefix}/lib/perl5/* %{buildroot}/%{perl_vendorlib} +mv %{buildroot}/usr/lib/perl5/* %{buildroot}/%{perl_vendorlib} %if 0%{?want_php} != 0 # Move arch-independent php files into the appropriate place mkdir -p %{buildroot}/%{_datadir}/php/ mv %{buildroot}/%{php_extdir}/Thrift %{buildroot}/%{_datadir}/php/ -%endif +%endif # want_php # Fix permissions on Thread.h find %{buildroot} -name Thread.h -exec chmod a-x '{}' \; @@ -449,51 +456,6 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r %changelog -* Fri Sep 19 2025 Python Maint - 0.20.0-8 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 0.20.0-7 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Fri Jul 25 2025 Fedora Release Engineering - 0.20.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 0.20.0-5 -- Rebuilt for Python 3.14 - -* Sun Jan 19 2025 Fedora Release Engineering - 0.20.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Jul 20 2024 Fedora Release Engineering - 0.20.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 08 2024 Python Maint - 0.20.0-2 -- Rebuilt for Python 3.13 - -* Fri May 17 2024 Orion Poplawski - 0.20.0-1 -- Update to 0.20.0 - -* Sat Jan 27 2024 Fedora Release Engineering - 0.15.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 0.15.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jun 16 2023 Orion Poplawski - 0.15.0-2 -- Re-enable LTO, seems to be working again - -* Thu Jun 15 2023 Orion Poplawski - 0.15.0-1 -- Update to 0.15.0 - -* Tue Jun 13 2023 Python Maint - 0.14.0-14 -- Rebuilt for Python 3.12 - -* Sat Jan 21 2023 Fedora Release Engineering - 0.14.0-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Nov 18 2022 Christopher Tubbs - 0.14.0-12 -- Convert license tags to SPDX - * Sat Jul 23 2022 Fedora Release Engineering - 0.14.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild