From c78b28be9edace254c19364a5aee8b563f33df38 Mon Sep 17 00:00:00 2001 From: "Satadru Pramanik, DO, MPH, MEng" Date: Sat, 28 Sep 2024 14:31:25 -0400 Subject: [PATCH] Add packages for default and bundled Ruby gems. (#10535) * Update create_gem_packages. Signed-off-by: Satadru Pramanik * Add default gems package. Signed-off-by: Satadru Pramanik * Add default gems to core. Signed-off-by: Satadru Pramanik * Handle gem names with underscores and dashes. Signed-off-by: Satadru Pramanik * Try to make gem reinstalls faster. Signed-off-by: Satadru Pramanik * Update awscli. Signed-off-by: Satadru Pramanik * Adjust early gem install exit logic. Signed-off-by: Satadru Pramanik * Adjust default packages script. Signed-off-by: Satadru Pramanik * Gem install refactoring... Signed-off-by: Satadru Pramanik * Refactor gem compile. Signed-off-by: Satadru Pramanik * Fix create_gem_packages description. Signed-off-by: Satadru Pramanik * Work around matrix removal breaking crew. Signed-off-by: Satadru Pramanik * lint Signed-off-by: Satadru Pramanik --------- Signed-off-by: Satadru Pramanik --- bin/crew | 16 +- lib/buildsystems/ruby.rb | 38 +++-- lib/const.rb | 2 +- lib/misc_functions.rb | 21 ++- manifest/armv7l/a/awscli.filelist | 14 +- manifest/armv7l/p/py3_virtualenv.filelist | 14 +- manifest/i686/a/awscli.filelist | 14 +- manifest/i686/p/py3_virtualenv.filelist | 14 +- manifest/x86_64/a/awscli.filelist | 14 +- manifest/x86_64/p/py3_virtualenv.filelist | 14 +- packages/awscli.rb | 10 +- packages/bundled_gems.rb | 33 ++++ packages/core.rb | 8 +- packages/default_gems.rb | 106 +++++++++++++ packages/py3_virtualenv.rb | 10 +- packages/ruby_abbrev.rb | 13 ++ packages/ruby_base64.rb | 13 ++ packages/ruby_benchmark.rb | 13 ++ packages/ruby_bigdecimal.rb | 3 +- packages/ruby_bundler.rb | 2 +- packages/ruby_cgi.rb | 13 ++ packages/ruby_cmath.rb | 13 ++ packages/ruby_connection_pool.rb | 13 ++ packages/ruby_csv.rb | 4 +- packages/ruby_date.rb | 13 ++ packages/ruby_dbm.rb | 21 +++ packages/ruby_debug.rb | 4 + packages/ruby_delegate.rb | 13 ++ packages/ruby_did_you_mean.rb | 13 ++ packages/ruby_digest.rb | 13 ++ packages/ruby_drb.rb | 6 +- packages/ruby_e2mmap.rb | 13 ++ packages/ruby_english.rb | 13 ++ packages/ruby_erb.rb | 5 +- packages/ruby_error_highlight.rb | 13 ++ packages/ruby_etc.rb | 13 ++ packages/ruby_fcntl.rb | 13 ++ packages/ruby_fiddle.rb | 21 +++ packages/ruby_fileutils.rb | 13 ++ packages/ruby_find.rb | 13 ++ packages/ruby_forwardable.rb | 13 ++ packages/ruby_gdbm.rb | 21 +++ packages/ruby_getoptlong.rb | 13 ++ packages/ruby_httparty.rb | 17 ++ packages/ruby_i18n.rb | 15 ++ packages/ruby_io_console.rb | 3 +- packages/ruby_io_nonblock.rb | 13 ++ packages/ruby_io_wait.rb | 13 ++ packages/ruby_ipaddr.rb | 13 ++ packages/ruby_irb.rb | 5 +- packages/ruby_json.rb | 1 - packages/ruby_logger.rb | 2 +- packages/ruby_matrix.rb | 13 ++ packages/ruby_mini_mime.rb | 13 ++ packages/ruby_multi_xml.rb | 15 ++ packages/ruby_mutex_m.rb | 13 ++ packages/ruby_net_ftp.rb | 5 +- packages/ruby_net_http.rb | 15 ++ packages/ruby_net_imap.rb | 5 +- packages/ruby_net_pop.rb | 15 ++ packages/ruby_net_protocol.rb | 15 ++ packages/ruby_net_smtp.rb | 2 +- packages/ruby_net_telnet.rb | 13 ++ packages/ruby_nkf.rb | 3 +- packages/ruby_observer.rb | 13 ++ packages/ruby_open3.rb | 13 ++ packages/ruby_open_uri.rb | 17 ++ packages/ruby_openssl.rb | 13 ++ packages/ruby_optparse.rb | 2 +- packages/ruby_ostruct.rb | 13 ++ packages/ruby_pathname.rb | 21 +++ packages/ruby_power_assert.rb | 13 ++ packages/ruby_pp.rb | 26 +++ packages/ruby_prettyprint.rb | 13 ++ packages/ruby_prime.rb | 16 ++ packages/ruby_prism.rb | 1 - packages/ruby_pstore.rb | 13 ++ packages/ruby_psych.rb | 15 ++ packages/ruby_racc.rb | 3 +- packages/ruby_rbs.rb | 2 + packages/ruby_rdoc.rb | 2 + packages/ruby_readline.rb | 15 ++ packages/ruby_readline_ext.rb | 21 +++ packages/ruby_reline.rb | 2 + packages/ruby_resolv.rb | 6 +- packages/ruby_resolv_replace.rb | 15 ++ packages/ruby_rinda.rb | 17 ++ packages/ruby_rss.rb | 15 ++ packages/ruby_ruby2_keywords.rb | 13 ++ packages/ruby_rubygems_update.rb | 4 +- packages/ruby_scanf.rb | 13 ++ packages/ruby_sdbm.rb | 21 +++ packages/ruby_securerandom.rb | 13 ++ packages/ruby_set.rb | 13 ++ packages/ruby_shell.rb | 16 ++ packages/ruby_shellwords.rb | 13 ++ packages/ruby_singleton.rb | 13 ++ packages/ruby_stringio.rb | 13 ++ packages/ruby_strscan.rb | 2 +- packages/ruby_sync.rb | 13 ++ packages/ruby_syntax_suggest.rb | 13 ++ packages/ruby_syslog.rb | 21 +++ packages/ruby_tempfile.rb | 13 ++ packages/ruby_test_unit.rb | 8 +- packages/ruby_thwait.rb | 15 ++ packages/ruby_time.rb | 6 +- packages/ruby_timeout.rb | 13 ++ packages/ruby_tmpdir.rb | 15 ++ packages/ruby_tracer.rb | 13 ++ packages/ruby_tsort.rb | 13 ++ packages/ruby_typeprof.rb | 2 +- packages/ruby_tzinfo.rb | 15 ++ packages/ruby_un.rb | 15 ++ packages/ruby_uri.rb | 17 ++ packages/ruby_weakref.rb | 15 ++ packages/ruby_xmlrpc.rb | 15 ++ packages/ruby_yaml.rb | 13 ++ packages/ruby_zlib.rb | 21 +++ tools/build_updated_packages.rb | 3 +- tools/create_default_gems_packages.rb | 113 +++++++++++++ tools/create_gem_packages.rb | 184 ++++++++++++++++++---- tools/update_ruby_gem_packages.rb | 10 +- 122 files changed, 1715 insertions(+), 143 deletions(-) create mode 100644 packages/bundled_gems.rb create mode 100644 packages/default_gems.rb create mode 100644 packages/ruby_abbrev.rb create mode 100644 packages/ruby_base64.rb create mode 100644 packages/ruby_benchmark.rb create mode 100644 packages/ruby_cgi.rb create mode 100644 packages/ruby_cmath.rb create mode 100644 packages/ruby_connection_pool.rb create mode 100644 packages/ruby_date.rb create mode 100644 packages/ruby_dbm.rb create mode 100644 packages/ruby_delegate.rb create mode 100644 packages/ruby_did_you_mean.rb create mode 100644 packages/ruby_digest.rb create mode 100644 packages/ruby_e2mmap.rb create mode 100644 packages/ruby_english.rb create mode 100644 packages/ruby_error_highlight.rb create mode 100644 packages/ruby_etc.rb create mode 100644 packages/ruby_fcntl.rb create mode 100644 packages/ruby_fiddle.rb create mode 100644 packages/ruby_fileutils.rb create mode 100644 packages/ruby_find.rb create mode 100644 packages/ruby_forwardable.rb create mode 100644 packages/ruby_gdbm.rb create mode 100644 packages/ruby_getoptlong.rb create mode 100644 packages/ruby_httparty.rb create mode 100644 packages/ruby_i18n.rb create mode 100644 packages/ruby_io_nonblock.rb create mode 100644 packages/ruby_io_wait.rb create mode 100644 packages/ruby_ipaddr.rb create mode 100644 packages/ruby_matrix.rb create mode 100644 packages/ruby_mini_mime.rb create mode 100644 packages/ruby_multi_xml.rb create mode 100644 packages/ruby_mutex_m.rb create mode 100644 packages/ruby_net_http.rb create mode 100644 packages/ruby_net_pop.rb create mode 100644 packages/ruby_net_protocol.rb create mode 100644 packages/ruby_net_telnet.rb create mode 100644 packages/ruby_observer.rb create mode 100644 packages/ruby_open3.rb create mode 100644 packages/ruby_open_uri.rb create mode 100644 packages/ruby_openssl.rb create mode 100644 packages/ruby_ostruct.rb create mode 100644 packages/ruby_pathname.rb create mode 100644 packages/ruby_power_assert.rb create mode 100644 packages/ruby_pp.rb create mode 100644 packages/ruby_prettyprint.rb create mode 100644 packages/ruby_prime.rb create mode 100644 packages/ruby_pstore.rb create mode 100644 packages/ruby_psych.rb create mode 100644 packages/ruby_readline.rb create mode 100644 packages/ruby_readline_ext.rb create mode 100644 packages/ruby_resolv_replace.rb create mode 100644 packages/ruby_rinda.rb create mode 100644 packages/ruby_rss.rb create mode 100644 packages/ruby_ruby2_keywords.rb create mode 100644 packages/ruby_scanf.rb create mode 100644 packages/ruby_sdbm.rb create mode 100644 packages/ruby_securerandom.rb create mode 100644 packages/ruby_set.rb create mode 100644 packages/ruby_shell.rb create mode 100644 packages/ruby_shellwords.rb create mode 100644 packages/ruby_singleton.rb create mode 100644 packages/ruby_stringio.rb create mode 100644 packages/ruby_sync.rb create mode 100644 packages/ruby_syntax_suggest.rb create mode 100644 packages/ruby_syslog.rb create mode 100644 packages/ruby_tempfile.rb create mode 100644 packages/ruby_thwait.rb create mode 100644 packages/ruby_timeout.rb create mode 100644 packages/ruby_tmpdir.rb create mode 100644 packages/ruby_tracer.rb create mode 100644 packages/ruby_tsort.rb create mode 100644 packages/ruby_tzinfo.rb create mode 100644 packages/ruby_un.rb create mode 100644 packages/ruby_uri.rb create mode 100644 packages/ruby_weakref.rb create mode 100644 packages/ruby_xmlrpc.rb create mode 100644 packages/ruby_yaml.rb create mode 100644 packages/ruby_zlib.rb create mode 100755 tools/create_default_gems_packages.rb diff --git a/bin/crew b/bin/crew index 4fb5f083f..a6f90ea48 100755 --- a/bin/crew +++ b/bin/crew @@ -454,7 +454,7 @@ def download if !url abort "No precompiled binary or source is available for #{@device[:architecture]}.".lightred - elsif url.casecmp?('SKIP') || @pkg.no_source_build? + elsif url.casecmp?('SKIP') || (@pkg.no_source_build? || @pkg.gem_compile_needed?) puts 'Skipping source download...' elsif @pkg.build_from_source puts 'Downloading source...' @@ -471,7 +471,7 @@ def download # We want to skip when no_source_build is true during the build, # but when we have built a binary we are in upgrade, and we need # download since we need to extract the just generated binary. - next if @pkg.no_source_build? && !@pkg.in_upgrade && !@pkg.in_install + next if (@pkg.no_source_build? || @pkg.gem_compile_needed?) && !@pkg.in_upgrade && !@pkg.in_install case File.basename(filename) # Sources that download with our internal downloader when /\.zip$/i, /\.(tar(\.(gz|bz2|xz|lzma|lz|zst))?|tgz|tbz|tpxz|txz)$/i, /\.deb$/i, /\.AppImage$/i, /\.gem$/i @@ -711,10 +711,10 @@ def build_and_preconfigure(target_dir) end @pkg.in_build = false # wipe crew destdir - FileUtils.rm_rf Dir["#{CREW_DEST_DIR}/*"], verbose: @fileutils_verbose + FileUtils.rm_rf Dir["#{CREW_DEST_DIR}/*"], verbose: @fileutils_verbose unless @pkg.superclass.to_s == 'RUBY' puts 'Preconfiguring package...' cache_build if CREW_CACHE_BUILD - @pkg.install + @pkg.install unless @pkg.superclass.to_s == 'RUBY' build_end_time = Time.now.to_i @@ -723,14 +723,14 @@ def build_and_preconfigure(target_dir) end def pre_flight - puts 'Performing pre-flight checks...' + puts "Performing pre-flight checks for #{@pkg.name}...".lightblue abort PackageUtils.incompatible_reason(@pkg).join("\n").to_s.lightred unless PackageUtils.compatible?(@pkg) @pkg.preflight end def pre_install(dest_dir) Dir.chdir dest_dir do - puts 'Performing pre-install...' + puts "Performing pre-install for #{@pkg.name}...".lightblue @pkg.preinstall # Reload device.json in case preinstall modified it via # running 'crew remove packages...' @@ -1675,9 +1675,9 @@ def build_command(args) pre_flight crewlog "!@pkg.is_fake? #{!@pkg.is_fake?} && PackageUtils.compatible?(@pkg) #{PackageUtils.compatible?(@pkg)} && @pkg.source?(ARCH): #{@pkg.source?(ARCH)}" - crewlog "(@pkg.no_source_build? #{@pkg.no_source_build?} || @pkg.source_url.to_s.upcase != 'SKIP' #{@pkg.source_url.to_s.upcase != 'SKIP'})" + crewlog "(@pkg.no_source_build? #{@pkg.no_source_build?} || @pkg.source_url.to_s.upcase != 'SKIP' #{@pkg.source_url.to_s.upcase != 'SKIP'} || @pkg.gem_compile_needed? #{@pkg.gem_compile_needed?})" crewlog "!@pkg.no_compile_needed? #{!@pkg.no_compile_needed?} && @pkg.gem_compile_needed? #{@pkg.gem_compile_needed?}" - if (!@pkg.is_fake? && PackageUtils.compatible?(@pkg) && @pkg.source?(ARCH) && (@pkg.no_source_build? || @pkg.source_url.to_s.upcase != 'SKIP') && !@pkg.no_compile_needed?) || @pkg.gem_compile_needed? + if !@pkg.is_fake? && PackageUtils.compatible?(@pkg) && @pkg.source?(ARCH) && (@pkg.no_source_build? || @pkg.source_url.to_s.upcase != 'SKIP' || @pkg.gem_compile_needed?) && !@pkg.no_compile_needed? resolve_dependencies_and_build else puts 'Unable to build a fake package. Skipping build.'.lightred if @pkg.is_fake? diff --git a/lib/buildsystems/ruby.rb b/lib/buildsystems/ruby.rb index d17be08ee..f96c34523 100644 --- a/lib/buildsystems/ruby.rb +++ b/lib/buildsystems/ruby.rb @@ -40,8 +40,12 @@ def set_vars(passed_name = nil, passed_version = nil) # This assumes the package class name starts with 'Ruby_' and # version is in the form '(gem version)-ruby-(ruby version)'. # For example, name 'Ruby_awesome' and version '1.0.0-ruby-3.3'. - @gem_name = passed_name.sub('ruby_', '').sub('_', '-') + gem_name_test = passed_name.gsub(/^ruby_/, '') + @remote_gem_ver = Gem.latest_version_for(gem_name_test).to_s + @remote_gem_ver = Gem.latest_version_for(gem_name_test.gsub!('_', '-')).to_s if @remote_gem_ver.empty? + @gem_name = gem_name_test @gem_ver = passed_version.split('-').first.to_s + puts "Note that #{name}.rb suggests that latest #{@gem_name} version is #{@gem_ver}.\nHowever, gem reports that the latest version is #{@remote_gem_ver}.".orange if Gem::Version.new(@remote_gem_ver.to_s) > Gem::Version.new(@gem_ver) end class RUBY < Package @@ -50,8 +54,18 @@ class RUBY < Package depends_on 'ruby' def self.preflight + @install_gem = true set_vars(name, version) - crewlog "@gem_name: #{@gem_name}, @gem_ver: #{@gem_ver}" + puts "Examining #{@gem_name} gem...".orange + @gem_filelist_path = File.join(CREW_META_PATH, "#{name}.filelist") + @gem_installed = Kernel.system "gem list -i \"^#{@gem_name}\$\" -v #{@gem_ver}", %i[out err] => File::NULL + gem_installed_anyver = Kernel.system "gem list -i \"^#{@gem_name}\$\"", %i[out err] => File::NULL + @gem_outdated = !@gem_installed && gem_installed_anyver + crewlog "preflight: @gem_name: #{@gem_name}, @gem_ver: #{@gem_ver}, @gem_outdated: #{@gem_outdated}, @gem_installed: #{@gem_installed} && @remote_gem_ver.to_s: #{Gem::Version.new(@remote_gem_ver.to_s)} == Gem::Version.new(@gem_ver): #{Gem::Version.new(@gem_ver)} && File.file?(@gem_filelist_path): #{File.file?(@gem_filelist_path)}" + if @gem_installed && Gem::Version.new(@remote_gem_ver.to_s) == Gem::Version.new(@gem_ver) + system "gem contents #{@gem_name} > #{@gem_filelist_path}" unless File.file?(@gem_filelist_path) + @install_gem = false + end end def self.preinstall @@ -63,28 +77,28 @@ class RUBY < Package Kernel.system "gem fetch #{@gem_name} --platform=ruby --version=#{@gem_ver}" Kernel.system "gem unpack #{@gem_name}-#{@gem_ver}.gem" - Kernel.system "gem compile --strip --prune #{@gem_name}-#{@gem_ver}.gem" + Kernel.system "gem compile --strip --prune #{@gem_name}-#{@gem_ver}.gem -O #{CREW_DEST_DIR}/" end def self.install + crewlog "install: @gem_name: #{@gem_name}, @gem_ver: #{@gem_ver}, @gem_outdated: #{@gem_outdated}, @gem_installed: #{@gem_installed} && @remote_gem_ver.to_s: #{Gem::Version.new(@remote_gem_ver.to_s)} == Gem::Version.new(@gem_ver): #{Gem::Version.new(@gem_ver)} && File.file?(@gem_filelist_path): #{File.file?(@gem_filelist_path)}" crewlog "no_compile_needed?: #{no_compile_needed?} @gem_binary_build_needed.blank?: #{@gem_binary_build_needed.blank?}, gem_compile_needed?: #{gem_compile_needed?}" + unless @install_gem + puts "#{@gem_name} #{@gem_ver} is already installed.".lightgreen + return + end puts "#{@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? - FileUtils.cp "#{@gem_name}-#{@gem_ver}-#{GEM_ARCH}.gem", CREW_DEST_DIR if File.file?("#{@gem_name}-#{@gem_ver}-#{GEM_ARCH}.gem") system "gem install -N --local #{CREW_DEST_DIR}/#{@gem_name}-#{@gem_ver}-#{GEM_ARCH}.gem --conservative" - elsif Kernel.system "gem list -i \"^#{@gem_name}\$\"", %i[out err] => File::NULL + elsif @gem_outdated + puts "Updating #{@gem_name} gem to #{@gem_ver}...".orange system "gem update -N #{@gem_name} --conservative" else system "gem install -N #{@gem_name} --conservative" end system "gem cleanup #{@gem_name}" - gem_filelist_path = File.join(CREW_META_PATH, "#{name}.filelist") - system "gem contents #{@gem_name} > #{gem_filelist_path}" + system "gem contents #{@gem_name} > #{@gem_filelist_path}" @ruby_install_extras&.call - - @remote_gem_ver = Gem.latest_spec_for(@gem_name).version.to_s - return if @remote_gem_ver == @gem_ver - - puts "Note that #{name}.rb suggests that #{@gem_name} version is #{@gem_ver}.\nHowever, gem reports that the installed version is #{@remote_gem_ver}.".orange if Gem::Version.new(@remote_gem_ver.to_s) >= Gem::Version.new(@gem_ver) + @install_gem = false end end diff --git a/lib/const.rb b/lib/const.rb index e076b725a..5481feeae 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.53.2' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION +CREW_VERSION ||= '1.53.3' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION # Kernel architecture. KERN_ARCH ||= Etc.uname[:machine] diff --git a/lib/misc_functions.rb b/lib/misc_functions.rb index 79ffe06b3..58ea123f3 100644 --- a/lib/misc_functions.rb +++ b/lib/misc_functions.rb @@ -1,6 +1,25 @@ # lib/misc_functions.rb # Generic implementations of various functions/algorithms that are not crew-specific. -require 'matrix' +def require_gem(gem_name_and_require = nil, require_override = nil) + # Allow only loading gems when needed. + return if gem_name_and_require.nil? + + gem_name = gem_name_and_require.split('/')[0] + begin + gem gem_name + rescue LoadError + puts " -> install #{gem_name} gem".orange + Gem.install(gem_name) + gem 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 + else + require_override + end + require requires +end +require_gem('matrix') class MiscFunctions def self.human_size(bytes) diff --git a/manifest/armv7l/a/awscli.filelist b/manifest/armv7l/a/awscli.filelist index ad3242a6a..20a8ee872 100644 --- a/manifest/armv7l/a/awscli.filelist +++ b/manifest/armv7l/a/awscli.filelist @@ -5,13 +5,13 @@ /usr/local/bin/aws_zsh_completer.sh /usr/local/etc/bash.d/aws /usr/local/etc/zsh.d/aws -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/LICENSE.txt -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/top_level.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/LICENSE.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/top_level.txt /usr/local/lib/python3.12/site-packages/awscli/__init__.py /usr/local/lib/python3.12/site-packages/awscli/__main__.py /usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc diff --git a/manifest/armv7l/p/py3_virtualenv.filelist b/manifest/armv7l/p/py3_virtualenv.filelist index 4e65ce199..990f5a160 100644 --- a/manifest/armv7l/p/py3_virtualenv.filelist +++ b/manifest/armv7l/p/py3_virtualenv.filelist @@ -1,11 +1,11 @@ /usr/local/bin/virtualenv -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/entry_points.txt -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/licenses/LICENSE +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/entry_points.txt +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/licenses/LICENSE /usr/local/lib/python3.12/site-packages/virtualenv/__init__.py /usr/local/lib/python3.12/site-packages/virtualenv/__main__.py /usr/local/lib/python3.12/site-packages/virtualenv/__pycache__/__init__.cpython-312.pyc diff --git a/manifest/i686/a/awscli.filelist b/manifest/i686/a/awscli.filelist index ad3242a6a..20a8ee872 100644 --- a/manifest/i686/a/awscli.filelist +++ b/manifest/i686/a/awscli.filelist @@ -5,13 +5,13 @@ /usr/local/bin/aws_zsh_completer.sh /usr/local/etc/bash.d/aws /usr/local/etc/zsh.d/aws -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/LICENSE.txt -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/top_level.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/LICENSE.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/top_level.txt /usr/local/lib/python3.12/site-packages/awscli/__init__.py /usr/local/lib/python3.12/site-packages/awscli/__main__.py /usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc diff --git a/manifest/i686/p/py3_virtualenv.filelist b/manifest/i686/p/py3_virtualenv.filelist index 4e65ce199..990f5a160 100644 --- a/manifest/i686/p/py3_virtualenv.filelist +++ b/manifest/i686/p/py3_virtualenv.filelist @@ -1,11 +1,11 @@ /usr/local/bin/virtualenv -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/entry_points.txt -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/licenses/LICENSE +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/entry_points.txt +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/licenses/LICENSE /usr/local/lib/python3.12/site-packages/virtualenv/__init__.py /usr/local/lib/python3.12/site-packages/virtualenv/__main__.py /usr/local/lib/python3.12/site-packages/virtualenv/__pycache__/__init__.cpython-312.pyc diff --git a/manifest/x86_64/a/awscli.filelist b/manifest/x86_64/a/awscli.filelist index ad3242a6a..20a8ee872 100644 --- a/manifest/x86_64/a/awscli.filelist +++ b/manifest/x86_64/a/awscli.filelist @@ -5,13 +5,13 @@ /usr/local/bin/aws_zsh_completer.sh /usr/local/etc/bash.d/aws /usr/local/etc/zsh.d/aws -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/LICENSE.txt -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/awscli-1.34.27.dist-info/top_level.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/LICENSE.txt +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/awscli-1.34.29.dist-info/top_level.txt /usr/local/lib/python3.12/site-packages/awscli/__init__.py /usr/local/lib/python3.12/site-packages/awscli/__main__.py /usr/local/lib/python3.12/site-packages/awscli/__pycache__/__init__.cpython-312.pyc diff --git a/manifest/x86_64/p/py3_virtualenv.filelist b/manifest/x86_64/p/py3_virtualenv.filelist index 4e65ce199..990f5a160 100644 --- a/manifest/x86_64/p/py3_virtualenv.filelist +++ b/manifest/x86_64/p/py3_virtualenv.filelist @@ -1,11 +1,11 @@ /usr/local/bin/virtualenv -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/INSTALLER -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/METADATA -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/RECORD -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/REQUESTED -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/WHEEL -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/entry_points.txt -/usr/local/lib/python3.12/site-packages/virtualenv-20.26.5.dist-info/licenses/LICENSE +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/INSTALLER +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/METADATA +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/RECORD +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/REQUESTED +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/WHEEL +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/entry_points.txt +/usr/local/lib/python3.12/site-packages/virtualenv-20.26.6.dist-info/licenses/LICENSE /usr/local/lib/python3.12/site-packages/virtualenv/__init__.py /usr/local/lib/python3.12/site-packages/virtualenv/__main__.py /usr/local/lib/python3.12/site-packages/virtualenv/__pycache__/__init__.cpython-312.pyc diff --git a/packages/awscli.rb b/packages/awscli.rb index 5015e9ce7..94b7e91c7 100644 --- a/packages/awscli.rb +++ b/packages/awscli.rb @@ -3,17 +3,17 @@ require 'buildsystems/pip' class Awscli < Pip description 'Universal Command Line Interface for Amazon Web Services' homepage 'https://github.com/aws/aws-cli' - version "1.34.27-#{CREW_PY_VER}" + version "1.34.29-#{CREW_PY_VER}" license 'Apache-2.0' compatibility 'all' source_url 'SKIP' binary_compression 'tar.zst' binary_sha256({ - aarch64: '5b0be84af3b7327ff15ee2f7d55b04c82830ffa6b33e83aa4caad9332267fd70', - armv7l: '5b0be84af3b7327ff15ee2f7d55b04c82830ffa6b33e83aa4caad9332267fd70', - i686: 'e88c00da995f88bc07fba3afa28d4279ec5f5decc24d45ae91330cd5d8aae688', - x86_64: 'f84c817bff64bab7e22c399fdc8c6238dbe62ced8dbcb858686d7b374d14dad4' + aarch64: '4e09a646ab51f48df4499d9a6bfcdd6a5f989240cee552597b86aede3840bddf', + armv7l: '4e09a646ab51f48df4499d9a6bfcdd6a5f989240cee552597b86aede3840bddf', + i686: 'eb5b9d40a91e002f1f819a79c4d4cdcc0b16dc062fa875c9f0074463ee39b48d', + x86_64: '67d0b489172a31ea500ab22ce44e5a463be2230f734331f14a42971dad6daf17' }) depends_on 'groff' diff --git a/packages/bundled_gems.rb b/packages/bundled_gems.rb new file mode 100644 index 000000000..50df95bcd --- /dev/null +++ b/packages/bundled_gems.rb @@ -0,0 +1,33 @@ +# Generated by tools/create_default_gems_package.rb +require 'package' + +class Bundled_gems < Package + description 'Ruby Bundled Gem Packages.' + homepage 'https://stdgems.org/' + version "2024092800-#{CREW_RUBY_VER}" + license 'GPL-3+' + compatibility 'all' + source_url 'SKIP' + + is_fake + + depends_on 'ruby_debug' + depends_on 'ruby_did_you_mean' + depends_on 'ruby_matrix' + depends_on 'ruby_minitest' + depends_on 'ruby_net_ftp' + depends_on 'ruby_net_imap' + depends_on 'ruby_net_pop' + depends_on 'ruby_net_smtp' + depends_on 'ruby_net_telnet' + depends_on 'ruby_power_assert' + depends_on 'ruby_prime' + depends_on 'ruby_racc' + depends_on 'ruby_rake' + depends_on 'ruby_rbs' + depends_on 'ruby_rexml' + depends_on 'ruby_rss' + depends_on 'ruby_test_unit' + depends_on 'ruby_typeprof' + depends_on 'ruby_xmlrpc' +end diff --git a/packages/core.rb b/packages/core.rb index 7c101e833..992e6515f 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.0' + version '3.1' license 'GPL-3+' compatibility 'all' @@ -88,6 +88,12 @@ class Core < Package depends_on 'ruby_pry' # crew check -V breaks without this. depends_on 'ruby_ruby_libversion' + # Needed for rubygem updates + depends_on 'ruby_rubygems_update' + # These are the "Default Gems" that come with Ruby. + depends_on 'default_gems' + # These are the "Bundled Gems" that come with Ruby. + depends_on 'bundled_gems' depends_on 'slang' depends_on 'sqlite' depends_on 'uchardet' diff --git a/packages/default_gems.rb b/packages/default_gems.rb new file mode 100644 index 000000000..3408e6e14 --- /dev/null +++ b/packages/default_gems.rb @@ -0,0 +1,106 @@ +# Generated by tools/create_default_gems_package.rb +require 'package' + +class Default_gems < Package + description 'Ruby Default Gem Packages.' + homepage 'https://stdgems.org/' + version "2024092800-#{CREW_RUBY_VER}" + license 'GPL-3+' + compatibility 'all' + source_url 'SKIP' + + is_fake + + depends_on 'ruby_abbrev' + depends_on 'ruby_base64' + depends_on 'ruby_benchmark' + depends_on 'ruby_bigdecimal' + depends_on 'ruby_bundler' + depends_on 'ruby_cgi' + depends_on 'ruby_cmath' + depends_on 'ruby_csv' + depends_on 'ruby_date' + depends_on 'ruby_dbm' + depends_on 'ruby_debug' + depends_on 'ruby_delegate' + depends_on 'ruby_did_you_mean' + depends_on 'ruby_digest' + depends_on 'ruby_drb' + depends_on 'ruby_e2mmap' + depends_on 'ruby_english' + depends_on 'ruby_erb' + depends_on 'ruby_error_highlight' + depends_on 'ruby_etc' + depends_on 'ruby_fcntl' + depends_on 'ruby_fiddle' + depends_on 'ruby_fileutils' + depends_on 'ruby_find' + depends_on 'ruby_forwardable' + depends_on 'ruby_gdbm' + depends_on 'ruby_getoptlong' + depends_on 'ruby_io_console' + depends_on 'ruby_io_nonblock' + depends_on 'ruby_io_wait' + depends_on 'ruby_ipaddr' + depends_on 'ruby_irb' + depends_on 'ruby_json' + depends_on 'ruby_logger' + depends_on 'ruby_matrix' + depends_on 'ruby_mutex_m' + depends_on 'ruby_net_ftp' + depends_on 'ruby_net_http' + depends_on 'ruby_net_imap' + depends_on 'ruby_net_pop' + depends_on 'ruby_net_protocol' + depends_on 'ruby_net_smtp' + depends_on 'ruby_nkf' + depends_on 'ruby_observer' + depends_on 'ruby_open_uri' + depends_on 'ruby_open3' + depends_on 'ruby_openssl' + depends_on 'ruby_optparse' + depends_on 'ruby_ostruct' + depends_on 'ruby_pathname' + depends_on 'ruby_pp' + depends_on 'ruby_prettyprint' + depends_on 'ruby_prime' + depends_on 'ruby_prism' + depends_on 'ruby_pstore' + depends_on 'ruby_psych' + depends_on 'ruby_racc' + depends_on 'ruby_rdoc' + depends_on 'ruby_readline' + depends_on 'ruby_readline_ext' + depends_on 'ruby_reline' + depends_on 'ruby_resolv' + depends_on 'ruby_resolv_replace' + depends_on 'ruby_rexml' + depends_on 'ruby_rinda' + depends_on 'ruby_rss' + depends_on 'ruby_ruby2_keywords' + depends_on 'ruby_scanf' + depends_on 'ruby_sdbm' + depends_on 'ruby_securerandom' + depends_on 'ruby_set' + depends_on 'ruby_shell' + depends_on 'ruby_shellwords' + depends_on 'ruby_singleton' + depends_on 'ruby_stringio' + depends_on 'ruby_strscan' + depends_on 'ruby_sync' + depends_on 'ruby_syntax_suggest' + depends_on 'ruby_syslog' + depends_on 'ruby_tempfile' + depends_on 'ruby_thwait' + depends_on 'ruby_time' + depends_on 'ruby_timeout' + depends_on 'ruby_tmpdir' + depends_on 'ruby_tracer' + depends_on 'ruby_tsort' + depends_on 'ruby_un' + depends_on 'ruby_uri' + depends_on 'ruby_weakref' + depends_on 'ruby_webrick' + depends_on 'ruby_yaml' + depends_on 'ruby_zlib' +end diff --git a/packages/py3_virtualenv.rb b/packages/py3_virtualenv.rb index 95a901858..919a276f3 100644 --- a/packages/py3_virtualenv.rb +++ b/packages/py3_virtualenv.rb @@ -3,17 +3,17 @@ require 'buildsystems/pip' class Py3_virtualenv < Pip description 'Virtualenv is a Virtual Environment builder for Python.' homepage 'https://virtualenv.pypa.io/' - version "20.26.5-#{CREW_PY_VER}" + version "20.26.6-#{CREW_PY_VER}" license 'MIT' compatibility 'all' source_url 'SKIP' binary_compression 'tar.zst' binary_sha256({ - aarch64: 'f368e469d1041a22a8c848731822d0323ec52151826d48d2896e7f8b8cd3bcfa', - armv7l: 'f368e469d1041a22a8c848731822d0323ec52151826d48d2896e7f8b8cd3bcfa', - i686: '7230d8f501ef7ef43a7dc552d39f14880b9ae801e3af8aca09901c86f94169ba', - x86_64: 'd93d81be37df3c1c3943e4b05be40182efc4209a53f67c29e8cba624d1624e9f' + aarch64: '4395aa2732921de82b30c5a6cd3cd42eb52a592b7fda69c0c77b60e29a4415d8', + armv7l: '4395aa2732921de82b30c5a6cd3cd42eb52a592b7fda69c0c77b60e29a4415d8', + i686: '9b17e3f981cbf30a6834a406412008ac04a3e779f5f67fa28884a0297fd06b29', + x86_64: '4209972416b437caf2407e9bdfcb9a40d356e6bd3a9b531efeccabea40be3345' }) depends_on 'py3_distlib' diff --git a/packages/ruby_abbrev.rb b/packages/ruby_abbrev.rb new file mode 100644 index 000000000..015ce7ad9 --- /dev/null +++ b/packages/ruby_abbrev.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_abbrev < RUBY + description 'Calculates a set of unique abbreviations for a given set of strings.' + homepage 'https://github.com/ruby/abbrev' + version "0.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_base64.rb b/packages/ruby_base64.rb new file mode 100644 index 000000000..f10f3b942 --- /dev/null +++ b/packages/ruby_base64.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_base64 < RUBY + description 'Support for encoding and decoding binary data using a base64 representation.' + homepage 'https://github.com/ruby/base64' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_benchmark.rb b/packages/ruby_benchmark.rb new file mode 100644 index 000000000..069c780dc --- /dev/null +++ b/packages/ruby_benchmark.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_benchmark < RUBY + description 'A performance benchmarking library.' + homepage 'https://github.com/ruby/benchmark' + version "0.3.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_bigdecimal.rb b/packages/ruby_bigdecimal.rb index 99e478ef2..715c3c0bf 100644 --- a/packages/ruby_bigdecimal.rb +++ b/packages/ruby_bigdecimal.rb @@ -4,7 +4,7 @@ class Ruby_bigdecimal < RUBY description 'This library provides arbitrary-precision decimal floating-point number class.' homepage 'https://github.com/ruby/bigdecimal' version "3.1.8-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' @@ -18,5 +18,4 @@ class Ruby_bigdecimal < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_bundler.rb b/packages/ruby_bundler.rb index 290aa9f93..6139cc036 100644 --- a/packages/ruby_bundler.rb +++ b/packages/ruby_bundler.rb @@ -1,7 +1,7 @@ require 'buildsystems/ruby' class Ruby_bundler < RUBY - description 'many machines, systematically and repeatably.' + description "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably." homepage 'https://bundler.io' version "2.5.20-#{CREW_RUBY_VER}" license 'MIT' diff --git a/packages/ruby_cgi.rb b/packages/ruby_cgi.rb new file mode 100644 index 000000000..d700d1f68 --- /dev/null +++ b/packages/ruby_cgi.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_cgi < RUBY + description 'Support for the common gateway interface protocol.' + homepage 'https://github.com/ruby/cgi' + version "0.4.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_cmath.rb b/packages/ruby_cmath.rb new file mode 100644 index 000000000..bc0293fa4 --- /dev/null +++ b/packages/ruby_cmath.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_cmath < RUBY + description 'CMath is a library that provides trigonometric and transcendental functions for complex numbers.' + homepage 'https://github.com/ruby/cmath' + version "1.0.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_connection_pool.rb b/packages/ruby_connection_pool.rb new file mode 100644 index 000000000..33889301f --- /dev/null +++ b/packages/ruby_connection_pool.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_connection_pool < RUBY + description 'Generic connection pool for ruby.' + homepage 'https://github.com/mperham/connection_pool' + version "2.4.1-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_csv.rb b/packages/ruby_csv.rb index 8bb4fa4a4..04ad32ae1 100644 --- a/packages/ruby_csv.rb +++ b/packages/ruby_csv.rb @@ -1,10 +1,10 @@ require 'buildsystems/ruby' class Ruby_csv < RUBY - description 'tools to enable you to read and write to and from Strings or IO objects, as needed.' + description 'The csv library provides a complete interface to csv files and data.' homepage 'https://github.com/ruby/csv' version "3.3.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' diff --git a/packages/ruby_date.rb b/packages/ruby_date.rb new file mode 100644 index 000000000..16c8602a0 --- /dev/null +++ b/packages/ruby_date.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_date < RUBY + description 'A subclass of object includes comparable module for handling dates.' + homepage 'https://github.com/ruby/date' + version "3.3.4-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_dbm.rb b/packages/ruby_dbm.rb new file mode 100644 index 000000000..0545082f6 --- /dev/null +++ b/packages/ruby_dbm.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_dbm < RUBY + description 'Provides a wrapper for the UNIX-style Database Manager Library.' + homepage 'https://github.com/ruby/dbm' + version "1.1.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '25d29549098fda31a380451bdf1e2a94d251702be49d37145dc1bfa8024ebef4', + armv7l: '25d29549098fda31a380451bdf1e2a94d251702be49d37145dc1bfa8024ebef4', + i686: 'be5aad368aa33ea7e5dbbf64c5a0ea92442e34b0bbae99caeda5bc469dd6fe40', + x86_64: 'f8762a798f3421e4a1d6af87077d45bdbc6d8dda50a611d8cffb79feb12bdbc9' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_debug.rb b/packages/ruby_debug.rb index 5783c8a15..aa5712434 100644 --- a/packages/ruby_debug.rb +++ b/packages/ruby_debug.rb @@ -16,6 +16,10 @@ class Ruby_debug < RUBY x86_64: '2b701d2dd3b61b89da53aa557d5d88ce031fe3ac959f4ff0d966ca62bc504dc1' }) + depends_on 'ruby_reline' # R + + depends_on 'ruby_irb' # R + conflicts_ok gem_compile_needed no_source_build diff --git a/packages/ruby_delegate.rb b/packages/ruby_delegate.rb new file mode 100644 index 000000000..ca1838baa --- /dev/null +++ b/packages/ruby_delegate.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_delegate < RUBY + description 'Provides three abilities to delegate method calls to an object.' + homepage 'https://github.com/ruby/delegate' + version "0.3.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_did_you_mean.rb b/packages/ruby_did_you_mean.rb new file mode 100644 index 000000000..d467ae8df --- /dev/null +++ b/packages/ruby_did_you_mean.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_did_you_mean < RUBY + description 'The gem that has been saving people from typos since 2014.' + homepage 'https://github.com/ruby/did_you_mean' + version "1.6.3-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_digest.rb b/packages/ruby_digest.rb new file mode 100644 index 000000000..5e7968dad --- /dev/null +++ b/packages/ruby_digest.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_digest < RUBY + description 'Provides a framework for message digest libraries.' + homepage 'https://github.com/ruby/digest' + version "3.1.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_drb.rb b/packages/ruby_drb.rb index c1fd0281c..08d6a4e83 100644 --- a/packages/ruby_drb.rb +++ b/packages/ruby_drb.rb @@ -1,13 +1,15 @@ require 'buildsystems/ruby' class Ruby_drb < RUBY - description 'Distributed object system for Ruby' + description 'Distributed object system for ruby.' homepage 'https://github.com/ruby/drb' version "2.2.1-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_ruby2_keywords' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_e2mmap.rb b/packages/ruby_e2mmap.rb new file mode 100644 index 000000000..a7244cf88 --- /dev/null +++ b/packages/ruby_e2mmap.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_e2mmap < RUBY + description 'Module for defining custom exceptions with specific messages.' + homepage 'https://github.com/ruby/e2mmap' + version "0.1.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_english.rb b/packages/ruby_english.rb new file mode 100644 index 000000000..10a30f231 --- /dev/null +++ b/packages/ruby_english.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_english < RUBY + description "Require 'english." + homepage 'https://github.com/ruby/English' + version "0.8.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_erb.rb b/packages/ruby_erb.rb index cbb76c1fe..cd4a087ac 100644 --- a/packages/ruby_erb.rb +++ b/packages/ruby_erb.rb @@ -4,7 +4,7 @@ class Ruby_erb < RUBY description 'An easy to use but powerful templating system for Ruby.' homepage 'https://github.com/ruby/erb' version "4.0.4-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' @@ -16,7 +16,8 @@ class Ruby_erb < RUBY x86_64: '129394d92d6b217e01353d476c3bb1a64dd95414e6ef623ce674c83a3eada1ab' }) + depends_on 'ruby_cgi' # R + conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_error_highlight.rb b/packages/ruby_error_highlight.rb new file mode 100644 index 000000000..25b0ff963 --- /dev/null +++ b/packages/ruby_error_highlight.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_error_highlight < RUBY + description 'The gem enhances exception#message by adding a short explanation where the exception is raised.' + homepage 'https://github.com/ruby/error_highlight' + version "0.6.0-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_etc.rb b/packages/ruby_etc.rb new file mode 100644 index 000000000..a77cdce22 --- /dev/null +++ b/packages/ruby_etc.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_etc < RUBY + description 'Provides access to information typically stored in unix /etc directory.' + homepage 'https://github.com/ruby/etc' + version "1.4.3-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_fcntl.rb b/packages/ruby_fcntl.rb new file mode 100644 index 000000000..64ba9e50b --- /dev/null +++ b/packages/ruby_fcntl.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_fcntl < RUBY + description 'Loads constants defined in the os fcntl.' + homepage 'https://github.com/ruby/fcntl' + version "1.1.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_fiddle.rb b/packages/ruby_fiddle.rb new file mode 100644 index 000000000..704c0a6f9 --- /dev/null +++ b/packages/ruby_fiddle.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_fiddle < RUBY + description 'A libffi wrapper for ruby.' + homepage 'https://github.com/ruby/fiddle' + version "1.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '11a51ba27f1875593017d33560badad95ea894848d25d426ade209b619ad4a2f', + armv7l: '11a51ba27f1875593017d33560badad95ea894848d25d426ade209b619ad4a2f', + i686: '88e1d897d3e5611b09276158644a14fe85b36961aeadea65c51e5c0331f5c75e', + x86_64: '6aa32335992948369b986fdb700089a37beda2e441b0371712cf1b5245716d14' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_fileutils.rb b/packages/ruby_fileutils.rb new file mode 100644 index 000000000..56d5b27f9 --- /dev/null +++ b/packages/ruby_fileutils.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_fileutils < RUBY + description 'Several file utility methods for copying, moving, removing, etc.' + homepage 'https://github.com/ruby/fileutils' + version "1.7.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_find.rb b/packages/ruby_find.rb new file mode 100644 index 000000000..10aa88fb7 --- /dev/null +++ b/packages/ruby_find.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_find < RUBY + description 'This module supports top-down traversal of a set of file paths.' + homepage 'https://github.com/ruby/find' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_forwardable.rb b/packages/ruby_forwardable.rb new file mode 100644 index 000000000..82eba0e5e --- /dev/null +++ b/packages/ruby_forwardable.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_forwardable < RUBY + description 'Provides delegation of specified methods to a designated object.' + homepage 'https://github.com/ruby/forwardable' + version "1.3.3-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_gdbm.rb b/packages/ruby_gdbm.rb new file mode 100644 index 000000000..36156e9c9 --- /dev/null +++ b/packages/ruby_gdbm.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_gdbm < RUBY + description 'Ruby extension for GNU dbm.' + homepage 'https://github.com/ruby/gdbm' + version "2.1.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '189ed64b1386a53ca1947d42d768cffc1967ac4ec0f9c7a1969c00808bd5be80', + armv7l: '189ed64b1386a53ca1947d42d768cffc1967ac4ec0f9c7a1969c00808bd5be80', + i686: 'e67e801843fe384f64494901707580e31dd18d3ff1fd6fecd4bc72c1d57ea42a', + x86_64: 'c1697765011754fc803a457b9a3dc284dffbb7e743e79ab793dd1c0b8ea36714' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_getoptlong.rb b/packages/ruby_getoptlong.rb new file mode 100644 index 000000000..ba21f15d8 --- /dev/null +++ b/packages/ruby_getoptlong.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_getoptlong < RUBY + description 'Getoptlong for ruby.' + homepage 'https://github.com/ruby/getoptlong' + version "0.2.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_httparty.rb b/packages/ruby_httparty.rb new file mode 100644 index 000000000..7ebd818c1 --- /dev/null +++ b/packages/ruby_httparty.rb @@ -0,0 +1,17 @@ +require 'buildsystems/ruby' + +class Ruby_httparty < RUBY + description 'Makes http fun! Also, makes consuming restful web services dead easy.' + homepage 'https://github.com/jnunemaker/httparty' + version "0.22.0-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_csv' # R + depends_on 'ruby_mini_mime' # R + depends_on 'ruby_multi_xml' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_i18n.rb b/packages/ruby_i18n.rb new file mode 100644 index 000000000..23f32eba6 --- /dev/null +++ b/packages/ruby_i18n.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_i18n < RUBY + description 'New wave internationalization support for ruby.' + homepage 'https://github.com/ruby-i18n/i18n' + version "1.14.6-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_concurrent_ruby' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_io_console.rb b/packages/ruby_io_console.rb index 547ffe58c..0f3aa3c4e 100644 --- a/packages/ruby_io_console.rb +++ b/packages/ruby_io_console.rb @@ -4,7 +4,7 @@ class Ruby_io_console < RUBY description 'add console capabilities to IO instances.' homepage 'https://github.com/ruby/io-console' version "0.7.2-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' @@ -18,5 +18,4 @@ class Ruby_io_console < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_io_nonblock.rb b/packages/ruby_io_nonblock.rb new file mode 100644 index 000000000..5a1562529 --- /dev/null +++ b/packages/ruby_io_nonblock.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_io_nonblock < RUBY + description 'Enables non-blocking mode with io class.' + homepage 'https://github.com/ruby/io-nonblock' + version "0.3.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_io_wait.rb b/packages/ruby_io_wait.rb new file mode 100644 index 000000000..46133bfab --- /dev/null +++ b/packages/ruby_io_wait.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_io_wait < RUBY + description 'Waits until io is readable or writable without blocking.' + homepage 'https://github.com/ruby/io-wait' + version "0.3.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_ipaddr.rb b/packages/ruby_ipaddr.rb new file mode 100644 index 000000000..ab713b3f7 --- /dev/null +++ b/packages/ruby_ipaddr.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_ipaddr < RUBY + description '| ipaddr provides a set of methods to manipulate an ip address.' + homepage 'https://github.com/ruby/ipaddr' + version "1.2.6-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_irb.rb b/packages/ruby_irb.rb index b1a1b1984..adfd24665 100644 --- a/packages/ruby_irb.rb +++ b/packages/ruby_irb.rb @@ -4,10 +4,13 @@ class Ruby_irb < RUBY description 'Interactive Ruby command-line tool for REPL (Read Eval Print Loop).' homepage 'https://github.com/ruby/irb' version "1.14.1-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_rdoc' # R + depends_on 'ruby_reline' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_json.rb b/packages/ruby_json.rb index 276adf799..5f17847b1 100644 --- a/packages/ruby_json.rb +++ b/packages/ruby_json.rb @@ -18,5 +18,4 @@ class Ruby_json < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_logger.rb b/packages/ruby_logger.rb index 9266740b4..2e4c7ba10 100644 --- a/packages/ruby_logger.rb +++ b/packages/ruby_logger.rb @@ -4,7 +4,7 @@ class Ruby_logger < RUBY description 'Provides a simple logging utility for outputting messages.' homepage 'https://github.com/ruby/logger' version "1.6.1-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' diff --git a/packages/ruby_matrix.rb b/packages/ruby_matrix.rb new file mode 100644 index 000000000..10a415f45 --- /dev/null +++ b/packages/ruby_matrix.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_matrix < RUBY + description 'An implementation of Matrix and Vector classes.' + homepage 'https://github.com/ruby/matrix' + version "0.4.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_mini_mime.rb b/packages/ruby_mini_mime.rb new file mode 100644 index 000000000..3b0f97c65 --- /dev/null +++ b/packages/ruby_mini_mime.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_mini_mime < RUBY + description 'A minimal mime type library.' + homepage 'https://github.com/discourse/mini_mime' + version "1.1.5-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_multi_xml.rb b/packages/ruby_multi_xml.rb new file mode 100644 index 000000000..efc0b450b --- /dev/null +++ b/packages/ruby_multi_xml.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_multi_xml < RUBY + description '---.' + homepage 'https://github.com/sferik/multi_xml' + version "0.7.1-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_bigdecimal' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_mutex_m.rb b/packages/ruby_mutex_m.rb new file mode 100644 index 000000000..5b4d1729c --- /dev/null +++ b/packages/ruby_mutex_m.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_mutex_m < RUBY + description 'Mixin to extend objects to be handled like a mutex.' + homepage 'https://github.com/ruby/mutex_m' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_net_ftp.rb b/packages/ruby_net_ftp.rb index f65ac257d..248d7347e 100644 --- a/packages/ruby_net_ftp.rb +++ b/packages/ruby_net_ftp.rb @@ -4,10 +4,13 @@ class Ruby_net_ftp < RUBY description 'Support for the File Transfer Protocol.' homepage 'https://github.com/ruby/net-ftp' version "0.3.7-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_net_protocol' # R + depends_on 'ruby_time' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_net_http.rb b/packages/ruby_net_http.rb new file mode 100644 index 000000000..7f23eadb9 --- /dev/null +++ b/packages/ruby_net_http.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_net_http < RUBY + description 'Http client api for ruby.' + homepage 'https://github.com/ruby/net-http' + version "0.4.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_uri' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_net_imap.rb b/packages/ruby_net_imap.rb index e11a4aa4a..0f52ac8f9 100644 --- a/packages/ruby_net_imap.rb +++ b/packages/ruby_net_imap.rb @@ -4,10 +4,13 @@ class Ruby_net_imap < RUBY description 'Ruby client api for Internet Message Access Protocol' homepage 'https://github.com/ruby/net-imap' version "0.4.16-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_date' # R + depends_on 'ruby_net_protocol' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_net_pop.rb b/packages/ruby_net_pop.rb new file mode 100644 index 000000000..123db8dfd --- /dev/null +++ b/packages/ruby_net_pop.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_net_pop < RUBY + description 'Ruby client library for POP3.' + homepage 'https://github.com/ruby/net-pop' + version "0.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_net_protocol' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_net_protocol.rb b/packages/ruby_net_protocol.rb new file mode 100644 index 000000000..a07605575 --- /dev/null +++ b/packages/ruby_net_protocol.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_net_protocol < RUBY + description 'The abstract interface for net-* client.' + homepage 'https://github.com/ruby/net-protocol' + version "0.2.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_timeout' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_net_smtp.rb b/packages/ruby_net_smtp.rb index ff9d071d2..604e050fb 100644 --- a/packages/ruby_net_smtp.rb +++ b/packages/ruby_net_smtp.rb @@ -4,7 +4,7 @@ class Ruby_net_smtp < RUBY description 'Simple Mail Transfer Protocol client library for Ruby.' homepage 'https://github.com/ruby/net-smtp' version "0.5.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' diff --git a/packages/ruby_net_telnet.rb b/packages/ruby_net_telnet.rb new file mode 100644 index 000000000..717e09667 --- /dev/null +++ b/packages/ruby_net_telnet.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_net_telnet < RUBY + description 'Provides telnet client functionality.' + homepage 'https://github.com/ruby/net-telnet' + version "0.2.0-#{CREW_RUBY_VER}" + license 'ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_nkf.rb b/packages/ruby_nkf.rb index 5bd3998f5..cec358b57 100644 --- a/packages/ruby_nkf.rb +++ b/packages/ruby_nkf.rb @@ -4,7 +4,7 @@ class Ruby_nkf < RUBY description 'Ruby extension for Network Kanji Filter' homepage 'https://github.com/ruby/nkf' version "0.2.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' @@ -18,5 +18,4 @@ class Ruby_nkf < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_observer.rb b/packages/ruby_observer.rb new file mode 100644 index 000000000..22b230293 --- /dev/null +++ b/packages/ruby_observer.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_observer < RUBY + description 'Implementation of the observer object-oriented design pattern.' + homepage 'https://github.com/ruby/observer' + version "0.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_open3.rb b/packages/ruby_open3.rb new file mode 100644 index 000000000..f53857188 --- /dev/null +++ b/packages/ruby_open3.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_open3 < RUBY + description 'Popen, but with stderr, too.' + homepage 'https://github.com/ruby/open3' + version "0.2.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_open_uri.rb b/packages/ruby_open_uri.rb new file mode 100644 index 000000000..0e4ba93b0 --- /dev/null +++ b/packages/ruby_open_uri.rb @@ -0,0 +1,17 @@ +require 'buildsystems/ruby' + +class Ruby_open_uri < RUBY + description 'An easy-to-use wrapper for net::http, net::https and net::ftp.' + homepage 'https://github.com/ruby/open-uri' + version "0.4.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_stringio' # R + depends_on 'ruby_time' # R + depends_on 'ruby_uri' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_openssl.rb b/packages/ruby_openssl.rb new file mode 100644 index 000000000..867738dfb --- /dev/null +++ b/packages/ruby_openssl.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_openssl < RUBY + description 'Openssl for ruby provides access to ssl/tls and general-purpose cryptography based on the openssl library.' + homepage 'https://github.com/ruby/openssl' + version "3.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_optparse.rb b/packages/ruby_optparse.rb index 3df0e9b6c..9db1eb44e 100644 --- a/packages/ruby_optparse.rb +++ b/packages/ruby_optparse.rb @@ -4,7 +4,7 @@ class Ruby_optparse < RUBY description 'OptionParser is a class for command-line option analysis.' homepage 'https://github.com/ruby/optparse' version "0.5.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' diff --git a/packages/ruby_ostruct.rb b/packages/ruby_ostruct.rb new file mode 100644 index 000000000..2797ac833 --- /dev/null +++ b/packages/ruby_ostruct.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_ostruct < RUBY + description 'Class to build custom data structures, similar to a hash.' + homepage 'https://github.com/ruby/ostruct' + version "0.6.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_pathname.rb b/packages/ruby_pathname.rb new file mode 100644 index 000000000..e256e6f7a --- /dev/null +++ b/packages/ruby_pathname.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_pathname < RUBY + description 'Representation of the name of a file or directory on the filesystem.' + homepage 'https://github.com/ruby/pathname' + version "0.3.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: 'e65142157112fb9730a5e885ee1c60f8dd29cc73cd2086f24ee9e00085bc9e2a', + armv7l: 'e65142157112fb9730a5e885ee1c60f8dd29cc73cd2086f24ee9e00085bc9e2a', + i686: 'f2929b41903a8fe0b525b7e8a99101cd42b11578db585a040725737709e16d48', + x86_64: '6348eefa1db6d1ab05d56ef0b602e2675c675802a8e4b1a9433cc99340fed1bc' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_power_assert.rb b/packages/ruby_power_assert.rb new file mode 100644 index 000000000..94eccac31 --- /dev/null +++ b/packages/ruby_power_assert.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_power_assert < RUBY + description 'Power assert shows each value of variables and method calls in the expression.' + homepage 'https://github.com/ruby/power_assert' + version "2.0.3-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_pp.rb b/packages/ruby_pp.rb new file mode 100644 index 000000000..029ccf1d1 --- /dev/null +++ b/packages/ruby_pp.rb @@ -0,0 +1,26 @@ +require 'buildsystems/ruby' + +class Ruby_pp < RUBY + description 'Provides a prettyprinter for ruby objects.' + homepage 'https://github.com/ruby/pp' + version "0.5.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_base64' # R + depends_on 'ruby_bigdecimal' # R + depends_on 'ruby_concurrent_ruby' # R + depends_on 'ruby_connection_pool' # R + depends_on 'ruby_drb' # R + depends_on 'ruby_i18n' # R + depends_on 'ruby_logger' # R + depends_on 'ruby_minitest' # R + depends_on 'ruby_prettyprint' # R + depends_on 'ruby_securerandom' # R + depends_on 'ruby_tzinfo' # R + depends_on 'ruby_httparty' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_prettyprint.rb b/packages/ruby_prettyprint.rb new file mode 100644 index 000000000..f0ee13efa --- /dev/null +++ b/packages/ruby_prettyprint.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_prettyprint < RUBY + description 'Implements a pretty printing algorithm for readable structure.' + homepage 'https://github.com/ruby/prettyprint' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_prime.rb b/packages/ruby_prime.rb new file mode 100644 index 000000000..72d8faffe --- /dev/null +++ b/packages/ruby_prime.rb @@ -0,0 +1,16 @@ +require 'buildsystems/ruby' + +class Ruby_prime < RUBY + description 'Prime numbers and factorization library.' + homepage 'https://github.com/ruby/prime' + version "0.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_forwardable' # R + depends_on 'ruby_singleton' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_prism.rb b/packages/ruby_prism.rb index acbf7ea91..3a1340901 100644 --- a/packages/ruby_prism.rb +++ b/packages/ruby_prism.rb @@ -18,5 +18,4 @@ class Ruby_prism < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_pstore.rb b/packages/ruby_pstore.rb new file mode 100644 index 000000000..5505556b0 --- /dev/null +++ b/packages/ruby_pstore.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_pstore < RUBY + description 'Transactional file storage for ruby objects.' + homepage 'https://github.com/ruby/pstore' + version "0.1.3-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_psych.rb b/packages/ruby_psych.rb new file mode 100644 index 000000000..60c711ce3 --- /dev/null +++ b/packages/ruby_psych.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_psych < RUBY + description '| psych is a yaml parser and emitter.' + homepage 'https://github.com/ruby/psych' + version "5.1.2-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_stringio' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_racc.rb b/packages/ruby_racc.rb index 5b7127c12..b60a68cb9 100644 --- a/packages/ruby_racc.rb +++ b/packages/ruby_racc.rb @@ -4,7 +4,7 @@ class Ruby_racc < RUBY description 'Racc is a LALR(1) parser generator.' homepage 'https://github.com/ruby/racc' version "1.8.1-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' @@ -18,5 +18,4 @@ class Ruby_racc < RUBY conflicts_ok gem_compile_needed - no_source_build end diff --git a/packages/ruby_rbs.rb b/packages/ruby_rbs.rb index 1502c4282..fd24ba4ec 100644 --- a/packages/ruby_rbs.rb +++ b/packages/ruby_rbs.rb @@ -16,6 +16,8 @@ class Ruby_rbs < RUBY x86_64: '7c8828fb9f1be082f75632001db85bfe5d9bd5d855fc0242bf5d0c54d112fd67' }) + depends_on 'ruby_abbrev' # R + conflicts_ok gem_compile_needed no_source_build diff --git a/packages/ruby_rdoc.rb b/packages/ruby_rdoc.rb index 951d95fbc..bb3254e61 100644 --- a/packages/ruby_rdoc.rb +++ b/packages/ruby_rdoc.rb @@ -8,6 +8,8 @@ class Ruby_rdoc < RUBY compatibility 'all' source_url 'SKIP' + depends_on 'ruby_psych' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_readline.rb b/packages/ruby_readline.rb new file mode 100644 index 000000000..9893781ae --- /dev/null +++ b/packages/ruby_readline.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_readline < RUBY + description "This is just a loader for 'readline'." + homepage 'https://github.com/ruby/readline' + version "0.0.4-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_reline' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_readline_ext.rb b/packages/ruby_readline_ext.rb new file mode 100644 index 000000000..1ae2d7635 --- /dev/null +++ b/packages/ruby_readline_ext.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_readline_ext < RUBY + description 'Provides an interface for GNU Readline and Edit Line (libedit).' + homepage 'https://github.com/ruby/readline-ext' + version "0.2.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '660035a29391abafd83eff684f0e43b4a4575ec3f437e4654d3b07c53f077bc9', + armv7l: '660035a29391abafd83eff684f0e43b4a4575ec3f437e4654d3b07c53f077bc9', + i686: '866be315140a24aa0b2d9a762d7cd7b355d54ee5310b301a576cd89c3cbc245c', + x86_64: '5214e295cc09f6e74c0e58a65b7d213ef0d4f07511bb64c83987e6ad3868f738' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_reline.rb b/packages/ruby_reline.rb index d488aba6b..255ba4cdc 100644 --- a/packages/ruby_reline.rb +++ b/packages/ruby_reline.rb @@ -8,6 +8,8 @@ class Ruby_reline < RUBY compatibility 'all' source_url 'SKIP' + depends_on 'ruby_io_console' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_resolv.rb b/packages/ruby_resolv.rb index 1a8c36417..435799931 100644 --- a/packages/ruby_resolv.rb +++ b/packages/ruby_resolv.rb @@ -1,13 +1,15 @@ require 'buildsystems/ruby' class Ruby_resolv < RUBY - description 'Thread-aware DNS resolver library in Ruby.' + description 'Thread-aware dns resolver library in ruby.' homepage 'https://github.com/ruby/resolv' version "0.4.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_resolv' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_resolv_replace.rb b/packages/ruby_resolv_replace.rb new file mode 100644 index 000000000..92cf929f8 --- /dev/null +++ b/packages/ruby_resolv_replace.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_resolv_replace < RUBY + description 'Replace socket dns with resolv.' + homepage 'https://github.com/ruby/resolv-replace' + version "0.1.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_resolv' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_rinda.rb b/packages/ruby_rinda.rb new file mode 100644 index 000000000..56d727444 --- /dev/null +++ b/packages/ruby_rinda.rb @@ -0,0 +1,17 @@ +require 'buildsystems/ruby' + +class Ruby_rinda < RUBY + description 'The linda distributed computing paradigm in ruby.' + homepage 'https://github.com/ruby/rinda' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_drb' # R + depends_on 'ruby_forwardable' # R + depends_on 'ruby_ipaddr' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_rss.rb b/packages/ruby_rss.rb new file mode 100644 index 000000000..d436ce435 --- /dev/null +++ b/packages/ruby_rss.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_rss < RUBY + description "Family of libraries that support various formats of XML 'feeds'." + homepage 'https://github.com/ruby/rss' + version "0.3.1-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_rexml' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_ruby2_keywords.rb b/packages/ruby_ruby2_keywords.rb new file mode 100644 index 000000000..89390cc8a --- /dev/null +++ b/packages/ruby_ruby2_keywords.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_ruby2_keywords < RUBY + description '---.' + homepage 'https://github.com/ruby/ruby2_keywords' + version "0.0.5-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_rubygems_update.rb b/packages/ruby_rubygems_update.rb index ee4f84528..ec3b0231f 100644 --- a/packages/ruby_rubygems_update.rb +++ b/packages/ruby_rubygems_update.rb @@ -2,9 +2,9 @@ require 'buildsystems/ruby' class Ruby_rubygems_update < RUBY description 'RubyGems is a package management framework for Ruby.' - homepage 'https://guides.rubygems.org' + homepage 'https://github.com/rubygems/rubygems' version "3.5.20-#{CREW_RUBY_VER}" - license 'Ruby' + license 'MIT' compatibility 'all' source_url 'SKIP' diff --git a/packages/ruby_scanf.rb b/packages/ruby_scanf.rb new file mode 100644 index 000000000..f6d51044c --- /dev/null +++ b/packages/ruby_scanf.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_scanf < RUBY + description 'scanf is an implementation of the C function scanf(3).' + homepage 'https://github.com/ruby/scanf' + version "1.0.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_sdbm.rb b/packages/ruby_sdbm.rb new file mode 100644 index 000000000..c3af64178 --- /dev/null +++ b/packages/ruby_sdbm.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_sdbm < RUBY + description 'Provides a simple file-based key-value store with String keys and values.' + homepage 'https://github.com/ruby/sdbm' + version "1.0.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '8cf08be1c22c953862291b9adedb0ad4cfe9fcb1871cd08bbb7cc9fe678ec48f', + armv7l: '8cf08be1c22c953862291b9adedb0ad4cfe9fcb1871cd08bbb7cc9fe678ec48f', + i686: '0fcec40c41dce5523928803999f9bbb38736dc079086a906911902b038cb9bca', + x86_64: 'bc762fd9fad242df80416ab00fe1ba4cff8a778dc9888963d7ee917630e9d830' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_securerandom.rb b/packages/ruby_securerandom.rb new file mode 100644 index 000000000..3b720c35b --- /dev/null +++ b/packages/ruby_securerandom.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_securerandom < RUBY + description 'Interface for secure random number generator.' + homepage 'https://github.com/ruby/securerandom' + version "0.3.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_set.rb b/packages/ruby_set.rb new file mode 100644 index 000000000..6626e3664 --- /dev/null +++ b/packages/ruby_set.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_set < RUBY + description 'Provides a class to deal with collections of unordered, unique values.' + homepage 'https://github.com/ruby/set' + version "1.1.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_shell.rb b/packages/ruby_shell.rb new file mode 100644 index 000000000..1b16e9c6e --- /dev/null +++ b/packages/ruby_shell.rb @@ -0,0 +1,16 @@ +require 'buildsystems/ruby' + +class Ruby_shell < RUBY + description 'An idiomatic Ruby interface for common UNIX shell commands.' + homepage 'https://github.com/ruby/shell' + version "0.8.1-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_e2mmap' # R + depends_on 'ruby_sync' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_shellwords.rb b/packages/ruby_shellwords.rb new file mode 100644 index 000000000..592055282 --- /dev/null +++ b/packages/ruby_shellwords.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_shellwords < RUBY + description 'Manipulates strings with word parsing rules of unix bourne shell.' + homepage 'https://github.com/ruby/shellwords' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_singleton.rb b/packages/ruby_singleton.rb new file mode 100644 index 000000000..88ee6f657 --- /dev/null +++ b/packages/ruby_singleton.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_singleton < RUBY + description 'The singleton module implements the singleton pattern.' + homepage 'https://github.com/ruby/singleton' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_stringio.rb b/packages/ruby_stringio.rb new file mode 100644 index 000000000..2dce6132c --- /dev/null +++ b/packages/ruby_stringio.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_stringio < RUBY + description 'Pseudo `io` class from/to `string`.' + homepage 'https://github.com/ruby/stringio' + version "3.1.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_strscan.rb b/packages/ruby_strscan.rb index 04b6ca1f7..768b0b512 100644 --- a/packages/ruby_strscan.rb +++ b/packages/ruby_strscan.rb @@ -4,7 +4,7 @@ class Ruby_strscan < RUBY description 'Provides lexical scanning operations on a String.' homepage 'https://github.com/ruby/strscan' version "3.1.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' binary_compression 'gem' diff --git a/packages/ruby_sync.rb b/packages/ruby_sync.rb new file mode 100644 index 000000000..6f3778328 --- /dev/null +++ b/packages/ruby_sync.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_sync < RUBY + description 'A module that provides a two-phase lock with a counter.' + homepage 'https://github.com/ruby/sync' + version "0.5.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_syntax_suggest.rb b/packages/ruby_syntax_suggest.rb new file mode 100644 index 000000000..21b8fac68 --- /dev/null +++ b/packages/ruby_syntax_suggest.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_syntax_suggest < RUBY + description "When you get an 'unexpected end' in your syntax this gem helps you find it." + homepage 'https://github.com/ruby/syntax_suggest.git' + version "2.0.0-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_syslog.rb b/packages/ruby_syslog.rb new file mode 100644 index 000000000..3c560e036 --- /dev/null +++ b/packages/ruby_syslog.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_syslog < RUBY + description 'Ruby interface for the posix system logging facility.' + homepage 'https://github.com/ruby/syslog' + version "0.1.2-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: 'fc77ea7296e23557fbcf60c4d6330505130c64b8abf73df9d1aee97b9de0dd8d', + armv7l: 'fc77ea7296e23557fbcf60c4d6330505130c64b8abf73df9d1aee97b9de0dd8d', + i686: '6ef29336b29f7af269568514ac0b37b4030fc81e6df8c76f40da485f9d8f372b', + x86_64: 'ef27e07ef618b81865de5c5146330eb9c9e95a44245b0838a8c93769a498a611' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/packages/ruby_tempfile.rb b/packages/ruby_tempfile.rb new file mode 100644 index 000000000..ef658238e --- /dev/null +++ b/packages/ruby_tempfile.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_tempfile < RUBY + description 'A utility class for managing temporary files.' + homepage 'https://github.com/ruby/tempfile' + version "0.2.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_test_unit.rb b/packages/ruby_test_unit.rb index 91cbba8d0..e16822650 100644 --- a/packages/ruby_test_unit.rb +++ b/packages/ruby_test_unit.rb @@ -1,13 +1,15 @@ require 'buildsystems/ruby' class Ruby_test_unit < RUBY - description 'test-unit (Test::Unit) is unit testing framework for Ruby, based on xUnit principles.' - homepage 'http://test-unit.github.io/' + description '|- test-unit (test::unit) is unit testing framework for ruby, based on xunit principles.' + homepage 'https://test-unit.github.io/' version "3.6.2-#{CREW_RUBY_VER}" - license 'Ruby' + license 'PSFL' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_power_assert' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_thwait.rb b/packages/ruby_thwait.rb new file mode 100644 index 000000000..d12557337 --- /dev/null +++ b/packages/ruby_thwait.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_thwait < RUBY + description 'Watches for termination of multiple threads.' + homepage 'https://github.com/ruby/thwait' + version "0.2.0-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_e2mmap' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_time.rb b/packages/ruby_time.rb index 517fa7720..fdbdae515 100644 --- a/packages/ruby_time.rb +++ b/packages/ruby_time.rb @@ -1,13 +1,15 @@ require 'buildsystems/ruby' class Ruby_time < RUBY - description 'Extends the Time class with methods for parsing and conversion.' + description 'Extends the time class with methods for parsing and conversion.' homepage 'https://github.com/ruby/time' version "0.4.0-#{CREW_RUBY_VER}" - license 'Ruby' + license 'BSD-2-Clause' compatibility 'all' source_url 'SKIP' + depends_on 'ruby_date' # R + conflicts_ok no_compile_needed end diff --git a/packages/ruby_timeout.rb b/packages/ruby_timeout.rb new file mode 100644 index 000000000..506b7ae0f --- /dev/null +++ b/packages/ruby_timeout.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_timeout < RUBY + description 'Auto-terminate potentially long-running operations in ruby.' + homepage 'https://github.com/ruby/timeout' + version "0.4.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_tmpdir.rb b/packages/ruby_tmpdir.rb new file mode 100644 index 000000000..8bd16dff0 --- /dev/null +++ b/packages/ruby_tmpdir.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_tmpdir < RUBY + description 'Extends the dir class to manage the os temporary file path.' + homepage 'https://github.com/ruby/tmpdir' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_fileutils' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_tracer.rb b/packages/ruby_tracer.rb new file mode 100644 index 000000000..379389cf5 --- /dev/null +++ b/packages/ruby_tracer.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_tracer < RUBY + description 'A Ruby tracer.' + homepage 'https://github.com/ruby/tracer' + version "0.2.3-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_tsort.rb b/packages/ruby_tsort.rb new file mode 100644 index 000000000..ebf21fb69 --- /dev/null +++ b/packages/ruby_tsort.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_tsort < RUBY + description "Topological sorting using tarjan's algorithm." + homepage 'https://github.com/ruby/tsort' + version "0.2.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_typeprof.rb b/packages/ruby_typeprof.rb index c00c6e851..04e3a52fa 100644 --- a/packages/ruby_typeprof.rb +++ b/packages/ruby_typeprof.rb @@ -8,7 +8,7 @@ class Ruby_typeprof < RUBY compatibility 'all' source_url 'SKIP' - depends_on 'ruby_rbs' + depends_on 'ruby_rbs' # R conflicts_ok no_compile_needed diff --git a/packages/ruby_tzinfo.rb b/packages/ruby_tzinfo.rb new file mode 100644 index 000000000..96f862027 --- /dev/null +++ b/packages/ruby_tzinfo.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_tzinfo < RUBY + description 'Tzinfo provides access to time zone data and allows times to be converted using time zone rules.' + homepage 'https://tzinfo.github.io' + version "2.0.6-#{CREW_RUBY_VER}" + license 'MIT' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_concurrent_ruby' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_un.rb b/packages/ruby_un.rb new file mode 100644 index 000000000..dd73d811e --- /dev/null +++ b/packages/ruby_un.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_un < RUBY + description 'Utilities to replace common unix commands.' + homepage 'https://github.com/ruby/un' + version "0.3.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_power_assert' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_uri.rb b/packages/ruby_uri.rb new file mode 100644 index 000000000..668187c56 --- /dev/null +++ b/packages/ruby_uri.rb @@ -0,0 +1,17 @@ +require 'buildsystems/ruby' + +class Ruby_uri < RUBY + description 'Uri is a module providing classes to handle uniform resource identifiers.' + homepage 'https://github.com/ruby/uri' + version "0.13.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_stringio' # R + depends_on 'ruby_time' # R + depends_on 'ruby_uri' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_weakref.rb b/packages/ruby_weakref.rb new file mode 100644 index 000000000..c2fa8b89b --- /dev/null +++ b/packages/ruby_weakref.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_weakref < RUBY + description 'Allows a referenced object to be garbage-collected.' + homepage 'https://github.com/ruby/weakref' + version "0.1.3-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_delegate' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_xmlrpc.rb b/packages/ruby_xmlrpc.rb new file mode 100644 index 000000000..b59a1b98f --- /dev/null +++ b/packages/ruby_xmlrpc.rb @@ -0,0 +1,15 @@ +require 'buildsystems/ruby' + +class Ruby_xmlrpc < RUBY + description 'XMLRPC is a lightweight protocol that enables remote procedure calls over HTTP.' + homepage 'https://github.com/ruby/xmlrpc' + version "0.3.3-#{CREW_RUBY_VER}" + license 'BSD-2-Clause' + compatibility 'all' + source_url 'SKIP' + + depends_on 'ruby_webrick' # R + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_yaml.rb b/packages/ruby_yaml.rb new file mode 100644 index 000000000..4eb741d1d --- /dev/null +++ b/packages/ruby_yaml.rb @@ -0,0 +1,13 @@ +require 'buildsystems/ruby' + +class Ruby_yaml < RUBY + description "Yaml ain't markup language." + homepage 'https://github.com/ruby/yaml' + version "0.3.0-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + + conflicts_ok + no_compile_needed +end diff --git a/packages/ruby_zlib.rb b/packages/ruby_zlib.rb new file mode 100644 index 000000000..3d4f13cc2 --- /dev/null +++ b/packages/ruby_zlib.rb @@ -0,0 +1,21 @@ +require 'buildsystems/ruby' + +class Ruby_zlib < RUBY + description 'Ruby interface for the zlib compression/decompression library.' + homepage 'https://github.com/ruby/zlib' + version "3.1.1-#{CREW_RUBY_VER}" + license 'Ruby' + compatibility 'all' + source_url 'SKIP' + binary_compression 'gem' + + binary_sha256({ + aarch64: '0bcc0c224da1c562d2aff0767107213c3b628890f41b39211fff9ffd30ebe8ad', + armv7l: '0bcc0c224da1c562d2aff0767107213c3b628890f41b39211fff9ffd30ebe8ad', + i686: '8ce54235b4546c4fbc6a12cc8df76642fcc43543d397ea2317e3c8ddbb743b58', + x86_64: 'b815f4c3ff6f5490fcd715dec38db2e9141a3c69d7d8d2138ef28673f261f617' + }) + + conflicts_ok + gem_compile_needed +end diff --git a/tools/build_updated_packages.rb b/tools/build_updated_packages.rb index 2074cdd11..e3cc1e2d0 100755 --- a/tools/build_updated_packages.rb +++ b/tools/build_updated_packages.rb @@ -169,6 +169,7 @@ updated_packages.each do |pkg| boolean_property(boolean_properties.split) property(properties.split) + @binary_compression = 'gem' if gem_compile_needed? # Don't check if we need new binaries if the package doesn't already # have binaries for this architecture and no_compile_needed is set. if !system("grep -q binary_sha256 #{pkg}") && no_compile_needed? @@ -182,7 +183,7 @@ updated_packages.each do |pkg| check_builds.each do |arch| arch_specific_url = "#{CREW_GITLAB_PKG_REPO}/generic/#{name}/#{@version}_#{arch}/#{name}-#{@version}-chromeos-#{arch}.#{@binary_compression}" puts "Checking: curl -sI #{arch_specific_url}" if CREW_VERBOSE - build.delete(arch) if `curl -sI #{arch_specific_url}`.lines.first.split[1] == '200' + build.delete(arch) if `curl -sI #{arch_specific_url}`.lines.first.split[1] == '200' && system("grep -q binary_sha256 #{pkg}") end if build.empty? puts "No builds are needed for #{name} #{@version}.".lightgreen diff --git a/tools/create_default_gems_packages.rb b/tools/create_default_gems_packages.rb new file mode 100755 index 000000000..463ec9f72 --- /dev/null +++ b/tools/create_default_gems_packages.rb @@ -0,0 +1,113 @@ +#!/usr/bin/env ruby + +# create_default_gems_packages version 1.0 (for Chromebrew) +# This creates a default_gems package and a bundled_gems package based +# upon: +# https://stdgems.org/default_gems.json +# https://stdgems.org/bundled_gems.json +# +# Author: Satadru Pramanik (satmandu) satadru at gmail dot com +# Usage in root of cloned chromebrew repo with a new branch checked out: +# tools/create_default_gems_packages.rb + +require 'fileutils' +require 'json' +require_relative '../lib/color' +require_relative '../lib/const' +def require_gem(gem_name_and_require = nil, require_override = nil) + # Allow only loading gems when needed. + return if gem_name_and_require.nil? + + gem_name = gem_name_and_require.split('/')[0] + begin + gem gem_name + rescue LoadError + puts " -> install #{gem_name} gem".orange + Gem.install(gem_name) + gem 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 + else + require_override + end + require requires +end +require_gem('httpparty') + +def create_default_gems_package + # https://stdgems.org/default_gems.json + default_gem_json = JSON.parse(HTTParty.get('https://stdgems.org/default_gems.json').body) + default_gems = default_gem_json['gems'].map { |i| i['gem'] } + default_gems.delete('win32ole') + + puts 'Default Gems are:' + puts default_gems + dependencyblock = '' + dependencyblock << default_gems.sort.map { |d| " depends_on 'ruby_#{d.gsub('-', '_')}'" }.join("\n").to_s + + default_gems_pkg = <<~GEM_PKG_EOF + # Generated by tools/create_default_gems_package.rb + require 'package' + + class Default_gems < Package + description 'Ruby Default Gem Packages.' + homepage 'https://stdgems.org/' + version "#{Time.now.utc.strftime('%Y%m%d%H')}-\#{CREW_RUBY_VER}" + license 'GPL-3+' + compatibility 'all' + source_url 'SKIP' + + is_fake + + #{dependencyblock} + end + GEM_PKG_EOF + puts 'Package for default_gems:'.orange + puts default_gems_pkg.to_s.lightblue + puts + File.write(File.join('packages', 'default_gems.rb'), default_gems_pkg) + system "rubocop -c .rubocop.yml -A #{File.join('packages', 'default_gems.rb')}" + FileUtils.chmod 0o644, File.join('packages', 'default_gems.rb') +end + +def create_bundled_gems_package + # https://stdgems.org/bundled_gems.json + bundled_gem_json = JSON.parse(HTTParty.get('https://stdgems.org/bundled_gems.json').body) + bundled_gems = bundled_gem_json['gems'].map { |i| i['gem'] } + + puts 'Bundled Gems are:' + puts bundled_gems + dependencyblock = '' + dependencyblock << bundled_gems.sort.map { |d| " depends_on 'ruby_#{d.gsub('-', '_')}'" }.join("\n").to_s + + bundled_gems_pkg = <<~GEM_PKG_EOF + # Generated by tools/create_default_gems_package.rb + require 'package' + + class Bundled_gems < Package + description 'Ruby Bundled Gem Packages.' + homepage 'https://stdgems.org/' + version "#{Time.now.utc.strftime('%Y%m%d%H')}-\#{CREW_RUBY_VER}" + license 'GPL-3+' + compatibility 'all' + source_url 'SKIP' + + is_fake + + #{dependencyblock} + end + GEM_PKG_EOF + puts 'Package for bundled_gems:'.orange + puts bundled_gems_pkg.to_s.lightblue + puts + File.write(File.join('packages', 'bundled_gems.rb'), bundled_gems_pkg) + system "rubocop -c .rubocop.yml -A #{File.join('packages', 'bundled_gems.rb')}" + FileUtils.chmod 0o644, File.join('packages', 'bundled_gems.rb') +end + +puts "Creating default_gems package from https://stdgems.org/default_gems.json'...".orange +create_default_gems_package + +puts "Creating bundled_gems package from https://stdgems.org/bundled_gems.json'...".orange +create_bundled_gems_package diff --git a/tools/create_gem_packages.rb b/tools/create_gem_packages.rb index be65fc1b2..0148788df 100755 --- a/tools/create_gem_packages.rb +++ b/tools/create_gem_packages.rb @@ -1,60 +1,188 @@ #!/usr/bin/env ruby -# create_gem_packages version 1.0 (for Chromebrew) -# This creates ruby gem packages based upon the output of gem's outdated gem list. + +# create_gem_packages version 1.2 (for Chromebrew) +# This creates ruby gem packages based upon the default and bundled gems +# listed at: https://stdgems.org/ # # Author: Satadru Pramanik (satmandu) satadru at gmail dot com # Usage in root of cloned chromebrew repo with a new branch checked out: -# tools/create_gem_packages.rb +# tools/create_gem_packages.rb ... require 'fileutils' +require 'json' +require_relative '../lib/color' +require_relative '../lib/const' -def create_gem_package(package, current_version = nil) - description_raw = `gem spec #{package} description`.gsub('--- ', '').split("\n") +def require_gem(gem_name_and_require = nil, require_override = nil) + # Allow only loading gems when needed. + return if gem_name_and_require.nil? + + gem_name = gem_name_and_require.split('/')[0] + begin + gem gem_name + rescue LoadError + puts " -> install #{gem_name} gem".orange + Gem.install(gem_name) + gem 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 + else + require_override + end + require requires +end +require_gem('httpparty') + +def check_gem_binary_build_needed(gem_name = nil, gem_ver = nil) + puts "Checking to see if gem compile for #{gem_name} #{gem_ver} is needed..." + @extract_dir = "#{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_ver}" + system "gem unpack #{gem_name}-#{gem_ver}.gem" + if system "grep -q -r \"\\\.extensions\" #{gem_name}-#{gem_ver}/*.gemspec", %i[out err] => File::NULL + puts "#{gem_name} #{gem_ver} needs a binary gem build." + return true + else + puts "#{gem_name} #{gem_ver} does not need a binary gem build." + return false + end + end + FileUtils.rm_rf File.join(CREW_BREW_DIR, @extract_dir) +end + +def check_gem_deps(package) + # 'gem dependency -b' (including remote) appears to hang + # when the package is not locally installed. + puts "Installing #{package}".orange + system "gem install -N #{package} --conservative" + puts "Checking #{package} for dependencies...".orange + return `gem dependency #{package} | grep -v 'development)'`.split("\n").reject(&:empty?).map { |g| g.split.first }.reject { |x| x == 'Gem' }.sort +end + +def check_gem_pkg_deps(package) + dependencies = check_gem_deps(package) + return if dependencies.empty? + + pkg_file_path = File.join('packages/', "ruby_#{package.gsub('-', '_')}.rb") + abort "#{pkg_file_path} is missing.".lightred unless File.file?(pkg_file_path) + + @gems_to_add.push(*dependencies).sort! + @gems_to_add.uniq! + puts "Dependencies for #{package} are:" + puts dependencies + dependencies_to_add = dependencies.dup + file = File.read(pkg_file_path) + dependencies.each do |dep| + ruby_add_dep = "ruby_#{dep.gsub('-', '_')}" + dep_re = /^\s*depends_on '#{ruby_add_dep}'/ + dependencies_to_add.delete(dep) if file.match(dep_re) + end + if dependencies_to_add.empty? + puts "All dependencies are already in the package file for #{package}.".lightgreen + return + end + # dependencyblock = '' + # dependencyblock << "\n#{dependencies_to_add.sort.map { |d| " depends_on 'ruby_#{d.gsub('-', '_')}' # R" }.join("\n")}\n" unless dependencies.empty? + + dependencies_to_add.each do |adddep| + ruby_add_dep = "ruby_#{adddep.gsub('-', '_')}" + # Add missing dependencies to the package. + puts "\n Adding deps: #{ruby_add_dep}" + dep_re = /^\s*depends_on / + gawk_cmd = if file.match(dep_re) + # This files contains dependencies already, so add new deps after existing dependencies. + "gawk -i inplace -v dep=\" depends_on '#{ruby_add_dep}' # R\" 'FNR==NR{ if (/depends_on/) p=NR; next} 1; FNR==p{ print dep }' #{pkg_file_path} #{pkg_file_path}" + else + # This files doesn't contain deps, so just add new deps. + "gawk -i inplace -v dep=\" depends_on '#{ruby_add_dep}' # R\" 'FNR==NR{ if (/})/) p=NR; next} 1; FNR==p{ print \"\\n\" dep }' #{pkg_file_path} #{pkg_file_path}" + end + system(gawk_cmd) + end + system "rubocop -c .rubocop.yml -A #{pkg_file_path}" +end + +def create_gem_package(package) + description_raw = `gem spec #{package} description -b`.gsub('--- ', '').split("\n").reject(&:empty?) description = if description_raw.length == 1 - description_raw[0].to_s + "#{description_raw[0].to_s.strip.split('.').first}." else - "#{description_raw.to_a[1..].join("\n").gsub(/\s+/, ' ').strip.split('.').first}." + "#{description_raw.join("\n").gsub(/\s+/, ' ').strip.split('.').first}." end - # description = `gem spec #{package} description`.split("\n").to_a[1..-1].join("\n").gsub(/\s+/, " ").strip - # description = `gem spec #{package} description`.split("\n").to_a[1..-1].join("\n").gsub(/\s+/, " ").strip.split('.').first + '.' - homepage = `gem spec #{package} homepage`.split.last - # version = `gem spec #{package} version`.split("\n").to_a[1..-1].join.split.last - version = current_version - license = `gem spec #{package} license`.split.last + homepage = `gem spec #{package} homepage -b`.split.last + version = `gem spec #{package} version -b`.split("\n").to_a[1..].join.split.last + license = `gem spec #{package} license -b`.split.last + + dependencies = check_gem_deps(package) + dependencyblock = '' + unless dependencies.empty? + puts "Dependencies for #{package} are:" + puts dependencies + dependencyblock << "\n#{dependencies.sort.map { |d| " depends_on 'ruby_#{d.gsub('-', '_')}' # R" }.join("\n")}\n" + @gems_to_add.push(*dependencies).sort! + @gems_to_add.uniq! + end - # File.write File.join('packages', "ruby_" + package.gsub('-', '_') + '.rb'), <<~GEM_PKG_EOF new_gem_pkg = <<~GEM_PKG_EOF require 'buildsystems/ruby' class Ruby_#{package.gsub('-', '_')} < RUBY - description '#{description}' + description "#{description}" homepage '#{homepage}' version "#{version}-\#{CREW_RUBY_VER}" license '#{license}' compatibility 'all' source_url 'SKIP' + #{dependencyblock} conflicts_ok - no_compile_needed + #{check_gem_binary_build_needed(package, version) ? 'gem_compile_needed' : 'no_compile_needed'} end GEM_PKG_EOF - puts "Package for #{package}:" - puts new_gem_pkg + puts "Package for #{package}:".orange + puts new_gem_pkg.to_s.lightblue puts File.write(File.join('packages', "ruby_#{package.gsub('-', '_')}.rb"), new_gem_pkg) + system "rubocop -c .rubocop.yml -A #{File.join('packages', "ruby_#{package.gsub('-', '_')}.rb")}" FileUtils.chmod 0o644, File.join('packages', "ruby_#{package.gsub('-', '_')}.rb") end -puts "Checking for gems via 'gem outdated'..." -gems = `gem outdated`.split("\n").reject(&:empty?) -gems.each do |p| - q = p.split.first - current_version = p.split[3].delete(')') - if File.file?(File.join('packages/', "ruby_#{q.gsub('-', '_')}.rb")) - puts "Package for #{q} exists." - else - puts "Package for #{q} does not exist." - create_gem_package(q, current_version) +@gems_to_add = [] +# Allow gems to be passed in as arguments to this script. +input_array = ARGV +@gems_to_add.push(*input_array) if input_array.length.positive? + +puts 'Checking for default gems from https://stdgems.org/default_gems.json' +default_gem_json = JSON.parse(HTTParty.get('https://stdgems.org/default_gems.json').body) +default_gems = default_gem_json['gems'].map { |i| i['gem'] } +default_gems.delete('win32ole') + +puts 'Checking for bundled gems from https://stdgems.org/bundled_gems.json' +bundled_gem_json = JSON.parse(HTTParty.get('https://stdgems.org/bundled_gems.json').body) +bundled_gems = bundled_gem_json['gems'].map { |i| i['gem'] } + +puts "Checking for updated gems via 'gem outdated'...".orange +outdated_gems = `gem outdated`.split("\n").reject(&:empty?).map { |g| g.split.first } +@gems_to_add.push(*default_gems) +@gems_to_add.push(*bundled_gems) +@gems_to_add.push(*outdated_gems) +@gems_to_add.sort! +@gems_to_add.uniq! +until @gems_to_add.empty? + @gems_to_add.each do |p| + if File.file?(File.join('packages/', "ruby_#{p.gsub('-', '_')}.rb")) + puts "Package file for #{p} exists.".orange + check_gem_pkg_deps(p) + else + puts "Package file for #{p} does not exist. Creating one...".lightblue + create_gem_package(p) + end + @gems_to_add.delete(p) + puts '@gems_to_add is now:'.orange + puts @gems_to_add.to_s.orange end end diff --git a/tools/update_ruby_gem_packages.rb b/tools/update_ruby_gem_packages.rb index 5a955649c..0d71c0ac6 100755 --- a/tools/update_ruby_gem_packages.rb +++ b/tools/update_ruby_gem_packages.rb @@ -38,12 +38,12 @@ total_files_to_check = relevant_gem_packages.length numlength = total_files_to_check.to_s.length relevant_gem_packages.each_with_index do |package, index| pool.post do - gem_name = package.gsub('.rb', '').sub('ruby_', '').gsub('_', '-').gsub('packages/', '') + gem_name_test = package.gsub(%r{^packages/ruby_}, '').gsub(/.rb$/, '') + gem_version = Gem.latest_version_for(gem_name_test).to_s + gem_version = Gem.latest_version_for(gem_name_test.gsub!('_', '-')).to_s if gem_version.empty? + gem_name = gem_name_test puts "[#{(index + 1).to_s.rjust(numlength)}/#{total_files_to_check}] Checking rubygems for updates to #{gem_name}...".orange - # rubocop:disable Lint/InterpolationCheck - pkg_version = `sed -n -e 's/^\ \ version //p' #{package}`.chomp.delete("'").delete('"').gsub('-#{CREW_RUBY_VER}', '').split('-').first - # rubocop:enable Lint/InterpolationCheck - gem_version = Gem.latest_spec_for(gem_name).version.to_s + pkg_version = `sed -n -e 's/^\ \ version //p' #{package}`.chomp.delete("'").delete('"').gsub(/-\#{CREW_RUBY_VER}/, '').split('-').first next package if gem_version.blank? if Gem::Version.new(gem_version) > Gem::Version.new(pkg_version) puts "Updating #{gem_name} from #{pkg_version} to #{gem_version}".lightblue