This post is more of a continuous effort in order to learn how to build by myself some more up-to-date artifacts, this time
Node.js 8.10.0 (LTS), to my preferred software platform:
Solaris 11. In particular, I'm still considering Solaris 11.3 GA, which by the time
of this writing is about 3 years old with GCC 4.8.2. Solaris 11.4 GA is
expected to arrive late this year (2018).
To partially quote Node.js:
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. ... .
Node.js is a typical case for a Solaris back-end system, where its cloud-ready infrastructure would be typically very well-suited to the task: SMF, ZFS, zones, higher threading count and advanced networking capabilities.
The version used in this post,
Node.js 8.10.0 (LTS), is a March 2018 security update. I've chosen the LTS 8.x series because it's the latest branch that better aligns to the Solaris way-of-things. It's
expected to live until Dec 2019 and not beyond because it's aligning to OpenSSL 1.0.2 life-cycle to which it depends.
This post's (at the time of this writing) up-to-date custom build is relevant not only because of the security side, but because the software isn't available in the official repositories and, even if it could be one day, it would be uncertain if the update pace of the support repository would be acceptable. Furthermore, by performing a custom build instead of just downloading
pre-built binaries one ensures getting more exactly what's needed and optimized for a particular machine as per specific compiler (CPU) options and source-code modules selection.
Right from the start I was
able to build a 64-bits
Node.JS 8.10.0 (LTS) in
Solaris 11.4 Beta (already available) with GCC 5.5.0, but at first I wasn't able to repeat the task under Solaris 11.3 GA and I was somewhat settled with it as the "
build instructions" stated a more updated (
4.9.4 - Aug 3, 2016) GCC was required and I only had an almost 3-years old
4.8.2 (from Oct 16, 2013) in Solaris 11.3. Although a newer GCC is generally better, by inspecting the initial build failures in Solaris 11.3 GA I've noticed that there weren't that many changes that could render the task impossible. This motivated me to take some time to further investigate a way of trying to accomplish the task.