This is an automated email from the ASF dual-hosted git repository.
jonkeane pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 1ae38d0d42 GH-43735: [R] AWS SDK fails to build on one of CRAN's M1
builders (#43736)
1ae38d0d42 is described below
commit 1ae38d0d42c1ae5800e42b613f22593673b7370c
Author: Jonathan Keane <[email protected]>
AuthorDate: Sun Aug 18 08:48:55 2024 -0500
GH-43735: [R] AWS SDK fails to build on one of CRAN's M1 builders (#43736)
Trying to replicate the issue's on CRAN's M1 machine so that we can fix
them.
* GitHub Issue: #43735
Lead-authored-by: Jonathan Keane <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Jonathan Keane <[email protected]>
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 12 +++++
dev/tasks/r/github.macos.cran.yml | 82 +++++++++++++++++++++++++++++
dev/tasks/tasks.yml | 4 ++
3 files changed, 98 insertions(+)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index bc3a3a2249..63e2c036c9 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -4965,8 +4965,20 @@ macro(build_awssdk)
set(AWSSDK_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/awssdk_ep-install")
set(AWSSDK_INCLUDE_DIR "${AWSSDK_PREFIX}/include")
+ # The AWS SDK has a few warnings around shortening lengths
+ set(AWS_C_FLAGS "${EP_C_FLAGS}")
+ set(AWS_CXX_FLAGS "${EP_CXX_FLAGS}")
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID
STREQUAL
+ "Clang")
+ # Negate warnings that AWS SDK cannot build under
+ string(APPEND AWS_C_FLAGS " -Wno-error=shorten-64-to-32")
+ string(APPEND AWS_CXX_FLAGS " -Wno-error=shorten-64-to-32")
+ endif()
+
set(AWSSDK_COMMON_CMAKE_ARGS
${EP_COMMON_CMAKE_ARGS}
+ -DCMAKE_C_FLAGS=${AWS_C_FLAGS}
+ -DCMAKE_CXX_FLAGS=${AWS_CXX_FLAGS}
-DCPP_STANDARD=${CMAKE_CXX_STANDARD}
-DCMAKE_INSTALL_PREFIX=${AWSSDK_PREFIX}
-DCMAKE_PREFIX_PATH=${AWSSDK_PREFIX}
diff --git a/dev/tasks/r/github.macos.cran.yml
b/dev/tasks/r/github.macos.cran.yml
new file mode 100644
index 0000000000..33965988e2
--- /dev/null
+++ b/dev/tasks/r/github.macos.cran.yml
@@ -0,0 +1,82 @@
+# 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.
+
+{% import 'macros.jinja' as macros with context %}
+
+{{ macros.github_header() }}
+
+jobs:
+ macos-cran:
+ name: "macOS similar to CRAN"
+ runs-on: macOS-latest
+ strategy:
+ fail-fast: false
+
+ steps:
+ {{ macros.github_checkout_arrow()|indent }}
+
+ - name: Configure dependencies (macos)
+ run: |
+ brew install openssl
+ # disable sccache on macos as it times out for unknown reasons
+ # see GH-33721
+ # brew install sccache
+ # remove cmake so that we can test our cmake downloading abilities
+ brew uninstall cmake
+ - uses: r-lib/actions/setup-r@v2
+ with:
+ use-public-rspm: true
+ # CRAN builders have the entire bin here added to the path. This
sometimes
+ # includes things like GNU libtool which name-collide with what we expect
+ - name: Add R.framework/Resources/bin to the path
+ run: echo "/Library/Frameworks/R.framework/Resources/bin" >>
$GITHUB_PATH
+ - name : Check whether libtool in R is used
+ run: |
+ if [ "$(which libtool)" !=
"/Library/Frameworks/R.framework/Resources/bin/libtool" ]; then
+ echo "libtool provided by R isn't found: $(which libtool)"
+ exit 1
+ fi
+ - name: Install dependencies
+ uses: r-lib/actions/setup-r-dependencies@v2
+ with:
+ cache: false # cache does not work on across branches
+ working-directory: arrow/r
+ extra-packages: |
+ any::rcmdcheck
+ any::sys
+ - name: Install
+ env:
+ _R_CHECK_CRAN_INCOMING_: false
+ CXX: "clang++ -mmacos-version-min=14.6"
+ CFLAGS: "-falign-functions=8 -g -O2 -Wall -pedantic -Wconversion
-Wno-sign-conversion -Wstrict-prototypes"
+ CXXFLAGS: "-g -O2 -Wall -pedantic -Wconversion -Wno-sign-conversion"
+ NOT_CRAN: false
+ run: |
+ sccache --start-server || echo 'sccache not found'
+ cd arrow/r
+ R CMD INSTALL . --install-tests
+ - name: Run the tests
+ run: R -e 'if(tools::testInstalledPackage("arrow") != 0L) stop("There
was a test failure.")'
+ - name: Dump test logs
+ run: cat arrow-tests/testthat.Rout*
+ if: failure()
+ - name: Save the test output
+ uses: actions/upload-artifact@v2
+ with:
+ name: test-output
+ path: arrow-tests/testthat.Rout*
+ if: always()
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index a9da7eb288..fe02fe9ce6 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -1319,6 +1319,10 @@ tasks:
params:
MATRIX: {{ "${{ matrix.r_image }}" }}
+ test-r-macos-as-cran:
+ ci: github
+ template: r/github.macos.cran.yml
+
test-r-arrow-backwards-compatibility:
ci: github
template: r/github.linux.arrow.version.back.compat.yml