Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
d592a1c
GH-44950: [C++] Bump minimum CMake version to 3.25
raulcd Dec 10, 2024
5bc6ed5
Fix some review comments
raulcd Jan 21, 2025
e3291cd
Update some workflows to use Ubuntu 24.04 in order to remove manual C…
raulcd Jan 22, 2025
4238035
Try to use newer CMake from base Windows-2019 image on Windows R buil…
raulcd Jan 22, 2025
09e06aa
Locate CMake
raulcd Jan 22, 2025
87d2cf5
Try installing cmake on Linux packages
raulcd Jan 22, 2025
75ac241
Locate CMake v2
raulcd Jan 22, 2025
3ae63ab
Use full path to CMake on Program Files
raulcd Jan 22, 2025
257945c
Try centos7 path (this is just testing at this point)
raulcd Jan 22, 2025
1e2208b
Try using link for context on Dockerfile
raulcd Jan 22, 2025
c977f35
Try adding install_cmake.sh link to centos7 folder
raulcd Jan 24, 2025
f71fc81
Use script
raulcd Jan 24, 2025
e610341
Try using cmake instead of cmake3
raulcd Jan 24, 2025
033f8ed
Remove cmake3 requirement for rhel 7 and remove BuildRequires
raulcd Jan 24, 2025
406a4e9
Ensure using downloaded CMake on CentOS-7
kou Jan 24, 2025
6a91db2
Revert needless change
kou Jan 24, 2025
3a85d65
Revert Required CMake on minimal build example and install cmake manu…
raulcd Jan 28, 2025
87a8eea
Install required curl to download newer cmake
raulcd Jan 28, 2025
53a1d2a
Add CMake debug logs for fetchcontent_makeavailable(orc)
raulcd Jan 29, 2025
4ab92ce
Try adding zlib_ep dependency to ORC if ZLIB_VENDORED
raulcd Jan 29, 2025
33e1556
Set old behaviour for policy CMP0126
raulcd Jan 29, 2025
8598511
Remove unnecessary debugging to locate CMake
raulcd Jan 29, 2025
9b2b3b9
Remove stray comment
raulcd Jan 29, 2025
d0e5cf9
Require newer CMake for verification tasks on old Ubuntu
raulcd Jan 29, 2025
2f956ea
Apply some suggestions and improvements
raulcd Jan 30, 2025
7020fb5
Removing CMP0126 OLD policy behavior and force unset ZLIB_LIBRARY
raulcd Jan 30, 2025
3b99995
Remove system wide pip upgrade
raulcd Jan 30, 2025
5e25f01
Add readme to ci/rtools dir
amoeba Jan 30, 2025
ca25b71
Fix bug in patch
amoeba Jan 30, 2025
d93a55b
Move patch hunks into ThirdpartyToolchain.cmake
amoeba Jan 30, 2025
abf5b84
Remove unneeded #define
amoeba Jan 30, 2025
4f20c6a
Fix wrong command
kou Jan 31, 2025
74d5606
Add License header to new README
raulcd Feb 5, 2025
17f502c
Comment Build-Depends on cmake for debian packages until we drop Ubun…
raulcd Feb 5, 2025
fcd35fa
Try using /usr/local/bin/cmake for focal and jammy
raulcd Feb 5, 2025
eacab29
New attempt to fix debian rules
raulcd Feb 5, 2025
6e72a16
Remove remainder of _WIN32_WINNT defines
amoeba Feb 5, 2025
2e98564
Remove _WIN32_WINNT define in awssdk_ep.patch
amoeba Feb 5, 2025
0395a6a
Create a link to make debhelper build system happy
raulcd Feb 5, 2025
147ecc0
Fix extremely weird alignment on debian rules
raulcd Feb 5, 2025
6f19834
Update awssdk_ep.patch.
amoeba Feb 5, 2025
62c8933
Add back cmake and link to Dockerfile to avoid having to do the link …
raulcd Feb 6, 2025
7d64cb7
Some final review comments, sort lists, add comment and add empty line
raulcd Feb 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ UBUNTU=22.04

# Default versions for various dependencies
CLANG_TOOLS=14
CMAKE=3.25.0
CUDA=11.2.2
DASK=latest
DOTNET=8.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ jobs:

build-example:
name: C++ Minimal Build Example
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 45
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:

lint:
name: Lint C++, Python, R, Docker, RAT
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 15
steps:
Expand Down
7 changes: 5 additions & 2 deletions ci/docker/centos-7-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ RUN \
-e 's/mirror\.centos\.org/vault.centos.org/' \
/etc/yum.repos.d/CentOS-SCLo-scl*.repo && \
yum install -y \
cmake3 \
curl \
devtoolset-8 \
diffutils \
Expand All @@ -49,9 +48,13 @@ RUN \
wget \
which

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
RUN bash /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin

ENV \
ARROW_R_DEV=TRUE \
CMAKE=/usr/bin/cmake3
CMAKE=/usr/local/bin/cmake
4 changes: 4 additions & 0 deletions ci/docker/linux-r.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ RUN /arrow/ci/scripts/r_docker_configure.sh
COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
COPY r/DESCRIPTION /arrow/r/
RUN /arrow/ci/scripts/r_deps.sh /arrow
2 changes: 1 addition & 1 deletion ci/docker/python-wheel-manylinux.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ ENV PATH=/opt/python/${CPYTHON_VERSION}-${CPYTHON_VERSION}/bin:${PATH}
# Install CMake
ARG cmake=3.29.2
COPY ci/scripts/install_cmake.sh arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${arch} linux ${cmake} /usr/local
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local

