diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index f4c5d8a5bd2d..d60e08b1f989 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -205,7 +205,7 @@ jobs: fail-fast: false matrix: config: - - { rtools: 40, arch: 'ucrt64' } + - { rtools: 42, arch: 'ucrt64' } steps: - run: git config --global core.autocrlf false - name: Checkout Arrow @@ -228,10 +228,10 @@ jobs: r-${{ matrix.config.rtools }}-ccache-mingw-${{ matrix.config.arch }}- - uses: r-lib/actions/setup-r@v2 with: - # Note: RTools must be 40 here because RTools40 + ucrt is how we build the Arrow C++ - # static library. The R is not used here but R 4.1 was the last R to use - # Rtools40. - r-version: "4.1" + # Note: RTools must be 42 here because RTools42 + ucrt is how we build the Arrow C++ + # static library. The R is not used here but R 4.2 was the last R to use + # Rtools42. + r-version: "4.2" rtools-version: ${{ matrix.config.rtools }} Ncpus: 2 - name: Build Arrow C++ @@ -284,14 +284,14 @@ jobs: - name: Download Timezone Database shell: bash run: | - # RTools 40 uses GCC 8.x which does not support C++20 chrono timezones, - # so Arrow uses the vendored date library which requires tzdata + # MinGW (non-MSVC) builds use the vendored date library for timezone + # handling, which requires a local copy of the IANA tzdata database. ci/scripts/download_tz_database.sh - run: mkdir r/windows - name: Download artifacts uses: actions/download-artifact@v8 with: - name: libarrow-rtools40-ucrt64.zip + name: libarrow-rtools42-ucrt64.zip path: r/windows - name: Unzip and rezip libarrows shell: bash diff --git a/ci/scripts/r_windows_build.sh b/ci/scripts/r_windows_build.sh index ef9c58f6afca..5843064d898c 100755 --- a/ci/scripts/r_windows_build.sh +++ b/ci/scripts/r_windows_build.sh @@ -23,6 +23,18 @@ set -ex # Make sure it is absolute and exported export ARROW_HOME="$(cd "${ARROW_HOME}" && pwd)" +# The RTools42 release (r-hub/rtools42) ships with 0-byte ca-bundle.crt files +# due to an MSYS2 build bug (msys2/msys2-installer#40). Regenerate them from +# the trust anchors that are already installed. +if [ ! -s /usr/ssl/certs/ca-bundle.crt ]; then + update-ca-trust +fi + +# MSYSTEM must be set so makepkg-mingw can find the toolchain (strip etc.). +# The CI shell runs bash directly without --login, so MSYSTEM is unset. +# Use UCRT64 to match the arch we're building. +export MSYSTEM=${MSYSTEM:-UCRT64} + pacman --noconfirm -Syy RWINLIB_LIB_DIR="lib" diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index 4edcfad3aecd..8e9a41b46b75 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -277,8 +277,6 @@ env: {# use filter to cast to string and convert to lowercase to match yaml boolean #} {% set is_fork = (not is_upstream_b)|lower %} -{% set r_release = {"ver": "4.2", "rt" : "42"} %} -{% set r_oldrel = {"ver": "4.1", "rt" : "40"} %} {%- macro github_set_env(env) -%} {% if env is defined %} diff --git a/dev/tasks/r/github.linux.arrow.version.back.compat.yml b/dev/tasks/r/github.linux.arrow.version.back.compat.yml index 7c2695f95638..41a4274df3d8 100644 --- a/dev/tasks/r/github.linux.arrow.version.back.compat.yml +++ b/dev/tasks/r/github.linux.arrow.version.back.compat.yml @@ -90,10 +90,8 @@ jobs: - { old_arrow_version: '10.0.1', r: '4.2' } - { old_arrow_version: '9.0.0', r: '4.2' } - { old_arrow_version: '8.0.0', r: '4.2' } - - { old_arrow_version: '7.0.0', r: '4.1' } - - { old_arrow_version: '6.0.1', r: '4.1' } - - { old_arrow_version: '5.0.0', r: '4.1' } - - { old_arrow_version: '4.0.0', r: '4.1' } + - { old_arrow_version: '7.0.0', r: '4.2' } + - { old_arrow_version: '6.0.1', r: '4.2' } env: ARROW_R_DEV: "TRUE" OLD_ARROW_VERSION: {{ '${{ matrix.config.old_arrow_version }}' }} diff --git a/dev/tasks/r/github.linux.versions.yml b/dev/tasks/r/github.linux.versions.yml index 612d84b185fe..644494bfbae6 100644 --- a/dev/tasks/r/github.linux.versions.yml +++ b/dev/tasks/r/github.linux.versions.yml @@ -30,7 +30,6 @@ jobs: r_version: # We test devel, release, and oldrel in regular CI. # This is for older versions - - "4.1" - "4.2" - "4.3" - "4.4" diff --git a/r/DESCRIPTION b/r/DESCRIPTION index c76dfc5572fe..f9aa93d474b2 100644 --- a/r/DESCRIPTION +++ b/r/DESCRIPTION @@ -22,7 +22,7 @@ Description: 'Apache' 'Arrow' is a cross-language language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. This package provides an interface to the 'Arrow C++' library. -Depends: R (>= 4.1) +Depends: R (>= 4.2) License: Apache License (>= 2.0) URL: https://github.com/apache/arrow/, https://arrow.apache.org/docs/r/ BugReports: https://github.com/apache/arrow/issues