Closed mojo-iconrad closed 5 years ago
Hello @mojo-iconrad, thanks for chatting with me in IRC. I'll look into how feasible this is and get back to you.
I imagine something like "v8-5.3.337u" would work for the v8 package name.
Hey @mojo-iconrad,
Sorry for the lack of updates to your request. Are you still interested in this package?
I am, in fact. I've taken the liberty to dig up some prior work I was doing on getting this sort of thing to succeed. I'm not 100% certain this actually successfully executes all the way through but it is a damn sight closer than anything else I've found out in the wild: https://pastebin.com/GYXQU30h
@mojo-iconrad,
Thanks for the update. Are you still needing both php56u and php70u?
I personally am working w/ a constraint of being on 56u. But from what I gather it's actually easier to maintain the v8js extension for php70u.
Typically, we build modules from stock versions for greater compatibility. Seeing that the pecl module requires V8 4.6.76+, that is not an option. EL7 provides V8 3.14.5.10. This does make the request a tad tricker. In the past, we have run into complications.
I'll start looking at creating updated V8 packages and take it from there.
Seeing that the pecl module requires V8 4.6.76+, that is not an option.
That's why I provided the Dockerfile I pastebinned -- it's a successful compile process on el7 (The "official" v8 compile instructions don't successfully execute on CentOS/RHEL/Fedora). (Note: I just did some testing on that Dockerfile and I needed to remove the target="x64"
line in order to get the compile to execute. This should not affect successful builds of libv8 itself.)
Sorry, didn't mean to close this issue. Here is a request to get a newer (but new enough) version of V8 in EPEL7.
As I start to looking through Fedora's V8 spec file, I have concerns if we should proceed with this request.
First of all, IUS stands for Inline Upsteam Stable. We typically build new packages when the upstream project releases a new version. The V8 project releases are tied to the releases of Chrome. There does not appear to be an easy way to tie a V8 branch/tag to a stable release of Chrome. We might just need to track when Fedora does a new release.
Also, the process to get the source tarball and other build requirements is very non-standard and is only getting stranger in the latest Fedora spec file.
I will keep poking and report back with my findings.
Both Software Collections and CentOS Cloud SIG have V8, but only 3.14.
After the the 3.x releases of V8, Fedora switched to clang. It would appear that EL7 does not have a new enough version of clang, as I have been running into errors about unknown clang options. I was able to bypass one by adding another change to %{optflags}. Then just ran into another one.
Your Dockerfile uses clang, but not the stock EL7 version. It downloads clang as part of the 'gclient sync' step (I think). As a packager, this raises concerns.
It would appear packaging a newer version of V8 for EL7 will require more resources than we currently have to allocate. While the classic 'pull requests welcome' still stands, we make no promises.
If EL7 gets a newer version of V8, we can look at creating the pecl modules.
Yeah, I was just adapting the "official" build instructions for libv8 as minimally necessary to get it to successfully execute. They include the gclient sync
task as part of it; I never dug too deeply into what it was doing under the hood.
Developers tend to create instructions for the lowest common denominator, what is easiest and fastest for most platforms. Given their process is unique and seems overly complicated, I guess I shouldn't be surprised that they would use a bundled compiler.
After peering a bit into Chromium/V8 processes, I don't blame you for looking too closely.
Since PHP 5.6 and 7.0 are now EOL, I'm going to go ahead and close this out. Sorry we weren't able to come up with a solution to this one.
What package do you want?
v8-5.3.337 (not sure about naming convention; devel packages as well) php56u-pecl-v8js-0.6.4 php70u-pecl-v8js-1.3.3
Why?
The v8 library as provided by the base RHEL/CentOS project in EL7 is version 3.14.5, which is incompatible with the php libraries for v8. The build process for updated versions of v8 is non-trivial on RHEL/CentOS/et.al. systems.
My own company as well as a few others I am in contact with the sysadmins for have resorted to using Docker containers in order to be able to provide this functionality. Having access to it as a pre-built package would be a huge improvement in our overall stability and environment.
OS versions
I am primarily concerned with having access to this package on EL7.
Testing
I agree to test the new package to ensure that it works as expected, and am willing to help coordinate to accomplish this.