-
Notifications
You must be signed in to change notification settings - Fork 29
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
R-V8 doesn't build against Node.js 16.x #123
Comments
This is unfortunate. I don't think it is possible to build the R bindings without the libplatform API, as we need an API call from libplatform.h to initiate the V8 engine. I have asked advice on the v8 mailing list: https://groups.google.com/g/v8-users/c/GeIwDMWCq9I Could the nodejs rpm be patched to include the libplatform headers anyway? |
I have a build of Node.js 16.4.1 going right now that reverts the header patch. That should keep us going until you get an answer from the v8 upstream. |
OK awesome. Technically we really only need the libplatform header, that is also used in the V8 hello-world example. It's weird that nodejs considers this header as unstable. |
Fixed in upstream nodejs: nodejs/node#39288 |
Excellent; when 16.5.0 is out, I can drop my patch then. Thanks for letting me know. |
@sgallagher 16.5.0 was released last week: https://github.com/nodejs/node/releases/tag/v16.5.0 |
I'm aware, but I've been swamped with other stuff this past week; I'll try to get this updated soon. |
No worries, thanks for your work on this. |
This should be fixed on Rawhide as of nodejs-16.5.0-1.fc35 |
@sgallagher is there any way we can get this in EPEL-8? Alternatively would it be possible to provide this as a module in CentOS, similar to your |
@jeroen RHEL 8.5 Beta provides a Node.js 16.x module stream. That should suffice, yes? |
Do these streams include
How do I install the v8 headers from |
They are included in the |
Ah okay, I haven't been able to test that yet because I can't find a docker container that runs centos 8.5 beta, and I don't have a RHEL machine.
OK we can add that. Are the libs still called |
So, I just took a closer look and while they are shipping the headers... they are not shipping Edit: In case it was unclear, I don't maintain the RHEL module and I don't really have any input into how they are delivering it. |
Ah that is too bad! I was hoping they had just taken the Fedora config and rebuilt for RHEL. We would be super grateful if you can provide a |
I'm working on it, but it's slow going. The state of Python in RHEL 8 is... complicated. Essentially, I need to dig through the Node.js source code and find every instance where it's using |
I finally found the magic incantation. It should be appearing in epel8-modular-updates-testing within 24 hours. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-MODULAR-2021-6a8d177796 |
Thanks! How do I enable `epel8-modular-updates-testing? I tried this in centos 8.5: yum module enable epel8-modular-updates-testing
## Last metadata expiration check: 0:04:04 ago on Fri 03 Dec 2021 10:56:46 AM UTC.
## Error: Problems in request:
## missing groups or modules: epel8-modular-updates-testing |
|
Thanks! That works!! I'll add that to the readme. |
You can drop the You can help do that by providing positive karma on https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-MODULAR-2021-6a8d177796 |
OK I am sending my all my juju and karma! |
Hi Stephen, Thanks again for creating this repo, we still use it today on RHEL 8. It works great, but when we install it it shows RETIRED: yum --refresh --enablerepo=epel-testing-modular install @nodejs:16-epel/minimal v8-devel
....
## Extra Packages for Enterprise Linux 8 - x86_64 70 kB/s | 23 kB 00:00
## Extra Packages for Enterprise Linux 8 - Testing - x86_64 190 kB/s | 15 kB 00:00
## Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 - RETIRED 58 kB/s | 19 kB 00:00
## Dependencies resolved. It seems like |
I don't think it's going to disappear, but it's never going to see an update again. EPEL decided to drop modularity. Given that Node.js 16 is EOL upstream, I'm not really sure what to do here. And since Node.js is shipped in RHEL 8, I can't update it to a non-modular version in EPEL without at minimum changing all of the install locations, which likely doesn't help you. |
Ah okay. In that case we'll keep telling users to use the Btw one more related question: in EL9 (I am using rockylinux to test this) the yum install v8-devel
# Last metadata expiration check: 0:00:13 ago on Thu Feb 15 15:14:28 2024.
# Error:
# Problem: package v8-devel-2:9.4.146.26-1.16.18.1.3.el9.x86_64 from epel requires nodejs-devel(x86-64) = 1:16.18.1-4.el9, # but none of the providers can be installed
# - conflicting requests
# - nothing provides nodejs(x86-64) = 1:16.18.1-3el9_1 needed by nodejs-devel-1:16.18.1-4.el9.x86_64 from epel We see that yum info nodejs
Last metadata expiration check: 0:01:30 ago on Thu Feb 15 15:14:28 2024.
Available Packages
Name : nodejs
Epoch : 1
Version : 16.20.2
yum info nodejs-devel
Last metadata expiration check: 0:05:04 ago on Thu Feb 15 15:14:28 2024.
Available Packages
Name : nodejs-devel
Epoch : 1
Version : 16.18.1 I guess this is the same problem with node16 in epel and appstream? Is there a way to install |
I don't actually maintain that package: looks like someone else (Davide Cavalca) created that package. I'll ask him to see if he can get it updated to match the last upstream release. |
Just reporting that the version issues reported from Feb 2024 are still present and I am not fullysure which package is to blame here. I can see the following solutions:
Maybe worth reporting as a bug to https://bugs.almalinux.org/ or the last packager himself (Honza Horak)? |
I think there is no easy solution. The problem is not so much the version numbers, but that the build of node included in the mainstream RHEL repository is built without a shared library, and therefore it cannot be used by the R package. And sadly that one conflicts with the version from |
Ah I didn't know that. Hmm that sounds quite bad. Also when thinking of moving forward with RHEL9 derivates in the near future. Are you aware of any other workaround to get a working nodejs lib which is compatible with v8 baked into a RHEL9-like distro? |
No I don't know. The easiest solution is to build with |
Thanks, I'll check this. Though we have some environments which are air-gapped and no additional downloads can be done. Will the configure script find a static lib if it's sitting in the right place? (sorry for the additional question, maybe it's better to open a new issue) |
Yes you can set If you are looking for which static lib to use, here are some links: https://github.com/jeroen/V8/blob/gh-pages/get-v8-linux.sh |
Node.js 16.x no longer ships
/usr/include/libplatform
which is imported bybindings.cpp
.The text was updated successfully, but these errors were encountered: