diff --git a/.gitignore b/.gitignore index 7f5d81c..2a688c5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /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 new file mode 100644 index 0000000..2f3294c --- /dev/null +++ b/gcc15.patch @@ -0,0 +1,47 @@ +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.15.0.pom b/libthrift-0.20.0.pom similarity index 51% rename from libthrift-0.15.0.pom rename to libthrift-0.20.0.pom index 26547ce..7cc8e43 100644 --- a/libthrift-0.15.0.pom +++ b/libthrift-0.20.0.pom @@ -1,10 +1,15 @@ - + + + + + 4.0.0 org.apache.thrift libthrift - 0.15.0 + 0.20.0 Apache Thrift Thrift is a software framework for scalable cross-language services development. http://thrift.apache.org @@ -31,50 +36,38 @@ org.slf4j slf4j-api - 1.7.28 - compile + 1.7.36 + runtime - org.apache.httpcomponents - httpclient - 4.5.10 - compile + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + runtime - org.apache.httpcomponents - httpcore - 4.4.12 - compile + org.apache.httpcomponents.core5 + httpcore5 + 5.2 + runtime - javax.servlet - javax.servlet-api - 4.0.1 - provided + jakarta.servlet + jakarta.servlet-api + 5.0.0 + runtime - javax.annotation - javax.annotation-api - 1.3.2 - compile + jakarta.annotation + jakarta.annotation-api + 2.1.1 + runtime - junit - junit - 4.12 - test - - - org.mockito - mockito-all - 1.10.19 - test - - - org.slf4j - slf4j-log4j12 - 1.7.28 - test + org.apache.commons + commons-lang3 + 3.12.0 + runtime diff --git a/sources b/sources index 38878fe..458d2a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (thrift-0.15.0.tar.gz) = 37e48d1872c85abc92ae86017f98bb092ac2b64e46be21ed6fa0b72d46cf956257efcc7db344b55aa9a70f9a9741d400081c1b78f1eb8d72c9e53a196f3e62ef +SHA512 (thrift-0.20.0.tar.gz) = 8dc77f666e60141a6b3cf7ee1407b08a0e80d176f8ccfee69317d7df89ab87aea2c7b3ba3e59d4561835edf1ce23762443ad5aeed0099bf075b010853d5eb1cd diff --git a/thrift.spec b/thrift.spec index 6cfd725..dc82a8e 100644 --- a/thrift.spec +++ b/thrift.spec @@ -70,8 +70,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.15.0 -Release: 3%{?dist} +Version: 0.20.0 +Release: 8%{?dist} Summary: Software framework for cross-language services development # Parts of the source are used under the BSD and zlib licenses, but @@ -91,6 +91,8 @@ Source2: https://raw.github.com/apache/%{name}/%{version}/bootstrap.sh # 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 @@ -333,8 +335,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=%{_bindir}/python3 -%configure --disable-dependency-tracking --disable-static --with-boost=/usr \ +export PYTHON=%{__python3} +%configure --disable-dependency-tracking --disable-static --with-boost=%{_prefix} \ --docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} \ %{java_configure} %{ruby_configure} %{erlang_configure} %{golang_configure} %{php_configure} %{lua_configure} @@ -365,9 +367,9 @@ 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}/usr/lib/perl5 -type d -empty -delete +find %{buildroot}%{_prefix}/lib/perl5 -type d -empty -delete mkdir -p %{buildroot}/%{perl_vendorlib}/ -mv %{buildroot}/usr/lib/perl5/* %{buildroot}/%{perl_vendorlib} +mv %{buildroot}%{_prefix}/lib/perl5/* %{buildroot}/%{perl_vendorlib} %if 0%{?want_php} != 0 @@ -447,6 +449,33 @@ 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