From a8c4e4eca0d14b9c1835ad620625e0ef3043759e Mon Sep 17 00:00:00 2001 From: i343759 Date: Wed, 4 Mar 2026 16:24:33 +0200 Subject: [PATCH] Increase make parallelism and remove unnecessary sudo 1. Increase make parallelism from -j4 to -j$(nproc): Use all available CPU cores instead of hardcoded 4 jobs. This significantly reduces compilation time for large dependencies like Node.js (from ~1h15m to potentially <30m), reducing exposure to worker infrastructure issues. 2. Remove sudo from apt-get in python recipe: Build containers run as root, so sudo is unnecessary and may cause issues. Changes apply to both cflinuxfs4 and legacy recipe paths. Part of fix for Node.js LTS build failures in buildpacks-ci dependency-builds pipeline (#29-#33). --- cflinuxfs4/recipe/base.rb | 3 ++- recipe/base.rb | 3 ++- recipe/python.rb | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cflinuxfs4/recipe/base.rb b/cflinuxfs4/recipe/base.rb index b1c73c17..7e876eb1 100644 --- a/cflinuxfs4/recipe/base.rb +++ b/cflinuxfs4/recipe/base.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'mini_portile2' +require 'etc' require 'tmpdir' require 'fileutils' require_relative 'determine_checksum' @@ -24,7 +25,7 @@ def configure_options end def compile - execute('compile', [make_cmd, '-j4']) + execute('compile', [make_cmd, "-j#{Etc.nprocessors}"]) end def archive_filename diff --git a/recipe/base.rb b/recipe/base.rb index 5cd9346f..592d991d 100644 --- a/recipe/base.rb +++ b/recipe/base.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require 'mini_portile' require 'net/ftp' +require 'etc' require 'tmpdir' require 'fileutils' require_relative 'determine_checksum' @@ -24,7 +25,7 @@ def configure_options end def compile - execute('compile', [make_cmd, '-j4']) + execute('compile', [make_cmd, "-j#{Etc.nprocessors}"]) end def archive_filename diff --git a/recipe/python.rb b/recipe/python.rb index 48bd0c52..f7570d75 100644 --- a/recipe/python.rb +++ b/recipe/python.rb @@ -58,7 +58,7 @@ def prefix_path def install_apt(packages) STDOUT.print "Running 'install dependencies' for #{@name} #{@version}... " - if run("sudo apt-get update && sudo apt-get -y install #{packages}") + if run("apt-get update && apt-get -y install #{packages}") STDOUT.puts "OK" else raise "Failed to complete install dependencies task"