jeroen/V8

Fedora 37: V8 no longer installs with v8-devel

rsbivand opened this issue · 10 comments

The R package V8 no longer installs with v8-devel.x86_64 2:10.2.154.13-1.18.7.0.1.fc37:

> install.packages("V8")
Installing package into '/home/rsb/lib/r_libs'
(as 'lib' is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/V8_4.2.2.tar.gz'
Content type 'application/x-gzip' length 683134 bytes (667 KB)
==================================================
downloaded 667 KB

* installing *source* package 'V8' ...
** package 'V8' successfully unpacked and MD5 sums checked
** using staged installation
Found C++17 compiler: g++
Using CXXCPP=g++ -std=gnu++17 -E
Using PKG_CFLAGS=-I/usr/include/v8 -I/usr/include/v8-3.14
Using PKG_LIBS=-lv8 -lv8_libplatform
Running feature test for pointer compression...
Pointer compression not needed
** libs
rm -f V8.so RcppExports.o bindings.o
g++ -std=gnu++17 -I"/home/rsb/topics/R/R422-share/lib64/R/include" -DNDEBUG -I/usr/include/v8 -I/usr/include/v8-3.14 -DV8_ENABLE_CHECKS -DISNODEJS=10.2.154.13-node.9 -I'/home/rsb/lib/r_libs/Rcpp/include' -I/usr/local/include  -fvisibility=hidden -fpic  -g -O2  -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++17 -I"/home/rsb/topics/R/R422-share/lib64/R/include" -DNDEBUG -I/usr/include/v8 -I/usr/include/v8-3.14 -DV8_ENABLE_CHECKS -DISNODEJS=10.2.154.13-node.9 -I'/home/rsb/lib/r_libs/Rcpp/include' -I/usr/local/include  -fvisibility=hidden -fpic  -g -O2  -c bindings.cpp -o bindings.o
bindings.cpp: In function ‘Rcpp::RObject convert_object(v8::Local<v8::Value>)’:
bindings.cpp:226:34: error: invalid use of ‘v8::Data::Data’
  226 |     memcpy(data.begin(), buffer->Data(), data.size());
      |                                  ^~~~
bindings.cpp: In function ‘bool write_array_buffer(Rcpp::String, Rcpp::RawVector, ctxptr)’:
bindings.cpp:333:18: error: invalid use of ‘v8::Data::Data’
  333 |   memcpy(buffer->Data(), data.begin(), data.size());
      |                  ^~~~
make: *** [/home/rsb/topics/R/R422-share/lib64/R/etc/Makeconf:178: bindings.o] Error 1
ERROR: compilation failed for package 'V8'
* removing '/home/rsb/lib/r_libs/V8'
* restoring previous '/home/rsb/lib/r_libs/V8'

The downloaded source packages are in
	'/tmp/Rtmp2DaFv8/downloaded_packages'
Warning message:
In install.packages("V8") :
  installation of package 'V8' had non-zero exit status

Install succeeds with v8-314-devel.x86_64 3.14.5.10-30.fc37 but packages using V8, such as rmapshaper then break other packages tested in r-spatial revdep checks, such as:

"canadamaps" Error in context_eval(join(src), private$context, serialize, await) : Error in V8 context: ReferenceError: Uint8ClampedArray is not defined

"dots" Error in stop_for_old_v8() : Warning: v8 Engine is version 3.14.5.10 but version >=6 is required for this function. See https://github.com/jeroen/V8 for help installing a modern version of v8 on your operating system

On Fedora 36, v8-devel was sufficient.

Just to let you know; V8 failing creates more apparent revdep failures.

With:

Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
install.packages("V8")

the package installs; I'll re-run the revdeps (there are ~ 1200 in total) and report back.

I think this was a bug in Fedora's nodejs-18.7.0.1 that was fixed in 18.12.1.1 which seems available in Fedora:37 "testing" and in Fedora 38 stable: https://src.fedoraproject.org/rpms/nodejs

Maybe you need to enable it? Can you try

yum --enablerepo=updates-testing update v8-devel

@sgallagher do you know what is the reason that nodejs-18.12.1-1.fc37 has not yet been bumped to fedora-37 stable? Currently Fedora-37 runs a preview (non-lts) release nodejs-18. Thanks!

Thanks, installing V8 after upgrading from v8-devel-2:10.2.154.13-1.18.7.0.1.fc37.x86_64 to v8-devel-2:10.2.154.15-1.18.12.1.1.fc37.x86_64 completed without error. nodejs and nodejs-devel were also updated. I'll re-run the revdeps shortly.

OK thanks for the report.

With V8 re-installed with Fedora v8-devel from testing, the failing revdep checks related to v8 now pass, thanks!

@sgallagher do you know what is the reason that nodejs-18.12.1-1.fc37 has not yet been bumped to fedora-37 stable? Currently Fedora-37 runs a preview (non-lts) release nodejs-18. Thanks!

Something went wrong with the gating tests. I'll waive these through and figure it out later.

Great, thanks. I can see now nodejs-18.12.1-1.fc37 is in F37 stable: https://src.fedoraproject.org/rpms/nodejs

@sgallagher can you maybe un-retire https://src.fedoraproject.org/rpms/R-V8 ? It should now work again.

See https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/#claiming for the steps. I don't want to maintain the package, personally.