Skip to content

v14.21.4

Latest
Compare
Choose a tag to compare
@xet7 xet7 released this 01 Aug 03:11
· 1 commit to release-v14.x since this release
2d931e1

UPDATE 2023-08-12: xet7 built Node.js 14.21.4 for Windows from source, because Meteor bundle had old Node.js 14.21.3. Updated downloads below.

Node.js v14.21.4

Node.js 14 is EOL of security support by original maintainers of Node.js, so Meteor is providing extended maintenance for Node.js 14:
https://blog.meteor.com/announcing-extended-support-maintenance-for-node-js-14-f9e8381f8bb5
This is Node.js v14.21.4, with security fixes ported from newest Node.js to this Node.js v14.21.4

Source code to fixes is at https://github.com/meteor/node-v14-esm at branch release-v14.x

There are 2 prebuilt Node.js and MongoDB executeable binaries from Meteor. Other Node.js executeable binaries for Linux arm64/s390x and Mac x64 have been built from source by xet7 who is maintainer of WeKan at servers donated to WeKan development:

Using custom Node.js mirror with n Node.js version manager

export N_NODE_MIRROR=https://github.com/wekan/node-v14-esm/releases/download
sudo -E n 14.21.4

Or alternatively, have that export at your /root/.bashrc, so then works sudo n 14.21.4

Mac

nano ~/.zshrc

alias nodejs="node"
export N_NODE_MIRROR=https://github.com/wekan/node-v14-esm/releases/download
export LDFLAGS="-L/usr/local/n/versions/node/14.21.4/lib"
export CPPFLAGS="-I/usr/local/n/versions/node/14.21.4/bin/include"
export PATH="/usr/local/n/versions/node/14.21.4/bin:/opt/homebrew/opt/make/libexec/gnubin:$PATH"

Examples how this Node.js version is used at WeKan

Prebuilt binaries for Win/Mac/Linux copied from Meteor Bundle

Node.js 14.21.4 binary from Meteor Bundle URL figured out by xet7 from:

Meteor included old Node.js 14.21.3 binary in Windows bundle, so xet7 built 14.21.4 for Windows from source.

Building Node.js release archives

1) Download Meteor Bundle from https://d3sqy0vbqsdhku.cloudfront.net/ and after that added filename

2) Unarcive them to node directories, for example Linux x64:

mkdir node-v14.21.4-linux-x64

cd node-v14.21.4-linux-x64

tar -xzvf ../dev_bundle_Linux_x86_64_14.21.4.0.tar.gz

cd ..

3) Copy Linux x64 directory to other Linux where is not prebuilt binary:

cp -pR node-v14.21.4-linux-x64 node-v14.21.4-linux-arm64

cp -pR node-v14.21.4-linux-x64 node-v14.21.4-linux-s390x

4) Build Node.js at other CPU Linux:

Compiling Node.js at Linux. To make -j4 you can change amount of CPUs you see with nproc at Linux.

sudo apt-get -y install build-essential

git clone --branch release-v14.x --depth 1 https://github.com/meteor/node-v14-esm

cd node-v14-esm

./configure --prefix="/path/" --with-intl=full-icu && make -j4

Then Node.js executeable binary will at out/Release/node .

5) Copy Linux arm64 binary to archive:

cp node-v14-esm/out/release/node node-v14.21.4-linux-arm64/bin/node

6) Compiling at Mac for M1. This binary already is at Meteor bundle.

To make -j8 you can change amount of CPUs you see with sysctl -n hw.physicalcpu at Mac.

git clone --branch release-v14.x --depth 1 https://github.com/meteor/node-v14-esm

cd node-v14-esm

./configure --prefix="/path/" --with-intl=full-icu && make -j8

7) Compiling at Mac for x86_64 with Rosetta

To "make -j8" you can change amount of CPUs you see with "sysctl -n hw.physicalcpu" at Mac.

git clone --branch release-v14.x --depth 1 https://github.com/meteor/node-v14-esm

cd node-v14-esm

softwareupdate --install-rosetta --agree-to-license

arch -x86_64 ./configure --prefix="/path/" --with-intl=full-icu && arch -x86_64 make -j8

sudo apt-get -y install zip unzip p7zip-full

8) Copy Mac x64 binary to archive:

cp node-v14-esm/out/release/node node-v14.21.4-darwin-x64/bin/node

9) Archive packages

tar.gz for Mac and Linux

tar -czf node-v14.21.4-darwin-arm64.tar.gz node-v14.21.4-darwin-arm64/

tar -czf node-v14.21.4-darwin-x64.tar.gz node-v14.21.4-darwin-x64/

tar -czf node-v14.21.4-linux-arm64.tar.gz node-v14.21.4-linux-arm64/

tar -czf node-v14.21.4-linux-s390x.tar.gz node-v14.21.4-linux-s390x/

tar -czf node-v14.21.4-linux-x64.tar.gz node-v14.21.4-linux-x64/

tar.xz for Mac and Linux

tar cfJ node-v14.21.4-darwin-arm64.tar.xz node-v14.21.4-darwin-arm64/

tar cfJ node-v14.21.4-darwin-x64.tar.xz node-v14.21.4-darwin-x64/

tar cfJ node-v14.21.4-linux-arm64.tar.xz node-v14.21.4-linux-arm64/

tar cfJ node-v14.21.4-linux-s390x.tar.xz node-v14.21.4-linux-s390x/

tar cfJ node-v14.21.4-linux-x64.tar.xz node-v14.21.4-linux-x64/

zip and 7z for Windows. This was not used, because building Node.js at Windows also creates archives.

zip -r node-v14.21.4-win-x64.zip node-v14.21.4-win-x64

7z a node-v14.21.4-win-x64.7z node-v14.21.4-win-x64