Fix method reporting in buildsystems, Fix Rust buildsystem, Rebuild uutils_coreutils. (#11930)

* Revamp rust buildsystem.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Rebuild uutils_coreutils correctly.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add better method printing to buildsystems.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Unify gem_name and gem_version variables.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* cleanup

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add variable for packages to skip during install testing portion of unit tests.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Avoid system override in python3 postinstall.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Remove old pip 23.2.1 workaround.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: Satadru Pramanik <satadru@gmail.com>
This commit is contained in:
github-actions[bot]
2025-05-22 10:52:26 -05:00
committed by GitHub
parent ac9a46e6ea
commit 8796d687f5
29 changed files with 557 additions and 131 deletions

View File

@@ -661,8 +661,8 @@ def unpack(meta)
FileUtils.chmod 0o755, meta[:filename], verbose: CREW_VERBOSE
system "../#{meta[:filename]}", '--appimage-extract', chdir: @extract_dir, exception: true
when /\.gem$/i
puts "Moving #{@pkg.gem_name} binary gem for install..."
gem_file = "#{@pkg.gem_name}-#{@pkg.gem_version}-#{GEM_ARCH}.gem"
puts "Moving #{@pkg.ruby_gem_name} binary gem for install..."
gem_file = "#{@pkg.ruby_gem_name}-#{@pkg.ruby_gem_version}-#{GEM_ARCH}.gem"
FileUtils.mv meta[:filename], File.join(@extract_dir, gem_file)
end
end
@@ -1190,7 +1190,7 @@ def install
elsif @pkg.superclass.to_s == 'RUBY'
meta = download
target_dir = unpack meta
gem_file = "#{@pkg.gem_name}-#{@pkg.gem_version}-#{GEM_ARCH}.gem"
gem_file = "#{@pkg.ruby_gem_name}-#{@pkg.ruby_gem_version}-#{GEM_ARCH}.gem"
if File.file?(File.join(target_dir, gem_file))
FileUtils.mv File.join(target_dir, gem_file), File.join(CREW_DEST_DIR, gem_file)
else
@@ -1324,7 +1324,7 @@ end
def archive_package(crew_archive_dest)
if @pkg.superclass.to_s == 'RUBY'
gem_file = "#{@pkg.gem_name}-#{@pkg.gem_version}-#{GEM_ARCH}.gem"
gem_file = "#{@pkg.ruby_gem_name}-#{@pkg.ruby_gem_version}-#{GEM_ARCH}.gem"
pkg_name = "#{@pkg.name}-#{@pkg.version}-chromeos-#{@device[:architecture]}.gem"
begin
FileUtils.mv File.join(CREW_DEST_DIR, gem_file), File.join(crew_archive_dest, pkg_name)

View File

@@ -34,10 +34,10 @@ class Command
# Use gem to first try to remove gems...
if pkg.name.start_with?('ruby_')
@gem_name = pkg.name.sub('ruby_', '').sub('_', '-')
if Kernel.system "gem list -i \"^#{@gem_name}\$\"", %i[out err] => File::NULL
puts "Uninstalling #{@gem_name} before removing gem files. It's ok if this fails.".orange
system "gem uninstall -aIx --abort-on-dependent #{@gem_name}", exception: false
@ruby_gem_name = pkg.name.sub('ruby_', '').sub('_', '-')
if Kernel.system "gem list -i \"^#{@ruby_gem_name}\$\"", %i[out err] => File::NULL
puts "Uninstalling #{@ruby_gem_name} before removing gem files. It's ok if this fails.".orange
system "gem uninstall -aIx --abort-on-dependent #{@ruby_gem_name}", exception: false
end
end

View File

@@ -204,7 +204,7 @@ if [[ -n "${CHROMEOS_RELEASE_CHROME_MILESTONE}" ]]; then
if (( "${CHROMEOS_RELEASE_CHROME_MILESTONE}" > "112" )); then
# Recent Arm systems have a cut down system.
if [[ "${ARCH}" == "armv7l" ]];then
BOOTSTRAP_PACKAGES+=' bzip2 pcre2'
BOOTSTRAP_PACKAGES+=' bzip2 pcre2 uutils_coreutils'
fi
fi
fi

View File

@@ -1,10 +1,27 @@
require 'fileutils'
require 'package'
require 'require_gem'
class Autotools < Package
property :configure_options, :pre_configure_options, :configure_build_extras, :configure_install_extras
def self.build
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/configure_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
unless File.file?('Makefile') && CREW_CACHE_BUILD
puts "Additional configure_options being used: #{@pre_configure_options.nil? ? '<no pre_configure_options>' : @pre_configure_options} #{@configure_options.nil? ? '<no configure_options>' : @configure_options}".orange
# Run autoreconf if necessary

View File

@@ -1,4 +1,5 @@
require 'package'
require 'require_gem'
class CMake < Package
property :cmake_build_extras, :cmake_build_relative_dir, :cmake_install_extras, :cmake_options, :pre_cmake_options
@@ -6,11 +7,22 @@ class CMake < Package
def self.build
@cmake_build_relative_dir ||= '.'
@crew_cmake_options = @no_lto ? CREW_CMAKE_OPTIONS.gsub('-flto=auto', '-fno-lto').sub('-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE', '') : CREW_CMAKE_OPTIONS
puts 'Additional cmake options being used:'.orange
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/cmake_/).delete_if { |i| send(i).blank? }
method_list.each do |method|
puts "#{method}: #{send method}".orange
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
system "#{@pre_cmake_options} cmake -S #{@cmake_build_relative_dir} -B #{@cmake_build_relative_dir}/builddir -G Ninja #{@crew_cmake_options} #{@cmake_options}"
system "#{CREW_NINJA} -C #{@cmake_build_relative_dir}/builddir"
@cmake_build_extras&.call

View File

@@ -1,15 +1,27 @@
require 'package'
require 'require_gem'
class Meson < Package
property :meson_options, :pre_meson_options, :meson_build_extras, :meson_install_extras
def self.build
@crew_meson_options = @no_lto ? CREW_MESON_OPTIONS.sub('-Db_lto=true', '-Db_lto=false') : CREW_MESON_OPTIONS
puts 'Additional meson options being used:'.orange
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/meson_/).delete_if { |i| send(i).blank? }
method_list.each do |method|
puts "#{method}: #{send method}".orange
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
system "#{@pre_meson_options} meson setup #{@crew_meson_options} #{@meson_options} builddir"
system 'meson configure --no-pager builddir'
system "#{CREW_NINJA} -C builddir"

View File

@@ -1,10 +1,26 @@
require 'package'
require 'require_gem'
class PERL < Package
property :pre_perl_options, :perl_build_extras, :perl_install_extras
def self.prebuild
puts "Additional pre_perl_options being used: #{@pre_perl_options.nil? ? '<no pre_perl_options>' : @pre_perl_options}".orange
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/perl_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
system "#{@pre_perl_options} perl Makefile.PL"
system "sed -i 's,/usr/local,#{CREW_PREFIX},g' Makefile"
end

View File

@@ -2,6 +2,7 @@ Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
require 'json'
require 'package'
require 'require_gem'
def get_pip_info(pip_pkg_name = nil)
@pip_show = nil
@@ -33,9 +34,25 @@ def pip_hard_reinstall
end
class Pip < Package
property :pip_install_extras, :pre_configure_options
property :pip_install_extras, :pip_pre_configure_options
def self.install
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/pip_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_block
@pip_cache_dir = `pip cache dir`.chomp
@pip_cache_dest_dir = File.join(CREW_DEST_DIR, @pip_cache_dir)
@@ -72,12 +89,11 @@ class Pip < Package
end
end
puts "Installing #{@py_pkg} python module. This may take a while...".lightblue
puts "Additional pre_configure_options being used: #{@pre_configure_options.nil? ? '<no pre_configure_options>' : @pre_configure_options}".orange
puts "#{@py_pkg.capitalize} is configured to install a pre-release version." if prerelease?
# Build wheel if pip install fails, since that implies a wheel isn't available.
puts "Trying to install #{@py_pkg}==#{@py_pkg_chromebrew_version}" if CREW_DEBUG
Kernel.system "PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pre_configure_options} python3 -s -m pip install #{@pip_resume_retries} --no-warn-conflicts --force-reinstall #{prerelease? ? '--pre' : ''} --no-deps --ignore-installed -U --only-binary :all: #{@py_pkg}==#{@py_pkg_chromebrew_version}"
Kernel.system "PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pip_pre_configure_options} python3 -s -m pip install #{@pip_resume_retries} --no-warn-conflicts --force-reinstall #{prerelease? ? '--pre' : ''} --no-deps --ignore-installed -U --only-binary :all: #{@py_pkg}==#{@py_pkg_chromebrew_version}"
get_pip_info(@py_pkg)
pip_hard_reinstall unless @py_pkg_chromebrew_version == @pip_pkg_version
if CREW_DEBUG
@@ -91,9 +107,9 @@ class Pip < Package
system "PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 python3 -m pip install #{@pip_resume_retries} #{prerelease? ? '--pre' : ''} --force-reinstall --upgrade '#{@py_pkg}==#{@py_pkg_chromebrew_version}'" unless prerelease?
# Assume all pip non-SKIP sources are git.
@pip_wheel = if @source_url == 'SKIP'
`PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pre_configure_options} python3 -m pip wheel #{prerelease? ? '--pre' : ''} -w #{@pip_cache_dir} #{@py_pkg}==#{@py_pkg_version}`[/(?<=filename=)(.*)*?(\S+)/, 0]
`PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pip_pre_configure_options} python3 -m pip wheel #{prerelease? ? '--pre' : ''} -w #{@pip_cache_dir} #{@py_pkg}==#{@py_pkg_version}`[/(?<=filename=)(.*)*?(\S+)/, 0]
else
`PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pre_configure_options} python3 -m pip wheel #{prerelease? ? '--pre' : ''} -w #{@pip_cache_dir} git+#{source_url}`[/(?<=filename=)(.*)*?(\S+)/, 0]
`PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 MAKEFLAGS=-j#{CREW_NPROC} #{@pip_pre_configure_options} python3 -m pip wheel #{prerelease? ? '--pre' : ''} -w #{@pip_cache_dir} git+#{source_url}`[/(?<=filename=)(.*)*?(\S+)/, 0]
end
puts "@pip_wheel is #{@pip_wheel}" if CREW_DEBUG
FileUtils.install File.join(@pip_cache_dir, @pip_wheel), @pip_cache_dest_dir

