From f4841fa676ca92ae0e8d81c2aea773c94212f51d Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Fri, 6 Aug 2021 18:05:26 +0000 Subject: [PATCH] What's the deal with node crashing --- .ci/provision/centos_7.sh | 13 ++++++------- .ci/provision/centos_8.sh | 5 ----- Vagrantfile | 14 +++++++++----- omnibus/config/software/nodejs.rb | 4 ++++ omnibus/config/software/openssl.rb | 10 +++++++++- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/.ci/provision/centos_7.sh b/.ci/provision/centos_7.sh index 4e7de5ad5..6c89825fb 100755 --- a/.ci/provision/centos_7.sh +++ b/.ci/provision/centos_7.sh @@ -1,15 +1,16 @@ #!/bin/bash set -ex +# CentOS 7 comes with GCC 4.8.5 which does not fully support C++14, so we need +# a newer toolchain. +sudo yum install -y centos-release-scl +sudo yum install -y devtoolset-9 +source /opt/rh/devtoolset-9/enable + # Install prerequisites -sudo yum groupinstall -y 'Development Tools' sudo yum install -y \ - gcc-c++ \ - zsh \ tree \ rsync \ - autoconf \ - automake \ procps \ openssl-devel \ ncurses-devel \ @@ -18,7 +19,6 @@ sudo yum install -y \ findutils \ python3 \ unzip \ - glibc-all-langpacks \ rpmdevtools \ rpmlint \ openssl \ @@ -36,7 +36,6 @@ sudo yum install -y epel-release elrepo-release sudo yum install -y yum-plugin-elrepo sudo yum install -y kmod-wireguard - # Install asdf ruby if [ ! -d $HOME/.asdf ]; then git clone --depth 1 https://github.com/asdf-vm/asdf.git $HOME/.asdf diff --git a/.ci/provision/centos_8.sh b/.ci/provision/centos_8.sh index 16dc8d0e2..132acd5fe 100755 --- a/.ci/provision/centos_8.sh +++ b/.ci/provision/centos_8.sh @@ -4,12 +4,8 @@ set -ex # Install prerequisites sudo yum groupinstall -y 'Development Tools' sudo yum install -y \ - gcc-c++ \ - zsh \ tree \ rsync \ - autoconf \ - automake \ procps \ openssl-devel \ ncurses-devel \ @@ -18,7 +14,6 @@ sudo yum install -y \ findutils \ python3 \ unzip \ - glibc-all-langpacks \ rpmdevtools \ rpmlint \ openssl \ diff --git a/Vagrantfile b/Vagrantfile index 087e84385..1ffa0c587 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,15 +5,19 @@ # This Vagrantfile is used for functional testing in the CI pipeline. Vagrant.configure("2") do |config| - if ENV["CI"] # Github Actions MacOS hosts have 14 GB RAM and 3 CPU cores :-D config.vm.provider "virtualbox" do |virtualbox| - virtualbox.cpus = 3 - virtualbox.memory = 8_192 + if ENV["CI"] + virtualbox.cpus = 3 + virtualbox.memory = 8_192 + else + virtualbox.cpus = 12 + virtualbox.memory = 2048 + end end - end - config.vm.synced_folder ".", "/vagrant" + config.vm.synced_folder ".", "/vagrant", type: "rsync", + rsync__exclude: [".git/", "_build/", "**/deps/", "**/node_modules/"] config.vm.define "centos_7" do |centos7| centos7.vm.box = "generic/centos7" diff --git a/omnibus/config/software/nodejs.rb b/omnibus/config/software/nodejs.rb index 8b7c1561b..cd2cbf345 100644 --- a/omnibus/config/software/nodejs.rb +++ b/omnibus/config/software/nodejs.rb @@ -31,6 +31,10 @@ version "16.6.1" do source url: default_src_url, sha256: "36467b8a4e7e3bacc2f4f1709a83b0506429d1999bc461e5e363bc91d3437c09" end +version "14.17.4" do + source url: default_src_url, sha256: "70c75f21ac601ae9e0fd86bdfd4e13e4d302f42b4fafcd6d21804b043a571c36" +end + version "12.22.3" do source url: default_src_url, sha256: "30acec454f26a168afe6d1c55307c5186ef23dba66527cc34e4497d01f91bda4" end diff --git a/omnibus/config/software/openssl.rb b/omnibus/config/software/openssl.rb index 338b2c106..f419ca3fc 100644 --- a/omnibus/config/software/openssl.rb +++ b/omnibus/config/software/openssl.rb @@ -23,7 +23,13 @@ skip_transitive_dependency_licensing true dependency "cacerts" dependency "openssl-fips" if fips_mode? -default_version "1.1.1i" # do_not_auto_update +if ohai["platform"] == "centos" && ohai["platform_version"].start_with?("7.") + # Need an older version of openssl because newer versions fail to build with the + # gcc toolchain that comes with CentOS 7. Need at least gcc/g++ 4.9. + default_version "1.0.2i" +else + default_version "1.1.1i" # do_not_auto_update +end # Openssl builds engines as libraries into a special directory. We need to include # that directory in lib_dirs so omnibus can sign them during macOS deep signing. @@ -49,6 +55,8 @@ version("1.1.1i") { source sha256: "e8be6a35fe41d10603c3cc635e93289ed00bf34b7967 version("1.0.2y") { source sha256: "4882ec99f8e147ab26375da8a6af92efae69b6aef505234764f8cd00a1b81ffc" } version("1.0.2x") { source sha256: "79cb4e20004a0d1301210aee7e154ddfba3d6a33d0df1f6c5d3257cb915a59c9" } version("1.0.2w") { source sha256: "a675ad1a9df59015cebcdf713de76a422347c5d99f11232fe75758143defd680" } +version("1.0.2i") { source sha256: "9287487d11c9545b6efb287cdb70535d4e9b284dd10d51441d9b9963d000de6f" } + relative_path "openssl-#{version}"