# Install Ninja
ARG ninja=1.10.2
Expand Down
5 changes: 4 additions & 1 deletion ci/docker/ubuntu-20.04-cpp-minimal.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ RUN apt-get update -y -q && \
apt-get install -y -q \
build-essential \
ccache \
cmake \
curl \
gdb \
git \
Expand Down Expand Up @@ -68,6 +67,10 @@ RUN latest_system_llvm=10 && \
apt-get clean && \
rm -rf /var/lib/apt/lists*

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_minio.sh latest /usr/local

Expand Down
5 changes: 4 additions & 1 deletion ci/docker/ubuntu-20.04-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ RUN apt-get update -y -q && \
autoconf \
ca-certificates \
ccache \
cmake \
curl \
g++ \
gcc \
Expand Down Expand Up @@ -121,6 +120,10 @@ RUN apt-get update -y -q && \
apt-get clean && \
rm -rf /var/lib/apt/lists*

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_minio.sh latest /usr/local

Expand Down
4 changes: 4 additions & 0 deletions ci/docker/ubuntu-22.04-cpp-minimal.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ RUN latest_system_llvm=14 && \
apt-get clean && \
rm -rf /var/lib/apt/lists*

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_minio.sh latest /usr/local

Expand Down
5 changes: 4 additions & 1 deletion ci/docker/ubuntu-22.04-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ RUN apt-get update -y -q && \
ceph \
ceph-fuse \
ceph-mds \
cmake \
curl \
gdb \
git \
Expand Down Expand Up @@ -168,6 +167,10 @@ RUN if [ "${gcc}" = "" ]; then \
# make sure zlib is cached in the EMSDK folder
RUN source ~/emsdk/emsdk_env.sh && embuilder --pic build zlib

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/

COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_minio.sh latest /usr/local

Expand Down
4 changes: 4 additions & 0 deletions ci/docker/ubuntu-22.04-verify-rc.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,7 @@ RUN /setup-ubuntu.sh && \
rm /setup-ubuntu.sh && \
apt-get clean && \
rm -rf /var/lib/apt/lists*

ARG cmake
COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/
35 changes: 35 additions & 0 deletions ci/rtools/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

# rtools40 patches for AWS SDK and related libs

The patches in this directory are solely for the purpose of building Arrow C++
under [Rtools40](https://cran.r-project.org/bin/windows/Rtools/rtools40.html)
and not used elsewhere. Once we've dropped support for Rtools40, we can consider
removing these patches.

The larger reason these patches are needed is that Rtools provides their own
packages and their versions of the AWS libraries weren't compatible with CMake
3.25. Our solution was to bundle the AWS libs instead and these patches were
required to get them building under the Rtools40 environment.

The patches were added while upgrading the minimum required CMake version to
3.25 in [GH-44950](https://github.com/apache/arrow/issues/44950). Please see the
associated PR, [GH-44989](https://github.com/apache/arrow/pull/44989), for more
context.
39 changes: 39 additions & 0 deletions ci/rtools/aws_c_common_ep.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

diff --git a/include/aws/common/byte_order.inl b/include/aws/common/byte_order.inl
index 1204be0..0abd9cb 100644
--- a/include/aws/common/byte_order.inl
+++ b/include/aws/common/byte_order.inl
@@ -13,7 +13,7 @@
# include <stdlib.h>
#else
# include <netinet/in.h>
-#endif /* _MSC_VER */
+#endif /* _WIN32 */

AWS_EXTERN_C_BEGIN

@@ -39,7 +39,7 @@ AWS_STATIC_IMPL uint64_t aws_hton64(uint64_t x) {
uint64_t v;
__asm__("bswap %q0" : "=r"(v) : "0"(x));
return v;
-#elif defined(_MSC_VER)
+#elif defined(_WIN32)
return _byteswap_uint64(x);
#else
uint32_t low = x & UINT32_MAX;
56 changes: 56 additions & 0 deletions ci/rtools/aws_c_io_ep.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

diff --git a/source/windows/secure_channel_tls_handler.c b/source/windows/secure_channel_tls_handler.c
index 50caf02..29fe850 100644
--- a/source/windows/secure_channel_tls_handler.c
+++ b/source/windows/secure_channel_tls_handler.c
@@ -35,6 +36,25 @@
# pragma warning(disable : 4306) /* Identifier is type cast to a larger pointer. */
#endif

+#ifndef SP_PROT_TLS1_0_SERVER
+#define SP_PROT_TLS1_0_SERVER SP_PROT_TLS1_SERVER
+#endif
+#ifndef SP_PROT_TLS1_0_CLIENT
+#define SP_PROT_TLS1_0_CLIENT SP_PROT_TLS1_CLIENT
+#endif
+#ifndef SP_PROT_TLS1_1_SERVER
+#define SP_PROT_TLS1_1_SERVER 0x00000100
+#endif
+#ifndef SP_PROT_TLS1_1_CLIENT
+#define SP_PROT_TLS1_1_CLIENT 0x00000200
+#endif
+#ifndef SCH_USE_STRONG_CRYPTO
+#define SCH_USE_STRONG_CRYPTO 0x00400000
+#endif
+#ifndef SECBUFFER_ALERT
+#define SECBUFFER_ALERT 0x11
+#endif
+
#define KB_1 1024
#define READ_OUT_SIZE (16 * KB_1)
#define READ_IN_SIZE READ_OUT_SIZE
@@ -456,7 +476,7 @@ static int s_fillin_alpn_data(

*extension_length += sizeof(uint32_t) + sizeof(uint16_t);

- *extension_name = SecApplicationProtocolNegotiationExt_ALPN;
+ *extension_name = 2;
/*now add the protocols*/
for (size_t i = 0; i < protocols_count; ++i) {
struct aws_byte_cursor *protocol_ptr = NULL;
Loading
Loading