From 3401a27f4db449486c5e46a5b1a3d2c7eef790d8 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 17 Mar 2017 17:34:54 -0400 Subject: [PATCH 1/7] doc: add supported platforms list Original Commit Message: PR-URL: https://github.com/nodejs/node/pull/11872 Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Roman Reiss Reviewed-By: Ben Noordhuis Reviewed-By: Gibson Fahnestock Backport-Of: https://github.com/nodejs/node/pull/11872 PR-URL: https://github.com/nodejs/node/pull/11943 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell --- BUILDING.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 667714ba2b3de5..ccdeaa2fda97bc 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -8,6 +8,71 @@ If you consistently can reproduce a test failure, search for it in the [Node.js issue tracker](https://github.com/nodejs/node/issues) or file a new issue. +## Supported platforms + +This list of supported platforms is current as of the branch / release to +which it is attached. + +### Input + +Node.js relies on V8 and libuv. Therefore, we adopt a subset of their +supported platforms. + +### Strategy + +Support is divided into three tiers: + +* **Tier 1**: Full test coverage and maintenance by the Node.js core team and + the broader community. +* **Tier 2**: Full test coverage but more limited maintenance, + often provided by the vendor of the platform. +* **Experimental**: Known to compile but not necessarily reliably or with + a full passing test suite. These are often working to be promoted to Tier + 2 but are not quite ready. There is at least one individual actively + providing maintenance and the team is striving to broaden quality and + reliability of support. + +### Supported platforms + +| System | Support type | Version | Architectures | Notes | +|--------------|--------------|----------------------------------|----------------------|------------------| +| GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | | +| macOS | Tier 1 | >= 10.10 | x64 | | +| Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | | +| SmartOS | Tier 2 | >= 15 < 16.4 | x86, x64 | see note1 | +| FreeBSD | Tier 2 | >= 10 | x64 | | +| GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | | +| GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | | +| AIX | Tier 2 | >= 6.1 TL09 | ppc64be | | +| GNU/Linux | Tier 2 | kernel >= 3.10, glibc >= 2.17 | s390x | | +| macOS | Experimental | >= 10.8 < 10.10 | x64 | no test coverage | +| Linux (musl) | Experimental | musl >= 1.0 | x64 | | + +note1 - The gcc4.8-libs package needs to be installed, because node + binaries have been built with GCC 4.8, for which runtime libraries are not + installed by default. For these node versions, the recommended binaries + are the ones available in pkgsrc, not the one available from nodejs.org. + Note that the binaries downloaded from the pkgsrc repositories are not + officially supported by the Node.js project, and instead are supported + by Joyent. SmartOS images >= 16.4 are not supported because + GCC 4.8 runtime libraries are not available in their pkgsrc repository + +### Supported toolchains + +Depending on host platform, the selection of toolchains may vary. + +#### Unix + +* GCC 4.8.5 or newer +* Clang 3.4.1 or newer + +#### Windows + +* Building Node: Visual Studio 2015 or Visual C++ Build Tools 2015 or newer +* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2015 + or newer + +## Building Node.js on supported platforms ### Unix / OS X @@ -20,9 +85,9 @@ Prerequisites: On OS X, you will also need: * [Xcode](https://developer.apple.com/xcode/download/) - * You also need to install the `Command Line Tools` via Xcode. You can find + - You also need to install the `Command Line Tools` via Xcode. You can find this under the menu `Xcode -> Preferences -> Downloads` - * This step will install `gcc` and the related toolchain containing `make` + - This step will install `gcc` and the related toolchain containing `make` * After building, you may want to setup [firewall rules](tools/macosx-firewall.sh) to avoid popups asking to accept incoming network connections when running tests: @@ -53,6 +118,9 @@ $ make $ [sudo] make install ``` +Note that the above requires that `python` resolve to Python 2.6 or 2.7 +and not a newer version. + To run the tests: ```text @@ -263,9 +331,11 @@ It is possible to build Node.js with **Note**: building in this way does **not** allow you to claim that the runtime is FIPS 140-2 validated. Instead you can indicate that the runtime -uses a validated module. See the [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) +uses a validated module. See the +[security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) page 60 for more details. In addition, the validation for the underlying module -is only valid if it is deployed in accordance with its [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf). +is only valid if it is deployed in accordance with its +[security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf). If you need FIPS validated cryptography it is recommended that you read both the [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) and [user guide](https://openssl.org/docs/fips/UserGuide-2.0.pdf). From 3bee2eb13aaf4ae6ad8f1c5adc5c161370c723ed Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 20 Mar 2017 15:38:42 -0400 Subject: [PATCH 2/7] doc: add supported platforms list for v6.x Original Commit Message: PR-URL: https://github.com/nodejs/node/pull/11943 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Backport-Of: https://github.com/nodejs/node/pull/11943 --- BUILDING.md | 6 +++--- README.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index ccdeaa2fda97bc..e3c378fcd4938c 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -39,7 +39,7 @@ Support is divided into three tiers: | GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | | | macOS | Tier 1 | >= 10.10 | x64 | | | Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | | -| SmartOS | Tier 2 | >= 15 < 16.4 | x86, x64 | see note1 | +| SmartOS | Tier 2 | >= 14 < 16.4 | x86, x64 | see note1 | | FreeBSD | Tier 2 | >= 10 | x64 | | | GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | | | GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | | @@ -63,8 +63,8 @@ Depending on host platform, the selection of toolchains may vary. #### Unix -* GCC 4.8.5 or newer -* Clang 3.4.1 or newer +* GCC 4.8 or newer +* Clang 3.4 or newer #### Windows diff --git a/README.md b/README.md index 43f19ade786830..50974cb29c7671 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ the binary verification command above. ## Building Node.js See [BUILDING.md](BUILDING.md) for instructions on how to build -Node.js from source. +Node.js from source along with a list of officially supported platforms. ## Security From 7f2c59ce1615469fc3fa1ea07dba358c5f107961 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Tue, 28 Mar 2017 09:19:00 -0400 Subject: [PATCH 3/7] doc: add supported platforms list for v4.x --- BUILDING.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index e3c378fcd4938c..3f9a1d12fab877 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -39,23 +39,13 @@ Support is divided into three tiers: | GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | | | macOS | Tier 1 | >= 10.10 | x64 | | | Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | | -| SmartOS | Tier 2 | >= 14 < 16.4 | x86, x64 | see note1 | +| SmartOS | Tier 2 | = 14 | x86, x64 | | | FreeBSD | Tier 2 | >= 10 | x64 | | | GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | | | GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | | -| AIX | Tier 2 | >= 6.1 TL09 | ppc64be | | -| GNU/Linux | Tier 2 | kernel >= 3.10, glibc >= 2.17 | s390x | | | macOS | Experimental | >= 10.8 < 10.10 | x64 | no test coverage | | Linux (musl) | Experimental | musl >= 1.0 | x64 | | -note1 - The gcc4.8-libs package needs to be installed, because node - binaries have been built with GCC 4.8, for which runtime libraries are not - installed by default. For these node versions, the recommended binaries - are the ones available in pkgsrc, not the one available from nodejs.org. - Note that the binaries downloaded from the pkgsrc repositories are not - officially supported by the Node.js project, and instead are supported - by Joyent. SmartOS images >= 16.4 are not supported because - GCC 4.8 runtime libraries are not available in their pkgsrc repository ### Supported toolchains @@ -68,8 +58,8 @@ Depending on host platform, the selection of toolchains may vary. #### Windows -* Building Node: Visual Studio 2015 or Visual C++ Build Tools 2015 or newer -* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2015 +* Building Node: Visual Studio 2013 or Visual C++ Build Tools 2013 or newer +* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2013 or newer ## Building Node.js on supported platforms @@ -178,8 +168,8 @@ Prerequisites: * [Python 2.6 or 2.7](https://www.python.org/downloads/) * One of: * [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) - * [Visual Studio](https://www.visualstudio.com/) 2013 / 2015, all editions including the Community edition - * [Visual Studio](https://www.visualstudio.com/) Express 2013 / 2015 for Desktop + * [Visual Studio](https://www.visualstudio.com/) 2013, all editions including the Community edition + * [Visual Studio](https://www.visualstudio.com/) Express 2013 for Desktop * Basic Unix tools required for some tests, [Git for Windows](http://git-scm.com/download/win) includes Git Bash and tools which can be included in the global `PATH`. From e12c4deb58bb816c1dfe408e65137ed3bc3bb35f Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 31 Mar 2017 17:34:46 -0400 Subject: [PATCH 4/7] squash: address comments --- BUILDING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 3f9a1d12fab877..186e91444308e5 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -168,8 +168,8 @@ Prerequisites: * [Python 2.6 or 2.7](https://www.python.org/downloads/) * One of: * [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) - * [Visual Studio](https://www.visualstudio.com/) 2013, all editions including the Community edition - * [Visual Studio](https://www.visualstudio.com/) Express 2013 for Desktop + * [Visual Studio](https://www.visualstudio.com/) 2013 / 2015, all editions including the Community edition + * [Visual Studio](https://www.visualstudio.com/) Express 2013 /2015 for Desktop * Basic Unix tools required for some tests, [Git for Windows](http://git-scm.com/download/win) includes Git Bash and tools which can be included in the global `PATH`. From 93deed34fe1c98980995aadb62478f9d2999bd74 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Tue, 4 Apr 2017 14:37:33 -0400 Subject: [PATCH 5/7] squash: address comments --- BUILDING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILDING.md b/BUILDING.md index 186e91444308e5..11db9433834103 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -39,7 +39,7 @@ Support is divided into three tiers: | GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | | | macOS | Tier 1 | >= 10.10 | x64 | | | Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | | -| SmartOS | Tier 2 | = 14 | x86, x64 | | +| SmartOS | Tier 2 | >= 14 | x86, x64 | | | FreeBSD | Tier 2 | >= 10 | x64 | | | GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | | | GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | | From 4ecb36afcfc7c66f6ea9d078f8aa0d6adb896771 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Tue, 4 Apr 2017 14:43:59 -0400 Subject: [PATCH 6/7] squash: fixup formatting --- BUILDING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILDING.md b/BUILDING.md index 11db9433834103..8db00755164e0a 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -169,7 +169,7 @@ Prerequisites: * One of: * [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) * [Visual Studio](https://www.visualstudio.com/) 2013 / 2015, all editions including the Community edition - * [Visual Studio](https://www.visualstudio.com/) Express 2013 /2015 for Desktop + * [Visual Studio](https://www.visualstudio.com/) Express 2013 / 2015 for Desktop * Basic Unix tools required for some tests, [Git for Windows](http://git-scm.com/download/win) includes Git Bash and tools which can be included in the global `PATH`. From 4c704221ea0c7b6b15694f11c8c696e7f5d5a84c Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Wed, 5 Apr 2017 14:18:45 -0400 Subject: [PATCH 7/7] squash: address comments --- BUILDING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 8db00755164e0a..57f790be8ba042 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -54,7 +54,7 @@ Depending on host platform, the selection of toolchains may vary. #### Unix * GCC 4.8 or newer -* Clang 3.4 or newer +* Clang 3.4.1 or newer #### Windows @@ -69,7 +69,7 @@ Depending on host platform, the selection of toolchains may vary. Prerequisites: * `gcc` and `g++` 4.8 or newer, or -* `clang` and `clang++` 3.4 or newer +* `clang` and `clang++` 3.4.1 or newer * Python 2.6 or 2.7 * GNU Make 3.81 or newer