GH-46740: [C++] Update bundled Thrift to 0.22.0
Rationale for this change
Apache Thrift 0.22.0 has been released: https://github.com/apache/thrift/releases/tag/v0.22.0
What changes are included in this PR?
Update bundled Thrift version.
Are these changes tested?
Yes.
Are there any user-facing changes?
No.
- GitHub Issue: #46740
@github-actions crossbow submit -g cpp -g python -g r
:warning: GitHub issue #46740 has been automatically assigned in GitHub to PR creator.
Revision: 22e86621bb7fe4f2b40678db9e9d121616a5b111
Submitted crossbow builds: ursacomputing/crossbow @ actions-e66c94ae55
Hmm...
https://github.com/ursacomputing/crossbow/actions/runs/15529087541/job/43714065005#step:3:1300
-- stderr output is:
In file included from /build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/TApplicationException.h:23,
from /build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/TApplicationException.cpp:20:
/build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/Thrift.h:54:19: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
54 | : public std::iterator<std::forward_iterator_tag, std::pair<int, const char*> > {
| ^~~~~~~~
In file included from /usr/include/c++/13/bits/stl_iterator_base_funcs.h:66,
from /usr/include/c++/13/string:47,
from /build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/Thrift.h:37:
/usr/include/c++/13/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
In file included from /build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/TOutput.cpp:20:
/build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/Thrift.h:54:19: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
54 | : public std::iterator<std::forward_iterator_tag, std::pair<int, const char*> > {
| ^~~~~~~~
In file included from /usr/include/c++/13/bits/stl_iterator_base_funcs.h:66,
from /usr/include/c++/13/string:47,
from /build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/Thrift.h:37:
/usr/include/c++/13/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
/build/arrow/thrift_ep-prefix/src/thrift_ep/lib/cpp/src/thrift/TUuid.cpp:22:10: fatal error: boost/uuid/string_generator.hpp: No such file or directory
22 | #include <boost/uuid/string_generator.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
std::iterator: Issue and PR are available:
- https://issues.apache.org/jira/browse/THRIFT-5698
- https://github.com/apache/thrift/pull/2778
But the PR closed because of no response from maintainers.
@kou are we waiting for a 0.23.0 (or 0.22.1) version of Thrift? or should we apply the upstream patches that have been merged? Updating the version might fix the flaky issues we get downloading old Thrift.
Ah, sorry. https://github.com/apache/arrow/issues/46745 is the blocker of this. I had a plan to work on #46745 after https://github.com/apache/arrow/pull/45306 is merged but I haven't worked on it yet.
@kou are we waiting for a 0.23.0 (or 0.22.1) version of Thrift? or should we apply the upstream patches that have been merged? Updating the version might fix the flaky issues we get downloading old Thrift.
I think we can definitely wait for a fixed Thrift release.
std::iterator is a warning not an error. So it's not a blocker of this. We can use Thrift 0.22.0 (that doesn't include the changes for std::iterator).
boost/uuid is a blocker because our CMake configuration for Boost doesn't find boost/uuid.
(Sorry, not working on this yet...)
I close this in favor of #46912. #46912 updates bundled Boost and Apache Thrift. I want to update them separately but there are coupled. So I couldn't do it.