[R-pkg-team] updating r-cran-v8 in experimental

Jeroen Ooms jeroen at berkeley.edu
Wed Jun 12 16:51:50 BST 2019


On Wed, Jun 12, 2019 at 5:46 PM Jérémy Lal <kapouer at melix.org> wrote:
>
>
>
> Le mer. 12 juin 2019 à 17:37, Jeroen Ooms <jeroen at berkeley.edu> a écrit :
>>
>> On Wed, Jun 12, 2019 at 10:58 AM Andreas Tille <tille at debian.org> wrote:
>> >
>> > Hi Jeroen,
>> >
>> > On Sun, Jun 09, 2019 at 02:39:33PM +0200, Jeroen Ooms wrote:
>> > > Debian 'experimental' now has nodeJS v12.x which ships with a new
>> > > version of the v8 engine. In order to build r-cran-v8 against this
>> > > libnode, you need the latest version of the R package:
>> > > https://cran.r-project.org/web/packages/V8/index.html
>> >
>> > Thanks a lot for this hint.
>> >
>> > > Perhaps r-cran-v8 2.2 should be uploaded to experimental?
>> >
>> > Unfortunately I get:
>> >
>> > ...
>> > I: R packages needed for DEP8: testthat
>> > I: R Package: V8 Version: 2.2
>> > I: Building using R version 3.6.0-2
>> > I: R API version: r-api-3.5
>> > I: Using built-time from d/changelog: Wed, 12 Jun 2019 09:49:25 +0200
>> >         mkdir -p /build/r-cran-v8-2.2\+dfsg/debian/r-cran-v8/usr/lib/R/site-library
>> >         R CMD INSTALL -l /build/r-cran-v8-2.2\+dfsg/debian/r-cran-v8/usr/lib/R/site-library --clean . "--built-timestamp='Wed, 12 Jun 2019 09:49:25 +0200'"
>> > * installing *source* package 'V8' ...
>> > files 'inst/doc/npm.html', 'inst/doc/v8_intro.html' are missing
>> > ** using staged installation
>> > Using PKG_CFLAGS=-I/usr/include/v8 -I/usr/include/v8-3.14
>> > Using PKG_LIBS=-lv8 -lv8_libplatform
>> > ** libs
>> > make[1]: Entering directory '/build/r-cran-v8-2.2+dfsg/src'
>> > rm -f V8.so RcppExports.o bindings.o
>> > g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I/usr/include/v8 -I/usr/include/v8-3.14 -I"/usr/lib/R/site-library/Rcpp/include"  -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c RcppExports.cpp -o RcppExports.o
>> > g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I/usr/include/v8 -I/usr/include/v8-3.14 -I"/usr/lib/R/site-library/Rcpp/include"  -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c bindings.cpp -o bindings.o
>> > g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-z,relro -o V8.so RcppExports.o bindings.o -lv8 -lv8_libplatform -L/usr/lib/R/lib -lR
>> > make[1]: Leaving directory '/build/r-cran-v8-2.2+dfsg/src'
>> > make[1]: Entering directory '/build/r-cran-v8-2.2+dfsg/src'
>> > make[1]: Leaving directory '/build/r-cran-v8-2.2+dfsg/src'
>> > installing to /build/r-cran-v8-2.2+dfsg/debian/r-cran-v8/usr/lib/R/site-library/00LOCK-r-cran-v8-2.2+dfsg/00new/V8/libs
>> > ** R
>> > ** inst
>> > ** byte-compile and prepare package for lazy loading
>> > ** help
>> > *** installing help indices
>> > ** building package indices
>> > ** installing vignettes
>> > ** testing if installed package can be loaded from temporary location
>> > Error: package or namespace load failed for 'V8' in dyn.load(file, DLLpath = DLLpath, ...):
>> >  unable to load shared object '/build/r-cran-v8-2.2+dfsg/debian/r-cran-v8/usr/lib/R/site-library/00LOCK-r-cran-v8-2.2+dfsg/00new/V8/libs/V8.so':
>> >   /usr/lib/x86_64-linux-gnu/libnode.so.72: undefined symbol: _ZN4node13native_module14has_code_cacheE
>> > Error: loading failed
>> > Execution halted
>> > ERROR: loading failed
>> > * removing '/build/r-cran-v8-2.2+dfsg/debian/r-cran-v8/usr/lib/R/site-library/V8'
>> >
>> >
>> > I have no idea what might be wrong here.
>>
>>
>> This sounds a lot like this upstream issue:
>> https://github.com/nodejs/node/issues/27431. I'm the Jérémy (libnode
>> maintainer) to the cc.
>
>
> If you have this issue that means you're not linking r-cran-v8 to the shared libv8 (a.k.a. libnode),
> and indeed the log above tells it's trying to build its own v8 copy.

Hmm I don't think that diagnosis is correct. The V8.so from the log
file above is the shared library for the R bindings only. The linking
error that follows actually shows that the symbol is specifically
missing form libnode.so.72, which corresponds to this bug in nodejs
(they forgot to add a new cc file to libnode v12):
https://github.com/nodejs/node/issues/27431



More information about the R-pkg-team mailing list