View File

@@ -1,9 +1,26 @@
require 'package'
require 'require_gem'
class Python < Package
property :no_svem, :python_build_extras, :python_build_options, :python_build_relative_dir, :python_install_extras, :python_install_options
property :python_build_extras, :python_build_options, :python_build_relative_dir, :python_install_extras, :python_install_options, :python_no_svem
def self.build
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/python_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
@python_build_relative_dir ||= '.'
Dir.chdir(@python_build_relative_dir) do
if File.file?('setup.py')
@@ -22,7 +39,7 @@ class Python < Package
def self.install
Dir.chdir(@python_build_relative_dir) do
if File.file?('setup.py')
@py_setup_install_options = @no_svem ? PY_SETUP_INSTALL_OPTIONS_NO_SVEM : PY_SETUP_INSTALL_OPTIONS
@py_setup_install_options = @python_no_svem ? PY_SETUP_INSTALL_OPTIONS_NO_SVEM : PY_SETUP_INSTALL_OPTIONS
puts "Python install options being used: #{@py_setup_install_options} #{@python_install_options}".orange
puts "MAKEFLAGS=-j#{CREW_NPROC} python3 setup.py install #{@py_setup_install_options} #{@python_install_options}" if CREW_VERBOSE
system "MAKEFLAGS=-j#{CREW_NPROC} python3 setup.py install #{@py_setup_install_options} #{@python_install_options}"

View File

@@ -1,9 +1,26 @@
require 'package'
require 'require_gem'
class Qmake < Package
property :qmake_build_extras, :qmake_install_extras
def self.build
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/qmake_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
system "QMAKE_CXX='g++ #{ARCH == 'x86_64' && Gem::Version.new(LIBC_VERSION.to_s) >= Gem::Version.new('2.35') ? File.join(CREW_LIB_PREFIX, 'libC.so.6').to_s : ''}' qmake"
system 'make'
@qmake_build_extras&.call

View File

