-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-6793: [R] Arrow C++ binary packaging for Linux #6068
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
Closed
Closed
Changes from all commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
e2c3238
Attempt to build static lib based on manylinux2014
nealrichardson c51c817
Refine build_arrow_static.sh and add wiring in r/configure to consume…
nealrichardson 02264e2
Move build script to r/tools
nealrichardson ac24186
Experiment with calling install script from R package
nealrichardson a347a44
Some debug
nealrichardson be61f15
Local debugging
nealrichardson ae7571c
Don't fail without ninja
nealrichardson aea3979
Remove ninja from travis
nealrichardson 184082a
Fix ninja detection
nealrichardson ad632e6
Restore build flags
nealrichardson fb21b15
Make sure the full test suite works
nealrichardson 655f8de
Allow r/configure to build cpp libs if they're found at ../cpp
nealrichardson 52a0465
Sketch out full logic of linux install script
nealrichardson 4838938
Add vignette explaining how Linux installation works
nealrichardson c323a1c
Prune some exploratory work
nealrichardson 2259026
Apply suggestions from @kou
nealrichardson 5e9382b
Download cmake if necessary
nealrichardson ac5eff6
More iteration on linux build script: works on rhub/ubuntu-cpp-release
nealrichardson 07b21c5
Alphabetize cmake flags
nealrichardson 6f07ebf
More tempfile
nealrichardson b256c27
Refactor linuxlibs.R and add r-hub builders to docker-compose
nealrichardson 801863b
:rat:
nealrichardson eaefdce
Add R jobs to GHA
nealrichardson 364f639
Fix dockerhub name for centos image
nealrichardson f1672b5
utils:: and let's not fail fast for now
nealrichardson 111fa06
Some fixes from the build matrix
nealrichardson fb27bf8
Try to find R better
nealrichardson f71034c
Oops
nealrichardson 970e6cc
Build triage and start updating vignette
nealrichardson d156fb1
Docs
nealrichardson 908c3e9
Add rstudio builds to matrix; generalize docker-compose job
nealrichardson ce7ae24
Oops
nealrichardson 68d2320
Add R version to rstudio docker
nealrichardson 801e207
Better detect OS for RSPM binaries. Build bison/m4 if necessary
nealrichardson fc6cbf2
Try putting bison on path
nealrichardson d6c81e8
Debug m4
nealrichardson 75f2e60
More debugging (curse you thrift)
nealrichardson d52d353
Fix bison installation
nealrichardson 1d28428
temporarily skip hive test
nealrichardson 79b208b
Remove centos8, add fedora
nealrichardson 11664d2
See if downgrading flex solves the segfault
nealrichardson 5695a1c
Re-skip fedora for now
nealrichardson 26dee63
Cleanup and update docs
nealrichardson 7504e3d
Oops.
nealrichardson e0cd128
Oops again
nealrichardson 83cb080
Remove accidental checkin of cpp zip file
nealrichardson 9381756
Skip these new tests too for ARROW-7500
nealrichardson 4c5e5d5
Better test fix/skip
nealrichardson f8ffcfd
which ninja
nealrichardson efef71e
Try downgrading m4
nealrichardson 6110242
Revert "Try downgrading m4"
nealrichardson 692efc5
Resolve some PR feedback
nealrichardson 79e4793
Fix for file move
nealrichardson 24f3bba
Revert "Skip brew test" (oops, wrong branch)
nealrichardson cf32c3c
Remove docker from various docker-compose variable names
nealrichardson 38bac3e
Fill in some GHA self references
nealrichardson ffa2eaf
Reorganize R CI jobs and wire new ones in crossbow
nealrichardson 0d32395
Fix revert mess
nealrichardson 4714634
Name GHA jobs to match the docker image name
nealrichardson 29505fb
Copy-paste better
nealrichardson fa5bdf1
Swap out GHA/crossbow jobs because the old one caches better/is faster
nealrichardson 00484c6
Make thirdparty verbosity conditional
nealrichardson 518d977
We're putting binaries under bin/ [skip ci]
nealrichardson cd04937
:nail_care:
nealrichardson 7d32bc1
cmake list(APPEND ...)
nealrichardson ac7680c
ARROW_USE_PKG_CONFIG
nealrichardson File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # 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. | ||
|
|
||
| # General purpose Dockerfile to take a Docker image containing R | ||
| # and install Arrow R package dependencies | ||
|
|
||
| ARG base | ||
| FROM ${base} | ||
|
|
||
| # Make sure R is on the path for the R-hub devel versions (where RPREFIX is set in its dockerfile) | ||
| ENV PATH "${RPREFIX}/bin:${PATH}" | ||
| # Ensure parallel R package installation, set CRAN repo mirror, | ||
| # and use pre-built binaries where possible | ||
| COPY ci/etc/rprofile /arrow/ci/etc/ | ||
| RUN cat /arrow/ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site | ||
| # Also ensure parallel compilation of C/C++ code | ||
| RUN echo "MAKEFLAGS=-j$(R --slave -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Makeconf | ||
| # Workaround for html help install failure; see https://github.com/r-lib/devtools/issues/2084#issuecomment-530912786 | ||
| RUN Rscript -e 'x <- file.path(R.home("doc"), "html"); if (!file.exists(x)) {dir.create(x, recursive=TRUE); file.copy(system.file("html/R.css", package="stats"), x)}' | ||
|
|
||
| COPY ci/scripts/r_deps.sh /arrow/ci/scripts/ | ||
| COPY r/DESCRIPTION /arrow/r/ | ||
| RUN /arrow/ci/scripts/r_deps.sh /arrow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| .pick_cran <- function() { | ||
| # Return a CRAN repo URL, preferring RSPM binaries if available for this OS | ||
| rspm_template <- "https://demo.rstudiopm.com/all/__linux__/%s/latest" | ||
| supported_os <- c("xenial", "bionic", "centos7", "opensuse42", "opensuse15") | ||
|
|
||
| if (nzchar(Sys.which("lsb_release"))) { | ||
| os <- tolower(system("lsb_release -cs", intern = TRUE)) | ||
| if (os %in% supported_os) { | ||
| return(sprintf(rspm_template, os)) | ||
| } | ||
| } | ||
| if (file.exists("/etc/os-release")) { | ||
| os_release <- readLines("/etc/os-release") | ||
| vals <- sub("^.*=(.*)$", "\\1", os_release) | ||
| os <- intersect(vals, supported_os) | ||
| if (length(os)) { | ||
| # e.g. "bionic" | ||
| return(sprintf(rspm_template, os)) | ||
| } else { | ||
| names(vals) <- sub("^(.*)=.*$", "\\1", os_release) | ||
| if (vals["ID"] == "opensuse") { | ||
| version <- sub('^"?([0-9]+).*"?.*$', "\\1", vals["VERSION_ID"]) | ||
| os <- paste0("opensuse", version) | ||
| if (os %in% supported_os) { | ||
| return(sprintf(rspm_template, os)) | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (file.exists("/etc/system-release")) { | ||
| # Something like "CentOS Linux release 7.7.1908 (Core)" | ||
| system_release <- tolower(utils::head(readLines("/etc/system-release"), 1)) | ||
| # Extract from that the distro and the major version number | ||
| os <- sub("^([a-z]+) .* ([0-9]+).*$", "\\1\\2", system_release) | ||
| if (os %in% supported_os) { | ||
| return(sprintf(rspm_template, os)) | ||
| } | ||
| } | ||
|
|
||
| return("https://cloud.r-project.org") | ||
| } | ||
|
|
||
| options( | ||
| Ncpus = parallel::detectCores(), | ||
| repos = tryCatch(.pick_cran(), error = function(e) "https://cloud.r-project.org"), | ||
| HTTPUserAgent = sprintf( | ||
| 'R/%s R (%s)', | ||
| getRversion(), | ||
| paste(getRversion(), R.version$platform, R.version$arch, R.version$os) | ||
| ) | ||
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # 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. | ||
|
|
||
| jobs: | ||
| - job: linux | ||
| pool: | ||
| vmImage: ubuntu-latest | ||
| timeoutInMinutes: 360 | ||
| steps: | ||
| - script: | | ||
| set -ex | ||
| git clone --no-checkout {{ arrow.remote }} arrow | ||
| git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }} | ||
| git -C arrow checkout FETCH_HEAD | ||
| git -C arrow submodule update --init --recursive | ||
| displayName: Clone arrow | ||
|
|
||
| - script: | | ||
| set -ex | ||
| docker -v | ||
| docker-compose -v | ||
| cd arrow | ||
| R_ORG={{ r_org }} | ||
| R_IMAGE={{ r_image }} | ||
| R_TAG={{ r_tag }} | ||
| docker-compose pull --ignore-pull-failures r | ||
| docker-compose build r | ||
| displayName: Docker build | ||
|
|
||
| - script: | | ||
| set -ex | ||
| cd arrow | ||
| R_ORG={{ r_org }} | ||
| R_IMAGE={{ r_image }} | ||
| R_TAG={{ r_tag }} | ||
| docker-compose run r | ||
| displayName: Docker run |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.