thisisnic opened a new issue, #55398:
URL: https://github.com/apache/arrow/issues/55398

   ### Describe the enhancement requested
   
   The Windows libarrow static library that `r/configure.win` downloads for 
every R user is built in CI with Rtools40 (`ci/scripts/r_windows_build.sh`, 
`ci/scripts/PKGBUILD`, the `windows-cpp` job in `.github/workflows/r.yml`, and 
the `r-binary-packages` crossbow task). Rtools40 is now archived: CRAN moved 
its installer to `cran-archive.r-project.org` on 2026-10-30, which broke both 
jobs (#55377), and its `pacman` package repository is no longer maintained. R 
4.5 and later use Rtools45, which is MXE-based and has no package manager, so 
the current build script cannot run there as-is.
   
   Most of what libarrow needs is already bundled by the Arrow CMake build 
(Thrift, AWS SDK, Brotli, google-cloud-cpp, abseil, protobuf, mimalloc). Of the 
eight libraries `PKGBUILD` takes from the toolchain, Rtools45 ships six (zlib, 
zstd, lz4, bzip2, curl, re2), plus the OpenSSL and nghttp2 that the build 
script copies into the zip. The two it lacks, snappy and utf8proc, can be built 
with `Snappy_SOURCE=BUNDLED` and `utf8proc_SOURCE=BUNDLED`. I checked this 
against the `rtools45-toolchain-libs-full-6768` tarballs for both x86_64 and 
aarch64; the library sets match for everything Arrow uses.
   
   Proposed change:
   
   - Install Rtools45 in the `windows-cpp` job and call cmake directly instead 
of `makepkg-mingw`, with `CMAKE_PREFIX_PATH` pointing at the Rtools45 toolchain 
directory.
   - Bundle snappy, utf8proc and re2. Rtools45's re2 (2025-08-12) depends on 
abseil, so linking it from `configure.win` would need the `absl_*` libraries on 
the link line; bundling is simpler.
   - Update the hard-coded link flags in `r/configure.win`: drop `-lsnappy 
-lutf8proc -lre2`, and extend `GCS_LIBS` with the transitive dependencies of 
Rtools45's curl 8.18 (`libidn2`, `libpsl`, `libunistring`, `libiconv`, 
`libssh2`, `libgcrypt`, `libgpg-error`, brotli).
   - Update the crossbow task once the main workflow is green.
   
   Windows aarch64 is a follow-up, not part of this issue: the Rtools45 aarch64 
toolchain has the same libraries, but #52022 (xsimd) and #50612 need resolving 
first.
   
   This issue was drafted with the help of an AI assistant.
   
   ### Component(s)
   
   Continuous Integration, R
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to