-
Notifications
You must be signed in to change notification settings - Fork 4k
GH-41450: [R][CI] rhub/container follow ons #41451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
1f695df
ad7b233
3185879
9664a4c
cb4ecea
9843835
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -299,14 +299,14 @@ jobs: | |
| # choosing a binary on this OS. If libarrow_binary is TRUE, we're on | ||
| # an OS that is not in the allowlist, so we have to opt-in to use the | ||
| # binary. Other env vars used in r_docker_configure.sh can be added | ||
| # here (like devtoolset) and wired up in the later steps. | ||
| # here and wired up in the later steps. | ||
| - {image: "rhub/ubuntu-clang", libarrow_binary: "TRUE"} | ||
| # fedora-clang-devel cannot use binaries bc of libc++ (uncomment to see the error) | ||
| # - {image: "rhub/fedora-clang-devel", libarrow_binary: "TRUE"} | ||
| - {image: "rhub/ubuntu-release"} # currently ubuntu-22.04 | ||
| - {image: "rocker/r-ver:4.0.0"} # ubuntu-20.04 | ||
| - {image: "rstudio/r-base:4.1-focal"} # ubuntu-20.04 | ||
| - {image: "rstudio/r-base:4.2-centos7", devtoolset: "8"} | ||
| - {image: "rstudio/r-base:4.1-focal"} | ||
| - {image: "rstudio/r-base:4.2-jammy"} | ||
| - {image: "rstudio/r-base:4.3-noble"} | ||
|
||
| steps: | ||
| # Get the arrow checkout just for the docker config scripts | ||
|
|
@@ -317,7 +317,6 @@ jobs: | |
| - name: Install system requirements | ||
| env: | ||
| ARROW_R_DEV: "TRUE" # To install curl/openssl in r_docker_configure.sh | ||
| DEVTOOLSET_VERSION: {{ '${{ matrix.config.devtoolset }}' }} | ||
| shell: bash | ||
| run: | | ||
| # Make sure R is on the path for the R-hub devel versions (where RPREFIX is set in its dockerfile) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,3 +16,4 @@ | |
| # under the License. | ||
|
|
||
| vptr:include/c++/8/bits/shared_ptr_base.h | ||
| function:cleancall.c | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,35 +28,6 @@ For `gcc`, this generally means version 7 or newer. Most contemporary Linux | |
| distributions have a new enough compiler; however, CentOS 7 is a notable | ||
| exception, as it ships with gcc 4.8. | ||
|
|
||
| If you are on CentOS 7, to build arrow you will need to install a newer `devtoolset`, and you'll need to update R's Makevars to define the `CXX17` variables. This script installs `devtoolset-8` and configures R to be able to use C++17: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The note in the paragraph above also mentions CentOS 7. Maybe we should keep this discussion and say something like, we don't officially support CentOS 7 anymore, but if you want to try building on it, you'll need to:
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nods ok yeah, I also like that it leaves a bit of a more obvious breadcrumb trail for folks debugging. I know it's in the git history, but I don't think folks would know to look here in that history necessarily to find out "what do I do with non-standard compiler setups?" |
||
|
|
||
| ``` | ||
| #!/usr/bin/env bash | ||
|
|
||
| yum install -y centos-release-scl | ||
| yum install -y devtoolset-8 | ||
| # Optional: also install cloud storage dependencies, as described below | ||
| yum install -y libcurl-devel openssl-devel | ||
|
|
||
| source /opt/rh/devtoolset-8/enable | ||
|
|
||
| if [ ! `R CMD config CXX17` ]; then | ||
| mkdir -p ~/.R | ||
| echo "CC = $(which gcc) -fPIC" >> ~/.R/Makevars | ||
| echo "CXX17 = $(which g++) -fPIC" >> ~/.R/Makevars | ||
| echo "CXX17STD = -std=c++17" >> ~/.R/Makevars | ||
| echo "CXX17FLAGS = ${CXX11FLAGS}" >> ~/.R/Makevars | ||
| fi | ||
| ``` | ||
|
|
||
| Note that the C++17 compiler is only required at *build* time. You don't need | ||
| to enable the devtoolset every time you load the package. What's more, if you | ||
| install a binary package from RStudio Package Manager (see method 1a below), you | ||
| do not need to set up any of this. Likewise, if you `R CMD INSTALL --build` | ||
| arrow on a CentOS machine with the newer compilers, you can take the binary | ||
| package it produces and install it on any other CentOS machine without those | ||
| compilers. | ||
|
|
||
| ### Libraries | ||
|
|
||
| Optional support for reading from cloud storage--AWS S3 and | ||
|
|
@@ -517,10 +488,6 @@ The install script should work everywhere, so if libarrow fails to compile, | |
| please [report an issue](https://issues.apache.org/jira/projects/ARROW/issues) | ||
| so that we can improve the script. | ||
|
|
||
| ### Known installation issues | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similarly, maybe this should stick around in some form since we direct people here for troubleshooting. |
||
|
|
||
| * On CentOS, building the package requires a more modern `devtoolset` than the default system compilers. See "System dependencies" above. | ||
|
|
||
| ## Contributing | ||
|
|
||
| We are constantly working to make the installation process as painless as | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jonkeane Is it expected change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aaaah, I might have been overly aggressive in removing from this file.
I thought we only used the
devtoolset_versionon the R CentOS 7 builds and that other places we added that to were borrowing from those and no longer necessary. But if we need to add it back here that's totally fine. Sorry for not confirming that and the hassle.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No problem. :-)
Thanks for confirming this.