Neal Richardson created ARROW-6167:
--------------------------------------
Summary: [R] macOS binary R packages on CRAN don't have
arrow_available
Key: ARROW-6167
URL: https://issues.apache.org/jira/browse/ARROW-6167
Project: Apache Arrow
Issue Type: Bug
Affects Versions: 0.14.1
Reporter: Neal Richardson
Assignee: Neal Richardson
The {{configure}} script in the R package has some
[magic|https://github.com/apache/arrow/blob/master/r/configure#L66-L86] that
should ensure that on macOS, you're guaranteed a successful library
installation even (especially) if you don't have libarrow installed on your
system. This magic also is designed so that when CRAN builds a binary package
for macOS, the C++ libraries are bundled and "just work" when a user installs
it, no compilation required.
However, the magic appeared to fail on CRAN this time, as the binaries linked
on [https://cran.r-project.org/web/packages/arrow/index.html] were built
without libarrow ({{arrow::arrow_available()}} returns {{FALSE}}).
I've identified three vectors by which you can get an arrow package
installation on macOS in this state:
# The [check|https://github.com/apache/arrow/blob/master/r/configure#L71] to
see if you've already installed {{apache-arrow}} via Homebrew always passes, so
if you have Homebrew installed but haven't done {{brew install apache-arrow}},
the script won't do it for you like it looks like it intends. (This is not
suspected to be the problem on CRAN because they don't have Homebrew installed.)
# If the
"[autobrew|https://github.com/apache/arrow/blob/master/r/configure#L80-L81]"
installation fails, then the [test on
L102|https://github.com/apache/arrow/blob/master/r/configure#L102] will
correctly fail. I managed to trigger this (by luck?) on the [R-hub testing
service|https://builder.r-hub.io/status/arrow_0.14.1.tar.gz-da083126612b46e28854b95156b87b31#L533].
This is possibly what happened on CRAN, though the only [build
logs|https://www.r-project.org/nosvn/R.check/r-release-osx-x86_64/arrow-00check.html]
we have from CRAN are terse because it believes the build was successful.
# Some idiosyncrasy in the compiler on the CRAN macOS system such that the
autobrew script would successfully download the arrow libraries but the L102
check would error. I've been unable to reproduce this using the [version of
clang7 that CRAN provides|https://cran.r-project.org/bin/macosx/tools/].
I have a fix for the first one and will provide workaround documentation for
the README and announcement blog post. Unfortunately, I don't know that there's
anything we can do about the useless binaries on CRAN at this time,
particularly since CRAN is going down for maintenance August 9-18.
cc [~jeroenooms] [~romainfrancois] [~wesmckinn]
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)