From d71fb6853fd90d2b86fe556ffe0f035efd0250c3 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:55:05 -0800 Subject: [PATCH 1/2] Prepare rubygem files for automation, rename bolt -> openbolt This adds magic comments and formatting in preparation for a rake task to update gems and their dependencies automatically. This also simplifies the logic in some of them, removing paths for platforms we don't intend to build and removing support for Ruby 2.7 in agent-runtime-7.x for some components. This will be removed more completely in a future update. --- configs/components/rubygem-CFPropertyList.rb | 14 +- configs/components/rubygem-addressable.rb | 8 +- configs/components/rubygem-aws-eventstream.rb | 4 +- configs/components/rubygem-aws-partitions.rb | 4 +- configs/components/rubygem-aws-sdk-core.rb | 4 +- configs/components/rubygem-aws-sdk-ec2.rb | 4 +- configs/components/rubygem-aws-sigv4.rb | 4 +- configs/components/rubygem-base64.rb | 2 + configs/components/rubygem-bcrypt_pbkdf.rb | 2 + configs/components/rubygem-bindata.rb | 2 + configs/components/rubygem-builder.rb | 2 + configs/components/rubygem-colored2.rb | 2 + configs/components/rubygem-concurrent-ruby.rb | 2 + configs/components/rubygem-connection_pool.rb | 3 + configs/components/rubygem-cri.rb | 8 +- configs/components/rubygem-deep_merge.rb | 2 + configs/components/rubygem-ed25519.rb | 2 + configs/components/rubygem-erubi.rb | 2 + configs/components/rubygem-faraday-em_http.rb | 2 + .../rubygem-faraday-em_synchrony.rb | 2 + configs/components/rubygem-faraday-excon.rb | 2 + .../rubygem-faraday-follow_redirects.rb | 2 + .../components/rubygem-faraday-httpclient.rb | 2 + .../components/rubygem-faraday-multipart.rb | 2 + .../components/rubygem-faraday-net_http.rb | 2 + .../rubygem-faraday-net_http_persistent.rb | 2 + configs/components/rubygem-faraday-patron.rb | 2 + configs/components/rubygem-faraday-rack.rb | 2 + configs/components/rubygem-faraday-retry.rb | 2 + configs/components/rubygem-faraday.rb | 2 + configs/components/rubygem-fast_gettext.rb | 3 + configs/components/rubygem-ffi.rb | 130 ++++-------------- configs/components/rubygem-gettext-setup.rb | 4 +- configs/components/rubygem-gettext.rb | 4 +- configs/components/rubygem-gssapi.rb | 2 + configs/components/rubygem-gyoku.rb | 2 + configs/components/rubygem-hiera-eyaml.rb | 7 +- configs/components/rubygem-hiera.rb | 2 + configs/components/rubygem-highline.rb | 11 +- configs/components/rubygem-hocon.rb | 6 +- configs/components/rubygem-httpclient.rb | 2 + configs/components/rubygem-jmespath.rb | 8 +- configs/components/rubygem-jwt.rb | 9 +- configs/components/rubygem-little-plugger.rb | 2 + configs/components/rubygem-locale.rb | 8 +- configs/components/rubygem-log4r.rb | 2 + configs/components/rubygem-logger.rb | 2 + configs/components/rubygem-logging.rb | 2 + configs/components/rubygem-mini_portile2.rb | 2 + configs/components/rubygem-minitar.rb | 3 + configs/components/rubygem-molinillo.rb | 8 +- configs/components/rubygem-multi_json.rb | 13 +- configs/components/rubygem-multipart-post.rb | 2 + .../components/rubygem-net-http-persistent.rb | 2 + configs/components/rubygem-net-scp.rb | 2 + configs/components/rubygem-net-ssh-krb.rb | 6 +- configs/components/rubygem-net-ssh.rb | 16 +-- configs/components/rubygem-nokogiri.rb | 30 ---- configs/components/rubygem-nori.rb | 11 +- configs/components/rubygem-openfact.rb | 2 + configs/components/rubygem-optimist.rb | 2 + .../components/rubygem-orchestrator_client.rb | 2 + configs/components/rubygem-paint.rb | 2 + configs/components/rubygem-prime.rb | 2 + configs/components/rubygem-public_suffix.rb | 2 + .../components/rubygem-puppet-resource_api.rb | 2 + configs/components/rubygem-puppet-strings.rb | 2 + configs/components/rubygem-puppet.rb | 2 + configs/components/rubygem-puppet_forge.rb | 3 + .../components/rubygem-puppetfile-resolver.rb | 8 +- configs/components/rubygem-r10k.rb | 2 + configs/components/rubygem-rexml.rb | 2 + configs/components/rubygem-rgen.rb | 2 + configs/components/rubygem-ruby2_keywords.rb | 2 + configs/components/rubygem-ruby_smb.rb | 3 + configs/components/rubygem-rubyntlm.rb | 4 + configs/components/rubygem-rubyzip.rb | 2 + configs/components/rubygem-scanf.rb | 6 +- configs/components/rubygem-semantic_puppet.rb | 15 +- configs/components/rubygem-sys-filesystem.rb | 11 +- configs/components/rubygem-terminal-table.rb | 2 + configs/components/rubygem-text.rb | 8 +- configs/components/rubygem-thor.rb | 2 + .../rubygem-unicode-display_width.rb | 2 + configs/components/rubygem-webrick.rb | 2 + configs/components/rubygem-windows_error.rb | 2 + configs/components/rubygem-winrm-fs.rb | 2 + configs/components/rubygem-winrm.rb | 2 + configs/components/rubygem-yard.rb | 2 + configs/components/runtime-bolt.rb | 28 ---- configs/components/runtime-openbolt.rb | 9 ++ .../{bolt-runtime.rb => openbolt-runtime.rb} | 91 ++++++------ 92 files changed, 325 insertions(+), 301 deletions(-) delete mode 100644 configs/components/rubygem-nokogiri.rb delete mode 100644 configs/components/runtime-bolt.rb create mode 100644 configs/components/runtime-openbolt.rb rename configs/projects/{bolt-runtime.rb => openbolt-runtime.rb} (71%) diff --git a/configs/components/rubygem-CFPropertyList.rb b/configs/components/rubygem-CFPropertyList.rb index 2306c827..8ce5a853 100644 --- a/configs/components/rubygem-CFPropertyList.rb +++ b/configs/components/rubygem-CFPropertyList.rb @@ -2,15 +2,15 @@ # Component release information: # https://rubygems.org/gems/CFPropertyList # https://github.com/ckruse/CFPropertyList/tags +# Notes: +# - 2025-11-03: Removed pinning agent-runtime-7.x to 2.x since CFPropertList 3.x dropped support +# for Ruby 1.8, and the latest should still work on 2.7. ##### component 'rubygem-CFPropertyList' do |pkg, settings, platform| - if settings[:ruby_version].to_f >= 3.2 - pkg.version '3.0.7' - pkg.md5sum 'ed89ce5e7074a6f8e8b8e744eaf014d0' - else - pkg.version '2.3.6' - pkg.md5sum 'ae4086185992f293ffab1641b83286a5' - end + ### Maintained by update_gems automation ### + pkg.version '3.0.7' + pkg.md5sum 'ed89ce5e7074a6f8e8b8e744eaf014d0' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') pkg.environment "GEM_HOME", settings[:gem_home] diff --git a/configs/components/rubygem-addressable.rb b/configs/components/rubygem-addressable.rb index 4fae8811..d37b91da 100644 --- a/configs/components/rubygem-addressable.rb +++ b/configs/components/rubygem-addressable.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/addressable # https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md ##### -component "rubygem-addressable" do |pkg, settings, platform| - pkg.version "2.8.7" - pkg.sha256sum "462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232" +component 'rubygem-addressable' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '2.8.7' + pkg.sha256sum '462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-aws-eventstream.rb b/configs/components/rubygem-aws-eventstream.rb index ddaff756..0d13cff2 100644 --- a/configs/components/rubygem-aws-eventstream.rb +++ b/configs/components/rubygem-aws-eventstream.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/aws-eventstream # https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-eventstream/CHANGELOG.md ##### -component "rubygem-aws-eventstream" do |pkg, settings, platform| +component 'rubygem-aws-eventstream' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.sha256sum '116bf85c436200d1060811e6f5d2d40c88f65448f2125bc77ffce5121e6e183b' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-aws-partitions.rb b/configs/components/rubygem-aws-partitions.rb index 8e62f917..a1ccd598 100644 --- a/configs/components/rubygem-aws-partitions.rb +++ b/configs/components/rubygem-aws-partitions.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/aws-partitions # https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-partitions/CHANGELOG.md ##### -component "rubygem-aws-partitions" do |pkg, settings, platform| +component 'rubygem-aws-partitions' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.1154.0' pkg.sha256sum 'be80a8e07b87ce6c936eb251a8f371a887e07ed21ca7f45e5e1b66949eb77294' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-aws-sdk-core.rb b/configs/components/rubygem-aws-sdk-core.rb index 4b18e834..4ba1b40d 100644 --- a/configs/components/rubygem-aws-sdk-core.rb +++ b/configs/components/rubygem-aws-sdk-core.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/aws-sdk-core # https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/CHANGELOG.md ##### -component "rubygem-aws-sdk-core" do |pkg, settings, platform| +component 'rubygem-aws-sdk-core' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.232.0' pkg.sha256sum '05291ae0da4fb69e9b6494fcc2d839584e8345714a93cd01f0f1bf11475619f2' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-aws-sdk-ec2.rb b/configs/components/rubygem-aws-sdk-ec2.rb index e2fd558e..3ef8beb5 100644 --- a/configs/components/rubygem-aws-sdk-ec2.rb +++ b/configs/components/rubygem-aws-sdk-ec2.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/aws-sdk-ec2 # https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-ec2/CHANGELOG.md ##### -component "rubygem-aws-sdk-ec2" do |pkg, settings, platform| +component 'rubygem-aws-sdk-ec2' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.555.0' pkg.sha256sum 'e323b6a5f810b97e51fc64befc4c88dba4dfa81c8ebb841907bad4cb7969f92f' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-aws-sigv4.rb b/configs/components/rubygem-aws-sigv4.rb index 53bfd865..c71eb9dc 100644 --- a/configs/components/rubygem-aws-sigv4.rb +++ b/configs/components/rubygem-aws-sigv4.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/aws-sigv4 # https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sigv4/CHANGELOG.md ##### -component "rubygem-aws-sigv4" do |pkg, settings, platform| +component 'rubygem-aws-sigv4' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.12.1' pkg.sha256sum '6973ff95cb0fd0dc58ba26e90e9510a2219525d07620c8babeb70ef831826c00' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-base64.rb b/configs/components/rubygem-base64.rb index 5d445eeb..61a02a2f 100644 --- a/configs/components/rubygem-base64.rb +++ b/configs/components/rubygem-base64.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/base64/releases ##### component 'rubygem-base64' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.3.0' pkg.sha256sum '27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-bcrypt_pbkdf.rb b/configs/components/rubygem-bcrypt_pbkdf.rb index 16d4495f..a1375226 100644 --- a/configs/components/rubygem-bcrypt_pbkdf.rb +++ b/configs/components/rubygem-bcrypt_pbkdf.rb @@ -4,8 +4,10 @@ # https://github.com/net-ssh/bcrypt_pbkdf-ruby/tags ##### component 'rubygem-bcrypt_pbkdf' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### pkg.version '1.1.1' pkg.md5sum '3efcbfd0289e0783513b738823a2deba' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-bindata.rb b/configs/components/rubygem-bindata.rb index fe28752a..80fc3f4d 100644 --- a/configs/components/rubygem-bindata.rb +++ b/configs/components/rubygem-bindata.rb @@ -4,8 +4,10 @@ # https://github.com/dmendel/bindata/blob/master/ChangeLog.rdoc ##### component 'rubygem-bindata' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.5.1' pkg.sha256sum '53186a1ec2da943d4cb413583d680644eb810aacbf8902497aac8f191fad9e58' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-builder.rb b/configs/components/rubygem-builder.rb index b6b1ee88..d03c59c2 100644 --- a/configs/components/rubygem-builder.rb +++ b/configs/components/rubygem-builder.rb @@ -4,8 +4,10 @@ # https://github.com/rails/builder/blob/master/CHANGES ##### component 'rubygem-builder' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.3.0' pkg.md5sum '3048be022111b96f47bb17c34c67dbc7' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-colored2.rb b/configs/components/rubygem-colored2.rb index 4408f288..5ecdbb2e 100644 --- a/configs/components/rubygem-colored2.rb +++ b/configs/components/rubygem-colored2.rb @@ -4,8 +4,10 @@ # https://github.com/kigster/colored2/releases ##### component 'rubygem-colored2' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '4.0.3' pkg.sha256sum '63e1038183976287efc43034f5cca17fb180b4deef207da8ba78d051cbce2b37' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-concurrent-ruby.rb b/configs/components/rubygem-concurrent-ruby.rb index 2aff2e49..b8f8844c 100644 --- a/configs/components/rubygem-concurrent-ruby.rb +++ b/configs/components/rubygem-concurrent-ruby.rb @@ -4,8 +4,10 @@ # https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md ##### component 'rubygem-concurrent-ruby' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.3.5' pkg.sha256sum '813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-connection_pool.rb b/configs/components/rubygem-connection_pool.rb index a4418683..49557e1c 100644 --- a/configs/components/rubygem-connection_pool.rb +++ b/configs/components/rubygem-connection_pool.rb @@ -8,8 +8,11 @@ # affect performance. There are no security fixes between 2.4.1 and 2.5.4. ##### component 'rubygem-connection_pool' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED pkg.version '2.4.1' pkg.md5sum 'fd45f00b6d127bb49845afd7f7b91baa' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-cri.rb b/configs/components/rubygem-cri.rb index 73105902..0de0b6e8 100644 --- a/configs/components/rubygem-cri.rb +++ b/configs/components/rubygem-cri.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/cri # https://github.com/denisdefreyne/cri/releases ##### -component "rubygem-cri" do |pkg, settings, platform| - pkg.version "2.15.12" - pkg.sha256sum "8abfe924ef53e772a8e4ee907e791d3bfcfca78bc62a5859e3b9899ba29956e5" +component 'rubygem-cri' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '2.15.12' + pkg.sha256sum '8abfe924ef53e772a8e4ee907e791d3bfcfca78bc62a5859e3b9899ba29956e5' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-deep_merge.rb b/configs/components/rubygem-deep_merge.rb index e76faccc..1d9d36a5 100644 --- a/configs/components/rubygem-deep_merge.rb +++ b/configs/components/rubygem-deep_merge.rb @@ -4,8 +4,10 @@ # https://github.com/danielsdeleo/deep_merge/blob/master/CHANGELOG ##### component "rubygem-deep_merge" do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.2.2' pkg.sha256sum '83ced3a3d7f95f67de958d2ce41b1874e83c8d94fe2ddbff50c8b4b82323563a' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-ed25519.rb b/configs/components/rubygem-ed25519.rb index 056ea244..366e4a80 100644 --- a/configs/components/rubygem-ed25519.rb +++ b/configs/components/rubygem-ed25519.rb @@ -4,8 +4,10 @@ # https://github.com/RubyCrypto/ed25519/blob/main/CHANGES.md ##### component 'rubygem-ed25519' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.sha256sum '16e97f5198689a154247169f3453ef4cfd3f7a47481fde0ae33206cdfdcac506' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-erubi.rb b/configs/components/rubygem-erubi.rb index 6f3bd4d4..fa0e1454 100644 --- a/configs/components/rubygem-erubi.rb +++ b/configs/components/rubygem-erubi.rb @@ -4,8 +4,10 @@ # https://github.com/jeremyevans/erubi/blob/master/CHANGELOG ##### component 'rubygem-erubi' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.13.1' pkg.sha256sum 'a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-em_http.rb b/configs/components/rubygem-faraday-em_http.rb index 0c08e1ed..a8931ca7 100644 --- a/configs/components/rubygem-faraday-em_http.rb +++ b/configs/components/rubygem-faraday-em_http.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-em_http/releases ##### component 'rubygem-faraday-em_http' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.0.1' pkg.sha256sum '05d3845d0b298a7dfbfb8205db39d10f1bc898d455be7a678ca6f460aba71632' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-em_synchrony.rb b/configs/components/rubygem-faraday-em_synchrony.rb index e2ad52a3..df756857 100644 --- a/configs/components/rubygem-faraday-em_synchrony.rb +++ b/configs/components/rubygem-faraday-em_synchrony.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-em_synchrony/releases ##### component 'rubygem-faraday-em_synchrony' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.0.1' pkg.sha256sum 'bf3ce45dcf543088d319ab051f80985ea6d294930635b7a0b966563179f81750' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-excon.rb b/configs/components/rubygem-faraday-excon.rb index e4756167..5af6bc01 100644 --- a/configs/components/rubygem-faraday-excon.rb +++ b/configs/components/rubygem-faraday-excon.rb @@ -5,8 +5,10 @@ # https://github.com/excon/faraday-excon/releases ##### component 'rubygem-faraday-excon' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.3.0' pkg.sha256sum 'c5fc7175ab284b164496559e35f550587ec5b028b3cdbb40b7ebe83aa7e5b575' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-follow_redirects.rb b/configs/components/rubygem-faraday-follow_redirects.rb index e0430de6..df05ee3f 100644 --- a/configs/components/rubygem-faraday-follow_redirects.rb +++ b/configs/components/rubygem-faraday-follow_redirects.rb @@ -4,8 +4,10 @@ # https://github.com/tisba/faraday-follow-redirects/blob/main/CHANGELOG.md ##### component 'rubygem-faraday-follow_redirects' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.3.0' pkg.md5sum '75fa678fa40b54a94e51efc1600a6461' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-httpclient.rb b/configs/components/rubygem-faraday-httpclient.rb index 62e6cf97..bfc4c908 100644 --- a/configs/components/rubygem-faraday-httpclient.rb +++ b/configs/components/rubygem-faraday-httpclient.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-httpclient/releases ##### component 'rubygem-faraday-httpclient' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'd95fbe60cce5a87e157957d67c539a4c22fb8b0b0611d493a939cdde19d8d67c' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-multipart.rb b/configs/components/rubygem-faraday-multipart.rb index a90b65e0..61619321 100644 --- a/configs/components/rubygem-faraday-multipart.rb +++ b/configs/components/rubygem-faraday-multipart.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-multipart/releases ##### component 'rubygem-faraday-multipart' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.1.1' pkg.sha256sum '77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-net_http.rb b/configs/components/rubygem-faraday-net_http.rb index 37bf660c..5d1f6dc6 100644 --- a/configs/components/rubygem-faraday-net_http.rb +++ b/configs/components/rubygem-faraday-net_http.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-net_http/releases ##### component 'rubygem-faraday-net_http' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.4.1' pkg.sha256sum '095757fae7872b94eac839c08a1a4b8d84fd91d6886cfbe75caa2143de64ab3b' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-net_http_persistent.rb b/configs/components/rubygem-faraday-net_http_persistent.rb index d75eb217..e01a5f96 100644 --- a/configs/components/rubygem-faraday-net_http_persistent.rb +++ b/configs/components/rubygem-faraday-net_http_persistent.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-net_http_persistent/releases ##### component 'rubygem-faraday-net_http_persistent' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.3.1' pkg.sha256sum '23ffba37d6a27807a10f033d01918ec958aa73fa6ff0fccfbcd5ce2d2e68fca3' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-patron.rb b/configs/components/rubygem-faraday-patron.rb index 524f1e4a..628b0870 100644 --- a/configs/components/rubygem-faraday-patron.rb +++ b/configs/components/rubygem-faraday-patron.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-patron/releases ##### component 'rubygem-faraday-patron' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'cd4b77d48e3c638ce25c22b6affe2714cf13af99bfa8348c1c7f6733fc5f2086' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-rack.rb b/configs/components/rubygem-faraday-rack.rb index fdaedf7c..e5ef2a09 100644 --- a/configs/components/rubygem-faraday-rack.rb +++ b/configs/components/rubygem-faraday-rack.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-rack/releases ##### component 'rubygem-faraday-rack' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.1.3' pkg.sha256sum '9869993a8f1010ade286bda697dea43a8f29f0ab760877d73ec7de5d1d18faed' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday-retry.rb b/configs/components/rubygem-faraday-retry.rb index dc825ae6..be40bd7e 100644 --- a/configs/components/rubygem-faraday-retry.rb +++ b/configs/components/rubygem-faraday-retry.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday-retry/releases ##### component 'rubygem-faraday-retry' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.3.2' pkg.sha256sum '2402d2029032ebd238a2046221e67f6ef0da78c5a8ce8cd4f8b9c62e4d6451d1' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-faraday.rb b/configs/components/rubygem-faraday.rb index 15b47a23..437ebd8b 100644 --- a/configs/components/rubygem-faraday.rb +++ b/configs/components/rubygem-faraday.rb @@ -4,8 +4,10 @@ # https://github.com/lostisland/faraday/releases ##### component 'rubygem-faraday' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.13.4' pkg.sha256sum 'c719ff52cfd0dbaeca79dd83ed3aeea3f621032abf8bc959d1c05666157cac26' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-fast_gettext.rb b/configs/components/rubygem-fast_gettext.rb index 3ea744d6..f9fc2d40 100644 --- a/configs/components/rubygem-fast_gettext.rb +++ b/configs/components/rubygem-fast_gettext.rb @@ -6,8 +6,11 @@ # relies on gettext-setup, which pins fast_gettext ~> 2.1. ##### component "rubygem-fast_gettext" do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED pkg.version '2.4.0' pkg.sha256sum 'fd26c4c406aa10be34f0fd2847ce3ffdc1e9d9798de87538594757bbb9175fbf' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-ffi.rb b/configs/components/rubygem-ffi.rb index be14b024..760d8276 100644 --- a/configs/components/rubygem-ffi.rb +++ b/configs/components/rubygem-ffi.rb @@ -5,116 +5,42 @@ # Notes: # Read the comments in the code below carefully. ##### -component "rubygem-ffi" do |pkg, settings, platform| - if platform.is_cross_compiled? && (platform.is_linux? || platform.is_solaris?) - # Installing ffi >= 1.14.0 blows up horribly if we're cross compiling on Linux and Solaris. - # This is because we're using old rubies (2.1 and 2.0) to install gems which do not have - # methods like `append_ldflags`. - # (see https://github.com/ffi/ffi/commit/3aa6b25f5423a64ad4afa7f2a5a5855483bae3c2) - # - # A more long term solution would be to update the host rubies on those - # platforms to something newer (preferably the same API version as the ruby - # we're building for). We can probably avoid this until we start shipping Ruby 3. - pkg.version '1.13.1' - pkg.sha256sum '4e15f52ee45af7c5674d656041855448adbb5022618be252cd602d81b8e2978a' - else - pkg.version '1.17.2' - pkg.sha256sum '297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6' - end - - rb_major_minor_version = settings[:ruby_version].to_f - - # Windows versions of the FFI gem have custom filenames, so we overwite the - # defaults that _base-rubygem provides here, just for Windows for Ruby < 3.2 - if platform.is_windows? && rb_major_minor_version < 3.2 - # Pin this if lower than Ruby 2.7 - pkg.version '1.9.25' if rb_major_minor_version < 2.7 - - instance_eval File.read('configs/components/_base-rubygem.rb') - - # Vanagon's `pkg.mirror` is additive, and the _base_rubygem sets the - # non-Windows gem as the first mirror, which is incorrect. We need to unset - # the list of mirrors before adding the Windows-appropriate ones here: - @component.mirrors = [] - # Same for install steps: - @component.install = [] - - if platform.architecture == "x64" - # NOTE: make sure to verify the shas for the x64-mingw32 gem! - case pkg.get_version - when '1.9.25' - pkg.sha256sum '5473ac958b78f271f53e9a88197c35cd3e990fbe625d21e525c56d62ae3750da' - when '1.17.2' - pkg.sha256sum 'c67b84b1bd54b680bcc23b516e87c96b4585cad3ca9e0afea953c9a9cb90243d' - end - - pkg.url "https://rubygems.org/downloads/ffi-#{pkg.get_version}-x64-mingw32.gem" - pkg.mirror "#{settings[:buildsources_url]}/ffi-#{pkg.get_version}-x64-mingw32.gem" - else - # Note make sure to verify the shas from the x86-mingw32 gem! - case pkg.get_version - when '1.9.25' - pkg.sha256sum '43d357732a6a0e3e41dc7e28a9c9c5112ac66f4a6ed9e1de40afba9ffcb836c1' - when '1.17.2' - pkg.sha256sum '5052e800045e95acdcd2c404777d5296751e66553c12ff4bf20f29ddcc9e4139' - end - - pkg.url "https://rubygems.org/downloads/ffi-#{pkg.get_version}-x86-mingw32.gem" - pkg.mirror "#{settings[:buildsources_url]}/ffi-#{pkg.get_version}-x86-mingw32.gem" - end - - pkg.install do - "#{settings[:gem_install]} ffi-#{pkg.get_version}-#{platform.architecture}-mingw32.gem" - end - else - # Prior to ruby 3.2, both ruby and the ffi gem vendored a version of libffi. - # If libffi happened to be installed in /usr/lib, then the ffi gem preferred - # that instead of building libffi itself. To ensure consistency, we use - # --disable-system-libffi so that the ffi gem *always* builds libffi, then - # builds the ffi_c native extension and links it against libffi.so. - # - # In ruby 3.2 and up, libffi is no longer vendored. So we created a separate - # libffi vanagon component which is built before ruby. The ffi gem still - # vendors libffi, so we use the --enable-system-libffi option to ensure the ffi - # gem *always* uses the libffi.so we already built. Note the term "system" is - # misleading, because we override PKG_CONFIG_PATH below so that our libffi.so - # is preferred, not the one in /usr/lib. - settings["#{pkg.get_name}_gem_install_options".to_sym] = - if rb_major_minor_version > 2.7 - "-- --enable-system-libffi" - else - "-- --disable-system-libffi" - end - instance_eval File.read('configs/components/_base-rubygem.rb') - end +component 'rubygem-ffi' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '1.17.2' + pkg.sha256sum '297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6' + ### End automated maintenance section ### + + # Prior to ruby 3.2, both ruby and the ffi gem vendored a version of libffi. + # If libffi happened to be installed in /usr/lib, then the ffi gem preferred + # that instead of building libffi itself. To ensure consistency, we use + # --disable-system-libffi so that the ffi gem *always* builds libffi, then + # builds the ffi_c native extension and links it against libffi.so. + # + # In ruby 3.2 and up, libffi is no longer vendored. So we created a separate + # libffi vanagon component which is built before ruby. The ffi gem still + # vendors libffi, so we use the --enable-system-libffi option to ensure the ffi + # gem *always* uses the libffi.so we already built. Note the term "system" is + # misleading, because we override PKG_CONFIG_PATH below so that our libffi.so + # is preferred, not the one in /usr/lib. + settings["#{pkg.get_name}_gem_install_options".to_sym] = "-- --enable-system-libffi" + instance_eval File.read('configs/components/_base-rubygem.rb') # due to contrib/make_sunver.pl missing on solaris 11 we cannot compile libffi, so we provide the opencsw library pkg.environment "CPATH", "/opt/csw/lib/libffi-3.2.1/include" if platform.name =~ /solaris-11/ && (platform.is_cross_compiled? || platform.architecture != 'sparc') pkg.environment "MAKE", platform[:make] if platform.is_solaris? - if platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" - elsif platform.is_solaris? - if settings[:ruby_version] =~ /3\.\d+\.\d+/ - if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment "PATH", "#{settings[:ruby_bindir]}:$(PATH)" - else - pkg.environment "PATH", "/opt/csw/bin:/opt/pl-build-tools/bin:$(PATH)" - end + if platform.is_solaris? + if !platform.is_cross_compiled? && platform.architecture == 'sparc' + pkg.environment "PATH", "#{settings[:ruby_bindir]}:$(PATH)" else - pkg.environment "PATH", "/opt/pl-build-tools/bin:/opt/csw/bin:$(PATH)" + pkg.environment "PATH", "/opt/csw/bin:$(PATH)" end - elsif platform.is_aix? - pkg.environment 'PATH', '/opt/freeware/bin:/opt/pl-build-tools/bin:$(PATH)' - elsif platform.name == 'sles-11-x86_64' - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH)' + elsif platform.is_aix? + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' end - # With Ruby 3.2 on Solaris-11 we install OpenSCW's libffi, no need to copy over the system libffi - if platform.name =~ /solaris-11-i386/ && rb_major_minor_version < 3.2 - pkg.install_file "/usr/lib/libffi.so.5.0.10", "#{settings[:libdir]}/libffi.so" - elsif platform.name =~ /solaris-10-i386/ - # If we ever support Solaris-11 on Ruby 3.2, then we won't want to do this + if platform.name =~ /solaris-10-i386/ pkg.install_file "/opt/csw/lib/libffi.so.6", "#{settings[:libdir]}/libffi.so.6" end @@ -125,6 +51,8 @@ when /solaris-10/ "/opt/csw/lib/ruby/2.0.0" else + # Change this someday if we ever end up cross compiling OpenVox on Linux + # as we won't be using pl-build-tools there "/opt/pl-build-tools/lib/ruby/2.1.0" end diff --git a/configs/components/rubygem-gettext-setup.rb b/configs/components/rubygem-gettext-setup.rb index c971a3db..deb4ce28 100644 --- a/configs/components/rubygem-gettext-setup.rb +++ b/configs/components/rubygem-gettext-setup.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/gettext-setup # https://github.com/puppetlabs/gettext-setup-gem/tags ##### -component "rubygem-gettext-setup" do |pkg, settings, platform| +component 'rubygem-gettext-setup' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.1.0' pkg.sha256sum '2ad4fa99575d869f18056941d98dc9cb2a656abc7b991f360fbd3e32d28fd4ec' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-gettext.rb b/configs/components/rubygem-gettext.rb index 2c248fa0..29af0b0b 100644 --- a/configs/components/rubygem-gettext.rb +++ b/configs/components/rubygem-gettext.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/gettext # https://github.com/ruby-gettext/gettext/releases ##### -component "rubygem-gettext" do |pkg, settings, platform| +component 'rubygem-gettext' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.5.1' pkg.sha256sum '03ec7f71ea7e2cf1fdcd5e08682e98b81601922fdbee890b7bc6f63b0e1a512a' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-gssapi.rb b/configs/components/rubygem-gssapi.rb index fb608ec3..9bc480ba 100644 --- a/configs/components/rubygem-gssapi.rb +++ b/configs/components/rubygem-gssapi.rb @@ -5,8 +5,10 @@ # (Not up to date) https://github.com/zenchild/gssapi/blob/main/Changelog.md ##### component 'rubygem-gssapi' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.3.1' pkg.md5sum '4bd2df09d8e0ab4c6d2e1828c344eba1' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-gyoku.rb b/configs/components/rubygem-gyoku.rb index 54c6908a..012b190e 100644 --- a/configs/components/rubygem-gyoku.rb +++ b/configs/components/rubygem-gyoku.rb @@ -4,8 +4,10 @@ # https://github.com/savonrb/gyoku/blob/main/CHANGELOG.md ##### component 'rubygem-gyoku' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.md5sum 'fecd9488be9b07a250349e9bbe048e5f' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-hiera-eyaml.rb b/configs/components/rubygem-hiera-eyaml.rb index aa588b38..f99635ec 100644 --- a/configs/components/rubygem-hiera-eyaml.rb +++ b/configs/components/rubygem-hiera-eyaml.rb @@ -4,13 +4,14 @@ # https://github.com/voxpupuli/hiera-eyaml/blob/master/CHANGELOG.md ##### component 'rubygem-hiera-eyaml' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '4.3.0' pkg.sha256sum '19eba2ea9d70b2d56de064df9e3242860d8070d47ff9c9a6348b7fe94708ab0a' - - instance_eval File.read('configs/components/_base-rubygem.rb') - pkg.build_requires 'rubygem-optimist' pkg.build_requires 'rubygem-highline' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') # Overwrite the base rubygem's default GEM_HOME with the vendor gem directory # shared by puppet and puppetserver. Fall-back to gem_home for other projects. diff --git a/configs/components/rubygem-hiera.rb b/configs/components/rubygem-hiera.rb index 30ea87d8..d1709b5a 100644 --- a/configs/components/rubygem-hiera.rb +++ b/configs/components/rubygem-hiera.rb @@ -4,8 +4,10 @@ # https://github.com/puppetlabs/hiera/tags ##### component 'rubygem-hiera' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.12.0' pkg.md5sum '67249a25571c9ee83cdb68579faf3f0d' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-highline.rb b/configs/components/rubygem-highline.rb index 3b8e6409..c6bfd671 100644 --- a/configs/components/rubygem-highline.rb +++ b/configs/components/rubygem-highline.rb @@ -4,13 +4,10 @@ # https://github.com/JEG2/highline/blob/master/Changelog.md ##### component 'rubygem-highline' do |pkg, settings, _platform| - if settings[:ruby_version].to_f >= 3.2 - pkg.version '3.1.2' - pkg.sha256sum '67cbd34d19f6ef11a7ee1d82ffab5d36dfd5b3be861f450fc1716c7125f4bb4a' - else - pkg.version '2.1.0' - pkg.sha256sum 'd63d7f472f8ffaa143725161ae6fb06895b5cb7527e0b4dac5ad1e4902c80cb9' - end + ### Maintained by update_gems automation ### + pkg.version '3.1.2' + pkg.sha256sum '67cbd34d19f6ef11a7ee1d82ffab5d36dfd5b3be861f450fc1716c7125f4bb4a' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-hocon.rb b/configs/components/rubygem-hocon.rb index 17aaa944..3c0d038c 100644 --- a/configs/components/rubygem-hocon.rb +++ b/configs/components/rubygem-hocon.rb @@ -5,9 +5,11 @@ # (Not up to date) https://github.com/puppetlabs/ruby-hocon/blob/main/HISTORY.md # (Not up to date) https://github.com/puppetlabs/ruby-hocon/releases ##### -component "rubygem-hocon" do |pkg, settings, platform| +component 'rubygem-hocon' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.4.0' - pkg.sha256sum "e71023ed7c56ae780ec34c0ce7789a233bcead08c045d50bc7b3af40f5afcd80" + pkg.sha256sum 'e71023ed7c56ae780ec34c0ce7789a233bcead08c045d50bc7b3af40f5afcd80' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-httpclient.rb b/configs/components/rubygem-httpclient.rb index 5de2d92a..86c428b0 100644 --- a/configs/components/rubygem-httpclient.rb +++ b/configs/components/rubygem-httpclient.rb @@ -4,8 +4,10 @@ # https://github.com/nahi/httpclient/blob/master/CHANGELOG.md ##### component 'rubygem-httpclient' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.9.0' pkg.sha256sum '4b645958e494b2f86c2f8a2f304c959baa273a310e77a2931ddb986d83e498c8' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-jmespath.rb b/configs/components/rubygem-jmespath.rb index b6b52f70..d4a11bb4 100644 --- a/configs/components/rubygem-jmespath.rb +++ b/configs/components/rubygem-jmespath.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/jmespath # https://github.com/jmespath/jmespath.rb/releases ##### -component "rubygem-jmespath" do |pkg, settings, platform| - pkg.version "1.6.2" - pkg.md5sum "fdd62edafbd40171f976a53ab349ae9e" +component 'rubygem-jmespath' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '1.6.2' + pkg.md5sum 'fdd62edafbd40171f976a53ab349ae9e' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-jwt.rb b/configs/components/rubygem-jwt.rb index 38eba83e..94e1a8ee 100644 --- a/configs/components/rubygem-jwt.rb +++ b/configs/components/rubygem-jwt.rb @@ -8,9 +8,12 @@ # this isn't even having the effect we want. Should take a look to # see if we should just remove this component. ##### -component "rubygem-jwt" do |pkg, settings, platform| - pkg.version "2.7.1" - pkg.md5sum "d3a7ba14444b03f91c7d36b61519fe17" +component 'rubygem-jwt' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED + pkg.version '2.7.1' + pkg.md5sum 'd3a7ba14444b03f91c7d36b61519fe17' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-little-plugger.rb b/configs/components/rubygem-little-plugger.rb index 65e0d6ce..086b1d87 100644 --- a/configs/components/rubygem-little-plugger.rb +++ b/configs/components/rubygem-little-plugger.rb @@ -4,8 +4,10 @@ # https://github.com/TwP/little-plugger/blob/master/History.txt ##### component 'rubygem-little-plugger' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.1.4' pkg.md5sum '8b1cf294a87eaabd12d5326bc13d7fe0' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-locale.rb b/configs/components/rubygem-locale.rb index bf3d32fa..7155a968 100644 --- a/configs/components/rubygem-locale.rb +++ b/configs/components/rubygem-locale.rb @@ -4,9 +4,11 @@ # https://github.com/ruby-gettext/locale/releases # (Not up to date) https://github.com/ruby-gettext/locale/blob/master/ChangeLog ##### -component "rubygem-locale" do |pkg, settings, platform| - pkg.version "2.1.4" - pkg.md5sum "c324a7f34b94044f8d38eabff159de62" +component 'rubygem-locale' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '2.1.4' + pkg.md5sum 'c324a7f34b94044f8d38eabff159de62' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-log4r.rb b/configs/components/rubygem-log4r.rb index 6c2f80d2..ce2fc72e 100644 --- a/configs/components/rubygem-log4r.rb +++ b/configs/components/rubygem-log4r.rb @@ -5,8 +5,10 @@ # Hasn't been updated since 2012. Should probably dump this. ##### component 'rubygem-log4r' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.1.10' pkg.md5sum '8d54b52c97f9fc17cc20a5277af20402' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-logger.rb b/configs/components/rubygem-logger.rb index 5e25a4e8..a0410143 100644 --- a/configs/components/rubygem-logger.rb +++ b/configs/components/rubygem-logger.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/logger/releases ##### component 'rubygem-logger' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.7.0' pkg.sha256sum '196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-logging.rb b/configs/components/rubygem-logging.rb index 9e8add79..f1912122 100644 --- a/configs/components/rubygem-logging.rb +++ b/configs/components/rubygem-logging.rb @@ -4,8 +4,10 @@ # https://github.com/TwP/logging/blob/master/History.txt ##### component 'rubygem-logging' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.4.0' pkg.md5sum '8953eab63c979ecdac781cbf0da1872a' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-mini_portile2.rb b/configs/components/rubygem-mini_portile2.rb index f3c4d65a..2bc9932a 100644 --- a/configs/components/rubygem-mini_portile2.rb +++ b/configs/components/rubygem-mini_portile2.rb @@ -4,8 +4,10 @@ # https://github.com/flavorjones/mini_portile/blob/main/CHANGELOG.md ##### component 'rubygem-mini_portile2' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### pkg.version '2.8.9' pkg.sha256sum '0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-minitar.rb b/configs/components/rubygem-minitar.rb index d119f2a9..47ffed40 100644 --- a/configs/components/rubygem-minitar.rb +++ b/configs/components/rubygem-minitar.rb @@ -7,8 +7,11 @@ # so leaving this at 0.12.1 for now. ##### component 'rubygem-minitar' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED pkg.version '0.12.1' pkg.md5sum '975dee1dadeb26a2a01105802c3172ab' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-molinillo.rb b/configs/components/rubygem-molinillo.rb index f02966b4..1b022554 100644 --- a/configs/components/rubygem-molinillo.rb +++ b/configs/components/rubygem-molinillo.rb @@ -4,9 +4,11 @@ # https://github.com/CocoaPods/Molinillo/releases # https://github.com/CocoaPods/Molinillo/blob/master/CHANGELOG.md ##### -component "rubygem-molinillo" do |pkg, settings, platform| - pkg.version "0.8.0" - pkg.md5sum "877866cc996d5ce819dd8843b3116b5f" +component 'rubygem-molinillo' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '0.8.0' + pkg.md5sum '877866cc996d5ce819dd8843b3116b5f' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-multi_json.rb b/configs/components/rubygem-multi_json.rb index e74e483e..6c85b9dc 100644 --- a/configs/components/rubygem-multi_json.rb +++ b/configs/components/rubygem-multi_json.rb @@ -3,14 +3,11 @@ # https://rubygems.org/gems/multi_json # https://github.com/sferik/multi_json/blob/main/CHANGELOG.md ##### -component "rubygem-multi_json" do |pkg, settings, platform| - if settings[:ruby_version].to_f >= 3.0 - pkg.version '1.17.0' - pkg.sha256sum '76581f6c96aebf2e85f8a8b9854829e0988f335e8671cd1a56a1036eb75e4a1b' - else - pkg.version '1.15.0' - pkg.sha256sum '1fd04138b6e4a90017e8d1b804c039031399866ff3fbabb7822aea367c78615d' - end +component 'rubygem-multi_json' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '1.17.0' + pkg.sha256sum '76581f6c96aebf2e85f8a8b9854829e0988f335e8671cd1a56a1036eb75e4a1b' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-multipart-post.rb b/configs/components/rubygem-multipart-post.rb index 29166887..5265149a 100644 --- a/configs/components/rubygem-multipart-post.rb +++ b/configs/components/rubygem-multipart-post.rb @@ -4,8 +4,10 @@ # https://github.com/socketry/multipart-post/releases ##### component 'rubygem-multipart-post' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.4.1' pkg.md5sum '190a88b4cae633a46b64c30764e5d624' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-net-http-persistent.rb b/configs/components/rubygem-net-http-persistent.rb index 207fd354..e1002cb0 100644 --- a/configs/components/rubygem-net-http-persistent.rb +++ b/configs/components/rubygem-net-http-persistent.rb @@ -4,8 +4,10 @@ # https://github.com/drbrain/net-http-persistent/blob/master/History.txt ##### component 'rubygem-net-http-persistent' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '4.0.6' pkg.sha256sum '2abb3a04438edf6cb9e0e7e505969605f709eda3e3c5211beadd621a2c84dd5d' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-net-scp.rb b/configs/components/rubygem-net-scp.rb index 4246a20f..0cbe7253 100644 --- a/configs/components/rubygem-net-scp.rb +++ b/configs/components/rubygem-net-scp.rb @@ -4,8 +4,10 @@ # https://github.com/net-ssh/net-scp/tags ##### component 'rubygem-net-scp' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '4.1.0' pkg.sha256sum 'a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-net-ssh-krb.rb b/configs/components/rubygem-net-ssh-krb.rb index 9f047ed2..98c49f3c 100644 --- a/configs/components/rubygem-net-ssh-krb.rb +++ b/configs/components/rubygem-net-ssh-krb.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/net-ssh-krb # https://github.com/cbeer/net-ssh-kerberos/releases ##### -component "rubygem-net-ssh-krb" do |pkg, settings, platform| +component 'rubygem-net-ssh-krb' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.5.1' - pkg.md5sum "58f770a6a8eca61b5da467d584bb7016" + pkg.md5sum '58f770a6a8eca61b5da467d584bb7016' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-net-ssh.rb b/configs/components/rubygem-net-ssh.rb index 758a9ee4..17524b13 100644 --- a/configs/components/rubygem-net-ssh.rb +++ b/configs/components/rubygem-net-ssh.rb @@ -3,17 +3,11 @@ # https://rubygems.org/gems/net-ssh # https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt ##### -component "rubygem-net-ssh" do |pkg, settings, platform| - if platform.is_cross_compiled? && platform.is_solaris? - # Building agent-runtime-7.x on Solaris 10/11 SPARC fails with newer versions of net-ssh because those platforms - # use older (<= 2.1) versions of Ruby for cross-compiling. Pin to 4.2.0, the last version of net-ssh that supports - # those older Rubies, until we deprecate those platforms. - pkg.version '4.2.0' - pkg.md5sum "fec5b151d84110b95ec0056017804491" - else - pkg.version '7.3.0' - pkg.sha256sum '172076c4b30ce56fb25a03961b0c4da14e1246426401b0f89cba1a3b54bf3ef0' - end +component 'rubygem-net-ssh' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '7.3.0' + pkg.sha256sum '172076c4b30ce56fb25a03961b0c4da14e1246426401b0f89cba1a3b54bf3ef0' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-nokogiri.rb b/configs/components/rubygem-nokogiri.rb deleted file mode 100644 index 50d2f97e..00000000 --- a/configs/components/rubygem-nokogiri.rb +++ /dev/null @@ -1,30 +0,0 @@ -##### -# Component release information: -# https://rubygems.org/gems/nokogiri -# https://nokogiri.org/CHANGELOG.html -##### -component 'rubygem-nokogiri' do |pkg, settings, _platform| - pkg.version '1.18.9' - pkg.sha256sum 'ac5a7d93fd0e3cef388800b037407890882413feccca79eb0272a2715a82fa33' - - cflags = platform.is_macos? ? settings[:cflags] + '--with-cflags="-Wno-incompatible-function-pointer-types"' : '' - settings["#{pkg.get_name}_gem_install_options".to_sym] = "--platform=ruby -- \ - --use-system-libraries \ - --with-xml2-lib=#{settings[:libdir]} \ - --with-xml2-include=#{settings[:includedir]}/libxml2 \ - --with-xslt-lib=#{settings[:libdir]} \ - --with-xslt-include=#{settings[:includedir]} \ - #{cflags}" - instance_eval File.read('configs/components/_base-rubygem.rb') - pkg.build_requires 'rubygem-mini_portile2' - gem_home = settings[:gem_home] - pkg.environment "GEM_HOME", gem_home - if platform.is_macos? - pkg.environment "PKG_CONFIG_PATH", "#{settings[:libdir]}/pkgconfig" - if platform.is_cross_compiled? - pkg.install do - "rm -r #{gem_home}/gems/nokogiri-#{pkg.get_version}/ext/nokogiri/tmp" - end - end - end -end diff --git a/configs/components/rubygem-nori.rb b/configs/components/rubygem-nori.rb index f9d01248..ae9ae40b 100644 --- a/configs/components/rubygem-nori.rb +++ b/configs/components/rubygem-nori.rb @@ -5,13 +5,10 @@ # https://github.com/savonrb/nori/blob/main/CHANGELOG.md ##### component 'rubygem-nori' do |pkg, settings, platform| - if settings[:ruby_version].to_f >= 3.0 - pkg.version '2.7.1' - pkg.md5sum '83952a081b5e86d5aa62943ca9ccf312' - else - pkg.version '2.6.0' - pkg.md5sum 'dc9c83026c10a3eb7093b9c8208c84f7' - end + ### Maintained by update_gems automation ### + pkg.version '2.7.1' + pkg.md5sum '83952a081b5e86d5aa62943ca9ccf312' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-openfact.rb b/configs/components/rubygem-openfact.rb index 84afad9c..273ad05e 100644 --- a/configs/components/rubygem-openfact.rb +++ b/configs/components/rubygem-openfact.rb @@ -4,8 +4,10 @@ # https://github.com/OpenVoxProject/openfact/releases ##### component 'rubygem-openfact' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '5.1.0' pkg.sha256sum '569b93bc6941f8efeef55c138577ae2e3ff4f6727657f9f48925c4a657d3f70c' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-optimist.rb b/configs/components/rubygem-optimist.rb index 0c8cffe8..130c577a 100644 --- a/configs/components/rubygem-optimist.rb +++ b/configs/components/rubygem-optimist.rb @@ -4,8 +4,10 @@ # https://github.com/ManageIQ/optimist/blob/master/CHANGELOG.md ##### component 'rubygem-optimist' do |pkg, settings, _platform| + ### Maintained by update_gems automation ### pkg.version '3.2.1' pkg.sha256sum '8cf8a0fd69f3aa24ab48885d3a666717c27bc3d9edd6e976e18b9d771e72e34e' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-orchestrator_client.rb b/configs/components/rubygem-orchestrator_client.rb index 22f75282..12ab1f11 100644 --- a/configs/components/rubygem-orchestrator_client.rb +++ b/configs/components/rubygem-orchestrator_client.rb @@ -4,8 +4,10 @@ # https://github.com/puppetlabs/orchestrator_client-ruby/tags ##### component 'rubygem-orchestrator_client' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.7.1' pkg.md5sum '177686e31c134ae9fdee25ba8c0404a0' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-paint.rb b/configs/components/rubygem-paint.rb index 6536b5a0..ceff522d 100644 --- a/configs/components/rubygem-paint.rb +++ b/configs/components/rubygem-paint.rb @@ -4,8 +4,10 @@ # https://github.com/janlelis/paint/blob/main/CHANGELOG.md ##### component 'rubygem-paint' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.3.0' pkg.md5sum '5f51716cec1f4fe3db8ba1880f9fc875' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-prime.rb b/configs/components/rubygem-prime.rb index e9c8e695..f87b19a5 100644 --- a/configs/components/rubygem-prime.rb +++ b/configs/components/rubygem-prime.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/prime/releases ##### component 'rubygem-prime' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.1.4' pkg.sha256sum '4d755ebf7c2994a6f3a3fee0d072063be3fff2d4042ebff6cd5eebd4747a225e' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-public_suffix.rb b/configs/components/rubygem-public_suffix.rb index 11eb90c2..8d9f2d43 100644 --- a/configs/components/rubygem-public_suffix.rb +++ b/configs/components/rubygem-public_suffix.rb @@ -4,8 +4,10 @@ # https://github.com/weppos/publicsuffix-ruby/blob/main/CHANGELOG.md ##### component 'rubygem-public_suffix' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '6.0.2' pkg.sha256sum 'bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-puppet-resource_api.rb b/configs/components/rubygem-puppet-resource_api.rb index 52c21317..d039dd65 100644 --- a/configs/components/rubygem-puppet-resource_api.rb +++ b/configs/components/rubygem-puppet-resource_api.rb @@ -5,8 +5,10 @@ # https://github.com/puppetlabs/puppet-resource_api/blob/main/CHANGELOG.md ##### component 'rubygem-puppet-resource_api' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.0.0' pkg.sha256sum '4649fcb5d5e5f8cbda0887f706b95be5b52a089bcf98ce8ebf0496c3266fd9c4' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-puppet-strings.rb b/configs/components/rubygem-puppet-strings.rb index 24cfa7e4..864b50d7 100644 --- a/configs/components/rubygem-puppet-strings.rb +++ b/configs/components/rubygem-puppet-strings.rb @@ -5,8 +5,10 @@ # https://github.com/puppetlabs/puppet-strings/blob/main/CHANGELOG.md ##### component 'rubygem-puppet-strings' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '5.0.0' pkg.sha256sum '9f93221dab4d9c7441d0c7e4d9b5066e65dc325209487e6638b5cb3b7056fa8b' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-puppet.rb b/configs/components/rubygem-puppet.rb index 3ec9f19b..028ebc23 100644 --- a/configs/components/rubygem-puppet.rb +++ b/configs/components/rubygem-puppet.rb @@ -6,8 +6,10 @@ # To be replaced with openvox ##### component 'rubygem-puppet' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '8.10.0' pkg.sha256sum 'f2f5de8f5a794ec49ac30f42806c9ffb5cd42c9908ab3014f9d8ea68a21c2a3a' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-puppet_forge.rb b/configs/components/rubygem-puppet_forge.rb index 0b3b8d56..6ce2425c 100644 --- a/configs/components/rubygem-puppet_forge.rb +++ b/configs/components/rubygem-puppet_forge.rb @@ -9,8 +9,11 @@ # in the agent before bumping this. ##### component 'rubygem-puppet_forge' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED pkg.version '5.0.4' pkg.md5sum '04a2ca2f027ed41d9142ced587b71bd7' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-puppetfile-resolver.rb b/configs/components/rubygem-puppetfile-resolver.rb index fd8affba..8dae4f4d 100644 --- a/configs/components/rubygem-puppetfile-resolver.rb +++ b/configs/components/rubygem-puppetfile-resolver.rb @@ -5,9 +5,11 @@ # Notes: # Deprecated and needs to be removed. ##### -component "rubygem-puppetfile-resolver" do |pkg, settings, platform| - pkg.version "0.6.3" - pkg.md5sum "8377387749cf0fcfcfd9f8c0c6baaf0c" +component 'rubygem-puppetfile-resolver' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '0.6.3' + pkg.md5sum '8377387749cf0fcfcfd9f8c0c6baaf0c' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-r10k.rb b/configs/components/rubygem-r10k.rb index a09e6924..5a76bf49 100644 --- a/configs/components/rubygem-r10k.rb +++ b/configs/components/rubygem-r10k.rb @@ -4,8 +4,10 @@ # https://github.com/puppetlabs/r10k/blob/main/CHANGELOG.mkd ##### component 'rubygem-r10k' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '5.0.2' pkg.sha256sum '48e24e2b8447cdc56b03303b741247a5255bb40f170c9d113c5d3dbd8c83e8b3' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-rexml.rb b/configs/components/rubygem-rexml.rb index 607ad6a5..86726bbb 100644 --- a/configs/components/rubygem-rexml.rb +++ b/configs/components/rubygem-rexml.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/rexml/releases ##### component 'rubygem-rexml' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.4.2' pkg.sha256sum '1384268554a37af5da5279431ca3f2f37d46f09ffdd6c95e17cc84c83ea7c417' + ### End automated maintenance section ### settings["#{pkg.get_name}_remove_older_versions".to_sym] = true diff --git a/configs/components/rubygem-rgen.rb b/configs/components/rubygem-rgen.rb index aa659eb7..21d86f9f 100644 --- a/configs/components/rubygem-rgen.rb +++ b/configs/components/rubygem-rgen.rb @@ -4,8 +4,10 @@ # https://github.com/mthiede/rgen/blob/master/CHANGELOG ##### component 'rubygem-rgen' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.10.2' pkg.sha256sum 'd978f84887a0b4815ff3a0e0c4d43a15cdeeac9fd4da02db8ec3ecd0f222f371' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-ruby2_keywords.rb b/configs/components/rubygem-ruby2_keywords.rb index f9a1eb17..331d6d6a 100644 --- a/configs/components/rubygem-ruby2_keywords.rb +++ b/configs/components/rubygem-ruby2_keywords.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/ruby2_keywords/releases ##### component 'rubygem-ruby2_keywords' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.0.5' pkg.md5sum '89bc1e9231e63a0f93599772ae871e03' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-ruby_smb.rb b/configs/components/rubygem-ruby_smb.rb index 559566b4..d21a9009 100644 --- a/configs/components/rubygem-ruby_smb.rb +++ b/configs/components/rubygem-ruby_smb.rb @@ -7,8 +7,11 @@ # and make sure this doesn't break Bolt SMB support. ##### component 'rubygem-ruby_smb' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + # PINNED pkg.version '1.1.0' pkg.md5sum 'f926be4cb045b5984d02dc10e2b240ca' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-rubyntlm.rb b/configs/components/rubygem-rubyntlm.rb index c5b53c7d..0be8a24f 100644 --- a/configs/components/rubygem-rubyntlm.rb +++ b/configs/components/rubygem-rubyntlm.rb @@ -6,7 +6,11 @@ component 'rubygem-rubyntlm' do |pkg, settings, platform| # Do not update past this version without solving the jruby/ruby2.7 issue described in the commit # message this comment is associated with. + ### Maintained by update_gems automation ### + # PINNED pkg.version '0.6.3' pkg.md5sum 'e1f7477acf8a7d3effb2a3fb931aa84c' + ### End automated maintenance section ### + instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-rubyzip.rb b/configs/components/rubygem-rubyzip.rb index fe7615e3..5c33356f 100644 --- a/configs/components/rubygem-rubyzip.rb +++ b/configs/components/rubygem-rubyzip.rb @@ -5,8 +5,10 @@ # https://github.com/rubyzip/rubyzip/blob/master/Changelog.md ##### component 'rubygem-rubyzip' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.0.2' pkg.sha256sum '30f75c0b631e23c0891453acbcc019bc1496cd44f4a3ade4ff76bc09a595cfa6' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-scanf.rb b/configs/components/rubygem-scanf.rb index a5a4abec..2a09454d 100644 --- a/configs/components/rubygem-scanf.rb +++ b/configs/components/rubygem-scanf.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/scanf # https://github.com/ruby/scanf/releases ##### -component "rubygem-scanf" do |pkg, settings, platform| +component 'rubygem-scanf' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.0.0' - pkg.md5sum "6a48b02b5d7109331afa8bd9d55a802e" + pkg.md5sum '6a48b02b5d7109331afa8bd9d55a802e' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-semantic_puppet.rb b/configs/components/rubygem-semantic_puppet.rb index c2326643..45763973 100644 --- a/configs/components/rubygem-semantic_puppet.rb +++ b/configs/components/rubygem-semantic_puppet.rb @@ -3,16 +3,11 @@ # https://rubygems.org/gems/semantic_puppet # https://github.com/puppetlabs/semantic_puppet/blob/main/CHANGELOG.md ##### -component "rubygem-semantic_puppet" do |pkg, settings, platform| - if platform.is_cross_compiled? && platform.is_solaris? - # solaris 10/11 sparc are failing in agent-runtime-7.x installing semantic_puppet because the gem requires ruby >= 2.7.0 - # when cross compiling on sparc, we use ancient pl-ruby or equivalent. For these older platforms, use older semantic_puppet - pkg.version = '1.0.4' - pkg.sha256sum '5d8380bf733c1552ef77e06a7c44a6d5b48def7d390ecf3bd71cad477f5ce13d' - else - pkg.version '1.1.1' - pkg.sha256sum '15ff5b48d7f856549eb66b927a8894d3668b211970c9d7dc07dd4db57f5c7a96' - end +component 'rubygem-semantic_puppet' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '1.1.1' + pkg.sha256sum '15ff5b48d7f856549eb66b927a8894d3668b211970c9d7dc07dd4db57f5c7a96' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-sys-filesystem.rb b/configs/components/rubygem-sys-filesystem.rb index 51d81f86..80a6f102 100644 --- a/configs/components/rubygem-sys-filesystem.rb +++ b/configs/components/rubygem-sys-filesystem.rb @@ -4,13 +4,10 @@ # https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md ##### component 'rubygem-sys-filesystem' do |pkg, settings, platform| - if platform.is_solaris? - pkg.version '1.4.5' - pkg.sha256sum '1b61da4ace0f71fc4304126acf005fb8cd03677081bb352343199fddc9eaa56d' - else - pkg.version '1.5.3' - pkg.sha256sum '17b561d1be683c34bc53946461ea9d67012d8f395e7297db8c63b9018cb30ece' - end + ### Maintained by update_gems automation ### + pkg.version '1.5.3' + pkg.sha256sum '17b561d1be683c34bc53946461ea9d67012d8f395e7297db8c63b9018cb30ece' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-terminal-table.rb b/configs/components/rubygem-terminal-table.rb index 425beea4..e542a051 100644 --- a/configs/components/rubygem-terminal-table.rb +++ b/configs/components/rubygem-terminal-table.rb @@ -4,8 +4,10 @@ # https://github.com/tj/terminal-table/releases ##### component 'rubygem-terminal-table' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '4.0.0' pkg.sha256sum 'f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-text.rb b/configs/components/rubygem-text.rb index e05fae26..4d2cff19 100644 --- a/configs/components/rubygem-text.rb +++ b/configs/components/rubygem-text.rb @@ -3,9 +3,11 @@ # https://rubygems.org/gems/text # https://github.com/threedaymonk/text/tags ##### -component "rubygem-text" do |pkg, settings, platform| - pkg.version "1.3.1" - pkg.md5sum "514c3d1db7a955fe793fc0cb149c164f" +component 'rubygem-text' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '1.3.1' + pkg.md5sum '514c3d1db7a955fe793fc0cb149c164f' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-thor.rb b/configs/components/rubygem-thor.rb index a49f5a6f..98946aaa 100644 --- a/configs/components/rubygem-thor.rb +++ b/configs/components/rubygem-thor.rb @@ -4,8 +4,10 @@ # https://github.com/rails/thor/releases ##### component 'rubygem-thor' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.sha256sum '8763e822ccb0f1d7bee88cde131b19a65606657b847cc7b7b4b82e772bcd8a3d' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-unicode-display_width.rb b/configs/components/rubygem-unicode-display_width.rb index deb397bd..0f047e07 100644 --- a/configs/components/rubygem-unicode-display_width.rb +++ b/configs/components/rubygem-unicode-display_width.rb @@ -4,8 +4,10 @@ # https://github.com/janlelis/unicode-display_width/blob/main/CHANGELOG.md ##### component 'rubygem-unicode-display_width' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '3.1.5' pkg.sha256sum 'bf566817855ee7ee3adcf7bace0d5906cb14401417db59193f8a5fcedf02dd4e' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-webrick.rb b/configs/components/rubygem-webrick.rb index 5f9d971a..e17c7793 100644 --- a/configs/components/rubygem-webrick.rb +++ b/configs/components/rubygem-webrick.rb @@ -4,8 +4,10 @@ # https://github.com/ruby/webrick/releases ##### component 'rubygem-webrick' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.9.1' pkg.sha256sum 'b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-windows_error.rb b/configs/components/rubygem-windows_error.rb index 93de90b5..6da5aaf9 100644 --- a/configs/components/rubygem-windows_error.rb +++ b/configs/components/rubygem-windows_error.rb @@ -4,8 +4,10 @@ # https://github.com/rapid7/windows_error/tags ##### component 'rubygem-windows_error' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.1.5' pkg.md5sum 'cb1faeaed0e3b1e4d4ad4e7d1aef76c7' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-winrm-fs.rb b/configs/components/rubygem-winrm-fs.rb index d20d1bea..3f6bad70 100644 --- a/configs/components/rubygem-winrm-fs.rb +++ b/configs/components/rubygem-winrm-fs.rb @@ -4,8 +4,10 @@ # https://github.com/WinRb/winrm-fs/tags ##### component 'rubygem-winrm-fs' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '1.3.5' pkg.md5sum 'dcde27a3aff684b8277c069cd4b2efe7' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-winrm.rb b/configs/components/rubygem-winrm.rb index 2baca8bf..7f781b64 100644 --- a/configs/components/rubygem-winrm.rb +++ b/configs/components/rubygem-winrm.rb @@ -4,8 +4,10 @@ # https://github.com/WinRb/WinRM/releases ##### component 'rubygem-winrm' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '2.3.9' pkg.sha256sum 'ef6b767c5772d06e186300b506ea5e65afb849904a551f8482a5cfc2a1be5d06' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-yard.rb b/configs/components/rubygem-yard.rb index fc7c4b20..12830812 100644 --- a/configs/components/rubygem-yard.rb +++ b/configs/components/rubygem-yard.rb @@ -4,8 +4,10 @@ # https://github.com/lsegal/yard/releases ##### component 'rubygem-yard' do |pkg, settings, platform| + ### Maintained by update_gems automation ### pkg.version '0.9.37' pkg.sha256sum 'a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992' + ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/runtime-bolt.rb b/configs/components/runtime-bolt.rb deleted file mode 100644 index cafb0064..00000000 --- a/configs/components/runtime-bolt.rb +++ /dev/null @@ -1,28 +0,0 @@ -# This component exists to link in the gcc runtime libraries. -component "runtime-bolt" do |pkg, settings, platform| - pkg.environment "PROJECT_SHORTNAME", "bolt" - - if platform.is_windows? - lib_type = platform.architecture == "x64" ? "seh" : "sjlj" - pkg.install_file "#{settings[:gcc_bindir]}/libgcc_s_#{lib_type}-1.dll", "#{settings[:bindir]}/libgcc_s_#{lib_type}-1.dll" - - # zlib, gdbm, yaml-cpp and iconv are all runtime dependancies of ruby, and their libraries need to exist inside our vendored ruby - pkg.build_requires "pl-zlib-#{platform.architecture}" - pkg.install_file "#{settings[:tools_root]}/bin/zlib1.dll", "#{settings[:ruby_bindir]}/zlib1.dll" - pkg.install_file "#{settings[:tools_root]}/bin/libgdbm-4.dll", "#{settings[:ruby_bindir]}/libgdbm-4.dll" - pkg.install_file "#{settings[:tools_root]}/bin/libgdbm_compat-4.dll", "#{settings[:ruby_bindir]}/libgdbm_compat-4.dll" - pkg.install_file "#{settings[:tools_root]}/bin/libiconv-2.dll", "#{settings[:ruby_bindir]}/libiconv-2.dll" - pkg.install_file "#{settings[:tools_root]}/bin/libffi-6.dll", "#{settings[:ruby_bindir]}/libffi-6.dll" - elsif settings[:supports_pie] - - # Do nothing for distros that have a suitable compiler do not use pl-build-tools - - else # Linux and Solaris systems - libbase = platform.architecture =~ /64/ ? 'lib64' : 'lib' - libdir = "/opt/pl-build-tools/#{libbase}" - pkg.add_source "file://resources/files/runtime/runtime.sh" - pkg.install do - "bash runtime.sh #{libdir}" - end - end -end diff --git a/configs/components/runtime-openbolt.rb b/configs/components/runtime-openbolt.rb new file mode 100644 index 00000000..a71c830c --- /dev/null +++ b/configs/components/runtime-openbolt.rb @@ -0,0 +1,9 @@ +# This component exists to link in the gcc runtime libraries. +component 'runtime-openbolt' do |pkg, settings, platform| + pkg.environment "PROJECT_SHORTNAME", "bolt" + + if platform.is_windows? + lib_type = platform.architecture == "x64" ? "seh" : "sjlj" + pkg.install_file "#{settings[:gcc_bindir]}/libgcc_s_#{lib_type}-1.dll", "#{settings[:bindir]}/libgcc_s_#{lib_type}-1.dll" + end +end diff --git a/configs/projects/bolt-runtime.rb b/configs/projects/openbolt-runtime.rb similarity index 71% rename from configs/projects/bolt-runtime.rb rename to configs/projects/openbolt-runtime.rb index 8043f44b..0c355219 100644 --- a/configs/projects/bolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -1,9 +1,9 @@ -project 'bolt-runtime' do |proj| +project 'openbolt-runtime' do |proj| # Used in component configurations to conditionally include dependencies - proj.setting(:runtime_project, 'bolt') + proj.setting(:runtime_project, 'openbolt') proj.setting(:ruby_version, '3.2') # Leave the .Z out for Ruby 3.2 proj.setting(:openssl_version, '3.0') - # Legacy algos must be enabled in OpenSSL >= 3.0 for Bolt's WinRM transport to work. + # Legacy algos must be enabled in OpenSSL >= 3.0 for OpenBolt's WinRM transport to work. proj.setting(:use_legacy_openssl_algos, true) proj.setting(:augeas_version, '1.14.1') @@ -13,48 +13,53 @@ proj.generate_archives true proj.generate_packages false - proj.description "The Bolt runtime contains third-party components needed for Bolt standalone packaging" - proj.license "See components" - proj.vendor "Vox Pupuli " - proj.homepage "https://github.com/OpenVoxProject" - proj.identifier "org.voxpupuli" + proj.description 'The OpenBolt runtime contains third-party components needed for OpenBolt standalone packaging' + proj.license 'See components' + proj.vendor 'Vox Pupuli ' + proj.homepage 'https://github.com/OpenVoxProject' + proj.identifier 'org.voxpupuli' if platform.is_windows? - proj.setting(:company_id, "PuppetLabs") - proj.setting(:product_id, "Bolt") - if platform.architecture == "x64" - proj.setting(:base_dir, "ProgramFiles64Folder") + proj.setting(:company_id, 'VoxPupuli') + proj.setting(:pl_company_id, 'PuppetLabs') + proj.setting(:product_id, 'OpenBolt') + proj.setting(:pl_product_id, 'Bolt') + if platform.architecture == 'x64' + proj.setting(:base_dir, 'ProgramFiles64Folder') else - proj.setting(:base_dir, "ProgramFilesFolder") + proj.setting(:base_dir, 'ProgramFilesFolder') end # We build for windows not in the final destination, but in the paths that correspond # to the directory ids expected by WIX. This will allow for a portable installation (ideally). - proj.setting(:prefix, File.join("C:", proj.base_dir, proj.company_id, proj.product_id)) + proj.setting(:prefix, File.join('C:', proj.base_dir, proj.company_id, proj.product_id)) else - proj.setting(:prefix, "/opt/puppetlabs/bolt") + proj.setting(:prefix, '/opt/puppetlabs/bolt') end proj.setting(:ruby_dir, proj.prefix) proj.setting(:bindir, File.join(proj.prefix, 'bin')) proj.setting(:ruby_bindir, proj.bindir) proj.setting(:libdir, File.join(proj.prefix, 'lib')) - proj.setting(:includedir, File.join(proj.prefix, "include")) - proj.setting(:datadir, File.join(proj.prefix, "share")) - proj.setting(:mandir, File.join(proj.datadir, "man")) + proj.setting(:includedir, File.join(proj.prefix, 'include')) + proj.setting(:datadir, File.join(proj.prefix, 'share')) + proj.setting(:mandir, File.join(proj.datadir, 'man')) if platform.is_windows? - proj.setting(:host_ruby, File.join(proj.ruby_bindir, "ruby.exe")) - proj.setting(:host_gem, File.join(proj.ruby_bindir, "gem.bat")) + proj.setting(:host_ruby, File.join(proj.ruby_bindir, 'ruby.exe')) + proj.setting(:host_gem, File.join(proj.ruby_bindir, 'gem.bat')) # For windows, we need to ensure we are building for mingw not cygwin platform_triple = platform.platform_triple host = "--host #{platform_triple}" else - proj.setting(:host_ruby, File.join(proj.ruby_bindir, "ruby")) - proj.setting(:host_gem, File.join(proj.ruby_bindir, "gem")) + proj.setting(:host_ruby, File.join(proj.ruby_bindir, 'ruby')) + proj.setting(:host_gem, File.join(proj.ruby_bindir, 'gem')) end ruby_base_version = proj.ruby_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2.0') + ruby_version_y = proj.ruby_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2') + ruby_version_x = proj.ruby_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1') + proj.setting(:gem_home, File.join(proj.libdir, 'ruby', 'gems', ruby_base_version)) proj.setting(:gem_install, "#{proj.host_gem} install --no-document --local --bindir=#{proj.ruby_bindir}") @@ -63,35 +68,31 @@ # Define default CFLAGS and LDFLAGS for most platforms, and then # tweak or adjust them as needed. - proj.setting(:cppflags, "-I#{proj.includedir} -I/opt/pl-build-tools/include") - proj.setting(:cflags, "#{proj.cppflags}") - proj.setting(:ldflags, "-L#{proj.libdir} -L/opt/pl-build-tools/lib -Wl,-rpath=#{proj.libdir}") + proj.setting(:cppflags, "-I#{proj.includedir}") + proj.setting(:cflags, proj.cppflags) + proj.setting(:ldflags, "-L#{proj.libdir} -Wl,-rpath=#{proj.libdir}") # Platform specific overrides or settings, which may override the defaults if platform.is_windows? - arch = platform.architecture == "x64" ? "64" : "32" - proj.setting(:gcc_root, "C:/tools/mingw#{arch}") + arch = platform.architecture == 'x64' ? '64' : '32' + proj.setting(:gcc_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") proj.setting(:gcc_bindir, "#{proj.gcc_root}/bin") - proj.setting(:tools_root, "C:/tools/pl-build-tools") - proj.setting(:cppflags, "-I#{settings[:includedir]}/ruby-2.7.0 -I#{proj.tools_root}/include -I#{proj.gcc_root}/include -I#{proj.includedir}") + proj.setting(:tools_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") + # If tools_root ever differs from gcc_root again, add it back here. + proj.setting(:cppflags, "-I#{proj.gcc_root}/include -I#{proj.gcc_root}/include/readline -I#{proj.includedir}") proj.setting(:cflags, "#{proj.cppflags}") - proj.setting(:ldflags, "-L#{proj.tools_root}/lib -L#{proj.gcc_root}/lib -L#{proj.libdir} -Wl,--nxcompat -Wl,--dynamicbase") - proj.setting(:cygwin, "nodosfilewarning winsymlinks:native") + proj.setting(:ldflags, "-L#{proj.gcc_root}/lib -L#{proj.libdir} -Wl,--nxcompat -Wl,--dynamicbase") + proj.setting(:cygwin, 'nodosfilewarning winsymlinks:native') end if platform.is_macos? - proj.setting(:cppflags, "-I#{proj.includedir}") - proj.setting(:cflags, proj.cppflags.to_s) - - # For OS X, we should optimize for an older x86 architecture than Apple - # currently ships for; there's a lot of older xeon chips based on - # that architecture still in use throughout the Mac ecosystem. - # Additionally, OS X doesn't use RPATH for linking. We shouldn't - # define it or try to force it in the linker, because this might - # break gcc or clang if they try to use the RPATH values we forced. - proj.setting(:cflags, "-march=core2 -msse4 #{proj.cflags}") unless platform.architecture == 'arm64' - - proj.setting(:ldflags, "-L#{proj.libdir} ") + proj.setting(:deployment_target, '13.0') + targeting_flags = "-target #{platform.architecture}-apple-darwin22 -arch #{platform.architecture} -mmacos-version-min=13.0" + proj.setting(:cflags, "#{targeting_flags} #{proj.cflags}") + proj.setting(:cppflags, "#{targeting_flags} #{proj.cppflags}") + proj.setting(:cc, 'clang') + proj.setting(:cxx, 'clang++') + proj.setting(:ldflags, "-L#{proj.libdir}") end # These flags are applied in addition to the defaults in configs/component/openssl.rb. @@ -113,8 +114,8 @@ # Ruby and deps proj.component "openssl-#{proj.openssl_version}" - proj.component "runtime-bolt" - proj.component "puppet-ca-bundle" + proj.component 'runtime-openbolt' + proj.component 'puppet-ca-bundle' proj.component "ruby-#{proj.ruby_version}" proj.component 'rubygem-bcrypt_pbkdf' From 008d2613d0f2aa101d8559727adf405354cbcf18 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Tue, 4 Nov 2025 19:08:52 -0800 Subject: [PATCH 2/2] Add update_gems rake task This rake task will inspect the data in each rubygems-*.rb file and use the RubyGems API to find if there are any new versions available, and update accordingly. It will also add missing or new dependencies, and if those are not yet added to the repo, it will create a component file for those. --- Gemfile | 3 +- README.md | 44 ++++++ tasks/update_gems.rake | 319 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 364 insertions(+), 2 deletions(-) create mode 100644 tasks/update_gems.rake diff --git a/Gemfile b/Gemfile index 9c418dd1..1eb3eed2 100644 --- a/Gemfile +++ b/Gemfile @@ -20,11 +20,10 @@ group(:development, optional: true) do gem 'parallel', require: false gem 'colorize', require: false gem 'hashdiff', require: false + gem 'tty-table', require: false end group(:release, optional: true) do gem 'faraday-retry', '~> 2.1', require: false gem 'github_changelog_generator', '~> 1.16.4', require: false end - -#gem 'rubocop', "~> 0.34.2" diff --git a/README.md b/README.md index ca25854c..9f313850 100644 --- a/README.md +++ b/README.md @@ -55,3 +55,47 @@ Where: the [configs/platforms](configs/platforms) directory - `target-vm` is the hostname of the VM you will build on. You must have root ssh access configured for this host, and it must match the target platform. + +## Updating rubygem components + +This repo includes a rake task that will use the RubyGems API to update all rubygem components, including adding any missing runtime dependencies. +``` +$ bundle exec rake vox:update_gems +``` +In each `rubygem-*.rb` file in `configs/components`, you will find a "magic" block near the top. For example: +``` +### Maintained by update_gems automation ### +pkg.version '2.14.0' +pkg.sha256sum '8699cfe5d97e55268f2596f9a9d5a43736808a943714e3d9a53e6110593941cd' +pkg.build_requires 'rubygem-faraday-net_http' +pkg.build_requires 'rubygem-json' +pkg.build_requires 'rubygem-logger' +### End automated maintenance section ### +``` +Everything in this block can be automatically updated by the rake task. There are some special comments that change the behavior. + +`# PINNED` right before the `pkg.version` line will keep this component at the current version. Dependencies will still be checked to ensure none are missing. For example: +``` +### Maintained by update_gems automation ### +# PINNED +pkg.version '2.14.0' +pkg.sha256sum '8699cfe5d97e55268f2596f9a9d5a43736808a943714e3d9a53e6110593941cd' +pkg.build_requires 'rubygem-faraday-net_http' +pkg.build_requires 'rubygem-json' +pkg.build_requires 'rubygem-logger' +### End automated maintenance section ### +``` + +Adding `# GEM TYPE: ` will allow you to specify a checksum for a precompiled version of a gem. This can be used with other logic within the magic block to specify a checksum based on platform. For example: +``` +### Maintained by update_gems automation ### +pkg.version '1.17.2' +if platform.is_windows? + # GEM TYPE: x64-mingw32 + pkg.sha256sum '' +else + pkg.sha256sum '297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6' +end +### End automated maintenance section ### +``` +The rake task will leave any lines it doesn't know about alone (in this case, the if/else/end logic) and update both checksums, with the default without the `# GEM TYPE` decorator being the `ruby` uncompiled gem. Try not to get too fancy with logic in here. diff --git a/tasks/update_gems.rake b/tasks/update_gems.rake new file mode 100644 index 00000000..9956cf73 --- /dev/null +++ b/tasks/update_gems.rake @@ -0,0 +1,319 @@ +# frozen_string_literal: true + +require 'rake' +require 'json' +require 'uri' +require 'net/http' +require 'rubygems/version' +require 'rubygems/requirement' +require 'colorize' +require 'tty-table' +require 'set' + +# ----- Constants ----- +REPO_ROOT = File.expand_path('..', __dir__) +COMPONENT_DIR = File.join(REPO_ROOT, 'configs', 'components') +COMPONENT_GLOB = File.join(COMPONENT_DIR, 'rubygem-*.rb') + +MAINT_START = /^\s*### Maintained by update_gems automation ###\s*$/ +MAINT_END = /^\s*### End automated maintenance section ###\s*$/ +PINNED_LINE = /^\s*#\s*PINNED\b.*$/ +VER_LINE = /^\s*pkg\.version\s+['"](?[^'"]+)['"]\s*$/ +SHA_LINE = /^\s*pkg\.(?:sha256sum|md5sum)\s+['"](?[0-9a-fA-F]+)['"]\s*$/ +BUILD_REQ = /^\s*pkg\.build_requires\s+['"]rubygem-([^'"]+)['"]\s*$/ +GEM_TYPE = /^\s*#\s*GEM\s+TYPE:\s*(?[A-Za-z0-9\-_\.]+)\s*$/ + +TARGET_RUBY_VER = ENV['TARGET_RUBY']&.strip || '3.2' +MAX_TABLE_WIDTH = 140 +VERSIONS_CACHE = {} + +def create_component_file(path, gemname, version, sha, deps = []) + lines = [] + lines << "#####\n" + lines << "# Component release information:\n" + lines << "# https://rubygems.org/gems/#{gemname}\n" + lines << "#####\n" + lines << "component 'rubygem-#{gemname}' do |pkg, settings, platform|\n" + lines << " ### Maintained by update_gems automation ###\n" + lines << " pkg.version '#{version}'\n" + lines << " pkg.sha256sum '#{sha}'\n" + deps.each { |name| lines << " pkg.build_requires 'rubygem-#{name}'\n" } + lines << " ### End automated maintenance section ###\n" + lines << "\n" + lines << " instance_eval File.read('configs/components/_base-rubygem.rb')\n" + lines << "end\n" + File.write(path, lines.join, encoding: 'UTF-8') +end + +# ----- Table and progress output ----- +def color_status(s) + case s + when 'UP TO DATE' then s.green + when 'UPDATED' then s.yellow + when 'ADDED' then s.cyan + when 'ERROR' then s.red + when 'UNKNOWN' then s.red + else s + end +end + +def print_table(headers, rows) + comp_w, status_w, version_w = 50, 12, 32 + deps_w = [MAX_TABLE_WIDTH - (comp_w + status_w + version_w + 13), 10].max + table = TTY::Table.new headers, rows + puts table.render(:ascii, width: MAX_TABLE_WIDTH, resize: true, multiline: true, padding: [0,1,0,1]) { |r| + r.alignments = [:left, :center, :left, :left] + r.border.separator = :each_row + r.column_widths = [comp_w, status_w, version_w, deps_w] + } +end + +@progress_max_width = 0 +def progress_print(msg, io: $stderr) + clean = msg[0, MAX_TABLE_WIDTH - 1] + @progress_max_width = [@progress_max_width, clean.length].max + io.print("\r#{clean.ljust(@progress_max_width)}") + io.flush +end + +def progress_clear(io: $stderr) + return if @progress_max_width <= 0 + io.print("\r#{' ' * @progress_max_width}\r") + io.flush + @progress_max_width = 0 +end + +# ----- Rubygems API access ----- +def http(url) + uri = URI(url) + Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |h| + r = Net::HTTP::Get.new(uri) + r['User-Agent'] = "openvox-runtime-script/1.0" + res = h.request(r) + raise "HTTP #{res.code} #{uri}" unless res.is_a?(Net::HTTPSuccess) + res.body + end +end + +def get_versions(name) + VERSIONS_CACHE[name] ||= JSON.parse(http("https://rubygems.org/api/v1/versions/#{name}.json")) +end + +def get_version_details(name, version) + enc = URI.encode_www_form_component(version.to_s) + JSON.parse(http("https://rubygems.org/api/v2/rubygems/#{name}/versions/#{enc}.json")) +end + +# ----- Fetching gem metadata ----- +def ruby_req_ok?(req_str) + req = (req_str.nil? || req_str.strip.empty?) ? '>= 0' : req_str + req = req.split(',').map(&:strip) + Gem::Requirement.new(req).satisfied_by?(Gem::Version.new(TARGET_RUBY_VER)) +end + +def find_sha(name, version, platform) + # The v2 API only returns SHA for the "ruby" platform + if platform.nil? || platform == '' || platform == 'ruby' + details = get_version_details(name, version) + raise "SHA not found in details for gem #{name} version #{version}" unless details['sha'] + return details['sha'] + end + + # Otherwise, use the v1 API to find the specific platform + list = get_versions(name) + metadata = list.find { |v| v['number'] == version && v['platform'] == platform } + raise "Version #{version} (platform: #{platform}) not found for gem #{name}" unless metadata + raise "SHA not found in metadata for gem #{name} version #{version} platform #{platform}" unless metadata['sha'] + metadata['sha'] +end + +def get_metadata(name:, version: nil, platforms: ['ruby']) + all = get_versions(name) + raise "No versions found for gem #{name}" if all.empty? + + # Choose version, either the one passed in, or the latest compatible + new_version = version + unless new_version + candidates = all.select do |v| + next false if v['prerelease'] + next false if v['yanked'] + next false unless v['platform'].nil? || v['platform'] == 'ruby' + ruby_req_ok?(v['ruby_version']) + end + raise "No compatible versions found for gem #{name}" if candidates.empty? + new_version = candidates.max_by { |v| Gem::Version.new(v['number']) }['number'] + end + + # Gather SHAs for requested platforms + platforms = platforms.compact.uniq + shas = {} + platforms.each do |platform| + shas[platform] = find_sha(name, new_version, platform) + end + + details = get_version_details(name, new_version) + deps = (details.dig('dependencies', 'runtime') || []) + + { 'version' => new_version, 'shas' => shas, 'dependencies' => deps } +end + +# ----- Processing component files ----- +def process_component(path, gemname) + lines = File.read(path, encoding: 'UTF-8').lines + + # Find maintenance block + start = lines.index { |l| l =~ MAINT_START } or raise "Automated maintenance section not found in #{path}" + end_rel = lines[(start + 1)..].to_a.index { |l| l =~ MAINT_END } or raise "Automated maintenance section not closed in #{path}" + finish = start + 1 + end_rel + + body = lines[(start + 1)...finish] + old_body_str = body.join + + # First pass: read current version, pinned, deps, and platforms + pinned = false + current_version = nil + old_deps = [] + platforms = ['ruby'] + prev = nil + body.each do |line| + if (m = line.match(VER_LINE)) + current_version = m[:version] + pinned = !!(prev && prev =~ PINNED_LINE) + elsif (m = line.match(BUILD_REQ)) + old_deps << m[1] + elsif (m = line.match(GEM_TYPE)) + platforms << m[:platform] + end + prev = line + end + raise "pkg.version not found in maintenance section for #{path}" unless current_version + + # Resolve target version, shas, and deps + metadata = get_metadata(name: gemname, version: pinned ? current_version : nil, platforms: platforms.uniq) + target_version = metadata['version'] + shas = metadata['shas'] + new_deps = metadata['dependencies'].map { |d| d['name'] }.uniq.sort - [gemname] + newly_added = new_deps - old_deps + + # Generate new block body + new_body = [] + current_platform = nil + body.each do |l| + if (m = l.match(VER_LINE)) + new_body << l.sub(m[:version], target_version) + elsif (m = l.match(GEM_TYPE)) + current_platform = m[:platform] + new_body << l + elsif (m = l.match(SHA_LINE)) + platform = current_platform || 'ruby' + raise "No SHA found for platform #{platform} of gem #{gemname}" unless shas[platform] + new_body << l.sub('md5sum', 'sha256sum').sub(m[:sha], shas[platform]) + current_platform = nil + elsif l =~ BUILD_REQ + # Drop existing build_requires + next + else + new_body << l + end + end + + # Append new build_requires at end of block body + new_deps.each { |name| new_body << " pkg.build_requires 'rubygem-#{name}'\n" } + + new_body_str = new_body.join + block_changed = (old_body_str != new_body_str) + lines[(start + 1)...finish] = new_body if block_changed + + version_changed = (current_version != target_version) + + File.write(path, lines.join, encoding: 'UTF-8') if block_changed + + status = (version_changed || newly_added.any? || block_changed) ? 'UPDATED' : 'UP TO DATE' + ver_col = version_changed ? "#{current_version} -> #{target_version}" : '' + + # Report missing components so the task can create them + missing = new_deps.select { |name| !File.exist?(File.join(COMPONENT_DIR, "rubygem-#{name}.rb")) } + + { name: gemname, status: status, version: ver_col, deps_added: newly_added.map { |n| "rubygem-#{n}" }, missing: missing } +end + + +namespace :vox do + desc 'Update rubygem components and print a summary table or JSON of changes' + task :update_gems do + results = [] + files = Dir.glob(COMPONENT_GLOB).select { |p| File.file?(p) } + total = files.length + + files.each_with_index do |path, i| + basename = File.basename(path, '.rb') + gemname = basename.sub(/^rubygem-/, '') + progress_print("Processing (#{i + 1}/#{total}): #{basename}") + results << process_component(path, gemname) + end + progress_clear + + # Create missing component files after processing all + # Because some of the added components may have runtime + # dependencies themselves that are also missing, we need + # to keep a running queue of missing components to add. + added = [] + queue = results.flat_map { |r| r[:missing] || [] }.uniq + seen = Set.new + until queue.empty? + name = queue.shift + next if seen.include?(name) + seen << name + + progress_print("Creating component for missing gem: #{name}") + + path = File.join(COMPONENT_DIR, "rubygem-#{name}.rb") + next if File.exist?(path) + + m = get_metadata(name: name, platforms: ['ruby']) + ver = m['version'] + sha = m['shas']['ruby'] + deps = (m['dependencies'] || []).map { |d| d['name'] }.uniq.sort - [name] + + create_component_file(path, name, ver, sha, deps) + added << { name: name, version: ver, deps: deps } + + deps.each do |name| + path = File.join(COMPONENT_DIR, "rubygem-#{name}.rb") + queue << name unless File.exist?(path) || seen.include?(name) || queue.include?(name) + end + end + progress_clear + + # JSON output + if !(ARGV & ['--json', '-j', '--format=json']).empty? + payload = { + ruby_version_used_for_checks: TARGET_RUBY_VER, + results: results, + added: added, + } + puts JSON.pretty_generate(payload) + next + end + + # Table output + headers = ['Component', 'Status', 'Version update', 'Dependencies added'] + rows = results.map do |r| + [ + "rubygem-#{r[:name]}", + color_status(r[:status]), + r[:version], + r[:deps_added].join(', '), + ] + end + added.each do |info| + rows << [ + "rubygem-#{info[:name]}", + color_status('ADDED'), + info[:version].to_s, + info[:deps].to_a.uniq.sort.map { |dn| "rubygem-#{dn}" }.join(', '), + ] + end + print_table(headers, rows) + end +end \ No newline at end of file