diff --git a/bin/crew b/bin/crew index bd3271246..e578a2da7 100755 --- a/bin/crew +++ b/bin/crew @@ -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) diff --git a/commands/remove.rb b/commands/remove.rb index 7f16301a0..64a57afa8 100644 --- a/commands/remove.rb +++ b/commands/remove.rb @@ -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 diff --git a/install.sh b/install.sh index 633c4c9a0..29a49939e 100755 --- a/install.sh +++ b/install.sh @@ -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 diff --git a/lib/buildsystems/autotools.rb b/lib/buildsystems/autotools.rb index 157a26d61..982cbe566 100644 --- a/lib/buildsystems/autotools.rb +++ b/lib/buildsystems/autotools.rb @@ -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? ? '' : @pre_configure_options} #{@configure_options.nil? ? '' : @configure_options}".orange # Run autoreconf if necessary diff --git a/lib/buildsystems/cmake.rb b/lib/buildsystems/cmake.rb index 9021841bd..91d59fcad 100644 --- a/lib/buildsystems/cmake.rb +++ b/lib/buildsystems/cmake.rb @@ -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 diff --git a/lib/buildsystems/meson.rb b/lib/buildsystems/meson.rb index 73a48cf3b..1791b5b35 100644 --- a/lib/buildsystems/meson.rb +++ b/lib/buildsystems/meson.rb @@ -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" diff --git a/lib/buildsystems/perl.rb b/lib/buildsystems/perl.rb index 995397646..10bb05f5d 100644 --- a/lib/buildsystems/perl.rb +++ b/lib/buildsystems/perl.rb @@ -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? ? '' : @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 diff --git a/lib/buildsystems/pip.rb b/lib/buildsystems/pip.rb index 804a72373..b6bc97267 100644 --- a/lib/buildsystems/pip.rb +++ b/lib/buildsystems/pip.rb @@ -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? ? '' : @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 diff --git a/lib/buildsystems/python.rb b/lib/buildsystems/python.rb index 83ce8b59d..19596f4f5 100644 --- a/lib/buildsystems/python.rb +++ b/lib/buildsystems/python.rb @@ -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}" diff --git a/lib/buildsystems/qmake.rb b/lib/buildsystems/qmake.rb index 1b0615e7c..de5937b82 100644 --- a/lib/buildsystems/qmake.rb +++ b/lib/buildsystems/qmake.rb @@ -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 diff --git a/lib/buildsystems/ruby.rb b/lib/buildsystems/ruby.rb index 7bdd20ac5..f4a4b6aef 100644 --- a/lib/buildsystems/ruby.rb +++ b/lib/buildsystems/ruby.rb @@ -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 diff --git a/lib/buildsystems/rust.rb b/lib/buildsystems/rust.rb index 3d8daeb45..a35bbd48f 100644 --- a/lib/buildsystems/rust.rb +++ b/lib/buildsystems/rust.rb @@ -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 diff --git a/lib/const.rb b/lib/const.rb index 688267c5c..e5194923b 100644 --- a/lib/const.rb +++ b/lib/const.rb @@ -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] diff --git a/lib/require_gem.rb b/lib/require_gem.rb index d298aa29a..ccd8106bd 100644 --- a/lib/require_gem.rb +++ b/lib/require_gem.rb @@ -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 diff --git a/manifest/armv7l/u/uutils_coreutils.filelist b/manifest/armv7l/u/uutils_coreutils.filelist index 74b514aae..936b28671 100644 --- a/manifest/armv7l/u/uutils_coreutils.filelist +++ b/manifest/armv7l/u/uutils_coreutils.filelist @@ -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 diff --git a/manifest/i686/u/uutils_coreutils.filelist b/manifest/i686/u/uutils_coreutils.filelist index 74b514aae..936b28671 100644 --- a/manifest/i686/u/uutils_coreutils.filelist +++ b/manifest/i686/u/uutils_coreutils.filelist @@ -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 diff --git a/manifest/x86_64/u/uutils_coreutils.filelist b/manifest/x86_64/u/uutils_coreutils.filelist index 74b514aae..936b28671 100644 --- a/manifest/x86_64/u/uutils_coreutils.filelist +++ b/manifest/x86_64/u/uutils_coreutils.filelist @@ -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 diff --git a/packages/buildessential.rb b/packages/buildessential.rb index 3cf04cc39..23c26d3f2 100644 --- a/packages/buildessential.rb +++ b/packages/buildessential.rb @@ -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 diff --git a/packages/core.rb b/packages/core.rb index 1733b8b87..c1707df3f 100644 --- a/packages/core.rb +++ b/packages/core.rb @@ -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. diff --git a/packages/llvm20_build.rb b/packages/llvm20_build.rb index deb5b3de9..c112c3f34 100644 --- a/packages/llvm20_build.rb +++ b/packages/llvm20_build.rb @@ -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++) \ diff --git a/packages/neovim.rb b/packages/neovim.rb index 970817825..d5af01ac8 100644 --- a/packages/neovim.rb +++ b/packages/neovim.rb @@ -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') diff --git a/packages/py3_unsupported_python.rb b/packages/py3_unsupported_python.rb index 3acb3103e..a0e0bb1e2 100644 --- a/packages/py3_unsupported_python.rb +++ b/packages/py3_unsupported_python.rb @@ -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 diff --git a/packages/python3.rb b/packages/python3.rb index 363e6fcbb..7f502175c 100644 --- a/packages/python3.rb +++ b/packages/python3.rb @@ -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 diff --git a/packages/ruby_method_source.rb b/packages/ruby_method_source.rb new file mode 100644 index 000000000..e909b0604 --- /dev/null +++ b/packages/ruby_method_source.rb @@ -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 diff --git a/packages/uutils_coreutils.rb b/packages/uutils_coreutils.rb index 26f14a636..8a4f37dd8 100644 --- a/packages/uutils_coreutils.rb +++ b/packages/uutils_coreutils.rb @@ -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 diff --git a/tests/unit_test.sh b/tests/unit_test.sh index b2ab1a054..6d845bb68 100755 --- a/tests/unit_test.sh +++ b/tests/unit_test.sh @@ -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 diff --git a/tools/create_gem_packages.rb b/tools/create_gem_packages.rb index 72e9fc6d9..4a4851c59 100755 --- a/tools/create_gem_packages.rb +++ b/tools/create_gem_packages.rb @@ -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 diff --git a/tools/packages.yaml b/tools/packages.yaml index f0f04840d..b11c69456 100644 --- a/tools/packages.yaml +++ b/tools/packages.yaml @@ -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 diff --git a/tools/update_ruby_gem_packages.rb b/tools/update_ruby_gem_packages.rb index bf4d3937d..3a8559ef8 100755 --- a/tools/update_ruby_gem_packages.rb +++ b/tools/update_ruby_gem_packages.rb @@ -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