@@ -6,17 +6,17 @@ require 'require_gem'
require_gem('activesupport', 'active_support/core_ext/object/blank')
def check_gem_binary_build_needed(gem_name = nil, gem_version = nil)
puts "Checking to see if gem compile for #{gem_name} is needed..."
@extract_dir = "#{gem_name}.#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.dir"
def check_gem_binary_build_needed(ruby_gem_name = nil, ruby_gem_version = nil)
puts "Checking to see if gem compile for #{ruby_gem_name} is needed..."
@extract_dir = "#{ruby_gem_name}.#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.dir"
FileUtils.mkdir_p File.join(CREW_BREW_DIR, @extract_dir)
Dir.chdir(File.join(CREW_BREW_DIR, @extract_dir)) do
# Need to check if the gem has extensions. If it does, we need
# either a compiler or a pre-compiled binary gem.
system "gem fetch #{gem_name} --platform=ruby --version=#{gem_version}"
system "gem unpack #{gem_name}-#{gem_version}.gem"
system "grep -q -r spec.extensions #{gem_name}-#{gem_version}/*.gemspec", %i[out err] => File::NULL
@build_needed = system "grep -q -r spec.extensions #{gem_name}-#{gem_version}/*.gemspec", %i[out err] => File::NULL
system "gem fetch #{ruby_gem_name} --platform=ruby --version=#{ruby_gem_version}"
system "gem unpack #{ruby_gem_name}-#{ruby_gem_version}.gem"
system "grep -q -r spec.extensions #{ruby_gem_name}-#{ruby_gem_version}/*.gemspec", %i[out err] => File::NULL
@build_needed = system "grep -q -r spec.extensions #{ruby_gem_name}-#{ruby_gem_version}/*.gemspec", %i[out err] => File::NULL
end
FileUtils.rm_rf File.join(CREW_BREW_DIR, @extract_dir)
return @build_needed
@@ -59,61 +59,77 @@ def set_vars(passed_name = nil, passed_version = nil)
# https://github.com/rubygems/rubygems/blob/b5798efd348935634d4e0e2b846d4f455582db48/lib/rubygems/version.rb#L305
gem_test_versions.delete_if { |i| i.match?(/[a-zA-Z]/) }
gem_test_version = gem_test_versions.map { |v| Gem::Version.new(v) }.max.to_s
@gem_name = gem_test_name.blank? ? Gem::SpecFetcher.fetcher.suggest_gems_from_name(passed_name.gsub(/^ruby_/, '')).first : gem_test_name
@remote_gem_version = gem_test_name.blank? ? Gem.latest_version_for(@gem_name).to_s : gem_test_version
@gem_version = passed_version.split('-').first.to_s
@gem_package_ver = @gem_version.dup
@ruby_gem_name = gem_test_name.blank? ? Gem::SpecFetcher.fetcher.suggest_gems_from_name(passed_name.gsub(/^ruby_/, '')).first : gem_test_name
@remote_ruby_gem_version = gem_test_name.blank? ? Gem.latest_version_for(@ruby_gem_name).to_s : gem_test_version
@ruby_gem_version = passed_version.split('-').first.to_s
@gem_package_ver = @ruby_gem_version.dup
# Use latest gem version.
@gem_version = @remote_gem_version.to_s if Gem::Version.new(@remote_gem_version.to_s) > Gem::Version.new(@gem_version)
@ruby_gem_version = @remote_ruby_gem_version.to_s if Gem::Version.new(@remote_ruby_gem_version.to_s) > Gem::Version.new(@ruby_gem_version)
end
class RUBY < Package
property :gem_name, :gem_version, :ruby_install_extras
property :ruby_gem_name, :ruby_gem_version, :ruby_install_extras
depends_on 'ruby'
def self.preflight
@install_gem ||= true
set_vars(name, version)
puts "Examining #{@gem_name} gem...".orange
puts "Examining #{@ruby_gem_name} gem...".orange
@gem_filelist_path = File.join(CREW_META_PATH, "#{name}.filelist")
installed_gem_search = [`gem list -l -e #{@gem_name}`.chomp.to_s].grep(/#{@gem_name}/)[0]
installed_gem_search = [`gem list -l -e #{@ruby_gem_name}`.chomp.to_s].grep(/#{@ruby_gem_name}/)[0]
if installed_gem_search
installed_gem_info = installed_gem_search.delete('()').gsub('default:', '').gsub(',', '').split
@gem_installed_version = installed_gem_info[1]
@gem_outdated = (Gem::Version.new(@gem_version) > Gem::Version.new(@gem_installed_version))
@gem_latest_version_installed = Gem::Version.new(@gem_version) <= Gem::Version.new(@gem_installed_version)
crewlog "@gem_version: #{@gem_version} @gem_installed_version: #{@gem_installed_version} @gem_outdated: #{@gem_outdated} @gem_latest_version_installed: #{@gem_latest_version_installed}"
@gem_outdated = (Gem::Version.new(@ruby_gem_version) > Gem::Version.new(@gem_installed_version))
@gem_latest_version_installed = Gem::Version.new(@ruby_gem_version) <= Gem::Version.new(@gem_installed_version)
crewlog "@ruby_gem_version: #{@ruby_gem_version} @gem_installed_version: #{@gem_installed_version} @gem_outdated: #{@gem_outdated} @gem_latest_version_installed: #{@gem_latest_version_installed}"
end
# Create a filelist from the gem if the latest gem version is
# installed but the filelist doesn't exist.
Kernel.system "gem contents #{@gem_name}", %i[out] => [@gem_filelist_path, 'w'] if @gem_latest_version_installed && !File.file?(@gem_filelist_path)
Kernel.system "gem contents #{@ruby_gem_name}", %i[out] => [@gem_filelist_path, 'w'] if @gem_latest_version_installed && !File.file?(@gem_filelist_path)
# If the version number gem reports isn't newer than the version
# number that Chromebrew has recorded, force an install.
# Otherwise we can skip the install and bail.
@device = ConvenienceFunctions.load_symbolized_json
pkg_info = @device[:installed_packages].select { |pkg| pkg[:name] == name } [0]
pkg_info = @device[:installed_packages].select { |pkg| pkg[:name] == name }[0]
return if pkg_info.nil?
# Handle case of the Chromebrew gem pkg not yet having been
# installed or having a changed version number despite the gem
# having been installed.
@json_gem_pkg_version = pkg_info[:version].gsub!('_', '-').to_s
@install_gem = false if Gem::Version.new(@gem_version) <= Gem::Version.new(@json_gem_pkg_version)
@install_gem = false if Gem::Version.new(@ruby_gem_version) <= Gem::Version.new(@json_gem_pkg_version)
end
def self.preinstall
@gem_binary_build_needed = check_gem_binary_build_needed(@gem_name, @gem_version) unless no_compile_needed? || gem_compile_needed?
@gem_binary_build_needed = check_gem_binary_build_needed(@ruby_gem_name, @ruby_gem_version) unless no_compile_needed? || gem_compile_needed?
end
def self.build
return unless !no_compile_needed? || @gem_binary_build_needed
Kernel.system "gem fetch #{@gem_name} --platform=ruby --version=#{@gem_version}"
Kernel.system "gem unpack #{@gem_name}-#{@gem_version}.gem"
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/ruby_/).delete_if { |i| send(i).blank? }
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
Kernel.system "gem fetch #{@ruby_gem_name} --platform=ruby --version=#{@ruby_gem_version}"
Kernel.system "gem unpack #{@ruby_gem_name}-#{@ruby_gem_version}.gem"
system 'gem install gem-compiler' unless Kernel.system('gem compile --help 2>/dev/null', %i[out err] => File::NULL)
system "gem compile --strip --prune #{@gem_name}-#{@gem_version}.gem -O #{CREW_DEST_DIR}/ -- --build-flags --with-cflags='#{CREW_LINKER_FLAGS}' --with-ldflags='#{CREW_LINKER_FLAGS}'"
system "gem compile --strip --prune #{@ruby_gem_name}-#{@ruby_gem_version}.gem -O #{CREW_DEST_DIR}/ -- --build-flags --with-cflags='#{CREW_LINKER_FLAGS}' --with-ldflags='#{CREW_LINKER_FLAGS}'"
@just_built_gem = true
end
@@ -121,16 +137,16 @@ class RUBY < Package
# @install_gem will always be true during upgrades since we remove
# the old gem during the upgrade.
unless @install_gem
puts "#{@gem_name} #{@gem_installed_version} is properly installed.".lightgreen
puts "#{@ruby_gem_name} #{@gem_installed_version} is properly installed.".lightgreen
return
end
installed_gem_search = [`gem list --no-update-sources -l -e #{@gem_name}`.chomp.to_s].grep(/#{@gem_name}/)[0]
installed_gem_search = [`gem list --no-update-sources -l -e #{@ruby_gem_name}`.chomp.to_s].grep(/#{@ruby_gem_name}/)[0]
if installed_gem_search
installed_gem_info = installed_gem_search.delete('()').gsub('default:', '').gsub(',', '').split
@gem_installed_version = installed_gem_info[1]
@gem_outdated = (Gem::Version.new(@gem_version) > Gem::Version.new(@gem_installed_version))
@gem_latest_version_installed = Gem::Version.new(@gem_version) <= Gem::Version.new(@gem_installed_version)
crewlog "@gem_version: #{@gem_version} @gem_installed_version: #{@gem_installed_version} @gem_outdated: #{@gem_outdated} @gem_latest_version_installed: #{@gem_latest_version_installed}"
@gem_outdated = (Gem::Version.new(@ruby_gem_version) > Gem::Version.new(@gem_installed_version))
@gem_latest_version_installed = Gem::Version.new(@ruby_gem_version) <= Gem::Version.new(@gem_installed_version)
crewlog "@ruby_gem_version: #{@ruby_gem_version} @gem_installed_version: #{@gem_installed_version} @gem_outdated: #{@gem_outdated} @gem_latest_version_installed: #{@gem_latest_version_installed}"
else
# If the current gem being installed is not installed this should
# be false. This will also handle cases of the current installed
@@ -140,24 +156,24 @@ class RUBY < Package
end
crewlog "no_compile_needed?: #{no_compile_needed?} @gem_binary_build_needed.blank?: #{@gem_binary_build_needed.blank?}, gem_compile_needed?: #{gem_compile_needed?}"
puts "#{@gem_name.capitalize} needs a binary gem built!".orange unless @gem_binary_build_needed.blank?
puts "#{@ruby_gem_name.capitalize} needs a binary gem built!".orange unless @gem_binary_build_needed.blank?
if !no_compile_needed? || !@gem_binary_build_needed.blank? || gem_compile_needed?
@gem_pkg = Package.load_package(File.join(CREW_PACKAGES_PATH, "#{name}.rb"))
gem_pkg_sha256sum = PackageUtils.get_sha256(@gem_pkg)
gem_sha256 = `sha256sum #{CREW_DEST_DIR}/#{@gem_name}-#{@gem_version}-#{GEM_ARCH}.gem`.chomp.split.first
if File.file?("#{CREW_DEST_DIR}/#{@gem_name}-#{@gem_version}-#{GEM_ARCH}.gem") && (gem_sha256 == gem_pkg_sha256sum || @just_built_gem)
puts "Installing #{@gem_name} gem #{@gem_version}...".orange
Kernel.system "gem install --no-update-sources -N --local #{CREW_DEST_DIR}/#{@gem_name}-#{@gem_version}-#{GEM_ARCH}.gem --conservative"
gem_sha256 = `sha256sum #{CREW_DEST_DIR}/#{@ruby_gem_name}-#{@ruby_gem_version}-#{GEM_ARCH}.gem`.chomp.split.first
if File.file?("#{CREW_DEST_DIR}/#{@ruby_gem_name}-#{@ruby_gem_version}-#{GEM_ARCH}.gem") && (gem_sha256 == gem_pkg_sha256sum || @just_built_gem)
puts "Installing #{@ruby_gem_name} gem #{@ruby_gem_version}...".orange
Kernel.system "gem install --no-update-sources -N --local #{CREW_DEST_DIR}/#{@ruby_gem_name}-#{@ruby_gem_version}-#{GEM_ARCH}.gem --conservative"
end
elsif @gem_outdated || Gem::Version.new(@gem_version) <= Gem::Version.new(@json_gem_pkg_version)
puts "Updating #{@gem_name} gem: #{@gem_installed_version} 🔜 #{@gem_version} ...".orange
Kernel.system "gem update --no-update-sources -N #{@gem_name} --conservative"
elsif @gem_outdated || Gem::Version.new(@ruby_gem_version) <= Gem::Version.new(@json_gem_pkg_version)
puts "Updating #{@ruby_gem_name} gem: #{@gem_installed_version} 🔜 #{@ruby_gem_version} ...".orange
Kernel.system "gem update --no-update-sources -N #{@ruby_gem_name} --conservative"
elsif !@gem_latest_version_installed
puts "Installing #{@gem_name} gem #{@gem_version}...".orange
Kernel.system "gem install --no-update-sources -N #{@gem_name} --conservative"
puts "Installing #{@ruby_gem_name} gem #{@ruby_gem_version}...".orange
Kernel.system "gem install --no-update-sources -N #{@ruby_gem_name} --conservative"
end
@gems_needing_cleanup = Array(@gems_needing_cleanup) << @gem_name unless @gem_latest_version_installed
Kernel.system "gem contents #{@gem_name}", %i[out] => [@gem_filelist_path, 'w']
@gems_needing_cleanup = Array(@gems_needing_cleanup) << @ruby_gem_name unless @gem_latest_version_installed
Kernel.system "gem contents #{@ruby_gem_name}", %i[out] => [@gem_filelist_path, 'w']
@ruby_install_extras&.call
@install_gem = false
@just_built_gem = false

View File

@@ -1,49 +1,58 @@
require 'package'
require 'require_gem'
class RUST < Package
property :rust_options, :rust_release_profile, :rust_targets, :pre_rust_options, :rust_build_extras, :rust_install_extras
property :rust_features, :rust_options, :rust_release_profile, :rust_targets, :pre_rust_options, :rust_build_extras, :rust_install_extras
def self.build
rust_env =
{
BASH_ENV: "#{CREW_PREFIX}/etc/env.d/rust",
CREW_LINKER: 'mold',
LD: 'mold',
LIBRARY_PATH: "#{CREW_GLIBC_PREFIX}:#{CREW_LIB_PREFIX}",
LIBRARY_PATH: CREW_LIB_PREFIX,
PATH: "#{CREW_PREFIX}/share/cargo/bin:" + ENV.fetch('PATH', nil)
}.transform_keys(&:to_s)
puts 'Additional rust options being used:'.orange
puts "Additional #{superclass.to_s.capitalize} options being used:".orange
method_list = methods.grep(/rust_/).delete_if { |i| send(i).blank? }
method_list.each do |method|
puts "#{method}: #{send method}".orange
require_gem 'method_source'
method_blocks = []
method_strings = []
method_list.sort.each do |method|
@method_info = send method
if @method_info.is_a? String
method_strings << "#{method}: #{@method_info}".orange
else
method_blocks << @method_info.source.to_s.orange
end
end
puts method_strings
puts method_blocks
system rust_env, "bash -c \"rustup target add #{@rust_targets}\"" unless @rust_targets.to_s.empty?
system rust_env, "bash -c \"#{@pre_rust_options} cargo fetch \
--manifest-path Cargo.toml\""
system rust_env, "bash -c \"#{@pre_rust_options} cargo build \
system rust_env, "rustup target add #{@rust_targets}" unless @rust_targets.to_s.empty?
system rust_env, "#{@pre_rust_options} cargo fetch"
system rust_env, "#{@pre_rust_options} cargo build \
--profile=#{@rust_release_profile.to_s.empty? ? 'release' : @rust_release_profile} \
#{@rust_options} \
--manifest-path Cargo.toml\""
#{@rust_features.to_s.empty? ? '' : "--features #{@rust_features}"} \
#{@rust_options}"
@rust_build_extras&.call
end
def self.install
rust_env =
{
BASH_ENV: "#{CREW_PREFIX}/etc/env.d/rust",
CREW_LINKER: 'mold',
LD: 'mold',
LIBRARY_PATH: "#{CREW_GLIBC_PREFIX}:#{CREW_LIB_PREFIX}",
LIBRARY_PATH: CREW_LIB_PREFIX,
PATH: "#{CREW_PREFIX}/share/cargo/bin:" + ENV.fetch('PATH', nil)
}.transform_keys(&:to_s)
system rust_env, "bash -c \"cargo install \
system rust_env, "cargo install \
--profile=#{@rust_release_profile.to_s.empty? ? 'release' : @rust_release_profile} \
--offline \
--no-track \
--path . \
--root #{CREW_DEST_PREFIX}\""
#{@rust_features.to_s.empty? ? '' : "--features #{@rust_features}"} \
#{@rust_options} \
--root #{CREW_DEST_PREFIX}"
@rust_install_extras&.call
end
end

View File

@@ -3,7 +3,7 @@
require 'etc'
OLD_CREW_VERSION ||= defined?(CREW_VERSION) ? CREW_VERSION : '1.0'
CREW_VERSION ||= '1.61.1' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION
CREW_VERSION ||= '1.61.2' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION
# Kernel architecture.
KERN_ARCH ||= Etc.uname[:machine]

View File

@@ -1,19 +1,19 @@
require_relative 'color'
def require_gem(gem_name_and_require = nil, require_override = nil)
def require_gem(ruby_gem_name_and_require = nil, require_override = nil)
# Allow only loading gems when needed.
return if gem_name_and_require.nil?
return if ruby_gem_name_and_require.nil?
gem_name = gem_name_and_require.split('/')[0]
ruby_gem_name = ruby_gem_name_and_require.split('/')[0]
begin
gem gem_name
gem ruby_gem_name
rescue LoadError
puts " -> install #{gem_name} gem".orange
Gem.install(gem_name)
gem gem_name
puts " -> install #{ruby_gem_name} gem".orange
Gem.install(ruby_gem_name)
gem ruby_gem_name
end
requires = if require_override.nil?
gem_name_and_require.split('/')[1].nil? ? gem_name_and_require.split('/')[0] : gem_name_and_require
ruby_gem_name_and_require.split('/')[1].nil? ? ruby_gem_name_and_require.split('/')[0] : ruby_gem_name_and_require
else
require_override
end

View File

@@ -1,4 +1,5 @@
/usr/local/bin/[
/usr/local/bin/arch
/usr/local/bin/b2sum
/usr/local/bin/b3sum
/usr/local/bin/base32
@@ -6,6 +7,10 @@
/usr/local/bin/basename
/usr/local/bin/basenc
/usr/local/bin/cat
/usr/local/bin/chgrp
/usr/local/bin/chmod
/usr/local/bin/chown
/usr/local/bin/chroot
/usr/local/bin/cksum
/usr/local/bin/comm
/usr/local/bin/coreutils
@@ -27,21 +32,35 @@
/usr/local/bin/false
/usr/local/bin/fmt
/usr/local/bin/fold
/usr/local/bin/groups
/usr/local/bin/hashsum
/usr/local/bin/head
/usr/local/bin/hostid
/usr/local/bin/hostname
/usr/local/bin/id
/usr/local/bin/install
/usr/local/bin/join
/usr/local/bin/kill
/usr/local/bin/link
/usr/local/bin/ln
/usr/local/bin/logname
/usr/local/bin/ls
/usr/local/bin/md5sum
/usr/local/bin/mkdir
/usr/local/bin/mkfifo
/usr/local/bin/mknod
/usr/local/bin/mktemp
/usr/local/bin/more
/usr/local/bin/mv
/usr/local/bin/nice
/usr/local/bin/nl
/usr/local/bin/nohup
/usr/local/bin/nproc
/usr/local/bin/numfmt
/usr/local/bin/od
/usr/local/bin/paste
/usr/local/bin/pathchk
/usr/local/bin/pinky
/usr/local/bin/pr
/usr/local/bin/printenv
/usr/local/bin/printf
@@ -69,23 +88,35 @@
/usr/local/bin/sleep
/usr/local/bin/sort
/usr/local/bin/split
/usr/local/bin/stat
/usr/local/bin/stdbuf
/usr/local/bin/stty
/usr/local/bin/sum
/usr/local/bin/sync
/usr/local/bin/tac
/usr/local/bin/tail
/usr/local/bin/tee
/usr/local/bin/test
/usr/local/bin/timeout
/usr/local/bin/touch
/usr/local/bin/tr
/usr/local/bin/true
/usr/local/bin/truncate
/usr/local/bin/tsort
/usr/local/bin/tty
/usr/local/bin/uname
/usr/local/bin/unexpand
/usr/local/bin/uniq
/usr/local/bin/unlink
/usr/local/bin/uptime
/usr/local/bin/users
/usr/local/bin/vdir
/usr/local/bin/wc
/usr/local/bin/who
/usr/local/bin/whoami
/usr/local/bin/yes
/usr/local/share/bash-completion/completions/[
/usr/local/share/bash-completion/completions/arch
/usr/local/share/bash-completion/completions/b2sum
/usr/local/share/bash-completion/completions/b3sum
/usr/local/share/bash-completion/completions/base32
@@ -93,6 +124,10 @@
/usr/local/share/bash-completion/completions/basename
/usr/local/share/bash-completion/completions/basenc
/usr/local/share/bash-completion/completions/cat
/usr/local/share/bash-completion/completions/chgrp
/usr/local/share/bash-completion/completions/chmod
/usr/local/share/bash-completion/completions/chown
/usr/local/share/bash-completion/completions/chroot
/usr/local/share/bash-completion/completions/cksum
/usr/local/share/bash-completion/completions/comm
/usr/local/share/bash-completion/completions/cp
@@ -113,21 +148,35 @@
/usr/local/share/bash-completion/completions/false
/usr/local/share/bash-completion/completions/fmt
/usr/local/share/bash-completion/completions/fold
/usr/local/share/bash-completion/completions/groups
/usr/local/share/bash-completion/completions/hashsum
/usr/local/share/bash-completion/completions/head
/usr/local/share/bash-completion/completions/hostid
/usr/local/share/bash-completion/completions/hostname
/usr/local/share/bash-completion/completions/id
/usr/local/share/bash-completion/completions/install
/usr/local/share/bash-completion/completions/join
/usr/local/share/bash-completion/completions/kill
/usr/local/share/bash-completion/completions/link
/usr/local/share/bash-completion/completions/ln
/usr/local/share/bash-completion/completions/logname
/usr/local/share/bash-completion/completions/ls
/usr/local/share/bash-completion/completions/md5sum
/usr/local/share/bash-completion/completions/mkdir
/usr/local/share/bash-completion/completions/mkfifo
/usr/local/share/bash-completion/completions/mknod
/usr/local/share/bash-completion/completions/mktemp
/usr/local/share/bash-completion/completions/more
/usr/local/share/bash-completion/completions/mv
/usr/local/share/bash-completion/completions/nice
/usr/local/share/bash-completion/completions/nl
/usr/local/share/bash-completion/completions/nohup
/usr/local/share/bash-completion/completions/nproc
/usr/local/share/bash-completion/completions/numfmt
/usr/local/share/bash-completion/completions/od
/usr/local/share/bash-completion/completions/paste
/usr/local/share/bash-completion/completions/pathchk
/usr/local/share/bash-completion/completions/pinky
/usr/local/share/bash-completion/completions/pr
/usr/local/share/bash-completion/completions/printenv
/usr/local/share/bash-completion/completions/printf
@@ -155,23 +204,35 @@
/usr/local/share/bash-completion/completions/sleep
/usr/local/share/bash-completion/completions/sort
/usr/local/share/bash-completion/completions/split
/usr/local/share/bash-completion/completions/stat
/usr/local/share/bash-completion/completions/stdbuf
/usr/local/share/bash-completion/completions/stty
/usr/local/share/bash-completion/completions/sum
/usr/local/share/bash-completion/completions/sync
/usr/local/share/bash-completion/completions/tac
/usr/local/share/bash-completion/completions/tail
/usr/local/share/bash-completion/completions/tee
/usr/local/share/bash-completion/completions/test
/usr/local/share/bash-completion/completions/timeout
/usr/local/share/bash-completion/completions/touch
/usr/local/share/bash-completion/completions/tr
/usr/local/share/bash-completion/completions/true
/usr/local/share/bash-completion/completions/truncate
/usr/local/share/bash-completion/completions/tsort
/usr/local/share/bash-completion/completions/tty
/usr/local/share/bash-completion/completions/uname
/usr/local/share/bash-completion/completions/unexpand
/usr/local/share/bash-completion/completions/uniq
/usr/local/share/bash-completion/completions/unlink
/usr/local/share/bash-completion/completions/uptime
/usr/local/share/bash-completion/completions/users
/usr/local/share/bash-completion/completions/vdir
/usr/local/share/bash-completion/completions/wc
/usr/local/share/bash-completion/completions/who
/usr/local/share/bash-completion/completions/whoami
/usr/local/share/bash-completion/completions/yes
/usr/local/share/man/man1/[.1.zst
/usr/local/share/man/man1/arch.1.zst
/usr/local/share/man/man1/b2sum.1.zst
/usr/local/share/man/man1/b3sum.1.zst
/usr/local/share/man/man1/base32.1.zst
@@ -179,6 +240,10 @@
/usr/local/share/man/man1/basename.1.zst
/usr/local/share/man/man1/basenc.1.zst
/usr/local/share/man/man1/cat.1.zst
/usr/local/share/man/man1/chgrp.1.zst
/usr/local/share/man/man1/chmod.1.zst
/usr/local/share/man/man1/chown.1.zst
/usr/local/share/man/man1/chroot.1.zst
/usr/local/share/man/man1/cksum.1.zst
/usr/local/share/man/man1/comm.1.zst
/usr/local/share/man/man1/cp.1.zst
@@ -199,21 +264,35 @@
/usr/local/share/man/man1/false.1.zst
/usr/local/share/man/man1/fmt.1.zst
/usr/local/share/man/man1/fold.1.zst
/usr/local/share/man/man1/groups.1.zst
/usr/local/share/man/man1/hashsum.1.zst
/usr/local/share/man/man1/head.1.zst
/usr/local/share/man/man1/hostid.1.zst
/usr/local/share/man/man1/hostname.1.zst
/usr/local/share/man/man1/id.1.zst
/usr/local/share/man/man1/install.1.zst
/usr/local/share/man/man1/join.1.zst
/usr/local/share/man/man1/kill.1.zst
/usr/local/share/man/man1/link.1.zst
/usr/local/share/man/man1/ln.1.zst
/usr/local/share/man/man1/logname.1.zst
/usr/local/share/man/man1/ls.1.zst
/usr/local/share/man/man1/md5sum.1.zst
/usr/local/share/man/man1/mkdir.1.zst
/usr/local/share/man/man1/mkfifo.1.zst
/usr/local/share/man/man1/mknod.1.zst
/usr/local/share/man/man1/mktemp.1.zst
/usr/local/share/man/man1/more.1.zst
/usr/local/share/man/man1/mv.1.zst
/usr/local/share/man/man1/nice.1.zst
/usr/local/share/man/man1/nl.1.zst
/usr/local/share/man/man1/nohup.1.zst
/usr/local/share/man/man1/nproc.1.zst
/usr/local/share/man/man1/numfmt.1.zst
/usr/local/share/man/man1/od.1.zst
/usr/local/share/man/man1/paste.1.zst
/usr/local/share/man/man1/pathchk.1.zst
/usr/local/share/man/man1/pinky.1.zst
/usr/local/share/man/man1/pr.1.zst
/usr/local/share/man/man1/printenv.1.zst
/usr/local/share/man/man1/printf.1.zst
@@ -241,19 +320,30 @@
/usr/local/share/man/man1/sleep.1.zst
/usr/local/share/man/man1/sort.1.zst
/usr/local/share/man/man1/split.1.zst
/usr/local/share/man/man1/stat.1.zst
/usr/local/share/man/man1/stdbuf.1.zst
/usr/local/share/man/man1/stty.1.zst
/usr/local/share/man/man1/sum.1.zst
/usr/local/share/man/man1/sync.1.zst
/usr/local/share/man/man1/tac.1.zst
/usr/local/share/man/man1/tail.1.zst
/usr/local/share/man/man1/tee.1.zst
/usr/local/share/man/man1/test.1.zst
/usr/local/share/man/man1/timeout.1.zst
/usr/local/share/man/man1/touch.1.zst
/usr/local/share/man/man1/tr.1.zst
/usr/local/share/man/man1/true.1.zst
/usr/local/share/man/man1/truncate.1.zst
/usr/local/share/man/man1/tsort.1.zst
/usr/local/share/man/man1/tty.1.zst
/usr/local/share/man/man1/uname.1.zst
/usr/local/share/man/man1/unexpand.1.zst
/usr/local/share/man/man1/uniq.1.zst
/usr/local/share/man/man1/unlink.1.zst
/usr/local/share/man/man1/uptime.1.zst
/usr/local/share/man/man1/users.1.zst
/usr/local/share/man/man1/vdir.1.zst
/usr/local/share/man/man1/wc.1.zst
/usr/local/share/man/man1/who.1.zst
/usr/local/share/man/man1/whoami.1.zst
/usr/local/share/man/man1/yes.1.zst

View File

@@ -1,4 +1,5 @@
/usr/local/bin/[
/usr/local/bin/arch
/usr/local/bin/b2sum
/usr/local/bin/b3sum
/usr/local/bin/base32
@@ -6,6 +7,10 @@
/usr/local/bin/basename
/usr/local/bin/basenc
/usr/local/bin/cat
/usr/local/bin/chgrp
/usr/local/bin/chmod
/usr/local/bin/chown
/usr/local/bin/chroot
/usr/local/bin/cksum
/usr/local/bin/comm
/usr/local/bin/coreutils
@@ -27,21 +32,35 @@
/usr/local/bin/false
/usr/local/bin/fmt
/usr/local/bin/fold
/usr/local/bin/groups
/usr/local/bin/hashsum
/usr/local/bin/head
/usr/local/bin/hostid
/usr/local/bin/hostname
/usr/local/bin/id
/usr/local/bin/install
/usr/local/bin/join
/usr/local/bin/kill
/usr/local/bin/link
/usr/local/bin/ln
/usr/local/bin/logname
/usr/local/bin/ls
/usr/local/bin/md5sum
/usr/local/bin/mkdir
/usr/local/bin/mkfifo
/usr/local/bin/mknod
/usr/local/bin/mktemp
/usr/local/bin/more
/usr/local/bin/mv
/usr/local/bin/nice
/usr/local/bin/nl
/usr/local/bin/nohup
/usr/local/bin/nproc
/usr/local/bin/numfmt
/usr/local/bin/od
/usr/local/bin/paste
/usr/local/bin/pathchk
/usr/local/bin/pinky
/usr/local/bin/pr
/usr/local/bin/printenv
/usr/local/bin/printf
@@ -69,23 +88,35 @@
/usr/local/bin/sleep
/usr/local/bin/sort
/usr/local/bin/split
/usr/local/bin/stat
/usr/local/bin/stdbuf
/usr/local/bin/stty
/usr/local/bin/sum
/usr/local/bin/sync
/usr/local/bin/tac
/usr/local/bin/tail
/usr/local/bin/tee
/usr/local/bin/test
/usr/local/bin/timeout
/usr/local/bin/touch
/usr/local/bin/tr
/usr/local/bin/true
/usr/local/bin/truncate
/usr/local/bin/tsort
/usr/local/bin/tty
/usr/local/bin/uname
/usr/local/bin/unexpand
/usr/local/bin/uniq
/usr/local/bin/unlink
/usr/local/bin/uptime
/usr/local/bin/users
/usr/local/bin/vdir
/usr/local/bin/wc
/usr/local/bin/who
/usr/local/bin/whoami
/usr/local/bin/yes
/usr/local/share/bash-completion/completions/[
/usr/local/share/bash-completion/completions/arch
/usr/local/share/bash-completion/completions/b2sum
/usr/local/share/bash-completion/completions/b3sum
/usr/local/share/bash-completion/completions/base32
@@ -93,6 +124,10 @@
/usr/local/share/bash-completion/completions/basename
/usr/local/share/bash-completion/completions/basenc
/usr/local/share/bash-completion/completions/cat
/usr/local/share/bash-completion/completions/chgrp
/usr/local/share/bash-completion/completions/chmod
/usr/local/share/bash-completion/completions/chown
/usr/local/share/bash-completion/completions/chroot
/usr/local/share/bash-completion/completions/cksum
/usr/local/share/bash-completion/completions/comm
/usr/local/share/bash-completion/completions/cp
@@ -113,21 +148,35 @@
/usr/local/share/bash-completion/completions/false
/usr/local/share/bash-completion/completions/fmt
/usr/local/share/bash-completion/completions/fold
/usr/local/share/bash-completion/completions/groups
/usr/local/share/bash-completion/completions/hashsum
/usr/local/share/bash-completion/completions/head
/usr/local/share/bash-completion/completions/hostid
/usr/local/share/bash-completion/completions/hostname
/usr/local/share/bash-completion/completions/id
/usr/local/share/bash-completion/completions/install
/usr/local/share/bash-completion/completions/join
/usr/local/share/bash-completion/completions/kill
/usr/local/share/bash-completion/completions/link
/usr/local/share/bash-completion/completions/ln
/usr/local/share/bash-completion/completions/logname
/usr/local/share/bash-completion/completions/ls
/usr/local/share/bash-completion/completions/md5sum
/usr/local/share/bash-completion/completions/mkdir
/usr/local/share/bash-completion/completions/mkfifo
/usr/local/share/bash-completion/completions/mknod
/usr/local/share/bash-completion/completions/mktemp
/usr/local/share/bash-completion/completions/more
/usr/local/share/bash-completion/completions/mv
/usr/local/share/bash-completion/completions/nice
/usr/local/share/bash-completion/completions/nl
/usr/local/share/bash-completion/completions/nohup
/usr/local/share/bash-completion/completions/nproc
/usr/local/share/bash-completion/completions/numfmt
/usr/local/share/bash-completion/completions/od
/usr/local/share/bash-completion/completions/paste
/usr/local/share/bash-completion/completions/pathchk
/usr/local/share/bash-completion/completions/pinky
/usr/local/share/bash-completion/completions/pr
/usr/local/share/bash-completion/completions/printenv
/usr/local/share/bash-completion/completions/printf
@@ -155,23 +204,35 @@
/usr/local/share/bash-completion/completions/sleep
/usr/local/share/bash-completion/completions/sort
/usr/local/share/bash-completion/completions/split
/usr/local/share/bash-completion/completions/stat
/usr/local/share/bash-completion/completions/stdbuf
/usr/local/share/bash-completion/completions/stty
/usr/local/share/bash-completion/completions/sum
/usr/local/share/bash-completion/completions/sync
/usr/local/share/bash-completion/completions/tac
/usr/local/share/bash-completion/completions/tail
/usr/local/share/bash-completion/completions/tee
/usr/local/share/bash-completion/completions/test
/usr/local/share/bash-completion/completions/timeout
/usr/local/share/bash-completion/completions/touch
/usr/local/share/bash-completion/completions/tr
/usr/local/share/bash-completion/completions/true
/usr/local/share/bash-completion/completions/truncate
/usr/local/share/bash-completion/completions/tsort
/usr/local/share/bash-completion/completions/tty
/usr/local/share/bash-completion/completions/uname
/usr/local/share/bash-completion/completions/unexpand
/usr/local/share/bash-completion/completions/uniq
/usr/local/share/bash-completion/completions/unlink
/usr/local/share/bash-completion/completions/uptime
/usr/local/share/bash-completion/completions/users
/usr/local/share/bash-completion/completions/vdir
/usr/local/share/bash-completion/completions/wc
/usr/local/share/bash-completion/completions/who
/usr/local/share/bash-completion/completions/whoami
/usr/local/share/bash-completion/completions/yes
/usr/local/share/man/man1/[.1.zst
/usr/local/share/man/man1/arch.1.zst
/usr/local/share/man/man1/b2sum.1.zst
/usr/local/share/man/man1/b3sum.1.zst
/usr/local/share/man/man1/base32.1.zst
@@ -179,6 +240,10 @@
/usr/local/share/man/man1/basename.1.zst
/usr/local/share/man/man1/basenc.1.zst
/usr/local/share/man/man1/cat.1.zst
/usr/local/share/man/man1/chgrp.1.zst
/usr/local/share/man/man1/chmod.1.zst
/usr/local/share/man/man1/chown.1.zst
/usr/local/share/man/man1/chroot.1.zst
/usr/local/share/man/man1/cksum.1.zst
/usr/local/share/man/man1/comm.1.zst
/usr/local/share/man/man1/cp.1.zst
@@ -199,21 +264,35 @@
/usr/local/share/man/man1/false.1.zst
/usr/local/share/man/man1/fmt.1.zst
/usr/local/share/man/man1/fold.1.zst
/usr/local/share/man/man1/groups.1.zst
/usr/local/share/man/man1/hashsum.1.zst
/usr/local/share/man/man1/head.1.zst
/usr/local/share/man/man1/hostid.1.zst
/usr/local/share/man/man1/hostname.1.zst
/usr/local/share/man/man1/id.1.zst
/usr/local/share/man/man1/install.1.zst
/usr/local/share/man/man1/join.1.zst
/usr/local/share/man/man1/kill.1.zst
/usr/local/share/man/man1/link.1.zst
/usr/local/share/man/man1/ln.1.zst
/usr/local/share/man/man1/logname.1.zst
/usr/local/share/man/man1/ls.1.zst
/usr/local/share/man/man1/md5sum.1.zst
/usr/local/share/man/man1/mkdir.1.zst
/usr/local/share/man/man1/mkfifo.1.zst
/usr/local/share/man/man1/mknod.1.zst
/usr/local/share/man/man1/mktemp.1.zst
/usr/local/share/man/man1/more.1.zst
/usr/local/share/man/man1/mv.1.zst
/usr/local/share/man/man1/nice.1.zst
/usr/local/share/man/man1/nl.1.zst
/usr/local/share/man/man1/nohup.1.zst
/usr/local/share/man/man1/nproc.1.zst
/usr/local/share/man/man1/numfmt.1.zst
/usr/local/share/man/man1/od.1.zst
/usr/local/share/man/man1/paste.1.zst
/usr/local/share/man/man1/pathchk.1.zst
/usr/local/share/man/man1/pinky.1.zst
/usr/local/share/man/man1/pr.1.zst
/usr/local/share/man/man1/printenv.1.zst
/usr/local/share/man/man1/printf.1.zst
@@ -241,19 +320,30 @@
/usr/local/share/man/man1/sleep.1.zst
/usr/local/share/man/man1/sort.1.zst
/usr/local/share/man/man1/split.1.zst
/usr/local/share/man/man1/stat.1.zst
/usr/local/share/man/man1/stdbuf.1.zst
/usr/local/share/man/man1/stty.1.zst
/usr/local/share/man/man1/sum.1.zst
/usr/local/share/man/man1/sync.1.zst
/usr/local/share/man/man1/tac.1.zst
/usr/local/share/man/man1/tail.1.zst
/usr/local/share/man/man1/tee.1.zst
/usr/local/share/man/man1/test.1.zst
/usr/local/share/man/man1/timeout.1.zst
/usr/local/share/man/man1/touch.1.zst
/usr/local/share/man/man1/tr.1.zst
/usr/local/share/man/man1/true.1.zst
/usr/local/share/man/man1/truncate.1.zst
/usr/local/share/man/man1/tsort.1.zst
/usr/local/share/man/man1/tty.1.zst
/usr/local/share/man/man1/uname.1.zst
/usr/local/share/man/man1/unexpand.1.zst
/usr/local/share/man/man1/uniq.1.zst
/usr/local/share/man/man1/unlink.1.zst
/usr/local/share/man/man1/uptime.1.zst
/usr/local/share/man/man1/users.1.zst
/usr/local/share/man/man1/vdir.1.zst
/usr/local/share/man/man1/wc.1.zst
/usr/local/share/man/man1/who.1.zst
/usr/local/share/man/man1/whoami.1.zst
/usr/local/share/man/man1/yes.1.zst

View File

@@ -1,4 +1,5 @@
/usr/local/bin/[
/usr/local/bin/arch
/usr/local/bin/b2sum
/usr/local/bin/b3sum
/usr/local/bin/base32
@@ -6,6 +7,10 @@
/usr/local/bin/basename
/usr/local/bin/basenc
/usr/local/bin/cat
/usr/local/bin/chgrp
/usr/local/bin/chmod
/usr/local/bin/chown
/usr/local/bin/chroot
/usr/local/bin/cksum
/usr/local/bin/comm
/usr/local/bin/coreutils
@@ -27,21 +32,35 @@
/usr/local/bin/false
/usr/local/bin/fmt
/usr/local/bin/fold
/usr/local/bin/groups
/usr/local/bin/hashsum
/usr/local/bin/head
/usr/local/bin/hostid
/usr/local/bin/hostname
/usr/local/bin/id
/usr/local/bin/install
/usr/local/bin/join
/usr/local/bin/kill
/usr/local/bin/link
/usr/local/bin/ln
/usr/local/bin/logname
/usr/local/bin/ls
/usr/local/bin/md5sum
/usr/local/bin/mkdir
/usr/local/bin/mkfifo
/usr/local/bin/mknod
/usr/local/bin/mktemp
/usr/local/bin/more
/usr/local/bin/mv
/usr/local/bin/nice
/usr/local/bin/nl
/usr/local/bin/nohup
/usr/local/bin/nproc
/usr/local/bin/numfmt
/usr/local/bin/od
/usr/local/bin/paste
/usr/local/bin/pathchk
/usr/local/bin/pinky
/usr/local/bin/pr
/usr/local/bin/printenv
/usr/local/bin/printf
@@ -69,23 +88,35 @@
/usr/local/bin/sleep
/usr/local/bin/sort
/usr/local/bin/split
/usr/local/bin/stat
/usr/local/bin/stdbuf
/usr/local/bin/stty
/usr/local/bin/sum
/usr/local/bin/sync
/usr/local/bin/tac
/usr/local/bin/tail
/usr/local/bin/tee
/usr/local/bin/test
/usr/local/bin/timeout
/usr/local/bin/touch
/usr/local/bin/tr
/usr/local/bin/true
/usr/local/bin/truncate
/usr/local/bin/tsort
/usr/local/bin/tty
/usr/local/bin/uname
/usr/local/bin/unexpand
/usr/local/bin/uniq
/usr/local/bin/unlink
/usr/local/bin/uptime
/usr/local/bin/users
/usr/local/bin/vdir
/usr/local/bin/wc
/usr/local/bin/who
/usr/local/bin/whoami
/usr/local/bin/yes
/usr/local/share/bash-completion/completions/[
/usr/local/share/bash-completion/completions/arch
/usr/local/share/bash-completion/completions/b2sum
/usr/local/share/bash-completion/completions/b3sum
/usr/local/share/bash-completion/completions/base32
@@ -93,6 +124,10 @@
/usr/local/share/bash-completion/completions/basename
/usr/local/share/bash-completion/completions/basenc
/usr/local/share/bash-completion/completions/cat
/usr/local/share/bash-completion/completions/chgrp
/usr/local/share/bash-completion/completions/chmod
/usr/local/share/bash-completion/completions/chown
/usr/local/share/bash-completion/completions/chroot
/usr/local/share/bash-completion/completions/cksum
/usr/local/share/bash-completion/completions/comm
/usr/local/share/bash-completion/completions/cp
@@ -113,21 +148,35 @@
/usr/local/share/bash-completion/completions/false
/usr/local/share/bash-completion/completions/fmt
/usr/local/share/bash-completion/completions/fold
/usr/local/share/bash-completion/completions/groups
/usr/local/share/bash-completion/completions/hashsum
/usr/local/share/bash-completion/completions/head
/usr/local/share/bash-completion/completions/hostid
/usr/local/share/bash-completion/completions/hostname
/usr/local/share/bash-completion/completions/id
/usr/local/share/bash-completion/completions/install
/usr/local/share/bash-completion/completions/join
/usr/local/share/bash-completion/completions/kill
/usr/local/share/bash-completion/completions/link
/usr/local/share/bash-completion/completions/ln
/usr/local/share/bash-completion/completions/logname
/usr/local/share/bash-completion/completions/ls
/usr/local/share/bash-completion/completions/md5sum
/usr/local/share/bash-completion/completions/mkdir
/usr/local/share/bash-completion/completions/mkfifo
/usr/local/share/bash-completion/completions/mknod
/usr/local/share/bash-completion/completions/mktemp
/usr/local/share/bash-completion/completions/more
/usr/local/share/bash-completion/completions/mv
/usr/local/share/bash-completion/completions/nice
/usr/local/share/bash-completion/completions/nl
/usr/local/share/bash-completion/completions/nohup
/usr/local/share/bash-completion/completions/nproc
/usr/local/share/bash-completion/completions/numfmt
/usr/local/share/bash-completion/completions/od
/usr/local/share/bash-completion/completions/paste
/usr/local/share/bash-completion/completions/pathchk
/usr/local/share/bash-completion/completions/pinky
/usr/local/share/bash-completion/completions/pr
/usr/local/share/bash-completion/completions/printenv
/usr/local/share/bash-completion/completions/printf
@@ -155,23 +204,35 @@
/usr/local/share/bash-completion/completions/sleep
/usr/local/share/bash-completion/completions/sort
/usr/local/share/bash-completion/completions/split
/usr/local/share/bash-completion/completions/stat
/usr/local/share/bash-completion/completions/stdbuf
/usr/local/share/bash-completion/completions/stty
/usr/local/share/bash-completion/completions/sum
/usr/local/share/bash-completion/completions/sync
/usr/local/share/bash-completion/completions/tac
/usr/local/share/bash-completion/completions/tail
/usr/local/share/bash-completion/completions/tee
/usr/local/share/bash-completion/completions/test
/usr/local/share/bash-completion/completions/timeout
/usr/local/share/bash-completion/completions/touch
/usr/local/share/bash-completion/completions/tr
/usr/local/share/bash-completion/completions/true
/usr/local/share/bash-completion/completions/truncate
/usr/local/share/bash-completion/completions/tsort
/usr/local/share/bash-completion/completions/tty
/usr/local/share/bash-completion/completions/uname
/usr/local/share/bash-completion/completions/unexpand
/usr/local/share/bash-completion/completions/uniq
/usr/local/share/bash-completion/completions/unlink
/usr/local/share/bash-completion/completions/uptime
/usr/local/share/bash-completion/completions/users
/usr/local/share/bash-completion/completions/vdir
/usr/local/share/bash-completion/completions/wc
/usr/local/share/bash-completion/completions/who
/usr/local/share/bash-completion/completions/whoami
/usr/local/share/bash-completion/completions/yes
/usr/local/share/man/man1/[.1.zst
/usr/local/share/man/man1/arch.1.zst
/usr/local/share/man/man1/b2sum.1.zst
/usr/local/share/man/man1/b3sum.1.zst
/usr/local/share/man/man1/base32.1.zst
@@ -179,6 +240,10 @@
/usr/local/share/man/man1/basename.1.zst
/usr/local/share/man/man1/basenc.1.zst
/usr/local/share/man/man1/cat.1.zst
/usr/local/share/man/man1/chgrp.1.zst
/usr/local/share/man/man1/chmod.1.zst
/usr/local/share/man/man1/chown.1.zst
/usr/local/share/man/man1/chroot.1.zst
/usr/local/share/man/man1/cksum.1.zst
/usr/local/share/man/man1/comm.1.zst
/usr/local/share/man/man1/cp.1.zst
@@ -199,21 +264,35 @@
/usr/local/share/man/man1/false.1.zst
/usr/local/share/man/man1/fmt.1.zst
/usr/local/share/man/man1/fold.1.zst
/usr/local/share/man/man1/groups.1.zst
/usr/local/share/man/man1/hashsum.1.zst
/usr/local/share/man/man1/head.1.zst
/usr/local/share/man/man1/hostid.1.zst
/usr/local/share/man/man1/hostname.1.zst
/usr/local/share/man/man1/id.1.zst
/usr/local/share/man/man1/install.1.zst
/usr/local/share/man/man1/join.1.zst
/usr/local/share/man/man1/kill.1.zst
/usr/local/share/man/man1/link.1.zst
/usr/local/share/man/man1/ln.1.zst
/usr/local/share/man/man1/logname.1.zst
/usr/local/share/man/man1/ls.1.zst
/usr/local/share/man/man1/md5sum.1.zst
/usr/local/share/man/man1/mkdir.1.zst
/usr/local/share/man/man1/mkfifo.1.zst
/usr/local/share/man/man1/mknod.1.zst
/usr/local/share/man/man1/mktemp.1.zst
/usr/local/share/man/man1/more.1.zst
/usr/local/share/man/man1/mv.1.zst
/usr/local/share/man/man1/nice.1.zst
/usr/local/share/man/man1/nl.1.zst
/usr/local/share/man/man1/nohup.1.zst
/usr/local/share/man/man1/nproc.1.zst
/usr/local/share/man/man1/numfmt.1.zst
/usr/local/share/man/man1/od.1.zst
/usr/local/share/man/man1/paste.1.zst
/usr/local/share/man/man1/pathchk.1.zst
/usr/local/share/man/man1/pinky.1.zst
/usr/local/share/man/man1/pr.1.zst
/usr/local/share/man/man1/printenv.1.zst
/usr/local/share/man/man1/printf.1.zst
@@ -241,19 +320,30 @@
/usr/local/share/man/man1/sleep.1.zst
/usr/local/share/man/man1/sort.1.zst
/usr/local/share/man/man1/split.1.zst
/usr/local/share/man/man1/stat.1.zst
/usr/local/share/man/man1/stdbuf.1.zst
/usr/local/share/man/man1/stty.1.zst
/usr/local/share/man/man1/sum.1.zst
/usr/local/share/man/man1/sync.1.zst
/usr/local/share/man/man1/tac.1.zst
/usr/local/share/man/man1/tail.1.zst
/usr/local/share/man/man1/tee.1.zst
/usr/local/share/man/man1/test.1.zst
/usr/local/share/man/man1/timeout.1.zst
/usr/local/share/man/man1/touch.1.zst
/usr/local/share/man/man1/tr.1.zst
/usr/local/share/man/man1/true.1.zst
/usr/local/share/man/man1/truncate.1.zst
/usr/local/share/man/man1/tsort.1.zst
/usr/local/share/man/man1/tty.1.zst
/usr/local/share/man/man1/uname.1.zst
/usr/local/share/man/man1/unexpand.1.zst
/usr/local/share/man/man1/uniq.1.zst
/usr/local/share/man/man1/unlink.1.zst
/usr/local/share/man/man1/uptime.1.zst
/usr/local/share/man/man1/users.1.zst
/usr/local/share/man/man1/vdir.1.zst
/usr/local/share/man/man1/wc.1.zst
/usr/local/share/man/man1/who.1.zst
/usr/local/share/man/man1/whoami.1.zst
/usr/local/share/man/man1/yes.1.zst

View File

@@ -3,7 +3,7 @@ require 'package'
class Buildessential < Package
description 'A collection of tools essential to compile and build software.'
homepage 'SKIP'
version '1.43'
version '1.44'
license 'GPL-3+'
compatibility 'all'
@@ -170,6 +170,8 @@ class Buildessential < Package
depends_on 'ruby_concurrent_ruby'
# Needed for irb
depends_on 'ruby_debug'
# Needed for buildsystems reporting.
depends_on 'ruby_method_source'
# For crew debugging.
depends_on 'ruby_pry_byebug'
# Add rubocop for linting packages. (This also installs the

View File

@@ -3,7 +3,7 @@ require 'package'
class Core < Package
description 'Core Chromebrew Packages.'
homepage 'https://github.com/chromebrew/chromebrew'
version '3.9'
version '3.10'
license 'GPL-3+'
compatibility 'all'
@@ -87,6 +87,8 @@ class Core < Package
depends_on 'ruby_gem_compiler'
# For use in ruby prompts.
depends_on 'ruby_highline'
# Needed for buildsystems reporting.
depends_on 'ruby_method_source'
# Adds File.which
depends_on 'ruby_ptools'
# This contains the debugger config files.

View File

@@ -28,7 +28,6 @@ class Llvm20_build < Package
depends_on 'ocaml' => :build
depends_on 'py3_pygments' => :build
depends_on 'py3_pyyaml' => :build
depends_on 'sccache' => :build
depends_on 'xzutils' # R
depends_on 'zlib' # R
depends_on 'zstd' # R
@@ -123,7 +122,6 @@ class Llvm20_build < Package
-DCMAKE_ASM_COMPILER_TARGET=#{CREW_TARGET} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_C_COMPILER_LAUNCHER=sccache \
-DCMAKE_C_COMPILER_TARGET=#{CREW_TARGET} \
-DCMAKE_C_FLAGS='#{@ARCH_C_LTO_FLAGS}' \
-DCMAKE_CXX_COMPILER=$(which clang++) \

View File

@@ -54,10 +54,10 @@ class Neovim < CMake
puts 'Default vi set to nvim.'.lightgreen
end
@gem_name = name
system "gem uninstall -Dx --force --abort-on-dependent #{@gem_name}", exception: false
@ruby_gem_name = name
system "gem uninstall -Dx --force --abort-on-dependent #{@ruby_gem_name}", exception: false
puts 'Installing neovim gem.'.lightblue
system "gem install -N #{@gem_name}", exception: false
system "gem install -N #{@ruby_gem_name}", exception: false
puts 'Installing neovim python module. This may take a while...'.lightblue
system 'pip install neovim', exception: false
# cpanm install breaks due to failure to install Archive::zip.
@@ -66,10 +66,10 @@ class Neovim < CMake
end
def self.postremove
@gem_name = name
@gems_deps = `gem dependency ^#{@gem_name}\$ | awk '{print \$1}'`.chomp
@ruby_gem_name = name
@gems_deps = `gem dependency ^#{@ruby_gem_name}\$ | awk '{print \$1}'`.chomp
# Delete the first line and convert to an array.
@gems = @gems_deps.split("\n").drop(1).append(@gem_name)
@gems = @gems_deps.split("\n").drop(1).append(@ruby_gem_name)
# bundler never gets uninstalled, though gem dependency lists it for
# every package, so delete it from the list.
@gems.delete('bundler')

View File

@@ -12,5 +12,5 @@ class Py3_unsupported_python < Pip
no_compile_needed
pre_configure_options 'ALLOW_UNSUPPORTED_PYTHON=3.12'
pip_pre_configure_options 'ALLOW_UNSUPPORTED_PYTHON=3.12'
end

View File

@@ -116,9 +116,6 @@ class Python3 < Package
end
def self.postinstall
# First force pip upgrade to make sure we are past the problematic pip 23.2.1
# See https://github.com/pypa/pip/issues/12357 and https://github.com/pypa/pip/issues/12428
system 'PIP_DISABLE_PIP_VERSION_CHECK=1 python -m pip install --upgrade --force-reinstall pip'
# Pip is installed inside Python 3. The following steps ensure that
# pip can properly build other packages from buildsystems/pip.
@required_pip_modules = %w[build installer setuptools wheel pyproject_hooks]
@@ -126,7 +123,7 @@ class Python3 < Package
@required_pip_modules.each do |pip_pkg|
unless @pip_list.include?(pip_pkg)
puts "Installing #{pip_pkg} using pip..."
system "MAKEFLAGS=-j#{CREW_NPROC} pip install #{pip_pkg}"
Kernel.system "MAKEFLAGS=-j#{CREW_NPROC} pip install #{pip_pkg}"
end
end

View File

@@ -0,0 +1,13 @@
require 'buildsystems/ruby'
class Ruby_method_source < RUBY
description 'retrieve the sourcecode for a method.'
homepage 'http://banisterfiend.wordpress.com'
version "1.1.0-#{CREW_RUBY_VER}"
license 'MIT'
compatibility 'all'
source_url 'SKIP'
conflicts_ok
no_compile_needed
end

View File

@@ -6,21 +6,23 @@ require 'buildsystems/rust'
class Uutils_coreutils < RUST
description 'Cross-platform Rust rewrite of the GNU coreutils'
homepage 'https://github.com/uutils/coreutils'
version '0.0.30-2'
version '0.0.30-0fd6e88'
license 'MIT'
compatibility 'all'
source_url 'https://github.com/uutils/coreutils.git'
git_hashtag version.split('-').first
# git_hashtag version.split('-').first
git_hashtag '0fd6e8894f4fb1c2d8d29b6126da4a5cf8e8e918'
binary_compression 'tar.zst'
binary_sha256({
aarch64: '6f82af5600bd0a9486a5397e32ba66d3af5c180289d556a748daab19ae571b67',
armv7l: '6f82af5600bd0a9486a5397e32ba66d3af5c180289d556a748daab19ae571b67',
i686: '781b1d315e61440f6749c98791348d53b615757a0e475c666cebdb0211d1e393',
x86_64: 'ef42470dc82e309a28cc7c86edc1896a5cfcd9305bea211bb1833f4996c746cc'
aarch64: '468167bc33398704ac5dc4b83d13c3cbf53b0b602b8cb4f269f4e26db98ed65b',
armv7l: '468167bc33398704ac5dc4b83d13c3cbf53b0b602b8cb4f269f4e26db98ed65b',
i686: '7b11bde5389add0bc8b2636b2506de483ba77f77e37caf1185bdb7962ff34426',
x86_64: 'bae2c8b8c85170172a89ec44edfd7def43494e985fdbb81dd146de63cd02c488'
})
depends_on 'acl' => :build
depends_on 'llvm_dev' => :build
depends_on 'rust' => :build
depends_on 'sphinx' => :build
depends_on 'gcc_lib' # R
@@ -28,7 +30,7 @@ class Uutils_coreutils < RUST
conflicts_ok # conflicts with coreutils
rust_options '--features unix'
rust_features 'unix'
rust_release_profile 'release-fast'
rust_install_extras do
@@ -37,8 +39,8 @@ class Uutils_coreutils < RUST
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/bash-completion/completions"
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/man/man1"
coreutils.each do |util|
system "cargo run completion #{util} bash > #{CREW_DEST_PREFIX}/share/bash-completion/completions/#{util}"
system "cargo run manpage #{util} > #{CREW_DEST_PREFIX}/share/man/man1/#{util}.1"
system "cargo run --profile=#{rust_release_profile} --features #{rust_features} completion #{util} bash > #{CREW_DEST_PREFIX}/share/bash-completion/completions/#{util}"
system "cargo run --profile=#{rust_release_profile} --features #{rust_features} manpage #{util} > #{CREW_DEST_PREFIX}/share/man/man1/#{util}.1"
Dir.chdir "#{CREW_DEST_PREFIX}/bin" do
FileUtils.ln_s 'coreutils', util.to_s
end

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# This is for use as a Github CI Unit Test.
# Version 1.1
# Version 1.2
set -e
cd /usr/local/lib/crew/packages/
git clone --depth=1 --branch="$CREW_BRANCH" "$CREW_REPO" ~/build_test
@@ -31,6 +31,7 @@ yes | crew remove vim
#echo "Checking that dstat was renamed to py3_dool."
#crew list installed | grep -q "py3_dool"
#fi
skip_install_packages='py3_unsupported_python'
if [[ -n ${CHANGED_PACKAGES-} ]]; then
all_compatible_packages=$(crew list -d compatible)
@@ -45,8 +46,12 @@ if [[ -n ${CHANGED_PACKAGES-} ]]; then
echo "Testing reinstall of ${pkg}."
yes | time crew reinstall "${pkg}"
else
echo "Testing install of ${pkg}."
yes | time crew install "${pkg}"
if echo "${skip_install_packages}" | grep "^${pkg}$"; then
echo "Skipping install test for ${pkg}."
else
echo "Testing install of ${pkg}."
yes | time crew install "${pkg}"
fi
fi
# Removal of essential packages is expected to fail.
if [[ $(crew list -d essential) == *"${pkg}"* ]]; then

View File

@@ -17,16 +17,16 @@ require_relative '../lib/require_gem'
require_gem('httpparty')
def check_gem_binary_build_needed(gem_name = nil, gem_version = nil)
puts "Checking to see if gem compile for #{gem_name} is needed..."
@extract_dir = "#{gem_name}.#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.dir"
def check_gem_binary_build_needed(ruby_gem_name = nil, ruby_gem_version = nil)
puts "Checking to see if gem compile for #{ruby_gem_name} is needed..."
@extract_dir = "#{ruby_gem_name}.#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.dir"
FileUtils.mkdir_p File.join(CREW_BREW_DIR, @extract_dir)
Dir.chdir(File.join(CREW_BREW_DIR, @extract_dir)) do
# Need to check if the gem has extensions. If it does, we need
# either a compiler or a pre-compiled binary gem.
system "gem fetch #{gem_name} --platform=ruby --version=#{gem_version}"
system "gem unpack #{gem_name}-#{gem_version}.gem"
@build_needed = system "grep -q -r spec.extensions #{gem_name}-#{gem_version}/*.gemspec", %i[out err] => File::NULL
system "gem fetch #{ruby_gem_name} --platform=ruby --version=#{ruby_gem_version}"
system "gem unpack #{ruby_gem_name}-#{ruby_gem_version}.gem"
@build_needed = system "grep -q -r spec.extensions #{ruby_gem_name}-#{ruby_gem_version}/*.gemspec", %i[out err] => File::NULL
end
FileUtils.rm_rf File.join(CREW_BREW_DIR, @extract_dir)
return @build_needed

View File

@@ -8235,6 +8235,11 @@ url: https://github.com/markdownlint/markdownlint/tags
activity: low
---
kind: url
name: ruby_method_source
url: https://github.com/banister/method_source/tags
activity: low
---
kind: url
name: ruby_parallel
url: https://github.com/grosser/parallel/tags
activity: medium

View File

@@ -37,16 +37,16 @@ def check_for_updated_ruby_packages
# https://github.com/rubygems/rubygems/blob/b5798efd348935634d4e0e2b846d4f455582db48/lib/rubygems/version.rb#L305
gem_test_versions.delete_if { |i| i.match?(/[a-zA-Z]/) }
gem_test_version = gem_test_versions.max
gem_name = gem_test_name.blank? ? Gem::SpecFetcher.fetcher.suggest_gems_from_name(untested_package_name).first : gem_test_name
gem_version = gem_test_name.blank? ? Gem.latest_version_for(untested_package_name).to_s : gem_test_version
next package if gem_version.blank?
ruby_gem_name = gem_test_name.blank? ? Gem::SpecFetcher.fetcher.suggest_gems_from_name(untested_package_name).first : gem_test_name
ruby_gem_version = gem_test_name.blank? ? Gem.latest_version_for(untested_package_name).to_s : gem_test_version
next package if ruby_gem_version.blank?
relevant_gem_packages.delete(package)
puts "[#{(index + 1).to_s.rjust(numlength)}/#{total_files_to_check}] Checking rubygems for updates to #{gem_name} in #{package}...".orange
puts "[#{(index + 1).to_s.rjust(numlength)}/#{total_files_to_check}] Checking rubygems for updates to #{ruby_gem_name} in #{package}...".orange
pkg_version = `sed -n -e 's/^\ \ version //p' #{package}`.chomp.delete("'").delete('"').gsub(/-\#{CREW_RUBY_VER}/, '').split('-').first
next package unless Gem::Version.new(gem_version) > Gem::Version.new(pkg_version)
next package unless Gem::Version.new(ruby_gem_version) > Gem::Version.new(pkg_version)
updateable_packages[package] = gem_version
updateable_packages[package] = ruby_gem_version
end
end
pool.shutdown