From b4ff406190b5086ed739e5eea45d6f9c73f7ab58 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:15:05 -0800 Subject: [PATCH 01/33] Update Augeas to 0.6.0 These are now released from GitHub. This also removes the _base file and cleans up the code. --- configs/components/_base-ruby-augeas.rb | 121 ------------------------ configs/components/ruby-augeas.rb | 93 +++++++++++++++++- 2 files changed, 90 insertions(+), 124 deletions(-) delete mode 100644 configs/components/_base-ruby-augeas.rb diff --git a/configs/components/_base-ruby-augeas.rb b/configs/components/_base-ruby-augeas.rb deleted file mode 100644 index f3a1a352..00000000 --- a/configs/components/_base-ruby-augeas.rb +++ /dev/null @@ -1,121 +0,0 @@ -##### -# Component release information: -# https://github.com/hercules-team/ruby-augeas/releases -# Notes: -# This file is a basis for multiple versions/targets of ruby-augeas. -# It should not be included as a component; Instead other components should -# load it with instance_eval. See ruby-x.y-augeas.rb configs. -##### - -pkg.add_source("file://resources/patches/augeas/ruby-augeas-0.5.0-patch_c_extension.patch") - -# We can remove the below patch after https://github.com/hercules-team/ruby-augeas/pull/17 is merged. -pkg.add_source("file://resources/patches/augeas/ruby-augeas-0.5.0-patch_remove_unused_parameter.patch") - -# These can be overridden by the including component. -ruby_version ||= settings[:ruby_version] -host_ruby ||= settings[:host_ruby] -ruby_dir ||= settings[:ruby_dir] -ruby_bindir ||= settings[:ruby_bindir] - -pkg.version "0.5.0" -pkg.md5sum "a132eace43ce13ccd059e22c0b1188ac" -pkg.url "http://download.augeas.net/ruby/ruby-augeas-#{pkg.get_version}.tgz" -pkg.mirror "#{settings[:buildsources_url]}/ruby-augeas-#{pkg.get_version}.tgz" - -pkg.build_requires "ruby-#{ruby_version}" -pkg.build_requires "augeas" - -if platform.name == 'sles-11-x86_64' - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" -else - pkg.environment "PATH", "$(PATH):/opt/pl-build-tools/bin:/usr/local/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin" -end - -if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "CC", "/opt/pl-build-tools/bin/gcc" - # pl-build-tools was added to PATH above - else - pkg.environment "CC", "/opt/freeware/bin/gcc" - pkg.environment "PATH", "$(PATH):/opt/freeware/bin" - end - pkg.environment "RUBY", host_ruby - pkg.environment "LDFLAGS", " -brtl #{settings[:ldflags]}" -end - -pkg.environment "CONFIGURE_ARGS", '--vendor' -pkg.environment "PKG_CONFIG_PATH", "#{File.join(settings[:libdir], 'pkgconfig')}:/usr/lib/pkgconfig" - -if platform.is_solaris? - if platform.is_cross_compiled? - pkg.environment "RUBY", host_ruby - end - - if !platform.is_cross_compiled? && platform.architecture == 'sparc' - ruby = File.join(ruby_bindir, 'ruby') - else - # This should really only be done when cross compiling but - # to avoid breaking solaris x86_64 in 7.x continue preloading - # our hook. - ruby = "#{host_ruby} -r#{settings[:datadir]}/doc/rbconfig-#{ruby_version}-orig.rb" - end -elsif platform.is_cross_compiled? - if platform.is_linux? || platform.is_macos? - pkg.environment "RUBY", host_ruby - pkg.environment 'CC', 'clang -target arm64-apple-macos11' if platform.name =~ /osx-11/ - pkg.environment 'CC', 'clang -target arm64-apple-macos12' if platform.name =~ /osx-12/ - ruby = "#{host_ruby} -r#{settings[:datadir]}/doc/rbconfig-#{ruby_version}-orig.rb" - pkg.environment "LDFLAGS", settings[:ldflags] - end -elsif platform.is_macos? - if platform.architecture == 'arm64' - pkg.environment "PATH", "$(PATH):/opt/homebrew/bin" - end - pkg.environment 'CC', settings[:cc] - pkg.environment 'CFLAGS', settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] - ruby = File.join(ruby_bindir, 'ruby') -else - ruby = File.join(ruby_bindir, 'ruby') -end - -pkg.build do - build_commands = [] - if ruby_version =~ /^3/ - build_commands << "#{platform.patch} --strip=2 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../ruby-augeas-0.5.0-patch_c_extension.patch" - end - build_commands << "#{platform.patch} --strip=2 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../ruby-augeas-0.5.0-patch_remove_unused_parameter.patch" - build_commands << "#{ruby} ext/augeas/extconf.rb" - build_commands << "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1)" - - build_commands -end - -if settings[:ruby_vendordir] - augeas_rb_target = File.join(settings[:ruby_vendordir], 'augeas.rb') -else - # If no alternate vendordir has been set, install into default - # vendordir for this ruby version. - augeas_rb_target = File.join(ruby_dir, 'lib', 'ruby', 'vendor_ruby', 'augeas.rb') -end - -pkg.install_file 'lib/augeas.rb', augeas_rb_target - -pkg.install do - [ - "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1) DESTDIR=/ install", - ] -end - -if platform.is_solaris? || platform.is_cross_compiled_linux? - pkg.install do - "chown root:root #{augeas_rb_target}" - end -end - -# Clean after install in case we are building for multiple rubies. -pkg.install do - "#{platform[:make]} -e clean" -end diff --git a/configs/components/ruby-augeas.rb b/configs/components/ruby-augeas.rb index 0b945d6f..09303370 100644 --- a/configs/components/ruby-augeas.rb +++ b/configs/components/ruby-augeas.rb @@ -1,3 +1,90 @@ -component "ruby-augeas" do |pkg, settings, platform| - instance_eval File.read('configs/components/_base-ruby-augeas.rb') -end + ##### + # Component release information: + # https://github.com/hercules-team/ruby-augeas/releases + # Notes: 2025-11-17 - Using 0.5.0 due to issues with 0.6.0 on some platforms. + ##### +component 'ruby-augeas' do |pkg, settings, platform| + pkg.version '0.6.0' + pkg.sha256sum '98158a54c655b4823439b4bd38609f01e0b912a3d1453144082b8a5f43b0c4dc' + pkg.url "https://github.com/hercules-team/ruby-augeas/releases/download/release-#{pkg.get_version}/ruby-augeas-#{pkg.get_version}.tgz" + pkg.build_requires "ruby-#{settings[:ruby_version]}" + pkg.build_requires 'augeas' + + pkg.environment 'PATH', '$(PATH):/usr/local/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin' + pkg.environment 'CONFIGURE_ARGS', '--vendor' + pkg.environment 'PKG_CONFIG_PATH', "#{File.join(settings[:libdir], 'pkgconfig')}:/usr/lib/pkgconfig" + + if platform.is_aix? + pkg.environment 'CC', '/opt/freeware/bin/gcc' + pkg.environment 'PATH', '$(PATH):/opt/freeware/bin' + pkg.environment 'RUBY', settings[:host_ruby] + pkg.environment 'LDFLAGS', " -brtl #{settings[:ldflags]}" + end + + if platform.is_solaris? + pkg.environment 'RUBY', settings[:host_ruby] if platform.is_cross_compiled? + + if !platform.is_cross_compiled? && platform.architecture == 'sparc' + ruby = File.join(settings[:ruby_bindir], 'ruby') + else + # This should really only be done when cross compiling but + # to avoid breaking solaris x86_64 in 7.x continue preloading + # our hook. + ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" + end + elsif platform.is_cross_compiled? && (platform.is_linux? || platform.is_macos?) + pkg.environment 'RUBY', settings[:host_ruby] + ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" + pkg.environment 'LDFLAGS', settings[:ldflags] + elsif platform.is_macos? + pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin' if platform.architecture == 'arm64' + pkg.environment 'CC', settings[:cc] + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] + ruby = File.join(settings[:ruby_bindir], 'ruby') + else + ruby = File.join(settings[:ruby_bindir], 'ruby') + end + + pkg.build do + build_commands = [] + + extconf = "#{ruby} ext/augeas/extconf.rb" + # The pkg-config shim gets confused on Almalinux 9 that we are building on + # due to the version of rpm being cranky about using our older OpenSSL version, + # so bypass the shim and use pkgconf directly. + extconf += " --with-pkg-config=/usr/bin/pkgconf" if platform.name =~ /el-9/ + build_commands << extconf + build_commands << "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1)" + + build_commands + end + + if settings[:ruby_vendordir] + augeas_rb_target = File.join(settings[:ruby_vendordir], 'augeas.rb') + else + # If no alternate vendordir has been set, install into default + # vendordir for this ruby version. + augeas_rb_target = File.join(settings[:ruby_dir], 'lib', 'ruby', 'vendor_ruby', 'augeas.rb') + end + + pkg.install_file 'lib/augeas.rb', augeas_rb_target + + pkg.install do + [ + "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1) DESTDIR=/ install", + ] + end + + if platform.is_solaris? || platform.is_cross_compiled_linux? + pkg.install do + "chown root:root #{augeas_rb_target}" + end + end + + # Clean after install in case we are building for multiple rubies. + pkg.install do + "#{platform[:make]} -e clean" + end +end \ No newline at end of file From 08445a4ba0d6ec2bf9713a076a94b4d1a3deec7c Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:18:39 -0800 Subject: [PATCH 02/33] Update ruby-selinux for supported platforms This reforms the ruby-selinux component so that it appropriately defines the SELinux for each platform we currently support. This also removes the _base file and puts it in ruby-selinux.rb. --- configs/components/_base-ruby-selinux.rb | 145 ----------------------- configs/components/ruby-selinux.rb | 142 +++++++++++++++++++++- 2 files changed, 139 insertions(+), 148 deletions(-) delete mode 100644 configs/components/_base-ruby-selinux.rb diff --git a/configs/components/_base-ruby-selinux.rb b/configs/components/_base-ruby-selinux.rb deleted file mode 100644 index e900c5c2..00000000 --- a/configs/components/_base-ruby-selinux.rb +++ /dev/null @@ -1,145 +0,0 @@ -##### -# Component release information: -# https://github.com/SELinuxProject/selinux/releases -# Notes: -# This file is a basis for multiple versions/targets of ruby-selinux. -# It should not be included as a component; Instead other components should -# load it with instance_eval. See ruby-x.y-selinux.rb configs. -##### - -pkg.add_source("file://resources/patches/ruby-selinux/selinuxswig_ruby_wrap.patch") -pkg.add_source("file://resources/patches/ruby-selinux/selinuxswig_ruby_undefining_allocator.patch") -pkg.add_source("file://resources/patches/ruby-selinux/undefining_allocator_el_7.patch") - -# These can be overridden by the including component. -ruby_version ||= settings[:ruby_version] -host_ruby ||= settings[:host_ruby] -ruby_bindir ||= settings[:ruby_bindir] - -# We download tarballs because system development packages (e.g. -# libselinux-devel) don't necessarily include Swig interface files (*.i files) -if platform.name =~ /el-(6|7)|ubuntu-(16|18.04-amd64)/ - pkg.version "2.0.94" - pkg.md5sum "544f75aab11c2af352facc51af12029f" - pkg.url "https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20100525/devel/libselinux-#{pkg.get_version}.tar.gz" -elsif platform.name.start_with?('el-9') - # SELinux 3.3 is the minimum version available in RHEL 9 repos - pkg.version '3.3' - pkg.sha256sum 'acfdee27633d2496508c28727c3d41d3748076f66d42fccde2e6b9f3463a7057' - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" -elsif platform.name.start_with?('debian-12') - # SELinux 3.4 is the minimum version available in Debian 12 repos - pkg.version '3.4' - pkg.sha256sum '77c294a927e6795c2e98f74b5c3adde9c8839690e9255b767c5fca6acff9b779' - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" - pkg.build_requires 'python3-distutils' -elsif platform.name.start_with?('debian-13') - # SELinux 3.8.1 is the minimum version available in Debian 13 repos - # Double check when Trixie is released - pkg.version '3.8.1' - pkg.sha256sum 'ec2d2789f931152d21c1db1eb4bc202ce4eccede34d9be9e360e3b45243cee2c' - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" - pkg.build_requires 'python3-setuptools' -elsif platform.name.start_with?('ubuntu-24') - # SELinux 3.5 is the minimum version available in Ubuntu 24 repos - pkg.version '3.5' - pkg.sha256sum '9a3a3705ac13a2ccca2de6d652b6356fead10f36fb33115c185c5ccdf29eec19' - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" - pkg.build_requires 'python3-setuptools' -elsif platform.name =~ /el-10|ubuntu-25.04/ - # SELinux 3.7 is the minimum version available in RHEL 10 repos - pkg.version '3.7' - pkg.sha256sum 'ea03f42d13a4f95757997dba8cf0b26321fac5d2f164418b4cc856a92d2b17bd' - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" - pkg.build_requires 'python3-setuptools' -else - pkg.version "2.9" - pkg.md5sum "bb449431b6ed55a0a0496dbc366d6e31" - pkg.apply_patch "resources/patches/ruby-selinux/selinux-29-function.patch" - pkg.url "https://github.com/SELinuxProject/selinux/releases/download/20190315/libselinux-#{pkg.get_version}.tar.gz" -end -pkg.mirror "#{settings[:buildsources_url]}/libselinux-#{pkg.get_version}.tar.gz" - -pkg.build_requires "ruby-#{ruby_version}" -cc = "/opt/pl-build-tools/bin/gcc" -system_include = '-I/usr/include' -ruby = "#{ruby_bindir}/ruby -rrbconfig" - -# The RHEL 9 libselinux-devel package provides headers, but we don't want to -# use the package becuase of a compatibility issue with the shared library. -# Instead, we use the headers provided in the tarball. -system_include.prepend('-I./include ') if platform.name =~ /el-(9|10)/ - -if platform.is_cross_compiled_linux? - cc = "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - system_include = "-I/opt/pl-build-tools/#{settings[:platform_triple]}/sysroot/usr/include" - pkg.environment "RUBY", host_ruby - ruby = "#{host_ruby} -r#{settings[:datadir]}/doc/rbconfig-#{ruby_version}-orig.rb" -end - -cflags = "" - -# The platforms below use pl-build-tools -unless platform.name =~ /el-6|ubuntu-(16-amd64)/ - cc = '/usr/bin/gcc' - cflags += "#{settings[:cppflags]} #{settings[:cflags]}" -end - -pkg.build do - steps = [ - "export RUBYHDRDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"rubyhdrdir\"]')", - "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", - "export ARCHDIR=$${RUBYHDRDIR}/$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"arch\"]')", - "export INCLUDESTR=\"-I#{settings[:includedir]} -I$${RUBYHDRDIR} -I$${ARCHDIR}\"", - "cp -pr src/{selinuxswig_ruby.i,selinuxswig.i} .", - "swig -Wall -ruby #{system_include} -o selinuxswig_ruby_wrap.c -outdir ./ selinuxswig_ruby.i" - ] - - if ruby_version =~ /^3/ - # swig 4.1 generated interface does not need patching, so skip - # when running debian >= 12, fedora >= 40, etc - unless (platform.is_debian? && platform.os_version.to_i >= 12) || - (platform.is_fedora? && platform.os_version.to_i >= 40) || - (platform.is_ubuntu? && platform.os_version.to_i >= 24) || - (platform.is_el? && platform.os_version.to_i >= 10) - steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_wrap.patch" - end - # EL 7 uses an older version of swig (2.0) so a different patch is needed to - # fix warning:undefining the allocator of T_DATA class - if platform.name =~ /el-7|redhatfips-7/ - steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../undefining_allocator_el_7.patch" - else - # Ubuntu 24, Fedora 40, EL 10, and Debian 13 use a newer swig that already has the fix that's - # being patched - unless (platform.is_fedora? && platform.os_version.to_i >= 40) || - (platform.is_ubuntu? && platform.os_version.to_i >= 24) || - (platform.is_el? && platform.os_version.to_i >= 10) || - (platform.is_debian? && platform.os_version.to_i >= 13) - steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_undefining_allocator.patch" - end - end - end - - # libselinux 3.3 is the minimum version we want to build on RHEL 9, but the - # libeselinux-devel-3.3 package confusingly installs a shared library that - # uses 3.4. The hacky workaround for this is to symlink an existing library. - # PDK builds two Rubies so check if symlink exists first. Similar issue - # exists for RHEL 10. - if platform.name =~ /el-(9|10)/ - steps << 'if [ ! -L /usr/lib64/libselinux.so ]; then ln -s /usr/lib64/libselinux.so.1 /usr/lib64/libselinux.so; fi' - end - - steps.concat([ - "#{cc} $${INCLUDESTR} #{system_include} #{cflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED -c -o selinuxswig_ruby_wrap.lo selinuxswig_ruby_wrap.c", - "#{cc} $${INCLUDESTR} #{system_include} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -shared -o _rubyselinux.so selinuxswig_ruby_wrap.lo -lselinux -Wl,-z,relro,-z,now,-soname,_rubyselinux.so", - ]) -end - -pkg.install do - [ - "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", - "install -d $${VENDORARCHDIR}", - "install -p -m755 _rubyselinux.so $${VENDORARCHDIR}/selinux.so", - "#{platform[:make]} -e clean", - ] -end diff --git a/configs/components/ruby-selinux.rb b/configs/components/ruby-selinux.rb index 0175d33e..b828f174 100644 --- a/configs/components/ruby-selinux.rb +++ b/configs/components/ruby-selinux.rb @@ -1,3 +1,139 @@ -component "ruby-selinux" do |pkg, settings, platform| - instance_eval File.read('configs/components/_base-ruby-selinux.rb') -end +##### +# Component release information: +# https://github.com/SELinuxProject/selinux/releases +##### +component 'ruby-selinux' do |pkg, settings, platform| + # We download tarballs because system development packages (e.g. + # libselinux-devel) don't necessarily include Swig interface files (*.i files) + # We select the minimum version available in the platform repos. + case platform.name + when /^(el-7|amazon-2|redhatfips-7)-/ + pkg.version "2.0.94" + pkg.sha256sum 'b8312852306650e9720de5a20fe7560d935d3c90ffedca1cac25bf3f283d8a36' + pkg.url 'https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20100525/devel/libselinux-2.0.94.tar.gz' + when /^(el-8|redhatfips-8)-/ + pkg.version '2.9' + pkg.sha256sum '1bccc8873e449587d9a2b2cf253de9b89a8291b9fbc7c59393ca9e5f5f4d2693' + pkg.apply_patch 'resources/patches/ruby-selinux/selinux-29-function.patch' + pkg.url 'https://github.com/SELinuxProject/selinux/releases/download/20190315/libselinux-2.9.tar.gz' + when /^debian-11-/ + pkg.version '3.1' + pkg.sha256sum 'ea5dcbb4d859e3f999c26a13c630da2f16dff9462e3cc8cb7b458ac157d112e7' + pkg.url 'https://github.com/SELinuxProject/selinux/releases/download/20200710/libselinux-3.1.tar.gz' + pkg.build_requires 'python3-distutils' if platform.is_deb? + when /^(el-9|redhatfips-9|ubuntu-22.04)-/ + pkg.version '3.3' + pkg.sha256sum 'acfdee27633d2496508c28727c3d41d3748076f66d42fccde2e6b9f3463a7057' + pkg.build_requires 'python3-distutils' if platform.is_deb? + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^(amazon-2023|debian-12)-/ + pkg.version '3.4' + pkg.sha256sum '77c294a927e6795c2e98f74b5c3adde9c8839690e9255b767c5fca6acff9b779' + pkg.build_requires 'python3-distutils' if platform.is_deb? + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^(sles-15|ubuntu-24.04)-/ + pkg.version '3.5' + pkg.sha256sum '9a3a3705ac13a2ccca2de6d652b6356fead10f36fb33115c185c5ccdf29eec19' + pkg.build_requires 'python3-setuptools' + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^(fedora-41|ubuntu-25.04)-/ + pkg.version '3.7' + pkg.sha256sum 'ea03f42d13a4f95757997dba8cf0b26321fac5d2f164418b4cc856a92d2b17bd' + pkg.build_requires 'python3-setuptools' + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^(el-10|redhatfips-10|fedora-42)-/ + pkg.version '3.8' + pkg.sha256sum '0c3756bca047c9270281d7c4dcdecd000b72e38a183c930661eba9690839b541' + pkg.build_requires 'python3-setuptools' + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^(debian-13|sles-16)-/ + pkg.version '3.8.1' + pkg.sha256sum 'ec2d2789f931152d21c1db1eb4bc202ce4eccede34d9be9e360e3b45243cee2c' + pkg.build_requires 'python3-setuptools' + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + when /^fedora-43-/ + pkg.version '3.9' + pkg.sha256sum 'e7ee2c01dba64a0c35c9d7c9c0e06209d8186b325b0638a0d83f915cc3c101e8' + pkg.build_requires 'python3-setuptools' + pkg.url "https://github.com/SELinuxProject/selinux/releases/download/#{pkg.get_version}/libselinux-#{pkg.get_version}.tar.gz" + else + raise "The ruby-selinux component needs to be updated for platform #{platform.name}" + end + + pkg.add_source('file://resources/patches/ruby-selinux/selinuxswig_ruby_wrap.patch') + pkg.add_source('file://resources/patches/ruby-selinux/selinuxswig_ruby_undefining_allocator.patch') + pkg.add_source('file://resources/patches/ruby-selinux/undefining_allocator_el_7.patch') + + pkg.build_requires "ruby-#{settings[:ruby_version]}" + system_include = '-I/usr/include' + ruby = "#{settings[:ruby_bindir]}/ruby -rrbconfig" + + # The RHEL 9 libselinux-devel package provides headers, but we don't want to + # use the package becuase of a compatibility issue with the shared library. + # Instead, we use the headers provided in the tarball. + system_include.prepend('-I./include ') if platform.name =~ /el-(9|10)/ + + if platform.is_cross_compiled_linux? + pkg.environment 'RUBY', settings[:host_ruby] + ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" + end + + cflags = '' + + pkg.build do + steps = [ + "export RUBYHDRDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"rubyhdrdir\"]')", + "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", + "export ARCHDIR=$${RUBYHDRDIR}/$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"arch\"]')", + "export INCLUDESTR=\"-I#{settings[:includedir]} -I$${RUBYHDRDIR} -I$${ARCHDIR}\"", + "cp -pr src/{selinuxswig_ruby.i,selinuxswig.i} .", + "swig -Wall -ruby #{system_include} -o selinuxswig_ruby_wrap.c -outdir ./ selinuxswig_ruby.i" + ] + + # swig 4.1 generated interface does not need patching, so skip + # when running debian >= 12, fedora >= 40, etc + unless (platform.is_debian? && platform.os_version.to_i >= 12) || + (platform.is_fedora? && platform.os_version.to_i >= 40) || + (platform.is_ubuntu? && platform.os_version.to_i >= 24) || + (platform.is_el? && platform.os_version.to_i >= 10) + steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_wrap.patch" + end + # EL 7 uses an older version of swig (2.0) so a different patch is needed to + # fix warning:undefining the allocator of T_DATA class + if platform.name =~ /el-7|redhatfips-7/ + steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../undefining_allocator_el_7.patch" + else + # Ubuntu 24, Fedora 40, EL 10, and Debian 13 use a newer swig that already has the fix that's + # being patched + unless (platform.is_fedora? && platform.os_version.to_i >= 40) || + (platform.is_ubuntu? && platform.os_version.to_i >= 24) || + (platform.is_el? && platform.os_version.to_i >= 10) || + (platform.is_debian? && platform.os_version.to_i >= 13) + steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_undefining_allocator.patch" + end + end + + # libselinux 3.3 is the minimum version we want to build on RHEL 9, but the + # libeselinux-devel-3.3 package confusingly installs a shared library that + # uses 3.4. The hacky workaround for this is to symlink an existing library. + # PDK builds two Rubies so check if symlink exists first. Similar issue + # exists for RHEL 10. + if platform.name =~ /(el|redhatfips)-(9|10)/ + steps << 'if [ ! -L /usr/lib64/libselinux.so ]; then ln -s /usr/lib64/libselinux.so.1 /usr/lib64/libselinux.so; fi' + end + + steps.concat([ + "gcc $${INCLUDESTR} #{system_include} #{cflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED -c -o selinuxswig_ruby_wrap.lo selinuxswig_ruby_wrap.c", + "gcc $${INCLUDESTR} #{system_include} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -shared -o _rubyselinux.so selinuxswig_ruby_wrap.lo -lselinux -Wl,-z,relro,-z,now,-soname,_rubyselinux.so", + ]) + end + + pkg.install do + [ + "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", + "install -d $${VENDORARCHDIR}", + "install -p -m755 _rubyselinux.so $${VENDORARCHDIR}/selinux.so", + "#{platform[:make]} -e clean", + ] + end +end \ No newline at end of file From f592c5d485fdca3a77cf5a76ec811b45d7af5f3a Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:24:46 -0800 Subject: [PATCH 03/33] Remove 7.x and components If we need to build 7.x runtimes in the future, we can branch off a previous commit. This removes this project and associated components that only exist for this runtime. --- configs/components/_base-ruby.rb | 22 +- configs/components/curl.rb | 14 +- configs/components/openssl-1.0.2.rb | 182 ------------- configs/components/openssl-1.1.1-fips.rb | 94 ------- configs/components/openssl-1.1.1.rb | 200 -------------- configs/components/openssl-fips-2.0.16.rb | 37 --- configs/components/pl-ruby-patch.rb | 6 +- configs/components/ruby-2.7-augeas.rb | 18 -- configs/components/ruby-2.7-selinux.rb | 17 -- configs/components/ruby-2.7.8.rb | 299 --------------------- configs/components/ruby-shadow.rb | 14 +- configs/projects/_shared-agent-settings.rb | 11 +- configs/projects/agent-runtime-7.x.rb | 76 ------ 13 files changed, 16 insertions(+), 974 deletions(-) delete mode 100644 configs/components/openssl-1.0.2.rb delete mode 100644 configs/components/openssl-1.1.1-fips.rb delete mode 100644 configs/components/openssl-1.1.1.rb delete mode 100644 configs/components/openssl-fips-2.0.16.rb delete mode 100644 configs/components/ruby-2.7-augeas.rb delete mode 100644 configs/components/ruby-2.7-selinux.rb delete mode 100644 configs/components/ruby-2.7.8.rb delete mode 100644 configs/projects/agent-runtime-7.x.rb diff --git a/configs/components/_base-ruby.rb b/configs/components/_base-ruby.rb index b23db021..96c23fe3 100644 --- a/configs/components/_base-ruby.rb +++ b/configs/components/_base-ruby.rb @@ -2,8 +2,6 @@ # It should not be included as a component; Instead other components should # load it with instance_eval. See ruby-x.y.z.rb configs. -# Condensed version, e.g. '2.4.3' -> '243' -ruby_version_condensed = pkg.get_version.tr('.', '') # Y version, e.g. '2.4.3' -> '2.4' ruby_version_y = pkg.get_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2') @@ -29,20 +27,14 @@ end pkg.environment 'LDFLAGS', "#{settings[:ldflags]} -Wl,-bmaxdata:0x80000000" elsif platform.is_solaris? - # See PA-5639, if we decide to go without OpenCSW GCC then we can simplify this logic - if ruby_version_y >= '3.0' - if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment 'PATH', "#{settings[:bindir]}:/opt/pl-build-tools/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" - pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - else - pkg.environment 'PATH', "#{settings[:bindir]}:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" - pkg.environment 'CC', '/opt/csw/bin/gcc' - pkg.environment 'LD', '/opt/csw/bin/gld' - pkg.environment 'AR', '/opt/csw/bin/gar' - end - else - pkg.environment 'PATH', "#{settings[:bindir]}:/usr/ccs/bin:/usr/sfw/bin:$(PATH):/opt/csw/bin" + if !platform.is_cross_compiled? && platform.architecture == 'sparc' + pkg.environment 'PATH', "#{settings[:bindir]}:/opt/pl-build-tools/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" + else + pkg.environment 'PATH', "#{settings[:bindir]}:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" + pkg.environment 'CC', '/opt/csw/bin/gcc' + pkg.environment 'LD', '/opt/csw/bin/gld' + pkg.environment 'AR', '/opt/csw/bin/gar' end pkg.environment 'CXX', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-g++" pkg.environment 'LDFLAGS', "-Wl,-rpath=#{settings[:libdir]}" diff --git a/configs/components/curl.rb b/configs/components/curl.rb index 4741255f..28cf439b 100644 --- a/configs/components/curl.rb +++ b/configs/components/curl.rb @@ -2,18 +2,8 @@ # Component release information: https://github.com/curl/curl/releases ##### component 'curl' do |pkg, settings, platform| - # Projects may define a :curl_version setting - version = settings[:curl_version] || '8.15.0' - pkg.version version - - case version - when '7.88.1' - pkg.sha256sum 'cdb38b72e36bc5d33d5b8810f8018ece1baa29a8f215b4495e495ded82bbf3c7' - when '8.15.0' - pkg.sha256sum 'd85cfc79dc505ff800cb1d321a320183035011fa08cb301356425d86be8fc53c' - else - raise "curl version #{version} has not been configured; Cannot continue." - end + pkg.version '8.15.0' + pkg.sha256sum 'd85cfc79dc505ff800cb1d321a320183035011fa08cb301356425d86be8fc53c' pkg.url "https://curl.se/download/curl-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/curl-#{pkg.get_version}.tar.gz" diff --git a/configs/components/openssl-1.0.2.rb b/configs/components/openssl-1.0.2.rb deleted file mode 100644 index b627f0aa..00000000 --- a/configs/components/openssl-1.0.2.rb +++ /dev/null @@ -1,182 +0,0 @@ -##### -# Component release information: -# https://github.com/openssl/openssl/releases -# Notes: -# This is very, very old and only used for windowsfips. If OpenVox -# does a Windows FIPS build, we should replace this. -##### -component 'openssl' do |pkg, settings, platform| - pkg.version '1.0.2u' - pkg.md5sum 'cdc2638f789ecc2db2c91488265686c1' - pkg.url "https://openssl.org/source/openssl-#{pkg.get_version}.tar.gz" - pkg.mirror "#{settings[:buildsources_url]}/openssl-#{pkg.get_version}.tar.gz" - - ############################# - # ENVIRONMENT, FLAGS, TARGETS - ############################# - - target = cflags = ldflags = sslflags = '' - - if platform.is_windows? - pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment 'CYGWIN', settings[:cygwin] - pkg.environment 'CC', settings[:cc] - pkg.environment 'CXX', settings[:cxx] - pkg.environment 'MAKE', platform[:make] - - target = platform.architecture == 'x64' ? 'mingw64' : 'mingw' - cflags = settings[:cflags] - ldflags = settings[:ldflags] - elsif platform.is_cross_compiled_linux? - pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH)" - pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - - cflags = "#{settings[:cflags]} -fPIC" - ldflags = "-Wl,-rpath=/opt/pl-build-tools/#{settings[:platform_triple]}/lib -Wl,-rpath=#{settings[:libdir]} -L/opt/pl-build-tools/#{settings[:platform_triple]}/lib" - target = if platform.architecture == 'aarch64' - 'linux-aarch64' - elsif platform.architecture =~ /ppc64le|ppc64el/ # Litte-endian - 'linux-ppc64le' - elsif platform.architecture =~ /ppc64/ # Big-endian - 'linux-ppc64' - end - elsif platform.is_aix? - pkg.environment "CC", "/opt/pl-build-tools/bin/gcc" - cflags = '$${CFLAGS} -static-libgcc' - target = 'aix-gcc' - elsif platform.is_solaris? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin' - pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - - cflags = "#{settings[:cflags]} -fPIC" - ldflags = "-R/opt/pl-build-tools/#{settings[:platform_triple]}/lib -Wl,-rpath=#{settings[:libdir]} -L/opt/pl-build-tools/#{settings[:platform_triple]}/lib" - target = platform.architecture =~ /86/ ? 'solaris-x86-gcc' : 'solaris-sparcv9-gcc' - elsif platform.is_macos? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' - - cflags = settings[:cflags] - target = 'darwin64-x86_64-cc' - elsif platform.is_linux? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' - - cflags = settings[:cflags] - ldflags = "#{settings[:ldflags]} -Wl,-z,relro" - if platform.architecture =~ /86$/ - target = 'linux-elf' - sslflags = '386' - elsif platform.architecture =~ /aarch64$/ - target = 'linux-aarch64' - elsif platform.architecture =~ /ppc64le|ppc64el/ # Little-endian - target = 'linux-ppc64le' - elsif platform.architecture =~ /64$/ - target = 'linux-x86_64' - end - end - - #################### - # BUILD REQUIREMENTS - #################### - - pkg.build_requires "runtime-#{settings[:runtime_project]}" - - ######### - # PATCHES - ######### - - if platform.is_windows? - pkg.apply_patch 'resources/patches/openssl/openssl-1.0.0l-use-gcc-instead-of-makedepend.patch' - # This patch removes the option `-DOPENSSL_USE_APPLINK` from the mingw openssl congifure target - # This brings mingw more in line with what is happening with mingw64. All applink does it makes - # it possible to use the .dll compiled with one compiler with an application compiled with a - # different compiler. Given our openssl should only be interacting with things that we build, - # we can ensure everything is build with the same compiler. - pkg.apply_patch 'resources/patches/openssl/openssl-mingw-do-not-build-applink.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-enforce-fips-on-fips-mode.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-low-level-access.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-expose-drbg-init.patch' - elsif platform.is_aix? - pkg.apply_patch 'resources/patches/openssl/add-shell-to-engines_makefile.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-1.0.0l-use-gcc-instead-of-makedepend.patch' - elsif platform.is_solaris? - pkg.apply_patch 'resources/patches/openssl/add-shell-to-engines_makefile.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-1.0.0l-use-gcc-instead-of-makedepend.patch' - end - pkg.apply_patch 'resources/patches/openssl/CVE-2020-1968.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2020-1971.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2021-23839.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2021-23840.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2021-23841.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2021-3712.patch' - - ########### - # CONFIGURE - ########### - - # OpenSSL Configure doesn't honor CFLAGS or LDFLAGS as environment variables. - # Instead, those should be passed to Configure at the end of its options, as - # any unrecognized options are passed straight through to ${CC}. Defining - # --libdir ensures that we avoid the multilib (lib/ vs. lib64/) problem, - # since configure uses the existence of a lib64 directory to determine - # if it should install its own libs into a multilib dir. Yay OpenSSL! - configure_flags = [ - "--prefix=#{settings[:prefix]}", - '--libdir=lib', - "--openssldir=#{settings[:prefix]}/ssl", - 'shared', - 'no-asm', - target, - sslflags, - 'enable-rfc3779', - 'enable-tlsext', - 'no-camellia', - 'no-ec2m', - 'no-md2', - 'no-mdc2', - 'no-ssl2', - 'no-ssl3', - ] - - configure_flags += ['fips', "--with-fipsdir=#{settings[:prefix]}/usr/local/ssl/fips-2.0"] if platform.name =~ /windowsfips-/ - - # Individual projects may provide their own openssl configure flags: - project_flags = settings[:openssl_extra_configure_flags] || [] - configure_flags << project_flags << cflags << ldflags - - pkg.configure do - ["./Configure #{configure_flags.join(' ')}"] - end - - ####### - # BUILD - ####### - - pkg.build do - [ - "#{platform[:make]} depend", - "#{platform[:make]}" - ] - end - - ######### - # INSTALL - ######### - - install_prefix = platform.is_windows? ? '' : 'INSTALL_PREFIX=/' - install_commands = [] - - if platform.is_aix? - install_commands << "slibclean" - end - - install_commands << "#{platform[:make]} #{install_prefix} install" - - if settings[:runtime_project] == 'pdk' - install_commands << "rm -f #{settings[:prefix]}/bin/{openssl,c_rehash}" - end - - pkg.install do - install_commands - end - - pkg.install_file 'LICENSE', "#{settings[:prefix]}/share/doc/openssl-#{pkg.get_version}/LICENSE" -end diff --git a/configs/components/openssl-1.1.1-fips.rb b/configs/components/openssl-1.1.1-fips.rb deleted file mode 100644 index e95bacb4..00000000 --- a/configs/components/openssl-1.1.1-fips.rb +++ /dev/null @@ -1,94 +0,0 @@ -##### -# Component release information: -# https://github.com/openssl/openssl/releases -# Notes: -# This is very, very old and only used for fips. If OpenVox -# does a FIPS build, we should replace this. -##### -component 'openssl-1.1.1-fips' do |pkg, settings, platform| - pkg.version '1.1.1k-6' - pkg.sha256sum 'da536944410a0cbf5c0b6ee0b8f3ec62a9121be3b72bf2819bb4395a761662aa' - pkg.url "https://vault.centos.org/centos/8-stream/BaseOS/Source/SPackages/openssl-#{pkg.get_version}.el8.src.rpm" - pkg.mirror "#{settings[:buildsources_url]}/openssl-#{pkg.get_version}.el8.src.rpm" - - pkg.build_requires 'rpm-build' - pkg.build_requires 'krb5-devel' - pkg.build_requires 'zlib-devel' - pkg.build_requires 'lksctp-tools-devel' - pkg.build_requires 'perl-Test-Harness' - pkg.build_requires 'perl-Module-Load-Conditional' - - patch_version = pkg.get_version.match(/\d\.\d\.\d(\w)/).captures.first - ############################# - # ENVIRONMENT, FLAGS, TARGETS - ############################# - - # FIXME: pkg.apply_patch is not useful here as vanagon component does - # not know how to extract rpm and patch happend before configure step - # proper fix would be extension in vanagon for source rpm handling - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-patch-openssl-cnf.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-force-fips-mode.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-spec-file.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-remove-env-check.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1l-sm2-plaintext.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1k-CVE-2023-3446-fips.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1k-CVE-2023-5678-fips.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1k-CVE-2024-0727-fips.patch' - - if platform.name =~ /-7-/ - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-post-rand.patch' - pkg.add_source 'file://resources/patches/openssl/openssl-1.1.1-fips-edk2-build.patch' - end - - topdir = "--define \"_topdir `pwd`/openssl-#{pkg.get_version}\"" - libdir = "--define '%_libdir %{_prefix}/lib'" - prefix = "--define '%_prefix #{settings[:prefix]}'" - - pkg.configure do - [ - "rpm -i #{topdir} openssl-#{pkg.get_version}.el8.src.rpm" - ] - end - - if platform.name =~ /-7-/ - pkg.configure do - [ - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-edk2-build.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-post-rand.patch && cd -", - ] - end - end - - pkg.configure do - [ - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-patch-openssl-cnf.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-force-fips-mode.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-spec-file.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1-fips-remove-env-check.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1l-sm2-plaintext.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1k-CVE-2023-3446-fips.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1k-CVE-2023-5678-fips.patch && cd -", - "cd openssl-#{pkg.get_version} && /usr/bin/patch --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../openssl-1.1.1k-CVE-2024-0727-fips.patch && cd -" - ] - end - - pkg.build do - [ - 'if [ -f /etc/system-fips ]; then mv /etc/system-fips /etc/system-fips.off; fi', - "rpmbuild -bc --nocheck #{libdir} #{prefix} #{topdir} openssl-#{pkg.get_version}/SPECS/openssl.spec", - 'if [ -f /etc/system-fips.off ]; then mv /etc/system-fips.off /etc/system-fips; fi' - ] - end - - pkg.install do - [ - "cd openssl-#{pkg.get_version}/BUILD/openssl-1.1.1#{patch_version} && make install", - # This chmod command is a work around, once we're off 1.1.1k-6 for openssl the below should be patched and we can remove the below line (PA-4621) - "chmod -x #{settings[:prefix]}/bin/c_rehash", - 'if [ -f /etc/system-fips ]; then mv /etc/system-fips /etc/system-fips.off; fi', - "/usr/bin/strip #{settings[:prefix]}/lib/libcrypto.so.1.1 && LD_LIBRARY_PATH=. crypto/fips/fips_standalone_hmac #{settings[:prefix]}/lib/libcrypto.so.1.1 > #{settings[:prefix]}/lib/.libcrypto.so.1.1.hmac", - "/usr/bin/strip #{settings[:prefix]}/lib/libssl.so.1.1 && LD_LIBRARY_PATH=. crypto/fips/fips_standalone_hmac #{settings[:prefix]}/lib/libssl.so.1.1 > #{settings[:prefix]}/lib/.libssl.so.1.1.hmac", - 'if [ -f /etc/system-fips.off ]; then mv /etc/system-fips.off /etc/system-fips; fi' - ] - end -end diff --git a/configs/components/openssl-1.1.1.rb b/configs/components/openssl-1.1.1.rb deleted file mode 100644 index 0b791a71..00000000 --- a/configs/components/openssl-1.1.1.rb +++ /dev/null @@ -1,200 +0,0 @@ -##### -# Component release information: -# https://github.com/openssl/openssl/releases -# Notes: -# This is a default version used when an OpenSSL version is not specified. -# Should no longer be used and probably should be removed. -##### -component 'openssl' do |pkg, settings, platform| - pkg.version '1.1.1w' - pkg.sha256sum 'cf3098950cb4d853ad95c0841f1f9c6d3dc102dccfcacd521d93925208b76ac8' - pkg.url "https://openssl.org/source/openssl-#{pkg.get_version}.tar.gz" - pkg.mirror "#{settings[:buildsources_url]}/openssl-#{pkg.get_version}.tar.gz" - - ############################# - # ENVIRONMENT, FLAGS, TARGETS - ############################# - - target = cflags = ldflags = sslflags = '' - - if platform.is_windows? - pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment 'CYGWIN', settings[:cygwin] - pkg.environment 'CC', settings[:cc] - pkg.environment 'CXX', settings[:cxx] - pkg.environment 'MAKE', platform[:make] - - target = platform.architecture == 'x64' ? 'mingw64' : 'mingw' - cflags = settings[:cflags] - ldflags = settings[:ldflags] - elsif platform.is_cross_compiled_linux? - pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH)" - pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - - cflags = "#{settings[:cflags]} -fPIC" - if platform.architecture =~ /aarch/ - # OpenSSL fails to work on aarch unless we turn down the compiler optimization. - # See PA-2135 for details - cflags += " -O2" - end - - ldflags = "-Wl,-rpath=/opt/pl-build-tools/#{settings[:platform_triple]}/lib -Wl,-rpath=#{settings[:libdir]} -L/opt/pl-build-tools/#{settings[:platform_triple]}/lib" - target = if platform.architecture == 'aarch64' - 'linux-aarch64' - elsif platform.name =~ /debian-8-arm/ - 'linux-armv4' - elsif platform.architecture =~ /ppc64le|ppc64el/ # Little-endian - 'linux-ppc64le' - elsif platform.architecture =~ /ppc64/ # Big-endian - 'linux-ppc64' - end - elsif platform.is_aix? - pkg.environment 'CC', '/opt/pl-build-tools/bin/gcc' - - cflags = '$${CFLAGS} -static-libgcc' - ldflags = "#{settings[:ldflags]} -Wl,-R#{settings[:libdir]}" - target = 'aix-gcc' - elsif platform.is_solaris? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin' - pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" - - cflags = "#{settings[:cflags]} -fPIC" - ldflags = "-R/opt/pl-build-tools/#{settings[:platform_triple]}/lib -Wl,-rpath=#{settings[:libdir]} -L/opt/pl-build-tools/#{settings[:platform_triple]}/lib" - target = platform.architecture =~ /86/ ? 'solaris-x86-gcc' : 'solaris-sparcv9-gcc' - elsif platform.is_macos? - if platform.architecture == 'arm64' - pkg.environment 'PATH', '/opt/homebrew/bin:$(PATH):/usr/local/bin' - else - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' - end - - cflags = settings[:cflags] - - target = if platform.architecture == 'arm64' - 'darwin64-arm64-cc' - else - 'darwin64-x86_64-cc' - end - elsif platform.is_linux? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' - - cflags = settings[:cflags] - ldflags = "#{settings[:ldflags]} -Wl,-z,relro" - if platform.architecture =~ /86$/ - target = 'linux-elf' - sslflags = '386' - elsif platform.architecture =~ /aarch64$/ - target = 'linux-aarch64' - elsif platform.architecture =~ /ppc64le|ppc64el/ # Little-endian - target = 'linux-ppc64le' - elsif platform.architecture =~ /64$/ - target = 'linux-x86_64' - elsif platform.architecture == 'armhf' - target = 'linux-armv4' - end - end - - pkg.apply_patch 'resources/patches/openssl/CVE-2023-5678.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2024-0727.patch' - pkg.apply_patch 'resources/patches/openssl/CVE-2024-5535.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-1.1.1-CVE-2024-2511.patch' - pkg.apply_patch 'resources/patches/openssl/openssl-1.1.1-CVE-2024-4741.patch' - - #################### - # BUILD REQUIREMENTS - #################### - - pkg.build_requires "runtime-#{settings[:runtime_project]}" - - ########### - # CONFIGURE - ########### - - if platform.is_solaris? && platform.name =~ /10/ - # We need to link the rt library on Solaris 10 in order to access the clock_gettime - # function. - cflags += " -lrt" - - # Additionally when we're building on SPARC, we need to revert - # https://github.com/openssl/openssl/commit/7a061312 because for - # some reason, the linker fails to generate the .map files (like - # e.g. libcrypto.map). Strangely, this is not an issue for Solaris - # 11 SPARC despite it using an older version of ld (2.25 vs. 2.27). - if platform.is_cross_compiled? - pkg.apply_patch 'resources/patches/openssl/openssl-1.1.1a-revert-7a061312.patch' - else - # Work around gcc not conforming to Solaris 32-bit ABI by expecting 16-byte stack alignment - # https://github.com/openssl/openssl/issues/13666 - cflags += " -mincoming-stack-boundary=2" - end - end - - # OpenSSL Configure doesn't honor CFLAGS or LDFLAGS as environment variables. - # Instead, those should be passed to Configure at the end of its options, as - # any unrecognized options are passed straight through to ${CC}. Defining - # --libdir ensures that we avoid the multilib (lib/ vs. lib64/) problem, - # since configure uses the existence of a lib64 directory to determine - # if it should install its own libs into a multilib dir. Yay OpenSSL! - configure_flags = [ - "--prefix=#{settings[:prefix]}", - '--libdir=lib', - "--openssldir=#{settings[:prefix]}/ssl", - 'shared', - 'no-asm', - target, - sslflags, - 'no-camellia', - 'no-ec2m', - 'no-md2', - 'no-ssl3' - ] - - # Individual projects may provide their own openssl configure flags: - project_flags = settings[:openssl_extra_configure_flags] || [] - perl_exec = '' - if platform.is_aix? - perl_exec = '/opt/freeware/bin/perl' - elsif platform.is_solaris? && platform.os_version == '10' - perl_exec = '/opt/csw/bin/perl' - end - configure_flags << project_flags << cflags << ldflags - - pkg.configure do - ["#{perl_exec} ./Configure #{configure_flags.join(' ')}"] - end - - ####### - # BUILD - ####### - - pkg.build do - [ - "#{platform[:make]} depend", - "#{platform[:make]}" - ] - end - - ######### - # INSTALL - ######### - - install_prefix = platform.is_windows? ? '' : 'INSTALL_PREFIX=/' - install_commands = [] - - if platform.is_aix? - install_commands << "slibclean" - end - - # Skip man and html docs - install_commands << "#{platform[:make]} #{install_prefix} install_sw install_ssldirs" - - if settings[:runtime_project] == 'pdk' - install_commands << "rm -f #{settings[:prefix]}/bin/{openssl,c_rehash}" - end - - pkg.install do - install_commands - end - - pkg.install_file 'LICENSE', "#{settings[:prefix]}/share/doc/openssl-#{pkg.get_version}/LICENSE" -end diff --git a/configs/components/openssl-fips-2.0.16.rb b/configs/components/openssl-fips-2.0.16.rb deleted file mode 100644 index e95e8c7b..00000000 --- a/configs/components/openssl-fips-2.0.16.rb +++ /dev/null @@ -1,37 +0,0 @@ -##### -# Component release information: -# https://github.com/openssl/openssl/releases -# Notes: -# This is very, very old and only used for windowsfips (is actually 1.0.2). -# If OpenVox does a Windows FIPS build, we should replace this. -##### -component 'openssl-fips-2.0.16' do |pkg, settings, platform| - pkg.md5sum '55ef09f12bb199d47e6a84e79fb959d7' - pkg.url 'https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz' - - if platform.is_windows? - pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment 'CYGWIN', settings[:cygwin] - pkg.environment 'CC', settings[:cc] - pkg.environment 'CXX', settings[:cxx] - pkg.environment 'MAKE', platform[:make] - pkg.environment 'SYSTEM', 'mingw64' - pkg.environment 'INSTALL_PREFIX', settings[:prefix] - end - - if platform.is_windows? - pkg.apply_patch 'resources/patches/openssl/openssl-fips-2.0.16.patch' - end - - pkg.configure do - ["./config no-asm"] - end - - pkg.build do - ['/usr/bin/make '] - end - - pkg.install do - ['/usr/bin/make install'] - end -end diff --git a/configs/components/pl-ruby-patch.rb b/configs/components/pl-ruby-patch.rb index 87610181..56f50e59 100644 --- a/configs/components/pl-ruby-patch.rb +++ b/configs/components/pl-ruby-patch.rb @@ -23,11 +23,7 @@ elsif platform.name =~ /solaris-10/ "sparc-solaris" elsif platform.is_macos? - if ruby_version_y.start_with?('2') - "aarch64-darwin" - else - "arm64-darwin" - end + "arm64-darwin" else "#{platform.architecture}-linux" end diff --git a/configs/components/ruby-2.7-augeas.rb b/configs/components/ruby-2.7-augeas.rb deleted file mode 100644 index 661b8473..00000000 --- a/configs/components/ruby-2.7-augeas.rb +++ /dev/null @@ -1,18 +0,0 @@ -component 'ruby-2.7-augeas' do |pkg, settings, platform| - expected_ruby_version = '2.7.8' - - unless settings[:ruby_version] == expected_ruby_version - unless settings.key?(:additional_rubies) && settings[:additional_rubies].key?(expected_ruby_version) - raise "No config found for Ruby #{expected_ruby_version} in settings[:additional_rubies]" - end - - ruby_settings = settings[:additional_rubies][expected_ruby_version] - - ruby_version = ruby_settings[:ruby_version] - host_ruby = ruby_settings[:host_ruby] - ruby_dir = ruby_settings[:ruby_dir] - ruby_bindir = ruby_settings[:ruby_bindir] - end - - instance_eval File.read('configs/components/_base-ruby-augeas.rb') -end diff --git a/configs/components/ruby-2.7-selinux.rb b/configs/components/ruby-2.7-selinux.rb deleted file mode 100644 index 61c9495a..00000000 --- a/configs/components/ruby-2.7-selinux.rb +++ /dev/null @@ -1,17 +0,0 @@ -component 'ruby-2.7-selinux' do |pkg, settings, platform| - expected_ruby_version = '2.7.8' - - unless settings[:ruby_version] == expected_ruby_version - unless settings.key?(:additional_rubies) && settings[:additional_rubies].key?(expected_ruby_version) - raise "No config found for Ruby #{expected_ruby_version} in settings[:additional_rubies]" - end - - ruby_settings = settings[:additional_rubies][expected_ruby_version] - - ruby_version = ruby_settings[:ruby_version] - host_ruby = ruby_settings[:host_ruby] - ruby_bindir = ruby_settings[:ruby_bindir] - end - - instance_eval File.read('configs/components/_base-ruby-selinux.rb') -end diff --git a/configs/components/ruby-2.7.8.rb b/configs/components/ruby-2.7.8.rb deleted file mode 100644 index 862483a4..00000000 --- a/configs/components/ruby-2.7.8.rb +++ /dev/null @@ -1,299 +0,0 @@ -##### -# Component release information: -# https://github.com/ruby/ruby/releases -# https://www.ruby-lang.org/en/downloads/releases/ -# Notes: -# The file name of the ruby component must match the ruby_version -##### -component 'ruby-2.7.8' do |pkg, settings, platform| - pkg.version '2.7.8' - pkg.sha256sum 'c2dab63cbc8f2a05526108ad419efa63a67ed4074dbbcf9fc2b1ca664cb45ba0' - - # rbconfig-update is used to munge rbconfigs after the fact. - pkg.add_source("file://resources/files/ruby/rbconfig-update.rb") - - # PDK packages multiple rubies and we need to tweak some settings - # if this is not the *primary* ruby. - if pkg.get_version != settings[:ruby_version] - # not primary ruby - - # ensure we have config for this ruby - unless settings.key?(:additional_rubies) && settings[:additional_rubies].key?(pkg.get_version) - raise "missing config for additional ruby #{pkg.get_version}" - end - - ruby_settings = settings[:additional_rubies][pkg.get_version] - - ruby_dir = ruby_settings[:ruby_dir] - ruby_bindir = ruby_settings[:ruby_bindir] - host_ruby = ruby_settings[:host_ruby] - else - # primary ruby - ruby_dir = settings[:ruby_dir] - ruby_bindir = settings[:ruby_bindir] - host_ruby = settings[:host_ruby] - end - - # Most ruby configuration happens in the base ruby config: - instance_eval File.read('configs/components/_base-ruby.rb') - # Configuration below should only be applicable to ruby 2.5 - - ######### - # PATCHES - ######### - - base = 'resources/patches/ruby_27' - # Patch for https://bugs.ruby-lang.org/issues/14972 - pkg.apply_patch "#{base}/net_http_eof_14972_r2.5.patch" - pkg.apply_patch "#{base}/regexp_use_after_free.patch" - - pkg.apply_patch "#{base}/uri-redos-cve-2023-36617.patch" - pkg.apply_patch "#{base}/stringio_cve-2024-27280.patch" - - pkg.apply_patch "#{base}/0001-Filter-marshaled-objects-ruby30.patch" - pkg.apply_patch "#{base}/0001-Use-safe_load-and-safe_load_file-for-rdoc_options.patch" - - if platform.is_cross_compiled? - unless platform.is_macos? - pkg.apply_patch "#{base}/uri_generic_remove_safe_nav_operator_r2.5.patch" - pkg.apply_patch "#{base}/lib_optparse_remove_safe_nav_operator.patch" - pkg.apply_patch "#{base}/revert_delete_prefix.patch" - pkg.apply_patch "#{base}/remove_squiggly_heredocs.patch" - pkg.apply_patch "#{base}/remove_deprecate_constant_statements.patch" - pkg.apply_patch "#{base}/ruby2_keywords_guard.patch" - pkg.apply_patch "#{base}/ruby_version_extra_guards.patch" - pkg.apply_patch "#{base}/ruby_20_guards.patch" - if platform.name =~ /^solaris-10-sparc/ - pkg.apply_patch "#{base}/Solaris-only-Replace-reference-to-RUBY-var-with-opt-pl-build-tool.patch" - else - pkg.apply_patch "#{base}/Replace-reference-to-RUBY-var-with-opt-pl-build-tool.patch" - end - if platform.name =~ /sparc/ - pkg.apply_patch "#{base}/transform_mjit_header.patch" - end - end - pkg.apply_patch "#{base}/rbinstall_gem_path.patch" - pkg.apply_patch "#{base}/revert_host_value_changes.patch" - end - - if platform.is_aix? - # TODO: Remove this patch once PA-1607 is resolved. - pkg.apply_patch "#{base}/aix_configure.patch" - pkg.apply_patch "#{base}/aix-fix-libpath-in-configure.patch" - pkg.apply_patch "#{base}/aix-do-not-use-realpath.patch" - pkg.apply_patch "#{base}/aix_ruby_2.1_fix_make_test_failure_r2.5.patch" - pkg.apply_patch "#{base}/Remove-O_CLOEXEC-check-for-AIX-builds_r2.5.patch" - end - - if platform.is_windows? - pkg.apply_patch "#{base}/windows_ruby_2.5_fixup_generated_batch_files.patch" - pkg.apply_patch "#{base}/windows_nocodepage_utf8_fallback_r2.5.patch" - pkg.apply_patch "#{base}/win32_long_paths_support.patch" - pkg.apply_patch "#{base}/ruby-faster-load_27.patch" - pkg.apply_patch "#{base}/windows_configure.patch" - end - - #################### - # ENVIRONMENT, FLAGS - #################### - - if platform.is_macos? - pkg.environment 'optflags', settings[:cflags] - elsif platform.is_windows? - pkg.environment 'optflags', settings[:cflags] + ' -O3' - pkg.environment 'MAKE', 'make' - elsif platform.is_cross_compiled? - pkg.environment 'CROSS_COMPILING', 'true' - else - pkg.environment 'optflags', '-O2' - end - - special_flags = " --prefix=#{ruby_dir} --with-opt-dir=#{settings[:prefix]} " - - if settings[:supports_pie] - special_flags += " CFLAGS='#{settings[:cflags]}' LDFLAGS='#{settings[:ldflags]}' CPPFLAGS='#{settings[:cppflags]}' " - end - - if platform.is_aix? - # This normalizes the build string to something like AIX 7.1.0.0 rather - # than AIX 7.1.0.2 or something - special_flags += " --build=#{settings[:platform_triple]} " - elsif platform.is_cross_compiled? && platform.is_linux? - special_flags += " --with-baseruby=#{host_ruby} " - elsif platform.is_cross_compiled? && platform.is_macos? - # When the target arch is aarch64, ruby incorrectly selects the 'ucontext' coroutine - # implementation instead of 'arm64', so specify 'amd64' explicitly - # https://github.com/ruby/ruby/blob/c9c2245c0a25176072e02db9254f0e0c84c805cd/configure.ac#L2329-L2330 - special_flags += " --with-baseruby=#{host_ruby} --with-coroutine=arm64 " - elsif platform.is_macos? && platform.architecture == 'arm64' && platform.os_version.to_i >= 13 - pkg.environment 'PATH', '/opt/homebrew/bin:$(PATH):/usr/local/bin' - special_flags += " --with-openssl-dir=#{settings[:prefix]} " - elsif platform.is_solaris? && platform.architecture == "sparc" - special_flags += " --with-baseruby=#{host_ruby} --enable-close-fds-by-recvmsg-with-peek " - elsif platform.name =~ /el-6/ || platform.name =~ /sles-11-x86_64/ - # Since we're not cross compiling, ignore old ruby versions that happen to be in the PATH - # and force ruby to build miniruby and use that to bootstrap the rest of the build - special_flags += " --with-baseruby=no " - elsif platform.is_windows? - special_flags = " CPPFLAGS='-DFD_SETSIZE=2048' debugflags=-g --prefix=#{ruby_dir} --with-opt-dir=#{settings[:prefix]} " - end - - without_dtrace = [ - 'aix-7.1-ppc', - 'el-7-ppc64le', - 'osx-11-arm64', - 'osx-12-arm64', - 'redhatfips-7-x86_64', - 'sles-11-x86_64', - 'sles-12-ppc64le', - 'solaris-10-sparc', - 'solaris-11-sparc', - 'windows-2012r2-x64', - 'windows-2012r2-x86', - 'windows-2019-x64', - 'windowsfips-2012r2-x64', - 'windowsfips-2016-x64' - ] - - unless without_dtrace.include? platform.name - special_flags += ' --enable-dtrace ' - end - - ########### - # CONFIGURE - ########### - - # TODO: Remove this once PA-1607 is resolved. - # TODO: Can we use native autoconf? The dependencies seemed a little too extensive - pkg.configure { ["/opt/pl-build-tools/bin/autoconf"] } if platform.is_aix? - - # Here we set --enable-bundled-libyaml to ensure that the libyaml included in - # ruby is used, even if the build system has a copy of libyaml available - pkg.configure do - [ - "bash configure \ - --enable-shared \ - --enable-bundled-libyaml \ - --disable-install-doc \ - --disable-install-rdoc \ - #{settings[:host]} \ - #{special_flags}" - ] - end - - if(platform.name =~ /windowsfips-2016/) - # We need the below patch since during ruby build step for windowsfips-2016-x64 agent-runtime builds, - # the rbconfig.rb file that gets generated contains '\r' trailing character in 'ruby_version' config. - # We patch rbconfig.rb to remove the '\r' character. - # This patch has to run after the build step since rbconfig.rb is generated during the build step. - # This is sort of a hacky way to do this. We need to find why the '\r' character gets appended to - # 'ruby_version' field in the future so that this patch can be removed - PA-6902. - pkg.add_source("#{base}/rbconfig_win.patch") - pkg.build do - ["TMP=/var/tmp /usr/bin/patch.exe --binary --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../rbconfig_win.patch"] - end - end - - ######### - # INSTALL - ######### - - if platform.is_windows? - # With ruby 2.5, ruby will generate cmd files instead of bat files; These - # cmd wrappers work fine in our environment if they're just renamed as batch - # files. Rake is omitted here on purpose - it retains the old batch wrapper. - # - # Note that this step must happen after the install step above. - pkg.install do - %w{erb gem irb rdoc ri}.map do |name| - "mv #{ruby_bindir}/#{name}.cmd #{ruby_bindir}/#{name}.bat" - end - end - end - - target_doubles = { - 'powerpc-ibm-aix7.1.0.0' => 'powerpc-aix7.1.0.0', - 'aarch64-apple-darwin' => 'aarch64-darwin', - 'aarch64-redhat-linux' => 'aarch64-linux', - 'ppc64-redhat-linux' => 'powerpc64-linux', - 'ppc64le-redhat-linux' => 'powerpc64le-linux', - 'powerpc64le-suse-linux' => 'powerpc64le-linux', - 'powerpc64le-linux-gnu' => 'powerpc64le-linux', - 'i386-pc-solaris2.10' => 'i386-solaris2.10', - 'sparc-sun-solaris2.10' => 'sparc-solaris2.10', - 'i386-pc-solaris2.11' => 'i386-solaris2.11', - 'sparc-sun-solaris2.11' => 'sparc-solaris2.11', - 'arm-linux-gnueabihf' => 'arm-linux-eabihf', - 'arm-linux-gnueabi' => 'arm-linux-eabi', - 'x86_64-w64-mingw32' => 'x64-mingw32', - 'i686-w64-mingw32' => 'i386-mingw32' - } - - if target_doubles.key?(settings[:platform_triple]) - rbconfig_topdir = File.join(ruby_dir, 'lib', 'ruby', '2.7.0', target_doubles[settings[:platform_triple]]) - else - rbconfig_topdir = "$$(#{ruby_bindir}/ruby -e \"puts RbConfig::CONFIG[\\\"topdir\\\"]\")" - end - - rbconfig_changes = {} - if platform.is_aix? - rbconfig_changes["CC"] = "gcc" - elsif platform.is_cross_compiled? || platform.is_solaris? - if platform.name =~ /osx-11/ - rbconfig_changes["CC"] = 'clang -target arm64-apple-macos11' - elsif platform.name =~ /osx-12/ - rbconfig_changes["CC"] = 'clang -target arm64-apple-macos12' - else - rbconfig_changes["CC"] = "gcc" - if platform.is_solaris? - # this should probably be done for aix and cross compiled targets too - rbconfig_changes["CPP"] = "gcc -E" - end - rbconfig_changes["warnflags"] = "-Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wno-maybe-uninitialized" - end - if platform.name =~ /el-7-ppc64/ - # EL 7 on POWER will fail with -Wl,--compress-debug-sections=zlib so this - # will remove that entry - # Matches both endians - rbconfig_changes["DLDFLAGS"] = "-Wl,-rpath=/opt/puppetlabs/puppet/lib -L/opt/puppetlabs/puppet/lib -Wl,-rpath,/opt/puppetlabs/puppet/lib" - elsif platform.name =~ /sles-12-ppc64le/ - # the ancient gcc version on sles-12-ppc64le does not understand -fstack-protector-strong, so remove the `strong` part - rbconfig_changes["LDFLAGS"] = "-L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/puppetlabs/puppet/lib" - end - elsif platform.is_macos? && platform.architecture == 'arm64' && platform.os_version.to_i >= 13 - rbconfig_changes["CC"] = 'clang' - elsif platform.is_windows? - if platform.architecture == "x64" - rbconfig_changes["CC"] = "x86_64-w64-mingw32-gcc" - else - rbconfig_changes["CC"] = "i686-w64-mingw32-gcc" - end - end - - pkg.add_source("file://resources/files/ruby_vendor_gems/operating_system.rb") - defaults_dir = File.join(settings[:libdir], "ruby/2.7.0/rubygems/defaults") - pkg.directory(defaults_dir) - pkg.install_file "../operating_system.rb", File.join(defaults_dir, 'operating_system.rb') - - certs_dir = File.join(settings[:libdir], 'ruby/2.7.0/rubygems/ssl_certs/puppetlabs.net') - pkg.directory(certs_dir) - - pkg.add_source('file://resources/files/rubygems/COMODO_RSA_Certification_Authority.pem') - pkg.install_file '../COMODO_RSA_Certification_Authority.pem', File.join(certs_dir, 'COMODO_RSA_Certification_Authority.pem') - - pkg.add_source('file://resources/files/rubygems/GlobalSignRootCA_R3.pem') - pkg.install_file '../GlobalSignRootCA_R3.pem', File.join(certs_dir, 'GlobalSignRootCA_R3.pem') - - pkg.add_source('file://resources/files/rubygems/DigiCertGlobalRootG2.pem') - pkg.install_file '../DigiCertGlobalRootG2.pem', File.join(certs_dir, 'DigiCertGlobalRootG2.pem') - - if rbconfig_changes.any? - pkg.install do - [ - "#{host_ruby} ../rbconfig-update.rb \"#{rbconfig_changes.to_s.gsub('"', '\"')}\" #{rbconfig_topdir}", - "cp original_rbconfig.rb #{settings[:datadir]}/doc/rbconfig-#{pkg.get_version}-orig.rb", - "cp new_rbconfig.rb #{rbconfig_topdir}/rbconfig.rb", - ] - end - end -end diff --git a/configs/components/ruby-shadow.rb b/configs/components/ruby-shadow.rb index 1473782b..b016651e 100644 --- a/configs/components/ruby-shadow.rb +++ b/configs/components/ruby-shadow.rb @@ -38,15 +38,11 @@ ruby = File.join(settings[:ruby_bindir], 'ruby') end - matchdata = platform.settings[:ruby_version].match(/(\d+)\.(\d+)(\.\d+)?/) - ruby_major_version = matchdata[1].to_i - if ruby_major_version >= 3 - base = "resources/patches/ruby_32" - # https://github.com/apalmblad/ruby-shadow/issues/26 - # if ruby-shadow gets a 3 release this should be removed - pkg.apply_patch "#{base}/ruby-shadow-taint.patch", strip: "1" - pkg.apply_patch "#{base}/ruby-shadow-rbconfig.patch", strip: "1" - end + base = "resources/patches/ruby_32" + # https://github.com/apalmblad/ruby-shadow/issues/26 + # if ruby-shadow gets a 3 release this should be removed + pkg.apply_patch "#{base}/ruby-shadow-taint.patch", strip: "1" + pkg.apply_patch "#{base}/ruby-shadow-rbconfig.patch", strip: "1" pkg.build do [ diff --git a/configs/projects/_shared-agent-settings.rb b/configs/projects/_shared-agent-settings.rb index a242f619..611ddb86 100644 --- a/configs/projects/_shared-agent-settings.rb +++ b/configs/projects/_shared-agent-settings.rb @@ -152,16 +152,7 @@ # Load default compiler settings instance_eval File.read('configs/projects/_shared-compiler-settings.rb') -# Always use OpenSSL 3, even on FIPS, when we're building for Ruby 3 -if ruby_version_x == "3" - proj.setting(:openssl_version, '3.0') -elsif platform.name =~ /^redhatfips-/ # This is only Ruby 2 builds - proj.setting(:openssl_version, '1.1.1-fips') -elsif platform.name =~ /^windowsfips-/ - proj.setting(:openssl_version, '1.0.2') -else - proj.setting(:openssl_version, '1.1.1') -end +proj.setting(:openssl_version, '3.0') if platform.is_windows? proj.setting(:gcc_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") diff --git a/configs/projects/agent-runtime-7.x.rb b/configs/projects/agent-runtime-7.x.rb deleted file mode 100644 index c1e7e4f2..00000000 --- a/configs/projects/agent-runtime-7.x.rb +++ /dev/null @@ -1,76 +0,0 @@ -project 'agent-runtime-7.x' do |proj| - - # Set preferred component versions if they differ from defaults: - proj.setting :ruby_version, '2.7.8' - - # Solaris and AIX depend on libedit which breaks augeas compliation starting with 1.13.0 - if platform.is_solaris? || platform.is_aix? - proj.setting :augeas_version, '1.12.0' - else - proj.setting :augeas_version, '1.14.1' - end - - proj.setting :curl_version, '7.88.1' - - ######## - # Load shared agent settings - ######## - - instance_eval File.read(File.join(File.dirname(__FILE__), '_shared-agent-settings.rb')) - - ######## - # Settings specific to the next branch - ######## - - # Directory for gems shared by puppet and puppetserver - proj.setting(:puppet_gem_vendor_dir, File.join(proj.libdir, "ruby", "vendor_gems")) - - # Ruby 2.7 loads openssl on installation. Because pl-ruby was not - # built with openssl support, we switch to compile with system - # rubies. - # Solaris 11 seems to work with pl-ruby, and 10 is handled in _shared-agent-settings.rb. - if platform.is_cross_compiled_linux? - proj.setting(:host_ruby, "/usr/bin/ruby") - end - - # Ruby 2.6 (RubyGems 3.0.1) removed the --ri and --rdoc - # options. Switch to using --no-document which is available starting - # with RubyGems 2.0.0preview2. This should also cover cross-compiled - # platforms that use older rubies. - proj.setting(:gem_install, "#{proj.host_gem} install --no-document --local") - - ######## - # Load shared agent components - ######## - - instance_eval File.read(File.join(File.dirname(__FILE__), '_shared-agent-components.rb')) - - ######## - # Components specific to the main branch - ######## - - # When adding components to this list, please - # add them to pe-installer-runtime-main as well - proj.component 'rubygem-concurrent-ruby' - proj.component 'rubygem-multi_json' - proj.component 'rubygem-optimist' - proj.component 'rubygem-highline' - proj.component 'rubygem-hiera-eyaml' - proj.component 'rubygem-thor' - proj.component 'rubygem-scanf' - - if platform.is_linux? - proj.component "virt-what" - proj.component "dmidecode" unless platform.architecture =~ /ppc64/ - end - - unless platform.is_windows? - proj.component 'rubygem-sys-filesystem' - end - - # Nokogiri and dependencies to improve macOS performance (PUP-11332) - if platform.is_macos? - proj.component 'rubygem-nokogiri' - proj.component 'rubygem-mini_portile2' - end -end From 300750813482a94da5dab85aadc8874f854e5095 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:30:32 -0800 Subject: [PATCH 04/33] Remove references to AIX 7.1 If we ever build for AIX in the future, it will be for 7.2 or later, so remove extra logic gating things for 7.1. --- configs/components/_base-ruby.rb | 12 ++---------- configs/components/augeas.rb | 14 +++----------- configs/components/curl.rb | 2 +- configs/components/libffi.rb | 6 +----- configs/components/libxml2.rb | 6 +----- configs/components/libxslt.rb | 6 +----- configs/components/libyaml.rb | 6 +----- configs/components/openssl-3.0.rb | 2 -- configs/components/readline.rb | 2 -- configs/components/ruby-3.2.rb | 8 +------- configs/components/runtime-agent.rb | 20 +++++++------------- configs/projects/_shared-agent-components.rb | 2 +- configs/projects/_shared-agent-settings.rb | 9 ++------- configs/projects/agent-runtime-main.rb | 2 +- 14 files changed, 22 insertions(+), 75 deletions(-) diff --git a/configs/components/_base-ruby.rb b/configs/components/_base-ruby.rb index 96c23fe3..ce3591e3 100644 --- a/configs/components/_base-ruby.rb +++ b/configs/components/_base-ruby.rb @@ -20,11 +20,7 @@ ############# if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "CC", "/opt/pl-build-tools/bin/gcc" - else - pkg.environment "CC", "/opt/freeware/bin/gcc" - end + pkg.environment "CC", "/opt/freeware/bin/gcc" pkg.environment 'LDFLAGS', "#{settings[:ldflags]} -Wl,-bmaxdata:0x80000000" elsif platform.is_solaris? if !platform.is_cross_compiled? && platform.architecture == 'sparc' @@ -73,11 +69,7 @@ if platform.is_aix? pkg.build_requires "runtime-#{settings[:runtime_project]}" - if platform.name == 'aix-7.1-ppc' - pkg.build_requires "libedit" - else - pkg.build_requires "readline" - end + pkg.build_requires "readline" elsif platform.is_solaris? pkg.build_requires "runtime-#{settings[:runtime_project]}" pkg.build_requires "libedit" if platform.name =~ /^solaris-10-sparc/ diff --git a/configs/components/augeas.rb b/configs/components/augeas.rb index 9300f7ba..1f3d5626 100644 --- a/configs/components/augeas.rb +++ b/configs/components/augeas.rb @@ -61,18 +61,10 @@ pkg.environment "PKG_CONFIG_PATH", "#{settings[:libdir]}/pkgconfig" if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "CC", "/opt/pl-build-tools/bin/gcc" - else - pkg.environment "CC", "/opt/freeware/bin/gcc" - pkg.environment "PATH", "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" - end + pkg.environment "CC", "/opt/freeware/bin/gcc" + pkg.environment "PATH", "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" pkg.build_requires "runtime-#{settings[:runtime_project]}" - if platform.name == 'aix-7.1-ppc' - pkg.build_requires 'libedit' - else - pkg.build_requires 'readline' - end + pkg.build_requires 'readline' pkg.environment "LDFLAGS", settings[:ldflags] pkg.environment "CFLAGS", "-I#{settings[:includedir]}" diff --git a/configs/components/curl.rb b/configs/components/curl.rb index 28cf439b..ab4ab57f 100644 --- a/configs/components/curl.rb +++ b/configs/components/curl.rb @@ -22,7 +22,7 @@ pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" pkg.environment "NM" , "/usr/bin/nm" if platform.name =~ /windowsfips-2016/ pkg.environment "CYGWIN", settings[:cygwin] - elsif platform.is_aix? && platform.name != 'aix-7.1-ppc' + elsif platform.is_aix? pkg.environment "PKG_CONFIG_PATH", "/opt/puppetlabs/puppet/lib/pkgconfig" pkg.environment 'PATH', "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" # exclude -Wl,-brtl diff --git a/configs/components/libffi.rb b/configs/components/libffi.rb index 8b65e979..6ee3ed1e 100644 --- a/configs/components/libffi.rb +++ b/configs/components/libffi.rb @@ -8,11 +8,7 @@ pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz" if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" - else - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" - end + pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" elsif platform.is_cross_compiled_linux? pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" pkg.environment "CFLAGS", settings[:cflags] diff --git a/configs/components/libxml2.rb b/configs/components/libxml2.rb index 6e604a05..8e48d652 100644 --- a/configs/components/libxml2.rb +++ b/configs/components/libxml2.rb @@ -12,11 +12,7 @@ pkg.mirror "#{settings[:buildsources_url]}/libxml2-#{pkg.get_version}.tar.xz" if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "PATH", "/opt/pl-build-tools/bin:/opt/freeware/bin:$(PATH)" - else - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" - end + pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" elsif platform.is_cross_compiled_linux? pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" pkg.environment "CFLAGS", settings[:cflags] diff --git a/configs/components/libxslt.rb b/configs/components/libxslt.rb index 3bbe8400..d995ce58 100644 --- a/configs/components/libxslt.rb +++ b/configs/components/libxslt.rb @@ -14,11 +14,7 @@ pkg.build_requires "libxml2" if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "PATH", "/opt/pl-build-tools/bin:/opt/freeware/bin:$(PATH)" - else - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" - end + pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" elsif platform.is_cross_compiled_linux? pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" pkg.environment "CFLAGS", settings[:cflags] diff --git a/configs/components/libyaml.rb b/configs/components/libyaml.rb index dcb57bb7..13e3cdd5 100644 --- a/configs/components/libyaml.rb +++ b/configs/components/libyaml.rb @@ -8,11 +8,7 @@ pkg.mirror "#{settings[:buildsources_url]}/yaml-#{pkg.get_version}.tar.gz" if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" - else - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" - end + pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" elsif platform.is_cross_compiled_linux? pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" pkg.environment "CFLAGS", settings[:cflags] diff --git a/configs/components/openssl-3.0.rb b/configs/components/openssl-3.0.rb index 2bde2256..7b4152a9 100644 --- a/configs/components/openssl-3.0.rb +++ b/configs/components/openssl-3.0.rb @@ -34,8 +34,6 @@ target = platform.architecture == 'x64' ? 'mingw64' : 'mingw' elsif platform.is_aix? - raise "openssl-3.0 is not supported on older AIX" if platform.name == 'aix-7.1-ppc' - # REMIND: why not PATH? pkg.environment 'CC', '/opt/freeware/bin/gcc' diff --git a/configs/components/readline.rb b/configs/components/readline.rb index b234549b..63c275ab 100644 --- a/configs/components/readline.rb +++ b/configs/components/readline.rb @@ -13,8 +13,6 @@ pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz" if platform.is_aix? - raise "readline is not supported on older AIX" if platform.name == 'aix-7.1-ppc' - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" elsif platform.is_cross_compiled_linux? pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" diff --git a/configs/components/ruby-3.2.rb b/configs/components/ruby-3.2.rb index 16dec74e..c96c88ce 100644 --- a/configs/components/ruby-3.2.rb +++ b/configs/components/ruby-3.2.rb @@ -148,7 +148,6 @@ end without_dtrace = [ - 'aix-7.1-ppc', 'aix-7.2-ppc', 'el-7-ppc64le', 'macos-all-arm64', @@ -173,11 +172,7 @@ # TODO: Remove this once PA-1607 is resolved. # TODO: Can we use native autoconf? The dependencies seemed a little too extensive if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - pkg.configure { ["/opt/pl-build-tools/bin/autoconf"] } - else - pkg.configure { ["/opt/freeware/bin/autoconf"] } - end + pkg.configure { ["/opt/freeware/bin/autoconf"] } else pkg.configure { ["bash autogen.sh"] } end @@ -227,7 +222,6 @@ end target_doubles = { - 'powerpc-ibm-aix7.1.0.0' => 'powerpc-aix7.1.0.0', 'powerpc-ibm-aix7.2.0.0' => 'powerpc-aix7.2.0.0', 'aarch64-redhat-linux' => 'aarch64-linux', 'ppc64-redhat-linux' => 'powerpc64-linux', diff --git a/configs/components/runtime-agent.rb b/configs/components/runtime-agent.rb index 5b08aa5e..9af09097 100644 --- a/configs/components/runtime-agent.rb +++ b/configs/components/runtime-agent.rb @@ -30,11 +30,7 @@ libdir = File.join("/opt/pl-build-tools", settings[:platform_triple], "lib") end elsif platform.is_aix? - if platform.name == "aix-7.1-ppc" - libdir = "/opt/pl-build-tools/lib/gcc/powerpc-ibm-aix7.1.0.0/5.2.0/" - else - libdir = "/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/10/" - end + libdir = "/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/10/" elsif platform.is_solaris? || platform.architecture =~ /i\d86/ libdir = "/opt/pl-build-tools/lib" elsif platform.architecture =~ /64/ @@ -47,14 +43,12 @@ if platform.is_aix? pkg.install_file File.join(libdir, "libstdc++.a"), "/opt/puppetlabs/puppet/lib/libstdc++.a" pkg.install_file File.join(libdir, "libgcc_s.a"), "/opt/puppetlabs/puppet/lib/libgcc_s.a" - if platform.name != 'aix-7.1-ppc' - pkg.install_file File.join(libdir, "libatomic.a"), "/opt/puppetlabs/puppet/lib/libatomic.a" - pkg.install_file "/opt/freeware/lib/libiconv.a", "/opt/puppetlabs/puppet/lib/libiconv.a" - pkg.install_file "/opt/freeware/lib/libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so.6.4.0" - pkg.link "libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so" - pkg.install_file "/opt/freeware/lib/libreadline.a", "/opt/puppetlabs/puppet/lib/libreadline.a" - pkg.install_file "/opt/freeware/lib/libz.a", "/opt/puppetlabs/puppet/lib/libz.a" - end + pkg.install_file File.join(libdir, "libatomic.a"), "/opt/puppetlabs/puppet/lib/libatomic.a" + pkg.install_file "/opt/freeware/lib/libiconv.a", "/opt/puppetlabs/puppet/lib/libiconv.a" + pkg.install_file "/opt/freeware/lib/libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so.6.4.0" + pkg.link "libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so" + pkg.install_file "/opt/freeware/lib/libreadline.a", "/opt/puppetlabs/puppet/lib/libreadline.a" + pkg.install_file "/opt/freeware/lib/libz.a", "/opt/puppetlabs/puppet/lib/libz.a" elsif 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" diff --git a/configs/projects/_shared-agent-components.rb b/configs/projects/_shared-agent-components.rb index ed0ce1ef..2fed44e4 100644 --- a/configs/projects/_shared-agent-components.rb +++ b/configs/projects/_shared-agent-components.rb @@ -46,7 +46,7 @@ end # libedit is used instead of readline on these platforms -if platform.is_solaris? || platform.name == 'aix-7.1-ppc' +if platform.is_solaris? proj.component 'libedit' end diff --git a/configs/projects/_shared-agent-settings.rb b/configs/projects/_shared-agent-settings.rb index 611ddb86..9575ade2 100644 --- a/configs/projects/_shared-agent-settings.rb +++ b/configs/projects/_shared-agent-settings.rb @@ -190,13 +190,8 @@ proj.setting(:ldflags, "-L#{proj.libdir}") end -if platform.is_aix? - if platform.name == 'aix-7.1-ppc' - proj.setting(:ldflags, "-Wl,-brtl -L#{proj.libdir} -L/opt/pl-build-tools/lib") - else - proj.setting(:ldflags, "-Wl,-brtl -L#{proj.libdir}") - end -end + +proj.setting(:ldflags, "-Wl,-brtl -L#{proj.libdir}") if platform.is_aix? if platform.is_solaris? proj.identifier 'voxpupuli.org' diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index af2210e3..19fd45f5 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -5,7 +5,7 @@ proj.setting :rubygem_highline_version, '3.0.1' # Solaris and AIX depend on libedit which breaks augeas compliation starting with 1.13.0 - if platform.is_solaris? || platform.name == 'aix-7.1-ppc' + if platform.is_solaris? proj.setting :augeas_version, '1.12.0' else proj.setting :augeas_version, '1.14.1' From 5c1a90892960de6260fdab8da329b0aa09f33509 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:41:08 -0800 Subject: [PATCH 05/33] Update curl to 8.17.0 --- configs/components/curl.rb | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/configs/components/curl.rb b/configs/components/curl.rb index ab4ab57f..7dfdd3ff 100644 --- a/configs/components/curl.rb +++ b/configs/components/curl.rb @@ -2,8 +2,8 @@ # Component release information: https://github.com/curl/curl/releases ##### component 'curl' do |pkg, settings, platform| - pkg.version '8.15.0' - pkg.sha256sum 'd85cfc79dc505ff800cb1d321a320183035011fa08cb301356425d86be8fc53c' + pkg.version '8.17.0' + pkg.sha256sum 'e8e74cdeefe5fb78b3ae6e90cd542babf788fa9480029cfcee6fd9ced42b7910' pkg.url "https://curl.se/download/curl-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/curl-#{pkg.get_version}.tar.gz" @@ -31,20 +31,6 @@ pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" end - # Following lines should we removed once we drop curl 7 - if version.start_with?('7') - pkg.apply_patch 'resources/patches/curl/CVE-2023-27535.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2023-28319.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2023-32001.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2023-38545.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2023-38546.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2023-46218.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2024-2004.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2024-2398.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2024-7264.patch' - pkg.apply_patch 'resources/patches/curl/CVE-2024-8096.patch' - end - configure_options = [] configure_options << "--with-ssl=#{settings[:prefix]} --without-libpsl" From 8b840f4729c17de80099c543484c62813b196668 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:42:56 -0800 Subject: [PATCH 06/33] Update libxml2 to 2.15.1 --- configs/components/libxml2.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/components/libxml2.rb b/configs/components/libxml2.rb index 8e48d652..3c3cddef 100644 --- a/configs/components/libxml2.rb +++ b/configs/components/libxml2.rb @@ -4,8 +4,8 @@ # https://github.com/GNOME/libxml2/tags ##### component "libxml2" do |pkg, settings, platform| - pkg.version '2.14.5' - pkg.sha256sum '03d006f3537616833c16c53addcdc32a0eb20e55443cba4038307e3fa7d8d44b' + pkg.version '2.15.1' + pkg.sha256sum 'c008bac08fd5c7b4a87f7b8a71f283fa581d80d80ff8d2efd3b26224c39bc54c' libxml2_version_y = pkg.get_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2') pkg.url "https://download.gnome.org/sources/libxml2/#{libxml2_version_y}/libxml2-#{pkg.get_version}.tar.xz" From 5586e2a2f907046f6bc94ab6e01a96b6659b80a2 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 10:44:20 -0800 Subject: [PATCH 07/33] Update OpenSSL to 3.0.18 Addresses CVE-2025-9230 and CVE-2025-9232. --- configs/components/openssl-3.0.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/components/openssl-3.0.rb b/configs/components/openssl-3.0.rb index 7b4152a9..6d1aa641 100644 --- a/configs/components/openssl-3.0.rb +++ b/configs/components/openssl-3.0.rb @@ -6,8 +6,8 @@ # need to move to the 3.5.x LTS stream in the next year. ##### component 'openssl' do |pkg, settings, platform| - pkg.version '3.0.17' - pkg.sha256sum 'dfdd77e4ea1b57ff3a6dbde6b0bdc3f31db5ac99e7fdd4eaf9e1fbb6ec2db8ce' + pkg.version '3.0.18' + pkg.sha256sum 'd80c34f5cf902dccf1f1b5df5ebb86d0392e37049e5d73df1b3abae72e4ffe8b' pkg.url "https://github.com/openssl/openssl/releases/download/openssl-#{pkg.get_version}/openssl-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/openssl-#{pkg.get_version}.tar.gz" @@ -15,7 +15,7 @@ # ENVIRONMENT, FLAGS, TARGETS ############################# - if platform.name =~ /^(el-|redhat-|redhatfips-|fedora-)/ + if platform.name =~ /^(amazon-|el-|redhat-|redhatfips-|fedora-)/ pkg.build_requires 'perl-core' elsif platform.is_solaris? # perl is installed in platform definition From fada058a8d893f34284d95674a67f5099e7e2364 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:18:47 -0800 Subject: [PATCH 08/33] Add openssl gem to Gemfile In Ruby 3.2.9, the openssl gem is out of date. On MacOS with the latest OpenSSL, this breaks. This adds the gem to the gemfile so we don't break during builds. This doesn't affect the build itself, as it is due to OpenSSL 3.6 and we ship 3.0. This doesn't quite work on Windows, where we have no choice but to use Ruby 3.2.2 in Cygwin. --- Gemfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Gemfile b/Gemfile index 1eb3eed2..003ebb6a 100644 --- a/Gemfile +++ b/Gemfile @@ -14,6 +14,10 @@ gem 'artifactory' gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/openvoxproject/vanagon#main') gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.105') gem 'rake', '~> 13.0' +# Need to update the openssl gem on MacOS to avoid SSL errors. Doesn't hurt to have the newest +# for all platforms. +# https://www.rubyonmac.dev/certificate-verify-failed-unable-to-get-certificate-crl-openssl-ssl-sslerror +gem 'openssl' unless `uname -o`.chomp == 'Cygwin' group(:development, optional: true) do gem 'highline', require: false From ac910278df8a5c695fbde077eaaea70efc1cc7ae Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:15:54 -0800 Subject: [PATCH 09/33] Remove remnants of nokogiri --- configs/components/rubygem-mini_portile2.rb | 15 --------------- configs/projects/agent-runtime-main.rb | 6 ------ 2 files changed, 21 deletions(-) delete mode 100644 configs/components/rubygem-mini_portile2.rb diff --git a/configs/components/rubygem-mini_portile2.rb b/configs/components/rubygem-mini_portile2.rb deleted file mode 100644 index 2bc9932a..00000000 --- a/configs/components/rubygem-mini_portile2.rb +++ /dev/null @@ -1,15 +0,0 @@ -##### -# Component release information: -# https://rubygems.org/gems/mini_portile2 -# 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') - - pkg.environment 'GEM_HOME', settings[:gem_home] -end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 19fd45f5..3a953970 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -67,12 +67,6 @@ proj.component 'rubygem-sys-filesystem' end - # Nokogiri and dependencies to improve macOS performance (PUP-11332) - if platform.is_macos? - proj.component 'rubygem-nokogiri' - proj.component 'rubygem-mini_portile2' - end - # Dependencies for gettext for Ruby >= 3.2 (PA-4815) proj.component 'rubygem-erubi' proj.component 'rubygem-prime' From a7d98b6c7b03bf34f5102abfd9e663b9f3e367ea Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:23:36 -0800 Subject: [PATCH 10/33] Pin Cygwin Ruby to 3.2.2-2 This is the only version available besides 3.4. This is really just for the build process and not the build itself. Using 3.4 for this is currently broken. --- setup.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.ps1 b/setup.ps1 index 9ef2e0d7..6ca75ea2 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -1,4 +1,4 @@ $url="https://cygwin.com/setup-x86_64.exe" $dest="C:\setup-x86_64.exe" Invoke-WebRequest -Uri $url -OutFile $dest -cmd /c "C:\setup-x86_64.exe -s https://cygwin.osuosl.org -q -P ruby,ruby-devel,gcc-core,make,git,libyaml-devel" +cmd /c "C:\setup-x86_64.exe -s https://cygwin.osuosl.org -q -P ruby=3.2.2-2,ruby-devel=3.2.2-2,gcc-core,make,git,libyaml-devel" From 440096dc1d57dc70f65e11662c8e6c612279f04b Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:37:21 -0800 Subject: [PATCH 11/33] Remove references to SLES 11 --- configs/components/ruby-3.2.rb | 1 - configs/components/ruby-shadow.rb | 2 -- configs/components/runtime-agent.rb | 14 ++------------ 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/configs/components/ruby-3.2.rb b/configs/components/ruby-3.2.rb index c96c88ce..3d806af1 100644 --- a/configs/components/ruby-3.2.rb +++ b/configs/components/ruby-3.2.rb @@ -153,7 +153,6 @@ 'macos-all-arm64', 'macos-all-x86_64', 'redhatfips-7-x86_64', - 'sles-11-x86_64', 'sles-12-ppc64le', 'solaris-11-sparc', 'solaris-113-sparc', diff --git a/configs/components/ruby-shadow.rb b/configs/components/ruby-shadow.rb index b016651e..413f1b90 100644 --- a/configs/components/ruby-shadow.rb +++ b/configs/components/ruby-shadow.rb @@ -10,8 +10,6 @@ pkg.build_requires "ruby-#{settings[:ruby_version]}" if !platform.is_cross_compiled? && platform.architecture == 'sparc' pkg.environment "PATH", "$(PATH):/opt/pl-build-tools/bin:/usr/ccs/bin:/usr/sfw/bin" - elsif platform.name == 'sles-11-x86_64' - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" else pkg.environment "PATH", "$(PATH):/usr/ccs/bin:/usr/sfw/bin" end diff --git a/configs/components/runtime-agent.rb b/configs/components/runtime-agent.rb index 9af09097..ab6839ed 100644 --- a/configs/components/runtime-agent.rb +++ b/configs/components/runtime-agent.rb @@ -3,17 +3,7 @@ pkg.environment "PROJECT_SHORTNAME", "puppet" pkg.add_source "file://resources/files/runtime/runtime.sh" - if platform.name =~ /sles-11-x86_64/ - if settings[:ruby_version] =~ /2.7/ - pkg.install do - "zypper install -y pl-gcc=4.8.2-1" - end - else - pkg.install do - "zypper install -y pl-gcc8" - end - end - elsif platform.is_macos? && platform.is_cross_compiled? + if platform.is_macos? && platform.is_cross_compiled? if settings[:ruby_version] =~ /^3\./ pkg.install do # These are dependencies of ruby@3.x, remove symlinks from /usr/local @@ -65,7 +55,7 @@ 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/libffi-6.dll", "#{settings[:ruby_bindir]}/libffi-6.dll" elsif platform.is_solaris? || - platform.name =~ /el-[56]|redhatfips-7|sles-(:?11)/ + platform.name =~ /redhatfips-7/ pkg.install do "bash runtime.sh #{libdir} puppet" end From 725cbc8405df5b0e0e9c1c54c07a1b6715fe4f99 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 13:27:06 -0800 Subject: [PATCH 12/33] Update update_gems task This updates the update_gems rake task to also add any new gem components to the project files. It will also create a separate commit for each change, so it is more easily ingestible by automation when creating the changelog. --- tasks/update_gems.rake | 357 +++++++++++++++++++++++++---------------- 1 file changed, 223 insertions(+), 134 deletions(-) diff --git a/tasks/update_gems.rake b/tasks/update_gems.rake index 9956cf73..e89782f3 100644 --- a/tasks/update_gems.rake +++ b/tasks/update_gems.rake @@ -6,58 +6,70 @@ require 'uri' require 'net/http' require 'rubygems/version' require 'rubygems/requirement' -require 'colorize' -require 'tty-table' -require 'set' +require 'open3' -# ----- Constants ----- REPO_ROOT = File.expand_path('..', __dir__) COMPONENT_DIR = File.join(REPO_ROOT, 'configs', 'components') COMPONENT_GLOB = File.join(COMPONENT_DIR, 'rubygem-*.rb') +PROJECT_GLOB = File.join(REPO_ROOT, 'configs', 'projects', '*.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*$/ +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*$/ +PROJ_COMPONENT = /^\s*proj\.component\s+(?['"]?)(?rubygem-[^'"\s]+)\k\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') +def git_relative_path(path) + path = File.expand_path(path) + prefix = REPO_ROOT + File::SEPARATOR + path.start_with?(prefix) ? path[prefix.length..-1] : path +end + +def git_commit_file(path, message) + rel = git_relative_path(path) + status_out, status_err, status_ok = Open3.capture3( + 'git', '-C', REPO_ROOT, 'status', '--porcelain', '--', rel + ) + unless status_ok + $stderr.puts "git status failed for #{rel}:\n#{status_err}\n#{status_out}" + return false + end + return true if status_out.strip.empty? + + _, add_err, add_ok = Open3.capture3('git', '-C', REPO_ROOT, 'add', rel) + unless add_ok + $stderr.puts "git add failed for #{rel}:\n#{add_err}" + return false + end + + _, commit_err, commit_ok = Open3.capture3('git', '-C', REPO_ROOT, 'commit', '-m', message) + unless commit_ok + $stderr.puts "git commit failed for #{rel}:\n#{commit_err}" + return false + end + true end -# ----- Table and progress output ----- def color_status(s) + require 'colorize' 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 + when 'ERROR', 'UNKNOWN' then s.red else s end end def print_table(headers, rows) + require 'tty-table' 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 @@ -83,12 +95,11 @@ def progress_clear(io: $stderr) @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" + 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 @@ -104,24 +115,15 @@ def get_version_details(name, version) 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)) + req = req_str.to_s.strip + req = '>= 0' if req.empty? + Gem::Requirement.new(req.split(',').map!(&:strip)) + .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 } + metadata = get_versions(name).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'] @@ -131,12 +133,10 @@ 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 if v['prerelease'] || v['yanked'] next false unless v['platform'].nil? || v['platform'] == 'ruby' ruby_req_ok?(v['ruby_version']) end @@ -144,12 +144,9 @@ def get_metadata(name:, version: nil, platforms: ['ruby']) 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 + platforms.each { |platform| shas[platform] = find_sha(name, new_version, platform) } details = get_version_details(name, new_version) deps = (details.dig('dependencies', 'runtime') || []) @@ -157,11 +154,9 @@ def get_metadata(name:, version: nil, platforms: ['ruby']) { '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 @@ -169,7 +164,6 @@ def process_component(path, gemname) 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 = [] @@ -186,16 +180,15 @@ def process_component(path, gemname) end prev = line end + platforms.uniq! 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) + metadata = get_metadata(name: gemname, version: pinned ? current_version : nil, platforms: platforms) 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| @@ -210,110 +203,206 @@ def process_component(path, gemname) 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) + block_changed = old_body_str != new_body_str lines[(start + 1)...finish] = new_body if block_changed - - version_changed = (current_version != target_version) + 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 } + { + name: gemname, + status: status, + version: ver_col, + deps_added: newly_added.map { |n| "rubygem-#{n}" }, + missing: missing, + path: path, + old_version: current_version, + new_version: target_version, + block_changed: block_changed + } end +def update_projects_for_added(gem, added) + changed_files = [] + Dir[PROJECT_GLOB].each do |proj_path| + lines = File.read(proj_path, encoding: 'UTF-8').lines + next if lines.any? { |l| (m = l.match(PROJ_COMPONENT)) && m[:component] == added } + + gem_index = nil + gem_indent = ' ' + lines.each_with_index do |l, i| + if (m = l.match(PROJ_COMPONENT)) && m[:component] == gem + gem_index = i + gem_indent = (l[/^\s*/] || ' ') + break + end + end + next unless gem_index -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) + lines.insert(gem_index + 1, "#{gem_indent}proj.component '#{added}'\n") + File.write(proj_path, lines.join, encoding: 'UTF-8') + changed_files << proj_path + end + changed_files +end + +def create_component_file(path, gemname, version, sha, deps = []) + deps_block = deps.map { |name| " pkg.build_requires 'rubygem-#{name}'\n" }.join + content = <<~RUBY + ##### + # Component release information: + # https://rubygems.org/gems/#{gemname} + ##### + component 'rubygem-#{gemname}' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '#{version}' + pkg.sha256sum '#{sha}' + RUBY + content << deps_block + content << <<~RUBY + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') 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']) + RUBY + File.write(path, content, encoding: 'UTF-8') +end + +def update_all_components_and_projects + results = [] + added = [] + + files = Dir[COMPONENT_GLOB] + 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}") + r = process_component(path, gemname) + results << r + + next unless r[:block_changed] + component = "rubygem-#{r[:name]}" + msg = + if r[:old_version] != r[:new_version] + "#{component}: Update #{r[:old_version]} -> #{r[:new_version]}" + elsif !r[:deps_added].empty? + if r[:deps_added].length == 1 + dep = r[:deps_added].first + "#{component}: Add #{dep} dependency" + else + deps = r[:deps_added].join(', ') + "#{component}: Add dependencies #{deps}" + end + else + "#{component}: Update component metadata" + end + git_commit_file(r[:path], msg) + end + progress_clear + + queue = results.flat_map { |r| (r[:missing] || []).map { |dep| [r[:name], dep] } } + + until queue.empty? + existing_gem, added_dep = queue.shift + dep_path = File.join(COMPONENT_DIR, "rubygem-#{added_dep}.rb") + created = false + deps = nil + + unless File.exist?(dep_path) + progress_print("Creating component #{added_dep} (required by #{existing_gem})") + m = get_metadata(name: added_dep, platforms: ['ruby']) ver = m['version'] sha = m['shas']['ruby'] - deps = (m['dependencies'] || []).map { |d| d['name'] }.uniq.sort - [name] + deps = (m['dependencies'] || []).map { |d| d['name'] }.uniq.sort - [added_dep] - create_component_file(path, name, ver, sha, deps) - added << { name: name, version: ver, deps: deps } + create_component_file(dep_path, added_dep, ver, sha, deps) + added << { name: added_dep, version: ver, deps: deps, path: dep_path } - 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 + component_full_name = "rubygem-#{added_dep}" + git_commit_file(dep_path, "#{component_full_name}: Add new component") + created = true 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 + if created || added.any? { |g| g[:name] == added_dep } + component_full_name = "rubygem-#{added_dep}" + update_projects_for_added("rubygem-#{existing_gem}", component_full_name).each do |proj_path| + project_name = File.basename(proj_path, '.rb') + git_commit_file(proj_path, "#{project_name}: Add #{component_full_name} component") + end 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(', '), - ] + deps&.each do |trans_dep| + trans_path = File.join(COMPONENT_DIR, "rubygem-#{trans_dep}.rb") + queue << [added_dep, trans_dep] unless File.exist?(trans_path) 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 + + progress_clear + [results, added] +end + +def output_json(results, added) + puts JSON.pretty_generate( + ruby_version_used_for_checks: TARGET_RUBY_VER, + results: results.map { |r| + { + name: r[:name], + status: r[:status], + version: r[:version], + deps_added: r[:deps_added], + missing: r[:missing] + } + }, + added: added.map { |info| + { name: info[:name], version: info[:version], deps: info[:deps] } + } + ) +end + +def output_table(results, added) + 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 + +namespace :vox do + desc 'Update rubygem components and print a summary table or JSON of changes' + task :update_gems do + results, added = update_all_components_and_projects + if !(ARGV & ['--json', '-j', '--format=json']).empty? + output_json(results, added) + else + output_table(results, added) end - print_table(headers, rows) end -end \ No newline at end of file +end From da8f2253218026e287f29c87f5dea4020a80cadc Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:13:36 -0800 Subject: [PATCH 13/33] Remove _shared-agent-components.rb We don't need this since we only have one agent project now. This makes it easier to maintain with automation. --- configs/projects/_shared-agent-components.rb | 83 -------------------- configs/projects/agent-runtime-main.rb | 81 +++++++++++++++---- 2 files changed, 64 insertions(+), 100 deletions(-) delete mode 100644 configs/projects/_shared-agent-components.rb diff --git a/configs/projects/_shared-agent-components.rb b/configs/projects/_shared-agent-components.rb deleted file mode 100644 index 2fed44e4..00000000 --- a/configs/projects/_shared-agent-components.rb +++ /dev/null @@ -1,83 +0,0 @@ -# This "project" is designed to be shared by all puppet-agent projects -# See configs/projects/agent-runtime-.rb -unless defined?(proj) - warn('These are components shared by all puppet-agent projects; They cannot be built as a standalone project.') - warn('Please choose one of the other puppet-agent projects instead.') - exit 1 -end - -######## -# Common components for all versions of puppet-agent -######## - -# Common components required by all agent branches -proj.component 'runtime-agent' - -matchdata = platform.settings[:ruby_version].match(/(\d+)\.\d+(\.\d+)?/) -ruby_major_version = matchdata[1].to_i -# Ruby 3.2 does not package these two libraries so we need to add them as a component -if ruby_major_version >= 3 - proj.component 'libffi' - proj.component 'libyaml' -end - -if proj.openssl_version =~ /^3\./ # All Ruby 3 builds will use OpenSSL 3, including FIPS - proj.component "openssl-#{proj.openssl_version}" -elsif platform.name =~ /^redhatfips-.*/ # This is only Ruby 2 builds - proj.component "openssl-1.1.1-fips" -else - proj.component "openssl-fips-2.0.16" if platform.name =~ /windowsfips-/ && proj.openssl_version =~ /1.0.2/ - proj.component "openssl-#{proj.openssl_version}" -end - -proj.component 'curl' -proj.component 'puppet-ca-bundle' -proj.component "ruby-#{proj.ruby_version}" -proj.component "readline" if platform.is_macos? -proj.component 'augeas' unless platform.is_windows? -proj.component 'libxml2' unless platform.is_windows? -proj.component 'libxslt' unless platform.is_windows? - -proj.component 'ruby-augeas' unless platform.is_windows? -proj.component 'ruby-shadow' unless platform.is_aix? || platform.is_windows? -# We only build ruby-selinux for EL, Fedora, Debian and Ubuntu (amd64/i386) -if platform.is_el? || platform.is_fedora? || platform.is_debian? || (platform.is_ubuntu? && platform.architecture !~ /ppc64el$/) - proj.component 'ruby-selinux' -end - -# libedit is used instead of readline on these platforms -if platform.is_solaris? - proj.component 'libedit' -end - -proj.component 'pl-ruby-patch' if platform.is_cross_compiled? - -proj.component 'rubygem-hocon' -proj.component 'rubygem-deep_merge' -proj.component 'rubygem-net-ssh' -proj.component 'rubygem-semantic_puppet' -proj.component 'rubygem-text' -proj.component 'rubygem-locale' -proj.component 'rubygem-gettext' -proj.component 'rubygem-fast_gettext' -proj.component 'rubygem-ffi' - -# These gems are still included in Ruby 3.2, but we include them because -# OpenFact requires them for Ruby 3.4 support, and the agent will need to -# do the same once we get to Ruby 3.4+ in OpenVox 9. -proj.component 'rubygem-logger' -proj.component 'rubygem-base64' - -# We add rexml explicitly in here because even though ruby 3 ships with rexml as its default gem, the version -# of rexml it ships with contains CVE-2024-41946, CVE-2024-41123, CVE-2024-35176 and CVE-2024-39908. -# So, we add it here to update to a higher version -# free from the CVEs. -proj.component 'rubygem-rexml' - -if platform.is_windows? || platform.is_solaris? || platform.is_aix? - proj.component 'rubygem-minitar' -end - -if platform.is_macos? - proj.component 'rubygem-CFPropertyList' -end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 3a953970..42e18698 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -39,35 +39,82 @@ proj.setting(:gem_install, "#{proj.host_gem} install --no-document --local") ######## - # Load shared agent components + # Components + # Use full blocks here, rather than single line logic so that + # automation can insert components as needed. ######## - instance_eval File.read(File.join(File.dirname(__FILE__), '_shared-agent-components.rb')) + proj.component 'runtime-agent' + proj.component 'libffi' + proj.component 'libyaml' + proj.component "openssl-#{proj.openssl_version}" - ######## - # Components specific to the main branch - ######## + proj.component 'curl' + proj.component 'puppet-ca-bundle' + proj.component "ruby-#{proj.ruby_version}" - # When adding components to this list, please - # add them to pe-installer-runtime-main as well + proj.component 'rubygem-base64' proj.component 'rubygem-concurrent-ruby' + proj.component 'rubygem-deep_merge' + proj.component 'rubygem-erubi' + proj.component 'rubygem-fast_gettext' + proj.component 'rubygem-ffi' + proj.component 'rubygem-gettext' + proj.component 'rubygem-hiera-eyaml' + proj.component 'rubygem-highline' + proj.component 'rubygem-hocon' + proj.component 'rubygem-locale' + proj.component 'rubygem-logger' proj.component 'rubygem-multi_json' + proj.component 'rubygem-net-ssh' proj.component 'rubygem-optimist' - proj.component 'rubygem-highline' - proj.component 'rubygem-hiera-eyaml' - proj.component 'rubygem-thor' + proj.component 'rubygem-prime' + proj.component 'rubygem-semantic_puppet' proj.component 'rubygem-scanf' + proj.component 'rubygem-text' + proj.component 'rubygem-thor' - if platform.is_linux? - proj.component "virt-what" - proj.component "dmidecode" unless platform.architecture =~ /ppc64/ - end + # We add rexml explicitly in here because even though ruby 3 ships with rexml as its default gem, the version + # of rexml it ships with can contain CVEs. So, we add it here to update to a higher version free from the CVEs. + proj.component 'rubygem-rexml' unless platform.is_windows? + proj.component 'augeas' + proj.component 'ruby-augeas' + proj.component 'libxml2' + proj.component 'libxslt' proj.component 'rubygem-sys-filesystem' end - # Dependencies for gettext for Ruby >= 3.2 (PA-4815) - proj.component 'rubygem-erubi' - proj.component 'rubygem-prime' + if platform.is_macos? + proj.component 'readline' + proj.component 'rubygem-CFPropertyList' + end + + unless platform.is_aix? || platform.is_windows? + proj.component 'ruby-shadow' + end + + # We only build ruby-selinux for EL, Fedora, Debian and Ubuntu (amd64/i386) + if platform.is_el? || platform.is_fedora? || platform.is_debian? || (platform.is_ubuntu? && platform.architecture !~ /ppc64el$/) + proj.component 'ruby-selinux' + end + + # libedit is used instead of readline on these platforms + if platform.is_solaris? + proj.component 'libedit' + end + + if platform.is_cross_compiled? + proj.component 'pl-ruby-patch' + end + + if platform.is_windows? || platform.is_solaris? || platform.is_aix? + proj.component 'rubygem-minitar' + end + + if platform.is_linux? + proj.component "virt-what" + proj.component "dmidecode" unless platform.architecture =~ /ppc64/ + end end From 10c3431dae7047ec859993c9553a3ed3bb3ba2d0 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:26:15 -0800 Subject: [PATCH 14/33] Add additional dependency checking to update_gems task Some of our existing project code has missing dependencies. This script previously only added new ones. Now, it scans the full component list for dependencies. --- tasks/update_gems.rake | 96 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 7 deletions(-) diff --git a/tasks/update_gems.rake b/tasks/update_gems.rake index e89782f3..a16d268c 100644 --- a/tasks/update_gems.rake +++ b/tasks/update_gems.rake @@ -228,6 +228,7 @@ def process_component(path, gemname) version: ver_col, deps_added: newly_added.map { |n| "rubygem-#{n}" }, missing: missing, + gem_deps: new_deps, path: path, old_version: current_version, new_version: target_version, @@ -281,6 +282,63 @@ def create_component_file(path, gemname, version, sha, deps = []) File.write(path, content, encoding: 'UTF-8') end +# Build a map of "rubygem-foo" => ["rubygem-bar", "rubygem-baz", ...] +# based on component metadata (after components and any new ones are in place). +def build_component_dependency_map(results, added) + existing_components = Dir[COMPONENT_GLOB].map { |p| File.basename(p, '.rb') } + deps_map = Hash.new { |h, k| h[k] = [] } + + results.each do |r| + component_name = "rubygem-#{r[:name]}" + (r[:gem_deps] || []).each do |gem_dep| + dep_component = "rubygem-#{gem_dep}" + deps_map[component_name] << dep_component if existing_components.include?(dep_component) + end + end + + added.each do |info| + component_name = "rubygem-#{info[:name]}" + (info[:deps] || []).each do |gem_dep| + dep_component = "rubygem-#{gem_dep}" + deps_map[component_name] << dep_component if existing_components.include?(dep_component) + end + end + + deps_map.each_value(&:uniq!) + deps_map +end + +# Ensure that for every project that references a component, the project also +# references all of that component's dependencies as components. +def ensure_projects_have_component_deps(component_deps_map) + issues = [] + processed_pairs = {} + + component_deps_map.each do |component, deps| + deps.each do |dep| + key = "#{component}->#{dep}" + next if processed_pairs[key] + processed_pairs[key] = true + + changed_files = update_projects_for_added(component, dep) + next if changed_files.empty? + + changed_files.each do |proj_path| + project_name = File.basename(proj_path, '.rb') + git_commit_file(proj_path, "#{project_name}: Add #{dep} component") + issues << { + project: project_name, + project_path: proj_path, + component: component, + missing_dep: dep + } + end + end + end + + issues +end + def update_all_components_and_projects results = [] added = [] @@ -324,7 +382,7 @@ def update_all_components_and_projects deps = nil unless File.exist?(dep_path) - progress_print("Creating component #{added_dep} (required by #{existing_gem})") + progress_print("Creating component rubygem-#{added_dep} (required by #{existing_gem})") m = get_metadata(name: added_dep, platforms: ['ruby']) ver = m['version'] sha = m['shas']['ruby'] @@ -353,10 +411,17 @@ def update_all_components_and_projects end progress_clear - [results, added] + + # After all components and new components have been created, build the + # component dependency map and ensure every project includes all required + # component dependencies. + component_deps_map = build_component_dependency_map(results, added) + project_issues = ensure_projects_have_component_deps(component_deps_map) + + [results, added, project_issues] end -def output_json(results, added) +def output_json(results, added, project_issues) puts JSON.pretty_generate( ruby_version_used_for_checks: TARGET_RUBY_VER, results: results.map { |r| @@ -370,11 +435,19 @@ def output_json(results, added) }, added: added.map { |info| { name: info[:name], version: info[:version], deps: info[:deps] } + }, + project_dependency_fixes: project_issues.map { |i| + { + project: i[:project], + project_path: git_relative_path(i[:project_path]), + component: i[:component], + missing_dependency_added: i[:missing_dep] + } } ) end -def output_table(results, added) +def output_table(results, added, project_issues) headers = ['Component', 'Status', 'Version update', 'Dependencies added'] rows = results.map do |r| [ @@ -393,16 +466,25 @@ def output_table(results, added) ] end print_table(headers, rows) + + unless project_issues.empty? + puts + puts 'Project dependency fixes:' + project_issues.group_by { |i| i[:project] }.each do |project, list| + deps_list = list.map { |i| "#{i[:component]} -> #{i[:missing_dep]}" }.uniq + puts " #{project}: #{deps_list.join(', ')}" + end + end end namespace :vox do desc 'Update rubygem components and print a summary table or JSON of changes' task :update_gems do - results, added = update_all_components_and_projects + results, added, project_issues = update_all_components_and_projects if !(ARGV & ['--json', '-j', '--format=json']).empty? - output_json(results, added) + output_json(results, added, project_issues) else - output_table(results, added) + output_table(results, added, project_issues) end end end From 10420519247c5e1bca38be7af75997aad52c5069 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:43:48 -0800 Subject: [PATCH 15/33] Pin public_suffix to 6.0.2 A new 7.0 has been released, but the addressable gem requires < 7. --- configs/components/rubygem-public_suffix.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configs/components/rubygem-public_suffix.rb b/configs/components/rubygem-public_suffix.rb index 8d9f2d43..6931ae9c 100644 --- a/configs/components/rubygem-public_suffix.rb +++ b/configs/components/rubygem-public_suffix.rb @@ -2,9 +2,11 @@ # Component release information: # https://rubygems.org/gems/public_suffix # https://github.com/weppos/publicsuffix-ruby/blob/main/CHANGELOG.md +# Notes: 2025-11-17 - Pinned to < 7 until the addressable gem updates its dependency ##### component 'rubygem-public_suffix' do |pkg, settings, platform| ### Maintained by update_gems automation ### + # PINNED pkg.version '6.0.2' pkg.sha256sum 'bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394' ### End automated maintenance section ### From 785255acbf9ed867e2132f57bb17d8cfe1547228 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:44:25 -0800 Subject: [PATCH 16/33] rubygem-patron: Add new component --- configs/components/rubygem-patron.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 configs/components/rubygem-patron.rb diff --git a/configs/components/rubygem-patron.rb b/configs/components/rubygem-patron.rb new file mode 100644 index 00000000..8743179e --- /dev/null +++ b/configs/components/rubygem-patron.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/patron +##### +component 'rubygem-patron' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '0.13.4' + pkg.sha256sum 'c4ae37404a028772541e2f19a71e19be970aa53fdf8a3d70c5a9c1350bab3b09' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end From f48632aa1b19d4c14fd6ac0804d2ba1c5ff975ff Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:26:12 -0800 Subject: [PATCH 17/33] Add libcurl-devel dep for rubygem-patron --- configs/components/rubygem-patron.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configs/components/rubygem-patron.rb b/configs/components/rubygem-patron.rb index 8743179e..a42cd28b 100644 --- a/configs/components/rubygem-patron.rb +++ b/configs/components/rubygem-patron.rb @@ -8,5 +8,11 @@ pkg.sha256sum 'c4ae37404a028772541e2f19a71e19be970aa53fdf8a3d70c5a9c1350bab3b09' ### End automated maintenance section ### + # Because this is only used in openbolt-runtime, and we don't build + # our own curl there, we use the system version of libcurl to compile + # native extensions against. + pkg.build_requires 'libcurl-devel' if platform.is_rpm? + pkg.build_requires 'libcurl4-gnutls-dev' if platform.is_deb? + instance_eval File.read('configs/components/_base-rubygem.rb') end From 4da4d6f617f31a6d9e6f28d3651047cf058f49ae Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:26:30 -0800 Subject: [PATCH 18/33] Add project directories to openbolt-runtime --- configs/projects/openbolt-runtime.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index 0c355219..6beecdc0 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -241,6 +241,11 @@ # What to include in package? proj.directory proj.prefix + proj.directory proj.bindir if platform.is_windows? || platform.is_macos? + proj.directory proj.libdir + proj.directory proj.includedir + proj.directory proj.datadir + proj.directory proj.mandir # Export the settings for the current project and platform as yaml during builds proj.publish_yaml_settings From 7c0cc24b8afbf52ed8563a2d420bccef38f0956b Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:29:48 -0800 Subject: [PATCH 19/33] Change puppet -> openvox, puppet-strings -> openvox-strings, facter -> openfact --- configs/components/rubygem-openvox-strings.rb | 18 +++++++++++++ configs/components/rubygem-openvox.rb | 25 +++++++++++++++++++ configs/components/rubygem-puppet-strings.rb | 15 ----------- configs/components/rubygem-puppet.rb | 15 ----------- configs/projects/openbolt-runtime.rb | 6 +++-- 5 files changed, 47 insertions(+), 32 deletions(-) create mode 100644 configs/components/rubygem-openvox-strings.rb create mode 100644 configs/components/rubygem-openvox.rb delete mode 100644 configs/components/rubygem-puppet-strings.rb delete mode 100644 configs/components/rubygem-puppet.rb diff --git a/configs/components/rubygem-openvox-strings.rb b/configs/components/rubygem-openvox-strings.rb new file mode 100644 index 00000000..81e7ca26 --- /dev/null +++ b/configs/components/rubygem-openvox-strings.rb @@ -0,0 +1,18 @@ +##### +# Component release information: +# https://rubygems.org/gems/openvox-strings +# https://github.com/voxpupuli/openvox-strings/releases +# https://github.com/voxpupuli/openvox-strings/blob/main/CHANGELOG.md +##### +component 'rubygem-openvox-strings' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '6.0.0' + pkg.sha256sum '3fd42dfd91d7d42ece6edb4254876937ec5634a65f951d912abcaec30156dc88' + pkg.build_requires 'rubygem-openvox' + pkg.build_requires 'rubygem-rgen' + pkg.build_requires 'rubygem-yard' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end + diff --git a/configs/components/rubygem-openvox.rb b/configs/components/rubygem-openvox.rb new file mode 100644 index 00000000..340ec7d4 --- /dev/null +++ b/configs/components/rubygem-openvox.rb @@ -0,0 +1,25 @@ +##### +# Component release information (lol): +# https://rubygems.org/gems/openvox +# https://github.com/OpenVoxProject/openvox/releases +# Notes: +# To be replaced with openvox +##### +component 'rubygem-openvox' do |pkg, settings, platform| + ### Maintained by update_gems automation ### + pkg.version '8.23.1' + pkg.sha256sum '0af1d648fd4dc749b871df2f8fdcc6b74a21635961e8aa080b980a032a1bc915' + pkg.build_requires 'rubygem-concurrent-ruby' + pkg.build_requires 'rubygem-deep_merge' + pkg.build_requires 'rubygem-openfact' + pkg.build_requires 'rubygem-fast_gettext' + pkg.build_requires 'rubygem-getoptlong' + pkg.build_requires 'rubygem-locale' + pkg.build_requires 'rubygem-multi_json' + pkg.build_requires 'rubygem-puppet-resource_api' + pkg.build_requires 'rubygem-scanf' + pkg.build_requires 'rubygem-semantic_puppet' + ### 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 deleted file mode 100644 index 864b50d7..00000000 --- a/configs/components/rubygem-puppet-strings.rb +++ /dev/null @@ -1,15 +0,0 @@ -##### -# Component release information: -# https://rubygems.org/gems/puppet-strings -# https://github.com/puppetlabs/puppet-strings/releases -# 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 deleted file mode 100644 index 028ebc23..00000000 --- a/configs/components/rubygem-puppet.rb +++ /dev/null @@ -1,15 +0,0 @@ -##### -# Component release information (lol): -# https://rubygems.org/gems/puppet -# https://github.com/puppetlabs/puppet/releases -# Notes: -# 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/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index 6beecdc0..a1c1491d 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -199,10 +199,12 @@ proj.component 'rubygem-orchestrator_client' proj.component 'rubygem-paint' proj.component 'rubygem-public_suffix' - proj.component 'rubygem-puppet' + proj.component 'rubygem-openvox' + proj.component 'rubygem-getoptlong' + proj.component 'rubygem-openfact' proj.component 'rubygem-puppet_forge' proj.component 'rubygem-puppet-resource_api' - proj.component 'rubygem-puppet-strings' + proj.component 'rubygem-openvox-strings' proj.component 'rubygem-puppetfile-resolver' proj.component 'rubygem-r10k' proj.component 'rubygem-rgen' From 6cf83f89f03d72e7b0d14efb405617404980c1e3 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:42:25 -0800 Subject: [PATCH 20/33] Add .ruby-version to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ce6dc36e..48914ecb 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ ext/packaging ext/build_metadata*.json pkg *.swp +.ruby-version From 21eb9cc2c373bccdecbb7aad85d2740da636d115 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:58:56 -0800 Subject: [PATCH 21/33] Remove unused task --- .github/workflows/component_diff_check.yml | 41 --- tasks/vanagon_component_diff.rake | 328 --------------------- 2 files changed, 369 deletions(-) delete mode 100644 .github/workflows/component_diff_check.yml delete mode 100644 tasks/vanagon_component_diff.rake diff --git a/.github/workflows/component_diff_check.yml b/.github/workflows/component_diff_check.yml deleted file mode 100644 index d6d8b6df..00000000 --- a/.github/workflows/component_diff_check.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Vanagon Component Diff - -on: - pull_request: - branches: - - main - -permissions: - contents: read # minimal required permissions to clone repo - -jobs: - vanagon_component_diff_check: - runs-on: ubuntu-24.04 - env: - BUNDLE_WITH: development - name: Check - steps: - - name: Checkout current PR - uses: actions/checkout@v6 - with: - fetch-depth: 0 # we need the full history because the rake tasks reads git tags - - - name: Install ruby version ${{ matrix.cfg.ruby }} - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.3 - bundler-cache: true - - - name: Save artifacts data - run: | - mkdir -p ./output - echo '${{ github.event.number }}' > ./output/nr - bundle exec rake vanagon:component_diff -- '-mpall' > ./output/text - cat ./output/text - - - name: Upload artifacts - uses: actions/upload-artifact@v5 - with: - name: artifacts - path: output/ diff --git a/tasks/vanagon_component_diff.rake b/tasks/vanagon_component_diff.rake deleted file mode 100644 index c4de7972..00000000 --- a/tasks/vanagon_component_diff.rake +++ /dev/null @@ -1,328 +0,0 @@ -# coding: utf-8 -namespace :vanagon do |args| - desc 'Show component diff' - task(:component_diff) do - require 'tempfile' - require 'highline/import' - require 'json' - require 'parallel' - require 'hashdiff' - require 'optparse' - - class String - @@markdown = false - @@diff_open = false - - class << self - def format_as_markdown - @@markdown = true - end - - def is_in_markdown? - @@markdown - end - - def start_diff(alternative = '') - return alternative unless @@markdown - @@diff_open = true - '```diff' - end - - def end_diff(alternative = '') - return alternative unless @@markdown - @@diff_open = false - '```' - end - - def start_collapsible(text) - return text unless @@markdown - text.delete!('`~*_').gsub!(' ','') - "
\n #{text}\n\n" - end - - def end_collapsible - return '' unless @@markdown - '
' - end - - def hr - return "\n---\n" if @@markdown - '' - end - end - - def +(text) - "#{self} #{text}" - end - - def red - return @@diff_open ? self : "#{self} :x:" if @@markdown - "\e[31m#{self}\e[0m" - end - - def green - return @@diff_open ? self : "#{self} :white_check_mark:" if @@markdown - "\e[32m#{self}\e[0m" - end - - def cyan - return self if @@markdown - "\e[36m#{self}\e[0m" - end - - def code - return "`#{self}`" if @@markdown - self.italic - end - - def strike - return "~~#{self.strip}~~" if @@markdown - self - end - - def bold - return "**#{self.strip}**" if @@markdown - "\e[1m#{self}\e[22m" - end - - def italic - return "_#{self.strip}_" if @@markdown - "\e[3m#{self}\e[23m" - end - - def tab(number = 1) - return @@diff_open ? self : "#{' '*4*number}#{self}" if @@markdown - "#{' '*4*number}#{self}" - end - - def h(number) - return "#{'#'*number}" + self if @@markdown - self.bold - end - - def unwrap - return self unless @@markdown - self.gsub! /([^\n])\n([^\n])/, '\1 \2' - end - end - - MAX_CPU = Etc.nprocessors - 1 - TASK_NAME = ARGV.first - - def vanagon_inspect(project, ref, platforms) - files = {} - - platforms.each do |platform| - files[platform] = Tempfile.new('vanagon_component_diff') - end - prev_branch = `git rev-parse --abbrev-ref HEAD` - - `git checkout -q #{ref}` - - Parallel.each(files, max_threads: MAX_CPU) do |platform, file| - `bundle exec vanagon inspect #{project} #{platform} > '#{file.path}' 2> /dev/null || echo '{}' > '#{file.path}'` - end - - `git checkout -q #{prev_branch}` - files - end - - git_from_rev = 'origin/main' - git_to_rev = 'HEAD' - default_projects = ['agent-runtime-main'] - projects = [] - default_platforms = ['el-7-x86_64'] - platforms = [] - - parser = OptionParser.new do |opts| - opts.banner = "Usage: rake #{TASK_NAME} -- [options]" - - opts.on('-f', '--from from_rev', "from git revision (default: #{git_from_rev})") do |from_rev| - git_from_rev = from_rev - end - - opts.on('-t', '--to to_rev', "to git revision (default: #{git_to_rev})") do |to_rev| - git_to_rev = to_rev - end - - opts.on('-P', '--project vanagon_project', "vanagon project name (default: #{default_projects}, can be specified multiple times); use 'all' to add all available") do |project_name| - if project_name == 'all' - Dir.entries('configs/projects').each do |file_name| - next unless file_name.end_with?('.rb') - next if file_name.start_with?('_') - projects << File.basename(file_name, '.rb') - end - else - projects << project_name - end - end - - opts.on('-p', '--platform vanagon_platform', "vanagon platform names (default: #{default_platforms}, can be specified multiple times); use 'all' to add all available") do |platform_name| - if platform_name == 'all' - Dir.entries('configs/platforms').each do |file_name| - next unless file_name.end_with?('.rb') - platforms << File.basename(file_name, '.rb') - end - else - platforms << platform_name - end - end - - opts.on('-i', '--interactive', 'interactive mode (prompt for settings)') do - git_from_rev = ask('Enter Git From Rev: ') { |q| q.default = git_from_rev } - git_to_rev = ask('Enter Git To Rev: ') { |q| q.default = git_to_rev } - projects = ask("Enter project name (default: #{default_projects.first}, write 'done' to finish project input): ") do |q| - q.default = default_projects - q.gather = "done" - end - platforms = ask("Enter platform name (default: #{default_platforms.first}, write 'done' to finish platform input): ") do |q| - q.default = default_platforms - q.gather = "done" - end - end - - opts.on('-m', '--markdown', 'format output with markdown for GitHub') do - String.format_as_markdown - end - - opts.on('-h', '--help', 'this message') do - puts opts - exit 1 - end - end - - args = parser.order!(ARGV) {} - parser.parse!(args) - - if platforms.empty? - platforms = default_platforms - end - - if projects.empty? - projects = default_projects - end - - puts <<~DISCLAIMER.unwrap - #{'⚠️ DISCLAIMER'.h(3)} - - This task is still experimental, it can be invoked locally provided that - development dependencies are installed (#{'bundle install --with development'.code}). - - Ensure all your local changes are committed, then run - #{"bundle exec rake #{TASK_NAME} -- [options]".code}. - - Run the task with #{'--help'.code} to see all available options. If you notice unexpected - behavior or want to suggest improvements, ping #prod-puppet-agent on Slack. - - DISCLAIMER - - puts "Here is what your code changes would affect:".h(1) - puts - projects.each do |project| - puts "Project #{project.code}".h(2) - new_files = vanagon_inspect(project, git_to_rev, platforms) - old_files = vanagon_inspect(project, git_from_rev, platforms) - - old, new = {}, {} - Parallel.each(old_files.zip(new_files), in_threads: MAX_CPU) do |old_file, new_file| - old[old_file.first] = JSON.parse(old_file.last.read) - new[new_file.first] = JSON.parse(new_file.last.read) - end - - old_hash = old.each_with_object({}) do |k, v| - v[k.first] ||= {} # k.first = platform name - k.last.each do |component| # k.last = components - component["platform"].delete("settings") - v[k.first]["_settings"] = component.delete("settings") - v[k.first]["_platform"] = component.delete("platform") - v[k.first][component.delete("name")] = component - end - end - - new_hash = new.each_with_object({}) do |k, v| - v[k.first] ||= {} # k.first = platform name - k.last.each do |component| # k.last = components - component["platform"].delete("settings") - v[k.first]["_settings"] = component.delete("settings") - v[k.first]["_platform"] = component.delete("platform") - v[k.first][component.delete("name")] = component - end - end - - diff = {} - Parallel.each(platforms, in_threads: MAX_CPU) do |platform| - diff[platform] = Hashdiff.diff(old_hash[platform], new_hash[platform], delimiter: '|') # TODO investigate if the array_path option is useful - end - - changes_found = false - diff.each do |platform, diff| - diff.reject! do |hunk| - # these are repos added by vanagon using SecureRandom hashes so we should exclude them from the diff output - hunk[1].include?('platform|provisioning') && - hunk.last.is_a?(String) && - hunk.last.start_with?('curl --silent --show-error --fail --location -o') - end - - next if diff.empty? - puts String.hr if changes_found - changes_found = true - puts - - puts "Platform name:".h(3) + platform.cyan.code - ordered_diff = diff.each_with_object({}) do |k, v| - name, field = k[1].match(/^([a-zA-Z\-._0-9]+)\|?(.*)?/).captures - next if ['_settings', '_platform'].include?(name) - if field.nil? || field.empty? - case k.first - when '+' - puts "Component '#{name}' was newly added, not showing diff for it".tab.green - when '-' - puts "Component '#{name}' was removed, not showing diff for it".tab.red - end - puts - next - end - - diff = [k[0], k[2], k[3]].compact - v[name] ||= {} - v[name][field] ||= [] - v[name][field] << diff unless v[name][field].include?(diff) - end - - ordered_diff.each do |component, field_hash| - title = case component - when '_settings' - 'Project settings'.tab.bold - when '_platform' - 'Platform settings'.tab.bold - else - 'Component'.tab.bold + "'#{component.cyan}'" - end - - puts String.start_collapsible(title) - - field_hash.each do |field, diff| - puts "Field:".tab(2).bold + field.code.cyan - - puts String.start_diff(('-'*20).tab(2)) - diff.each do |line| - case line.first - when '-' - puts "- #{line[1]}".tab(2).red - when '+' - puts "+ #{line[1]}".tab(2).green - when '~' - puts "- #{line[1]}".tab(2).red - puts "+ #{line[2]}".tab(2).green - end - end - puts String.end_diff - end - puts String.end_collapsible - end - end - puts "Nothing is affected 😊" if !changes_found - end - exit 0 - end -end From 11a9d26e511dee376db7110023b425c91638832d Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:31:05 -0800 Subject: [PATCH 22/33] rubygem-jwt: Update 2.7.1 -> 2.10.2 --- configs/components/rubygem-jwt.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/configs/components/rubygem-jwt.rb b/configs/components/rubygem-jwt.rb index 94e1a8ee..bc5e0fbc 100644 --- a/configs/components/rubygem-jwt.rb +++ b/configs/components/rubygem-jwt.rb @@ -3,16 +3,13 @@ # https://rubygems.org/gems/jwt # https://github.com/jwt/ruby-jwt/blob/v3.1.2/CHANGELOG.md # Notes: -# This seems to only be for the bundled gcloud_inventory module -# in Bolt, which itself has a dependency of ~> 2.2.1. So probably -# this isn't even having the effect we want. Should take a look to -# see if we should just remove this component. +# r10k pins this to < 3, so pinning to the latest 2.x version for now. ##### -component 'rubygem-jwt' do |pkg, settings, platform| +component 'rubygem-jwt' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### # PINNED - pkg.version '2.7.1' - pkg.md5sum 'd3a7ba14444b03f91c7d36b61519fe17' + pkg.version '2.10.2' + pkg.sha256sum '31e1ee46f7359883d5e622446969fe9c118c3da87a0b1dca765ce269c3a0c4f4' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') From 58cad28517802e126d21a78e05d6b84d4a233878 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:32:26 -0800 Subject: [PATCH 23/33] Unpin rubygem-puppet_forge --- configs/components/rubygem-puppet_forge.rb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/configs/components/rubygem-puppet_forge.rb b/configs/components/rubygem-puppet_forge.rb index 6ce2425c..332a04d2 100644 --- a/configs/components/rubygem-puppet_forge.rb +++ b/configs/components/rubygem-puppet_forge.rb @@ -3,14 +3,9 @@ # https://rubygems.org/gems/puppet_forge # https://github.com/puppetlabs/forge-ruby/releases # https://github.com/puppetlabs/forge-ruby/blob/main/CHANGELOG.md -# Notes: -# 2025-07-23: Leaving this at 5.x for now since 6.x requires the new -# minitar gem, which OpenVox also uses. Need to fix it up -# in the agent before bumping this. ##### -component 'rubygem-puppet_forge' do |pkg, settings, platform| +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 ### From 082030eee93fe185ee0cf629e57f1e1b364aa2de Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:33:18 -0800 Subject: [PATCH 24/33] Unpin rubygem-rubyntlm --- configs/components/rubygem-rubyntlm.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/configs/components/rubygem-rubyntlm.rb b/configs/components/rubygem-rubyntlm.rb index 0be8a24f..7c4c3bcd 100644 --- a/configs/components/rubygem-rubyntlm.rb +++ b/configs/components/rubygem-rubyntlm.rb @@ -3,11 +3,8 @@ # https://rubygems.org/gems/rubyntlm # https://github.com/WinRb/rubyntlm/releases ##### -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. +component 'rubygem-rubyntlm' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - # PINNED pkg.version '0.6.3' pkg.md5sum 'e1f7477acf8a7d3effb2a3fb931aa84c' ### End automated maintenance section ### From 5e8171c5a035d90db579a6fc3ad77bdd78139bc9 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:34:27 -0800 Subject: [PATCH 25/33] Unpin rubygem-minitar Will make the appropriate namespace changes in OpenVox. --- configs/components/rubygem-minitar.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/configs/components/rubygem-minitar.rb b/configs/components/rubygem-minitar.rb index 47ffed40..1699160c 100644 --- a/configs/components/rubygem-minitar.rb +++ b/configs/components/rubygem-minitar.rb @@ -2,13 +2,9 @@ # Component release information: # https://rubygems.org/gems/minitar # https://github.com/halostatue/minitar/blob/main/CHANGELOG.md -# Notes: -# 2025-07-23: 1.x changes a namespace, and there are no vulnerability fixes, -# so leaving this at 0.12.1 for now. ##### -component 'rubygem-minitar' do |pkg, settings, platform| +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 ### From 3653b244c9bcdf91516cbde23e1207fc2731445a Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:35:08 -0800 Subject: [PATCH 26/33] Add rubocop and tons of linting changes --- .github/workflows/runtime_tests.yml | 3 + .rubocop.yml | 55 ++++++++ Gemfile | 10 +- Rakefile | 6 +- configs/components/_base-ruby.rb | 19 ++- configs/components/_base-rubygem.rb | 21 ++- configs/components/augeas.rb | 56 ++++---- configs/components/curl.rb | 28 ++-- configs/components/dmidecode.rb | 4 +- configs/components/libedit.rb | 18 +-- configs/components/libffi.rb | 35 +++-- configs/components/libxml2.rb | 26 ++-- configs/components/libxslt.rb | 32 ++--- configs/components/libyaml.rb | 29 ++-- configs/components/openssl-3.0.rb | 32 ++--- configs/components/pl-ruby-patch.rb | 14 +- configs/components/puppet-ca-bundle.rb | 16 +-- configs/components/readline.rb | 30 ++-- configs/components/ruby-3.2.rb | 110 +++++++-------- configs/components/ruby-augeas.rb | 47 ++++--- configs/components/ruby-selinux.rb | 40 +++--- configs/components/ruby-shadow.rb | 40 +++--- configs/components/rubygem-CFPropertyList.rb | 4 +- configs/components/rubygem-addressable.rb | 2 +- configs/components/rubygem-aws-eventstream.rb | 2 +- configs/components/rubygem-aws-partitions.rb | 2 +- configs/components/rubygem-aws-sdk-core.rb | 4 +- configs/components/rubygem-aws-sdk-ec2.rb | 2 +- configs/components/rubygem-aws-sigv4.rb | 2 +- configs/components/rubygem-base64.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 | 2 +- configs/components/rubygem-cri.rb | 2 +- configs/components/rubygem-deep_merge.rb | 6 +- 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 | 4 +- .../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 | 4 +- configs/components/rubygem-ffi.rb | 23 ++-- configs/components/rubygem-gettext-setup.rb | 2 +- configs/components/rubygem-gettext.rb | 4 +- configs/components/rubygem-gssapi.rb | 2 +- configs/components/rubygem-gyoku.rb | 2 +- configs/components/rubygem-hiera-eyaml.rb | 4 +- configs/components/rubygem-hiera.rb | 2 +- configs/components/rubygem-highline.rb | 2 +- configs/components/rubygem-hocon.rb | 6 +- configs/components/rubygem-httpclient.rb | 2 +- configs/components/rubygem-jmespath.rb | 2 +- configs/components/rubygem-little-plugger.rb | 2 +- configs/components/rubygem-locale.rb | 4 +- configs/components/rubygem-log4r.rb | 2 +- configs/components/rubygem-logger.rb | 2 +- configs/components/rubygem-logging.rb | 2 +- configs/components/rubygem-molinillo.rb | 2 +- configs/components/rubygem-multi_json.rb | 4 +- 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 | 2 +- configs/components/rubygem-net-ssh.rb | 2 +- configs/components/rubygem-nori.rb | 2 +- configs/components/rubygem-openfact.rb | 2 +- configs/components/rubygem-openvox-strings.rb | 3 +- configs/components/rubygem-openvox.rb | 4 +- configs/components/rubygem-optimist.rb | 2 +- .../components/rubygem-orchestrator_client.rb | 2 +- configs/components/rubygem-paint.rb | 2 +- configs/components/rubygem-patron.rb | 2 +- configs/components/rubygem-prime.rb | 2 +- configs/components/rubygem-public_suffix.rb | 2 +- .../components/rubygem-puppet-resource_api.rb | 2 +- .../components/rubygem-puppetfile-resolver.rb | 2 +- configs/components/rubygem-r10k.rb | 2 +- configs/components/rubygem-rexml.rb | 4 +- configs/components/rubygem-rgen.rb | 2 +- configs/components/rubygem-ruby2_keywords.rb | 2 +- configs/components/rubygem-ruby_smb.rb | 2 +- configs/components/rubygem-rubyzip.rb | 2 +- configs/components/rubygem-scanf.rb | 4 +- configs/components/rubygem-semantic_puppet.rb | 6 +- configs/components/rubygem-sys-filesystem.rb | 2 +- configs/components/rubygem-terminal-table.rb | 2 +- configs/components/rubygem-text.rb | 4 +- 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 | 3 +- configs/components/runtime-agent.rb | 60 ++++---- configs/components/runtime-openbolt.rb | 7 +- configs/components/virt-what.rb | 18 +-- configs/platforms/aix-7.2-ppc.rb | 24 ++-- configs/platforms/debian-11-aarch64.rb | 43 +++--- configs/platforms/debian-11-amd64.rb | 2 +- configs/platforms/debian-11-armhf.rb | 46 +++---- configs/platforms/debian-12-aarch64.rb | 4 +- configs/platforms/debian-12-amd64.rb | 2 +- configs/platforms/debian-12-armhf.rb | 46 +++---- configs/platforms/debian-13-aarch64.rb | 3 +- configs/platforms/debian-13-amd64.rb | 2 +- configs/platforms/el-10-aarch64.rb | 16 +-- configs/platforms/el-10-x86_64.rb | 9 +- configs/platforms/el-7-x86_64.rb | 6 +- configs/platforms/el-8-aarch64.rb | 16 +-- configs/platforms/el-8-x86_64.rb | 8 +- configs/platforms/el-9-aarch64.rb | 18 +-- configs/platforms/el-9-ppc64le.rb | 16 +-- configs/platforms/el-9-x86_64.rb | 9 +- configs/platforms/redhatfips-8-x86_64.rb | 2 +- configs/platforms/redhatfips-9-x86_64.rb | 2 +- configs/platforms/sles-12-x86_64.rb | 6 +- configs/platforms/sles-15-x86_64.rb | 6 +- configs/platforms/solaris-11-i386.rb | 10 +- configs/platforms/solaris-11-native-sparc.rb | 34 ++--- configs/platforms/solaris-11-sparc.rb | 14 +- configs/platforms/ubuntu-22.04-aarch64.rb | 6 +- configs/platforms/ubuntu-22.04-amd64.rb | 6 +- configs/platforms/ubuntu-24.04-aarch64.rb | 6 +- configs/platforms/ubuntu-24.04-amd64.rb | 6 +- configs/platforms/ubuntu-25.04-aarch64.rb | 6 +- configs/platforms/ubuntu-25.04-amd64.rb | 6 +- configs/platforms/windows-all-x64.rb | 32 ++--- configs/platforms/windowsfips-2016-x64.rb | 40 +++--- configs/projects/_shared-agent-settings.rb | 129 +++++++++--------- configs/projects/_shared-compiler-settings.rb | 13 +- configs/projects/agent-runtime-main.rb | 13 +- configs/projects/openbolt-runtime.rb | 34 +++-- generate.rb | 21 ++- resources/files/ruby/patch-hostruby.rb | 34 ++--- resources/files/ruby/rbconfig-update.rb | 9 +- .../ruby_vendor_gems/operating_system.rb | 20 +-- tasks/build.rake | 2 +- tasks/update_gems.rake | 116 +++++++++------- tasks/vox.rake | 21 +-- 150 files changed, 937 insertions(+), 906 deletions(-) create mode 100644 .rubocop.yml mode change 100644 => 100755 generate.rb diff --git a/.github/workflows/runtime_tests.yml b/.github/workflows/runtime_tests.yml index c5855f36..dec977f6 100644 --- a/.github/workflows/runtime_tests.yml +++ b/.github/workflows/runtime_tests.yml @@ -51,3 +51,6 @@ jobs: if [ $stat -eq 1 ]; then false fi + + - name: Run rubocop + run: bundle exec rubocop diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 00000000..64753e6d --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,55 @@ +--- +plugins: + - rubocop-rake + +AllCops: + TargetRubyVersion: 3.2 + NewCops: disable + +Layout/LineLength: + Enabled: false + +Metrics/AbcSize: + Enabled: false + +Metrics/BlockLength: + Enabled: false + +Metrics/CyclomaticComplexity: + Enabled: false + +Metrics/MethodLength: + Enabled: false + +Metrics/PerceivedComplexity: + Enabled: false + +Naming/FileName: + Enabled: false + +Style/Documentation: + Enabled: false + +Style/DoubleNegation: + Enabled: false + +Style/FrozenStringLiteralComment: + Enabled: false + +Style/HashSyntax: + Enabled: false + +Style/PerlBackrefs: + Enabled: false + +Style/RegexpLiteral: + Enabled: false + +Style/SymbolArray: + Enabled: false + +Style/SymbolProc: + Enabled: false + +Style/WordArray: + Enabled: false diff --git a/Gemfile b/Gemfile index 003ebb6a..63fa6435 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -source ENV['GEM_SOURCE'] || "https://rubygems.org" +source ENV['GEM_SOURCE'] || 'https://rubygems.org' def location_for(place) if place =~ /^((?:git[:@]|https:)[^#]*)#(.*)/ @@ -11,19 +11,21 @@ def location_for(place) end gem 'artifactory' -gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/openvoxproject/vanagon#main') gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.105') gem 'rake', '~> 13.0' +gem 'rubocop' +gem 'rubocop-rake' +gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/openvoxproject/vanagon#main') # Need to update the openssl gem on MacOS to avoid SSL errors. Doesn't hurt to have the newest # for all platforms. # https://www.rubyonmac.dev/certificate-verify-failed-unable-to-get-certificate-crl-openssl-ssl-sslerror gem 'openssl' unless `uname -o`.chomp == 'Cygwin' group(:development, optional: true) do - gem 'highline', require: false - gem 'parallel', require: false gem 'colorize', require: false gem 'hashdiff', require: false + gem 'highline', require: false + gem 'parallel', require: false gem 'tty-table', require: false end diff --git a/Rakefile b/Rakefile index 6133f3e4..f475e882 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,8 @@ require 'open3' -RED = "\033[31m" -GREEN = "\033[32m" -RESET = "\033[0m" +RED = "\033[31m".freeze +GREEN = "\033[32m".freeze +RESET = "\033[0m".freeze def run_command(cmd, silent: true, print_command: false, report_status: false) puts "#{GREEN}Running #{cmd}#{RESET}" if print_command diff --git a/configs/components/_base-ruby.rb b/configs/components/_base-ruby.rb index ce3591e3..a72cb19f 100644 --- a/configs/components/_base-ruby.rb +++ b/configs/components/_base-ruby.rb @@ -8,23 +8,21 @@ pkg.mirror "#{settings[:buildsources_url]}/ruby-#{pkg.get_version}.tar.gz" pkg.url "https://cache.ruby-lang.org/pub/ruby/#{ruby_version_y}/ruby-#{pkg.get_version}.tar.gz" - # These may have been overridden in the including file, # if not then default them back to original values. -ruby_dir ||= settings[:ruby_dir] ruby_bindir ||= settings[:ruby_bindir] - ############# # ENVIRONMENT ############# if platform.is_aix? - pkg.environment "CC", "/opt/freeware/bin/gcc" + pkg.environment 'CC', '/opt/freeware/bin/gcc' pkg.environment 'LDFLAGS', "#{settings[:ldflags]} -Wl,-bmaxdata:0x80000000" elsif platform.is_solaris? if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment 'PATH', "#{settings[:bindir]}:/opt/pl-build-tools/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" + pkg.environment 'PATH', + "#{settings[:bindir]}:/opt/pl-build-tools/bin:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" else pkg.environment 'PATH', "#{settings[:bindir]}:/opt/csw/bin:/usr/ccs/bin:/usr/sfw/bin:$(PATH)" @@ -45,10 +43,11 @@ pkg.environment 'CXX', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-g++" pkg.environment 'LDFLAGS', "-Wl,-rpath=#{settings[:libdir]}" elsif platform.is_windows? - pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:tools_root]}/bin):$(shell cygpath -u #{settings[:tools_root]}/include):$(shell cygpath -u #{settings[:bindir]}):$(shell cygpath -u #{ruby_bindir}):$(shell cygpath -u #{settings[:includedir]}):$(PATH)" + pkg.environment 'PATH', + "$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:tools_root]}/bin):$(shell cygpath -u #{settings[:tools_root]}/include):$(shell cygpath -u #{settings[:bindir]}):$(shell cygpath -u #{ruby_bindir}):$(shell cygpath -u #{settings[:includedir]}):$(PATH)" pkg.environment 'CYGWIN', settings[:cygwin] pkg.environment 'LDFLAGS', settings[:ldflags] - optflags = settings[:cflags] + ' -O3' + optflags = "#{settings[:cflags]} -O3" pkg.environment 'optflags', optflags pkg.environment 'CFLAGS', optflags elsif platform.is_macos? @@ -69,10 +68,10 @@ if platform.is_aix? pkg.build_requires "runtime-#{settings[:runtime_project]}" - pkg.build_requires "readline" + pkg.build_requires 'readline' elsif platform.is_solaris? pkg.build_requires "runtime-#{settings[:runtime_project]}" - pkg.build_requires "libedit" if platform.name =~ /^solaris-10-sparc/ + pkg.build_requires 'libedit' if platform.name =~ /^solaris-10-sparc/ elsif platform.is_cross_compiled_linux? pkg.build_requires "runtime-#{settings[:runtime_project]}" end @@ -90,5 +89,5 @@ ######### pkg.install do - [ "#{platform[:make]} -j$(shell expr $(shell #{platform[:num_cores]}) + 1) install" ] + ["#{platform[:make]} -j$(shell expr $(shell #{platform[:num_cores]}) + 1) install"] end diff --git a/configs/components/_base-rubygem.rb b/configs/components/_base-rubygem.rb index bf1c3133..30494d79 100644 --- a/configs/components/_base-rubygem.rb +++ b/configs/components/_base-rubygem.rb @@ -5,34 +5,29 @@ # shared configuration may be overridden afterward. name = pkg.get_name.gsub('rubygem-', '') -unless name && !name.empty? - raise "Rubygem component files that instance_eval _base-rubygem must be named rubygem-.rb" -end +raise 'Rubygem component files that instance_eval _base-rubygem must be named rubygem-.rb' unless name && !name.empty? version = pkg.get_version -unless version && !version.empty? - raise "You must set the `pkg.version` in your rubygem component before instance_eval'ing _base_rubygem.rb" -end +raise "You must set the `pkg.version` in your rubygem component before instance_eval'ing _base_rubygem.rb" unless version && !version.empty? pkg.build_requires "runtime-#{settings[:runtime_project]}" -pkg.build_requires "pl-ruby-patch" if platform.is_cross_compiled? +pkg.build_requires 'pl-ruby-patch' if platform.is_cross_compiled? if platform.is_windows? - pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:ruby_bindir]}):$(shell cygpath -u #{settings[:bindir]}):/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:$(PATH)" + pkg.environment 'PATH', + "$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:ruby_bindir]}):$(shell cygpath -u #{settings[:bindir]}):/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:$(PATH)" end # When cross-compiling, we can't use the rubygems we just built. # Instead we use the host gem installation and override GEM_HOME. Yay? -pkg.environment "GEM_HOME", settings[:gem_home] -pkg.environment "GEM_PATH", settings[:gem_home] +pkg.environment 'GEM_HOME', settings[:gem_home] +pkg.environment 'GEM_PATH', settings[:gem_home] # PA-25 in order to install gems in a cross-compiled environment we need to # set RUBYLIB to include puppet and hiera, so that their gemspecs can resolve # hiera/version and puppet/version requires. Without this the gem install # will fail by blowing out the stack. -if settings[:ruby_vendordir] - pkg.environment "RUBYLIB", "#{settings[:ruby_vendordir]}:$(RUBYLIB)" -end +pkg.environment 'RUBYLIB', "#{settings[:ruby_vendordir]}:$(RUBYLIB)" if settings[:ruby_vendordir] pkg.url("https://rubygems.org/downloads/#{name}-#{version}.gem") pkg.mirror("#{settings[:buildsources_url]}/#{name}-#{version}.gem") diff --git a/configs/components/augeas.rb b/configs/components/augeas.rb index 1f3d5626..c89a1fbe 100644 --- a/configs/components/augeas.rb +++ b/configs/components/augeas.rb @@ -50,63 +50,64 @@ pkg.build_requires 'libtool' end - extra_config_flags = platform.name =~ /solaris-11|aix/ ? " --disable-dependency-tracking" : "" + extra_config_flags = platform.name =~ /solaris-11|aix/ ? ' --disable-dependency-tracking' : '' end pkg.mirror "#{settings[:buildsources_url]}/augeas-#{pkg.get_version}.tar.gz" - pkg.build_requires "libxml2" + pkg.build_requires 'libxml2' # Ensure we're building against our own libraries when present - pkg.environment "PKG_CONFIG_PATH", "#{settings[:libdir]}/pkgconfig" + pkg.environment 'PKG_CONFIG_PATH', "#{settings[:libdir]}/pkgconfig" if platform.is_aix? - pkg.environment "CC", "/opt/freeware/bin/gcc" - pkg.environment "PATH", "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CC', '/opt/freeware/bin/gcc' + pkg.environment 'PATH', "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" pkg.build_requires "runtime-#{settings[:runtime_project]}" pkg.build_requires 'readline' - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", "-I#{settings[:includedir]}" + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', "-I#{settings[:includedir]}" end if platform.is_rpm? && !platform.is_aix? if platform.architecture =~ /aarch64|ppc64|ppc64le/ pkg.build_requires "runtime-#{settings[:runtime_project]}" - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] end elsif platform.is_deb? pkg.requires 'libreadline6' if platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] end elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] pkg.build_requires 'libedit' pkg.build_requires "runtime-#{settings[:runtime_project]}" - if platform.os_version == "10" - pkg.environment "PKG_CONFIG_PATH", "/opt/csw/lib/pkgconfig" - pkg.environment "PKG_CONFIG", "/opt/csw/bin/pkg-config" + if platform.os_version == '10' + pkg.environment 'PKG_CONFIG_PATH', '/opt/csw/lib/pkgconfig' + pkg.environment 'PKG_CONFIG', '/opt/csw/bin/pkg-config' elsif !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment "PKG_CONFIG_PATH", "#{settings[:libdir]}/pkgconfig" - pkg.environment "PKG_CONFIG", "/usr/bin/pkg-config" + pkg.environment 'PKG_CONFIG_PATH', "#{settings[:libdir]}/pkgconfig" + pkg.environment 'PKG_CONFIG', '/usr/bin/pkg-config' else - pkg.environment "PKG_CONFIG_PATH", "/usr/lib/pkgconfig" - pkg.environment "PKG_CONFIG", "/opt/pl-build-tools/bin/pkg-config" + pkg.environment 'PKG_CONFIG_PATH', '/usr/lib/pkgconfig' + pkg.environment 'PKG_CONFIG', '/opt/pl-build-tools/bin/pkg-config' end elsif platform.is_macos? pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin:/usr/local/bin' pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CPPFLAGS', settings[:cppflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'LDFLAGS', settings[:ldflags] pkg.environment 'CC', settings[:cc] pkg.environment 'CXX', settings[:cxx] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] @@ -115,19 +116,18 @@ if settings[:supports_pie] pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CPPFLAGS', settings[:cppflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'LDFLAGS', settings[:ldflags] end # fix libtool linking on big sur if platform.is_macos? if platform.architecture == 'arm64' - pkg.configure { ["/opt/homebrew/bin/autoreconf --force --install"] } + pkg.configure { ['/opt/homebrew/bin/autoreconf --force --install'] } else - pkg.configure { ["/usr/local/bin/autoreconf --force --install"] } + pkg.configure { ['/usr/local/bin/autoreconf --force --install'] } end end - pkg.configure do ["./configure #{extra_config_flags} --prefix=#{settings[:prefix]} #{settings[:host]}"] end diff --git a/configs/components/curl.rb b/configs/components/curl.rb index 7dfdd3ff..da181882 100644 --- a/configs/components/curl.rb +++ b/configs/components/curl.rb @@ -9,26 +9,26 @@ pkg.mirror "#{settings[:buildsources_url]}/curl-#{pkg.get_version}.tar.gz" pkg.build_requires "openssl-#{settings[:openssl_version]}" - pkg.build_requires "puppet-ca-bundle" + pkg.build_requires 'puppet-ca-bundle' ldflags = settings[:ldflags] if platform.is_cross_compiled_linux? pkg.build_requires "runtime-#{settings[:runtime_project]}" - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "PKG_CONFIG_PATH", "/opt/puppetlabs/puppet/lib/pkgconfig" - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'PKG_CONFIG_PATH', '/opt/puppetlabs/puppet/lib/pkgconfig' + pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH)' elsif platform.is_windows? pkg.build_requires "runtime-#{settings[:runtime_project]}" - pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment "NM" , "/usr/bin/nm" if platform.name =~ /windowsfips-2016/ - pkg.environment "CYGWIN", settings[:cygwin] + pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" + pkg.environment 'NM', '/usr/bin/nm' if platform.name =~ /windowsfips-2016/ + pkg.environment 'CYGWIN', settings[:cygwin] elsif platform.is_aix? - pkg.environment "PKG_CONFIG_PATH", "/opt/puppetlabs/puppet/lib/pkgconfig" + pkg.environment 'PKG_CONFIG_PATH', '/opt/puppetlabs/puppet/lib/pkgconfig' pkg.environment 'PATH', "/opt/freeware/bin:$(PATH):#{settings[:bindir]}" # exclude -Wl,-brtl ldflags = "-L#{settings[:libdir]}" else - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" end configure_options = [] @@ -36,13 +36,11 @@ # OpenSSL version 3.0 & up no longer ships by default the insecure algorithms # that curl's ntlm module depends on (md4 & des). - if !settings[:use_legacy_openssl_algos] && settings[:openssl_version] =~ /^3\./ - configure_options << "--disable-ntlm" - end + configure_options << '--disable-ntlm' if !settings[:use_legacy_openssl_algos] && settings[:openssl_version] =~ /^3\./ if (platform.is_solaris? && platform.os_version == '11') || platform.is_aix? # Makefile generation with automatic dependency tracking fails on these platforms - configure_options << "--disable-dependency-tracking" + configure_options << '--disable-dependency-tracking' end if platform.is_macos? @@ -57,7 +55,7 @@ ["CPPFLAGS='#{settings[:cppflags]}' \ LDFLAGS='#{ldflags}' \ ./configure --prefix=#{settings[:prefix]} \ - #{configure_options.join(" ")} \ + #{configure_options.join(' ')} \ --enable-threaded-resolver \ --disable-ldap \ --disable-ldaps \ @@ -73,7 +71,7 @@ end install_steps = [ - "#{platform[:make]} -j$(shell expr $(shell #{platform[:num_cores]}) + 1) install", + "#{platform[:make]} -j$(shell expr $(shell #{platform[:num_cores]}) + 1) install" ] unless ['agent', 'pdk'].include?(settings[:runtime_project]) diff --git a/configs/components/dmidecode.rb b/configs/components/dmidecode.rb index 92d97547..c55c1c23 100644 --- a/configs/components/dmidecode.rb +++ b/configs/components/dmidecode.rb @@ -9,8 +9,8 @@ pkg.url "http://download-mirror.savannah.gnu.org/releases/dmidecode/dmidecode-#{pkg.get_version}.tar.xz" pkg.mirror "#{settings[:buildsources_url]}/dmidecode-#{pkg.get_version}.tar.xz" - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] if platform.is_cross_compiled? # The Makefile doesn't honor environment overrides, so we need to diff --git a/configs/components/libedit.rb b/configs/components/libedit.rb index bb626305..1a0d8bcc 100644 --- a/configs/components/libedit.rb +++ b/configs/components/libedit.rb @@ -11,18 +11,16 @@ pkg.url "http://thrysoee.dk/editline/libedit-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/libedit-#{pkg.get_version}.tar.gz" - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH)" + pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH)' if platform.is_solaris? - pkg.environment "CC", "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" + pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc" elsif platform.is_aix? - pkg.environment "CC", "/opt/pl-build-tools/bin/gcc" - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'CC', '/opt/pl-build-tools/bin/gcc' + pkg.environment 'LDFLAGS', settings[:ldflags] end - if platform.is_macos? - pkg.environment "CFLAGS", settings[:cflags] - end + pkg.environment 'CFLAGS', settings[:cflags] if platform.is_macos? pkg.configure do "bash configure --enable-shared --prefix=#{settings[:prefix]} #{settings[:host]}" @@ -37,6 +35,8 @@ end pkg.link File.join(settings[:libdir], 'libedit.so'), File.join(settings[:libdir], 'libreadline.so') - pkg.link File.join(settings[:includedir], 'editline', 'readline.h'), File.join(settings[:includedir], 'readline', 'readline.h') - pkg.link File.join(settings[:includedir], 'editline', 'readline.h'), File.join(settings[:includedir], 'readline', 'history.h') + pkg.link File.join(settings[:includedir], 'editline', 'readline.h'), + File.join(settings[:includedir], 'readline', 'readline.h') + pkg.link File.join(settings[:includedir], 'editline', 'readline.h'), + File.join(settings[:includedir], 'readline', 'history.h') end diff --git a/configs/components/libffi.rb b/configs/components/libffi.rb index 6ee3ed1e..c7f8323f 100644 --- a/configs/components/libffi.rb +++ b/configs/components/libffi.rb @@ -8,38 +8,37 @@ pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz" if platform.is_aix? - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' elsif platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" if !platform.is_cross_compiled? && platform.architecture == 'sparc' # must use gnu99 due to `asm` keyword # https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Extended-Asm.html - pkg.environment "CFLAGS", "#{settings[:cflags]} -std=gnu99" + pkg.environment 'CFLAGS', "#{settings[:cflags]} -std=gnu99" else - pkg.environment "CFLAGS", "#{settings[:cflags]} -std=c99" + pkg.environment 'CFLAGS', "#{settings[:cflags]} -std=c99" end - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'LDFLAGS', settings[:ldflags] pkg.environment 'MAKE', 'gmake' elsif platform.is_macos? - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] elsif platform.is_windows? - pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] - if platform.architecture == "x86" - pkg.apply_patch "resources/patches/libffi/revert_clang_32bit.patch" - end + pkg.apply_patch 'resources/patches/libffi/revert_clang_32bit.patch' if platform.architecture == 'x86' else - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] end pkg.build_requires "runtime-#{settings[:runtime_project]}" diff --git a/configs/components/libxml2.rb b/configs/components/libxml2.rb index 3c3cddef..8f8d41f7 100644 --- a/configs/components/libxml2.rb +++ b/configs/components/libxml2.rb @@ -3,7 +3,7 @@ # https://gitlab.gnome.org/GNOME/libxml2/-/releases # https://github.com/GNOME/libxml2/tags ##### -component "libxml2" do |pkg, settings, platform| +component 'libxml2' do |pkg, settings, platform| pkg.version '2.15.1' pkg.sha256sum 'c008bac08fd5c7b4a87f7b8a71f283fa581d80d80ff8d2efd3b26224c39bc54c' @@ -12,23 +12,24 @@ pkg.mirror "#{settings[:buildsources_url]}/libxml2-#{pkg.get_version}.tar.xz" if platform.is_aix? - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' elsif platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin:#{settings[:bindir]}" - pkg.environment "CFLAGS", "#{settings[:cflags]} -std=c99" - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin:#{settings[:bindir]}" + pkg.environment 'CFLAGS', "#{settings[:cflags]} -std=c99" + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_macos? - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] else - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] end pkg.build_requires "runtime-#{settings[:runtime_project]}" @@ -48,5 +49,4 @@ "rm -rf #{settings[:datadir]}/doc/#{pkg.get_name}*" ] end - end diff --git a/configs/components/libxslt.rb b/configs/components/libxslt.rb index d995ce58..8ac0fe55 100644 --- a/configs/components/libxslt.rb +++ b/configs/components/libxslt.rb @@ -3,7 +3,7 @@ # https://gitlab.gnome.org/GNOME/libxslt/-/releases # https://github.com/GNOME/libxslt/tags ##### -component "libxslt" do |pkg, settings, platform| +component 'libxslt' do |pkg, settings, platform| pkg.version '1.1.43' pkg.sha256sum '5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a' @@ -11,31 +11,32 @@ pkg.url "https://download.gnome.org/sources/libxslt/#{libxslt_version_y}/libxslt-#{pkg.get_version}.tar.xz" pkg.mirror "#{settings[:buildsources_url]}/libxslt-#{pkg.get_version}.tar.xz" - pkg.build_requires "libxml2" + pkg.build_requires 'libxml2' if platform.is_aix? - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' elsif platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] # libxslt is picky about manually specifying the build host - build = "--build x86_64-linux-gnu" + build = '--build x86_64-linux-gnu' # don't depend on libgcrypto - disable_crypto = "--without-crypto" + disable_crypto = '--without-crypto' elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin:#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin:#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_macos? - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] else - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] end pkg.configure do @@ -53,5 +54,4 @@ "rm -rf #{settings[:datadir]}/doc/#{pkg.get_name}*" ] end - end diff --git a/configs/components/libyaml.rb b/configs/components/libyaml.rb index 13e3cdd5..3012c5a4 100644 --- a/configs/components/libyaml.rb +++ b/configs/components/libyaml.rb @@ -8,27 +8,28 @@ pkg.mirror "#{settings[:buildsources_url]}/yaml-#{pkg.get_version}.tar.gz" if platform.is_aix? - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' elsif platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" - pkg.environment "CFLAGS", "#{settings[:cflags]} -std=c99" - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" + pkg.environment 'CFLAGS', "#{settings[:cflags]} -std=c99" + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_macos? - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] elsif platform.is_windows? - pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)" + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] else - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] end pkg.build_requires "runtime-#{settings[:runtime_project]}" diff --git a/configs/components/openssl-3.0.rb b/configs/components/openssl-3.0.rb index 6d1aa641..56111e39 100644 --- a/configs/components/openssl-3.0.rb +++ b/configs/components/openssl-3.0.rb @@ -45,10 +45,10 @@ elsif platform.is_solaris? pkg.environment 'PATH', '/opt/csw/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin' if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment 'CC', "/opt/pl-build-tools/bin/gcc" + pkg.environment 'CC', '/opt/pl-build-tools/bin/gcc' gcc_lib = "/opt/pl-build-tools/#{settings[:platform_triple]}/lib" else - pkg.environment 'CC', "/opt/csw/bin/gcc" + pkg.environment 'CC', '/opt/csw/bin/gcc' gcc_lib = "/opt/csw/#{settings[:platform_triple]}/lib" end cflags = "#{settings[:cflags]} -fPIC" @@ -56,11 +56,11 @@ target = platform.architecture =~ /86/ ? 'solaris-x86-gcc' : 'solaris-sparcv9-gcc' elsif platform.is_macos? pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin:/usr/local/bin' - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] - target = if platform.architecture == "arm64" + target = if platform.architecture == 'arm64' 'darwin64-arm64' else 'darwin64-x86_64' @@ -69,16 +69,17 @@ pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' ldflags = "#{settings[:ldflags]} -Wl,-z,relro" - if platform.architecture =~ /86$/ + case platform.architecture + when /86$/ target = 'linux-elf' sslflags = '386' - elsif platform.architecture =~ /aarch64$/ + when /aarch64$/ target = 'linux-aarch64' - elsif platform.architecture =~ /ppc64le|ppc64el/ # Little-endian + when /ppc64le|ppc64el/ # Little-endian target = 'linux-ppc64le' - elsif platform.architecture =~ /64$/ + when /64$/ target = 'linux-x86_64' - elsif platform.architecture == 'armhf' + when 'armhf' target = 'linux-armv4' end end @@ -131,9 +132,7 @@ # Individual projects may provide their own openssl configure flags: project_flags = settings[:openssl_extra_configure_flags] || [] perl_exec = '' - if platform.is_aix? - perl_exec = '/opt/freeware/bin/perl' - end + perl_exec = '/opt/freeware/bin/perl' if platform.is_aix? configure_flags << project_flags pkg.environment 'CFLAGS', cflags @@ -148,19 +147,19 @@ build_commands = [] - if platform.is_windows? && platform.architecture == "x86" + if platform.is_windows? && platform.architecture == 'x86' # mingw-w32 5.2.0 has a bug in include/winnt.h that declares GetCurrentFiber # with __CRT_INLINE, which results in the function not being inlined and # generates a linker error: undefined reference to `GetCurrentFiber'. # This only affects 32-bit builds # See https://github.com/openssl/openssl/issues/513 # See https://github.com/mingw-w64/mingw-w64/commit/8da1aae7a7ff5bf996878dc8fe30a0e01e210e5a - pkg.add_source("file://resources/patches/windows/FORCEINLINE-i686-w64-mingw32-winnt.h") + pkg.add_source('file://resources/patches/windows/FORCEINLINE-i686-w64-mingw32-winnt.h') build_commands << "#{platform.patch} --dir #{settings[:gcc_root]}/#{settings[:platform_triple]} --strip=2 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../FORCEINLINE-i686-w64-mingw32-winnt.h" end build_commands << "#{platform[:make]} depend" - build_commands << "#{platform[:make]}" + build_commands << platform[:make] pkg.build do build_commands @@ -175,7 +174,7 @@ if platform.is_aix? # "Removes any currently unused modules in kernel and library memory." - install_commands << "slibclean" + install_commands << 'slibclean' end # Skip man and html docs @@ -188,4 +187,3 @@ pkg.install_file 'LICENSE.txt', "#{settings[:prefix]}/share/doc/openssl-#{pkg.get_version}/LICENSE" end - diff --git a/configs/components/pl-ruby-patch.rb b/configs/components/pl-ruby-patch.rb index 56f50e59..9c9dc809 100644 --- a/configs/components/pl-ruby-patch.rb +++ b/configs/components/pl-ruby-patch.rb @@ -6,24 +6,22 @@ # version and target architecture # # This component should also be present in the puppet-agent project -component "pl-ruby-patch" do |pkg, settings, platform| +component 'pl-ruby-patch' do |pkg, settings, platform| if platform.is_cross_compiled? - ruby_version_y = settings[:ruby_version].gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2') - - pkg.add_source("file://resources/files/ruby/patch-hostruby.rb") + pkg.add_source('file://resources/files/ruby/patch-hostruby.rb') # The `target_triple` determines which directory native extensions are stored in the # compiled ruby and must match ruby's naming convention. # weird architecture naming conventions... target_triple = if platform.architecture =~ /ppc64el|ppc64le/ - "powerpc64le-linux" + 'powerpc64le-linux' elsif platform.name == 'solaris-11-sparc' - "sparc-solaris-2.11" + 'sparc-solaris-2.11' elsif platform.name =~ /solaris-10/ - "sparc-solaris" + 'sparc-solaris' elsif platform.is_macos? - "arm64-darwin" + 'arm64-darwin' else "#{platform.architecture}-linux" end diff --git a/configs/components/puppet-ca-bundle.rb b/configs/components/puppet-ca-bundle.rb index 17ce32ff..021d32fe 100644 --- a/configs/components/puppet-ca-bundle.rb +++ b/configs/components/puppet-ca-bundle.rb @@ -1,14 +1,14 @@ -component "puppet-ca-bundle" do |pkg, settings, platform| - pkg.load_from_json("configs/components/puppet-ca-bundle.json") +component 'puppet-ca-bundle' do |pkg, settings, platform| + pkg.load_from_json('configs/components/puppet-ca-bundle.json') pkg.build_requires "openssl-#{settings[:openssl_version]}" - if platform.is_cross_compiled_linux? - # Use the build host's openssl command, not our cross-compiled or vendored one - openssl_cmd = '/usr/bin/openssl' - else - openssl_cmd = "#{settings[:bindir]}/openssl" - end + openssl_cmd = if platform.is_cross_compiled_linux? + # Use the build host's openssl command, not our cross-compiled or vendored one + '/usr/bin/openssl' + else + "#{settings[:bindir]}/openssl" + end target = if platform.is_fips? 'install-fips' diff --git a/configs/components/readline.rb b/configs/components/readline.rb index 63c275ab..eec1c8c4 100644 --- a/configs/components/readline.rb +++ b/configs/components/readline.rb @@ -6,30 +6,31 @@ # 2023-07-23: Quite out of date, latest is 8.3. Need to evaluate if the # new version breaks anything. ##### -component "readline" do |pkg, settings, platform| - pkg.version "8.1.2" - pkg.md5sum "12819fa739a78a6172400f399ab34f81" +component 'readline' do |pkg, settings, platform| + pkg.version '8.1.2' + pkg.md5sum '12819fa739a78a6172400f399ab34f81' pkg.url "http://ftp.gnu.org/gnu/#{pkg.get_name}/#{pkg.get_name}-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz" if platform.is_aix? - pkg.environment "PATH", "/opt/freeware/bin:$(PATH)" + pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' elsif platform.is_cross_compiled_linux? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment "CFLAGS", settings[:cflags] - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" + pkg.environment 'CFLAGS', settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_solaris? - pkg.environment "PATH", "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" - pkg.environment "CFLAGS", "#{settings[:cflags]} -std=c99" - pkg.environment "LDFLAGS", settings[:ldflags] + pkg.environment 'PATH', + "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:#{settings[:bindir]}" + pkg.environment 'CFLAGS', "#{settings[:cflags]} -std=c99" + pkg.environment 'LDFLAGS', settings[:ldflags] elsif platform.is_macos? - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CC', settings[:cc] pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] else - pkg.environment "LDFLAGS", settings[:ldflags] - pkg.environment "CFLAGS", settings[:cflags] + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'CFLAGS', settings[:cflags] end pkg.build_requires "runtime-#{settings[:runtime_project]}" @@ -48,5 +49,4 @@ "rm -rf #{settings[:datadir]}/doc/#{pkg.get_name}*" ] end - end diff --git a/configs/components/ruby-3.2.rb b/configs/components/ruby-3.2.rb index 3d806af1..f26f8596 100644 --- a/configs/components/ruby-3.2.rb +++ b/configs/components/ruby-3.2.rb @@ -14,7 +14,7 @@ host_ruby = settings[:host_ruby] # rbconfig-update is used to munge rbconfigs after the fact. - pkg.add_source("file://resources/files/ruby/rbconfig-update.rb") + pkg.add_source('file://resources/files/ruby/rbconfig-update.rb') # Most ruby configuration happens in the base ruby config: instance_eval File.read('configs/components/_base-ruby.rb') @@ -25,13 +25,9 @@ base = 'resources/patches/ruby_32' - if platform.is_cross_compiled? - pkg.apply_patch "#{base}/rbinstall_gem_path.patch" - end + pkg.apply_patch "#{base}/rbinstall_gem_path.patch" if platform.is_cross_compiled? - if platform.is_aix? - pkg.apply_patch "#{base}/reline_disable_terminfo.patch" - end + pkg.apply_patch "#{base}/reline_disable_terminfo.patch" if platform.is_aix? if platform.is_windows? pkg.apply_patch "#{base}/windows_mingw32_mkmf.patch" @@ -63,7 +59,7 @@ pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin:/usr/local/bin' elsif platform.is_windows? - optflags = cflags + ' -O3' + optflags = "#{cflags} -O3" pkg.environment 'optflags', optflags pkg.environment 'CFLAGS', optflags pkg.environment 'MAKE', 'make' @@ -77,7 +73,7 @@ # representative or the approved supplier. # collect2: error: ld returned 16 exit status - pkg.environment 'optflags', "-O2 -fPIC -g0 " + pkg.environment 'optflags', '-O2 -fPIC -g0 ' elsif platform.is_solaris? pkg.environment 'optflags', '-O1' else @@ -93,9 +89,7 @@ cflags += ' -Wno-error=implicit-function-declaration ' end - if settings[:supports_pie] - special_flags += " CFLAGS='#{cflags}' LDFLAGS='#{settings[:ldflags]}' CPPFLAGS='#{settings[:cppflags]}' " - end + special_flags += " CFLAGS='#{cflags}' LDFLAGS='#{settings[:ldflags]}' CPPFLAGS='#{settings[:cppflags]}' " if settings[:supports_pie] # Ruby's build process requires a "base" ruby and we need a ruby to install # gems into the /opt/puppetlabs/puppet/lib directory. @@ -108,11 +102,11 @@ # is in the PATH, as it's probably too old to build ruby 3.2. And we don't # want to use/maintain pl-ruby if we don't have to. Instead set baseruby to # "no" which will force ruby to build and use miniruby. - if platform.is_cross_compiled? - special_flags += " --with-baseruby=#{host_ruby} " - else - special_flags += " --with-baseruby=no " - end + special_flags += if platform.is_cross_compiled? + " --with-baseruby=#{host_ruby} " + else + ' --with-baseruby=no ' + end if platform.is_aix? # This normalizes the build string to something like AIX 7.1.0.0 rather @@ -122,14 +116,14 @@ # When the target arch is aarch64, ruby incorrectly selects the 'ucontext' coroutine # implementation instead of 'arm64', so specify 'amd64' explicitly # https://github.com/ruby/ruby/blob/c9c2245c0a25176072e02db9254f0e0c84c805cd/configure.ac#L2329-L2330 - special_flags += " --with-coroutine=arm64 " - elsif platform.is_solaris? && platform.architecture == "sparc" + special_flags += ' --with-coroutine=arm64 ' + elsif platform.is_solaris? && platform.architecture == 'sparc' unless platform.is_cross_compiled? # configure seems to enable dtrace because the executable is present, # explicitly disable it and don't enable it below - special_flags += " --enable-dtrace=no " + special_flags += ' --enable-dtrace=no ' end - special_flags += "--enable-close-fds-by-recvmsg-with-peek " + special_flags += '--enable-close-fds-by-recvmsg-with-peek ' elsif platform.is_windows? # ruby's configure script guesses the build host is `cygwin`, because we're using @@ -138,11 +132,11 @@ # target explicitly. special_flags += " CPPFLAGS='-DFD_SETSIZE=2048' debugflags=-g " - if platform.architecture == "x64" - special_flags += " --build x86_64-w64-mingw32 " - else - special_flags += " --build i686-w64-mingw32 " - end + special_flags += if platform.architecture == 'x64' + ' --build x86_64-w64-mingw32 ' + else + ' --build i686-w64-mingw32 ' + end elsif platform.is_macos? special_flags += " --with-openssl-dir=#{settings[:prefix]} " end @@ -160,9 +154,7 @@ 'windowsfips-2016-x64' ] - unless without_dtrace.include? platform.name - special_flags += ' --enable-dtrace ' - end + special_flags += ' --enable-dtrace ' unless without_dtrace.include? platform.name ########### # CONFIGURE @@ -171,9 +163,9 @@ # TODO: Remove this once PA-1607 is resolved. # TODO: Can we use native autoconf? The dependencies seemed a little too extensive if platform.is_aix? - pkg.configure { ["/opt/freeware/bin/autoconf"] } + pkg.configure { ['/opt/freeware/bin/autoconf'] } else - pkg.configure { ["bash autogen.sh"] } + pkg.configure { ['bash autogen.sh'] } end pkg.configure do @@ -187,16 +179,16 @@ ] end - if(platform.name =~ /windowsfips-2016/) + if platform.name =~ /windowsfips-2016/ # We need the below patch since during ruby build step for windowsfips-2016-x64 agent-runtime builds, # the rbconfig.rb file that gets generated contains '\r' trailing character in 'ruby_version' config. # We patch rbconfig.rb to remove the '\r' character. - # This patch has to run after the build step since rbconfig.rb is generated during the build step. + # This patch has to run after the build step since rbconfig.rb is generated during the build step. # This is sort of a hacky way to do this. We need to find why the '\r' character gets appended to # 'ruby_version' field in the future so that this patch can be removed - PA-6902. pkg.add_source("#{base}/rbconfig_win.patch") pkg.build do - ["TMP=/var/tmp /usr/bin/patch.exe --binary --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../rbconfig_win.patch"] + ['TMP=/var/tmp /usr/bin/patch.exe --binary --strip=1 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../rbconfig_win.patch'] end end @@ -211,13 +203,13 @@ # # Note that this step must happen after the install step above. pkg.install do - %w{gem}.map do |name| + %w[gem].map do |name| "mv #{ruby_bindir}/#{name}.cmd #{ruby_bindir}/#{name}.bat" end end # Required when using `stack-protection-strong` and older versions of mingw-w64-gcc - pkg.install_file File.join(settings[:gcc_bindir], "libssp-0.dll"), File.join(settings[:bindir], "libssp-0.dll") + pkg.install_file File.join(settings[:gcc_bindir], 'libssp-0.dll'), File.join(settings[:bindir], 'libssp-0.dll') end target_doubles = { @@ -236,11 +228,11 @@ 'x86_64-w64-mingw32' => 'x64-mingw32', 'i686-w64-mingw32' => 'i386-mingw32' } - if target_doubles.key?(settings[:platform_triple]) - rbconfig_topdir = File.join(ruby_dir, 'lib', 'ruby', '3.2.0', target_doubles[settings[:platform_triple]]) - else - rbconfig_topdir = "$$(#{ruby_bindir}/ruby -e \"puts RbConfig::CONFIG[\\\"topdir\\\"]\")" - end + rbconfig_topdir = if target_doubles.key?(settings[:platform_triple]) + File.join(ruby_dir, 'lib', 'ruby', '3.2.0', target_doubles[settings[:platform_triple]]) + else + "$$(#{ruby_bindir}/ruby -e \"puts RbConfig::CONFIG[\\\"topdir\\\"]\")" + end # When cross compiling or building on non-linux, we sometimes need to patch # the rbconfig.rb in the "host" ruby so that later when we try to build gems @@ -250,40 +242,44 @@ # "host" ruby is configured in _shared-agent-settings rbconfig_changes = {} if platform.is_aix? - rbconfig_changes["CC"] = "gcc" + rbconfig_changes['CC'] = 'gcc' elsif platform.is_cross_compiled? || (platform.is_solaris? && platform.architecture != 'sparc') # REMIND: why are we overriding rbconfig for solaris intel? - rbconfig_changes["CC"] = 'gcc' - rbconfig_changes["warnflags"] = "-Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wno-maybe-uninitialized" + rbconfig_changes['CC'] = 'gcc' + rbconfig_changes['warnflags'] = + '-Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wno-maybe-uninitialized' if platform.name =~ /el-7-ppc64/ # EL 7 on POWER will fail with -Wl,--compress-debug-sections=zlib so this # will remove that entry # Matches both endians - rbconfig_changes["DLDFLAGS"] = "-Wl,-rpath=/opt/puppetlabs/puppet/lib -L/opt/puppetlabs/puppet/lib -Wl,-rpath,/opt/puppetlabs/puppet/lib" + rbconfig_changes['DLDFLAGS'] = + '-Wl,-rpath=/opt/puppetlabs/puppet/lib -L/opt/puppetlabs/puppet/lib -Wl,-rpath,/opt/puppetlabs/puppet/lib' elsif platform.name =~ /sles-12-ppc64le/ # the ancient gcc version on sles-12-ppc64le does not understand -fstack-protector-strong, so remove the `strong` part - rbconfig_changes["LDFLAGS"] = "-L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/puppetlabs/puppet/lib" + rbconfig_changes['LDFLAGS'] = + '-L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/puppetlabs/puppet/lib' end elsif platform.is_macos? - rbconfig_changes["CC"] = "#{settings[:cc]} #{cflags}" + rbconfig_changes['CC'] = "#{settings[:cc]} #{cflags}" elsif platform.is_windows? - if platform.architecture == "x64" - rbconfig_changes["CC"] = "x86_64-w64-mingw32-gcc" - else - rbconfig_changes["CC"] = "i686-w64-mingw32-gcc" - end + rbconfig_changes['CC'] = if platform.architecture == 'x64' + 'x86_64-w64-mingw32-gcc' + else + 'i686-w64-mingw32-gcc' + end end - pkg.add_source("file://resources/files/ruby_vendor_gems/operating_system.rb") - defaults_dir = File.join(settings[:libdir], "ruby/3.2.0/rubygems/defaults") + pkg.add_source('file://resources/files/ruby_vendor_gems/operating_system.rb') + defaults_dir = File.join(settings[:libdir], 'ruby/3.2.0/rubygems/defaults') pkg.directory(defaults_dir) - pkg.install_file "../operating_system.rb", File.join(defaults_dir, 'operating_system.rb') + pkg.install_file '../operating_system.rb', File.join(defaults_dir, 'operating_system.rb') certs_dir = File.join(settings[:libdir], 'ruby/3.2.0/rubygems/ssl_certs/puppetlabs.net') pkg.directory(certs_dir) pkg.add_source('file://resources/files/rubygems/COMODO_RSA_Certification_Authority.pem') - pkg.install_file '../COMODO_RSA_Certification_Authority.pem', File.join(certs_dir, 'COMODO_RSA_Certification_Authority.pem') + pkg.install_file '../COMODO_RSA_Certification_Authority.pem', + File.join(certs_dir, 'COMODO_RSA_Certification_Authority.pem') pkg.add_source('file://resources/files/rubygems/GlobalSignRootCA_R3.pem') pkg.install_file '../GlobalSignRootCA_R3.pem', File.join(certs_dir, 'GlobalSignRootCA_R3.pem') @@ -296,7 +292,7 @@ [ "#{host_ruby} ../rbconfig-update.rb \"#{rbconfig_changes.to_s.gsub('"', '\"')}\" #{rbconfig_topdir}", "cp original_rbconfig.rb #{settings[:datadir]}/doc/rbconfig-#{pkg.get_version}-orig.rb", - "cp new_rbconfig.rb #{rbconfig_topdir}/rbconfig.rb", + "cp new_rbconfig.rb #{rbconfig_topdir}/rbconfig.rb" ] end end diff --git a/configs/components/ruby-augeas.rb b/configs/components/ruby-augeas.rb index 09303370..684247c0 100644 --- a/configs/components/ruby-augeas.rb +++ b/configs/components/ruby-augeas.rb @@ -1,8 +1,7 @@ - ##### - # Component release information: - # https://github.com/hercules-team/ruby-augeas/releases - # Notes: 2025-11-17 - Using 0.5.0 due to issues with 0.6.0 on some platforms. - ##### +##### +# Component release information: +# https://github.com/hercules-team/ruby-augeas/releases +##### component 'ruby-augeas' do |pkg, settings, platform| pkg.version '0.6.0' pkg.sha256sum '98158a54c655b4823439b4bd38609f01e0b912a3d1453144082b8a5f43b0c4dc' @@ -24,14 +23,14 @@ if platform.is_solaris? pkg.environment 'RUBY', settings[:host_ruby] if platform.is_cross_compiled? - if !platform.is_cross_compiled? && platform.architecture == 'sparc' - ruby = File.join(settings[:ruby_bindir], 'ruby') - else - # This should really only be done when cross compiling but - # to avoid breaking solaris x86_64 in 7.x continue preloading - # our hook. - ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" - end + ruby = if !platform.is_cross_compiled? && platform.architecture == 'sparc' + File.join(settings[:ruby_bindir], 'ruby') + else + # This should really only be done when cross compiling but + # to avoid breaking solaris x86_64 in 7.x continue preloading + # our hook. + "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" + end elsif platform.is_cross_compiled? && (platform.is_linux? || platform.is_macos?) pkg.environment 'RUBY', settings[:host_ruby] ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" @@ -49,31 +48,31 @@ pkg.build do build_commands = [] - + extconf = "#{ruby} ext/augeas/extconf.rb" # The pkg-config shim gets confused on Almalinux 9 that we are building on # due to the version of rpm being cranky about using our older OpenSSL version, # so bypass the shim and use pkgconf directly. - extconf += " --with-pkg-config=/usr/bin/pkgconf" if platform.name =~ /el-9/ + extconf += ' --with-pkg-config=/usr/bin/pkgconf' if platform.name =~ /el-9/ build_commands << extconf build_commands << "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1)" build_commands end - if settings[:ruby_vendordir] - augeas_rb_target = File.join(settings[:ruby_vendordir], 'augeas.rb') - else - # If no alternate vendordir has been set, install into default - # vendordir for this ruby version. - augeas_rb_target = File.join(settings[:ruby_dir], 'lib', 'ruby', 'vendor_ruby', 'augeas.rb') - end + augeas_rb_target = if settings[:ruby_vendordir] + File.join(settings[:ruby_vendordir], 'augeas.rb') + else + # If no alternate vendordir has been set, install into default + # vendordir for this ruby version. + File.join(settings[:ruby_dir], 'lib', 'ruby', 'vendor_ruby', 'augeas.rb') + end pkg.install_file 'lib/augeas.rb', augeas_rb_target pkg.install do [ - "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1) DESTDIR=/ install", + "#{platform[:make]} -e -j$(shell expr $(shell #{platform[:num_cores]}) + 1) DESTDIR=/ install" ] end @@ -87,4 +86,4 @@ pkg.install do "#{platform[:make]} -e clean" end -end \ No newline at end of file +end diff --git a/configs/components/ruby-selinux.rb b/configs/components/ruby-selinux.rb index b828f174..c37729fd 100644 --- a/configs/components/ruby-selinux.rb +++ b/configs/components/ruby-selinux.rb @@ -3,12 +3,12 @@ # https://github.com/SELinuxProject/selinux/releases ##### component 'ruby-selinux' do |pkg, settings, platform| - # We download tarballs because system development packages (e.g. + # We download tarballs because system development packages (e.g. # libselinux-devel) don't necessarily include Swig interface files (*.i files) # We select the minimum version available in the platform repos. case platform.name when /^(el-7|amazon-2|redhatfips-7)-/ - pkg.version "2.0.94" + pkg.version '2.0.94' pkg.sha256sum 'b8312852306650e9720de5a20fe7560d935d3c90ffedca1cac25bf3f283d8a36' pkg.url 'https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20100525/devel/libselinux-2.0.94.tar.gz' when /^(el-8|redhatfips-8)-/ @@ -69,9 +69,9 @@ ruby = "#{settings[:ruby_bindir]}/ruby -rrbconfig" # The RHEL 9 libselinux-devel package provides headers, but we don't want to - # use the package becuase of a compatibility issue with the shared library. + # use the package becuase of a compatibility issue with the shared library. # Instead, we use the headers provided in the tarball. - system_include.prepend('-I./include ') if platform.name =~ /el-(9|10)/ + system_include.prepend('-I./include ') if platform.name =~ /el-(9|10)/ if platform.is_cross_compiled_linux? pkg.environment 'RUBY', settings[:host_ruby] @@ -86,16 +86,16 @@ "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", "export ARCHDIR=$${RUBYHDRDIR}/$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"arch\"]')", "export INCLUDESTR=\"-I#{settings[:includedir]} -I$${RUBYHDRDIR} -I$${ARCHDIR}\"", - "cp -pr src/{selinuxswig_ruby.i,selinuxswig.i} .", + 'cp -pr src/{selinuxswig_ruby.i,selinuxswig.i} .', "swig -Wall -ruby #{system_include} -o selinuxswig_ruby_wrap.c -outdir ./ selinuxswig_ruby.i" ] # swig 4.1 generated interface does not need patching, so skip # when running debian >= 12, fedora >= 40, etc unless (platform.is_debian? && platform.os_version.to_i >= 12) || - (platform.is_fedora? && platform.os_version.to_i >= 40) || - (platform.is_ubuntu? && platform.os_version.to_i >= 24) || - (platform.is_el? && platform.os_version.to_i >= 10) + (platform.is_fedora? && platform.os_version.to_i >= 40) || + (platform.is_ubuntu? && platform.os_version.to_i >= 24) || + (platform.is_el? && platform.os_version.to_i >= 10) steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_wrap.patch" end # EL 7 uses an older version of swig (2.0) so a different patch is needed to @@ -106,9 +106,9 @@ # Ubuntu 24, Fedora 40, EL 10, and Debian 13 use a newer swig that already has the fix that's # being patched unless (platform.is_fedora? && platform.os_version.to_i >= 40) || - (platform.is_ubuntu? && platform.os_version.to_i >= 24) || - (platform.is_el? && platform.os_version.to_i >= 10) || - (platform.is_debian? && platform.os_version.to_i >= 13) + (platform.is_ubuntu? && platform.os_version.to_i >= 24) || + (platform.is_el? && platform.os_version.to_i >= 10) || + (platform.is_debian? && platform.os_version.to_i >= 13) steps << "#{platform.patch} --strip=0 --fuzz=0 --ignore-whitespace --no-backup-if-mismatch < ../selinuxswig_ruby_undefining_allocator.patch" end end @@ -118,22 +118,20 @@ # uses 3.4. The hacky workaround for this is to symlink an existing library. # PDK builds two Rubies so check if symlink exists first. Similar issue # exists for RHEL 10. - if platform.name =~ /(el|redhatfips)-(9|10)/ - steps << 'if [ ! -L /usr/lib64/libselinux.so ]; then ln -s /usr/lib64/libselinux.so.1 /usr/lib64/libselinux.so; fi' - end + steps << 'if [ ! -L /usr/lib64/libselinux.so ]; then ln -s /usr/lib64/libselinux.so.1 /usr/lib64/libselinux.so; fi' if platform.name =~ /(el|redhatfips)-(9|10)/ steps.concat([ - "gcc $${INCLUDESTR} #{system_include} #{cflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED -c -o selinuxswig_ruby_wrap.lo selinuxswig_ruby_wrap.c", - "gcc $${INCLUDESTR} #{system_include} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -shared -o _rubyselinux.so selinuxswig_ruby_wrap.lo -lselinux -Wl,-z,relro,-z,now,-soname,_rubyselinux.so", - ]) + "gcc $${INCLUDESTR} #{system_include} #{cflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED -c -o selinuxswig_ruby_wrap.lo selinuxswig_ruby_wrap.c", + "gcc $${INCLUDESTR} #{system_include} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -shared -o _rubyselinux.so selinuxswig_ruby_wrap.lo -lselinux -Wl,-z,relro,-z,now,-soname,_rubyselinux.so" + ]) end pkg.install do [ "export VENDORARCHDIR=$(shell #{ruby} -e 'puts RbConfig::CONFIG[\"vendorarchdir\"]')", - "install -d $${VENDORARCHDIR}", - "install -p -m755 _rubyselinux.so $${VENDORARCHDIR}/selinux.so", - "#{platform[:make]} -e clean", + 'install -d $${VENDORARCHDIR}', + 'install -p -m755 _rubyselinux.so $${VENDORARCHDIR}/selinux.so', + "#{platform[:make]} -e clean" ] end -end \ No newline at end of file +end diff --git a/configs/components/ruby-shadow.rb b/configs/components/ruby-shadow.rb index 413f1b90..ed344681 100644 --- a/configs/components/ruby-shadow.rb +++ b/configs/components/ruby-shadow.rb @@ -3,44 +3,42 @@ # https://github.com/apalmblad/ruby-shadow/tags # https://rubygems.org/gems/ruby-shadow ##### -component "ruby-shadow" do |pkg, settings, platform| - pkg.url "https://github.com/apalmblad/ruby-shadow" - pkg.ref "refs/tags/2.5.1" +component 'ruby-shadow' do |pkg, settings, platform| + pkg.url 'https://github.com/apalmblad/ruby-shadow' + pkg.ref 'refs/tags/2.5.1' pkg.build_requires "ruby-#{settings[:ruby_version]}" if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment "PATH", "$(PATH):/opt/pl-build-tools/bin:/usr/ccs/bin:/usr/sfw/bin" + pkg.environment 'PATH', '$(PATH):/opt/pl-build-tools/bin:/usr/ccs/bin:/usr/sfw/bin' else - pkg.environment "PATH", "$(PATH):/usr/ccs/bin:/usr/sfw/bin" + pkg.environment 'PATH', '$(PATH):/usr/ccs/bin:/usr/sfw/bin' end - pkg.environment "CONFIGURE_ARGS", '--vendor' + pkg.environment 'CONFIGURE_ARGS', '--vendor' if platform.is_solaris? - if platform.is_cross_compiled? - pkg.environment "RUBY", settings[:host_ruby] - end + pkg.environment 'RUBY', settings[:host_ruby] if platform.is_cross_compiled? - if !platform.is_cross_compiled? && platform.architecture == 'sparc' - ruby = File.join(settings[:ruby_bindir], 'ruby') - else - # This should really only be done when cross compiling but - # to avoid breaking solaris x86_64 in 7.x continue preloading - # our hook. - ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" - end + ruby = if !platform.is_cross_compiled? && platform.architecture == 'sparc' + File.join(settings[:ruby_bindir], 'ruby') + else + # This should really only be done when cross compiling but + # to avoid breaking solaris x86_64 in 7.x continue preloading + # our hook. + "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" + end elsif platform.is_cross_compiled? - pkg.environment "RUBY", settings[:host_ruby] + pkg.environment 'RUBY', settings[:host_ruby] ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb" else ruby = File.join(settings[:ruby_bindir], 'ruby') end - base = "resources/patches/ruby_32" + base = 'resources/patches/ruby_32' # https://github.com/apalmblad/ruby-shadow/issues/26 # if ruby-shadow gets a 3 release this should be removed - pkg.apply_patch "#{base}/ruby-shadow-taint.patch", strip: "1" - pkg.apply_patch "#{base}/ruby-shadow-rbconfig.patch", strip: "1" + pkg.apply_patch "#{base}/ruby-shadow-taint.patch", strip: '1' + pkg.apply_patch "#{base}/ruby-shadow-rbconfig.patch", strip: '1' pkg.build do [ diff --git a/configs/components/rubygem-CFPropertyList.rb b/configs/components/rubygem-CFPropertyList.rb index 8ce5a853..e0bb3c91 100644 --- a/configs/components/rubygem-CFPropertyList.rb +++ b/configs/components/rubygem-CFPropertyList.rb @@ -6,12 +6,12 @@ # - 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| +component 'rubygem-CFPropertyList' do |pkg, settings, _platform| ### 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] + pkg.environment 'GEM_HOME', settings[:gem_home] end diff --git a/configs/components/rubygem-addressable.rb b/configs/components/rubygem-addressable.rb index d37b91da..4c4da55d 100644 --- a/configs/components/rubygem-addressable.rb +++ b/configs/components/rubygem-addressable.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/addressable # https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md ##### -component 'rubygem-addressable' do |pkg, settings, platform| +component 'rubygem-addressable' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.8.7' pkg.sha256sum '462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232' diff --git a/configs/components/rubygem-aws-eventstream.rb b/configs/components/rubygem-aws-eventstream.rb index 0d13cff2..fc163032 100644 --- a/configs/components/rubygem-aws-eventstream.rb +++ b/configs/components/rubygem-aws-eventstream.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-aws-partitions.rb b/configs/components/rubygem-aws-partitions.rb index a1ccd598..c339645c 100644 --- a/configs/components/rubygem-aws-partitions.rb +++ b/configs/components/rubygem-aws-partitions.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-aws-sdk-core.rb b/configs/components/rubygem-aws-sdk-core.rb index 4ba1b40d..b20ed5eb 100644 --- a/configs/components/rubygem-aws-sdk-core.rb +++ b/configs/components/rubygem-aws-sdk-core.rb @@ -2,8 +2,8 @@ # Component release information: # 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' diff --git a/configs/components/rubygem-aws-sdk-ec2.rb b/configs/components/rubygem-aws-sdk-ec2.rb index 3ef8beb5..872e944b 100644 --- a/configs/components/rubygem-aws-sdk-ec2.rb +++ b/configs/components/rubygem-aws-sdk-ec2.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-aws-sigv4.rb b/configs/components/rubygem-aws-sigv4.rb index c71eb9dc..8b1e9b4e 100644 --- a/configs/components/rubygem-aws-sigv4.rb +++ b/configs/components/rubygem-aws-sigv4.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-base64.rb b/configs/components/rubygem-base64.rb index 61a02a2f..4b1e5019 100644 --- a/configs/components/rubygem-base64.rb +++ b/configs/components/rubygem-base64.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/base64 # https://github.com/ruby/base64/releases ##### -component 'rubygem-base64' do |pkg, settings, platform| +component 'rubygem-base64' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.3.0' pkg.sha256sum '27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b' diff --git a/configs/components/rubygem-bindata.rb b/configs/components/rubygem-bindata.rb index 80fc3f4d..ed52d149 100644 --- a/configs/components/rubygem-bindata.rb +++ b/configs/components/rubygem-bindata.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/bindata # https://github.com/dmendel/bindata/blob/master/ChangeLog.rdoc ##### -component 'rubygem-bindata' do |pkg, settings, platform| +component 'rubygem-bindata' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.5.1' pkg.sha256sum '53186a1ec2da943d4cb413583d680644eb810aacbf8902497aac8f191fad9e58' diff --git a/configs/components/rubygem-builder.rb b/configs/components/rubygem-builder.rb index d03c59c2..074af90b 100644 --- a/configs/components/rubygem-builder.rb +++ b/configs/components/rubygem-builder.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/builder # https://github.com/rails/builder/blob/master/CHANGES ##### -component 'rubygem-builder' do |pkg, settings, platform| +component 'rubygem-builder' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.3.0' pkg.md5sum '3048be022111b96f47bb17c34c67dbc7' diff --git a/configs/components/rubygem-colored2.rb b/configs/components/rubygem-colored2.rb index 5ecdbb2e..da898ddd 100644 --- a/configs/components/rubygem-colored2.rb +++ b/configs/components/rubygem-colored2.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/colored2 # https://github.com/kigster/colored2/releases ##### -component 'rubygem-colored2' do |pkg, settings, platform| +component 'rubygem-colored2' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '4.0.3' pkg.sha256sum '63e1038183976287efc43034f5cca17fb180b4deef207da8ba78d051cbce2b37' diff --git a/configs/components/rubygem-concurrent-ruby.rb b/configs/components/rubygem-concurrent-ruby.rb index b8f8844c..93a447da 100644 --- a/configs/components/rubygem-concurrent-ruby.rb +++ b/configs/components/rubygem-concurrent-ruby.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/concurrent-ruby # https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md ##### -component 'rubygem-concurrent-ruby' do |pkg, settings, platform| +component 'rubygem-concurrent-ruby' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.5' pkg.sha256sum '813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6' diff --git a/configs/components/rubygem-connection_pool.rb b/configs/components/rubygem-connection_pool.rb index 49557e1c..56f46dda 100644 --- a/configs/components/rubygem-connection_pool.rb +++ b/configs/components/rubygem-connection_pool.rb @@ -7,7 +7,7 @@ # We need to test this before upgrading to ensure it doesn't break anything or # affect performance. There are no security fixes between 2.4.1 and 2.5.4. ##### -component 'rubygem-connection_pool' do |pkg, settings, platform| +component 'rubygem-connection_pool' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### # PINNED pkg.version '2.4.1' diff --git a/configs/components/rubygem-cri.rb b/configs/components/rubygem-cri.rb index 0de0b6e8..b309c8f0 100644 --- a/configs/components/rubygem-cri.rb +++ b/configs/components/rubygem-cri.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/cri # https://github.com/denisdefreyne/cri/releases ##### -component 'rubygem-cri' do |pkg, settings, platform| +component 'rubygem-cri' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.15.12' pkg.sha256sum '8abfe924ef53e772a8e4ee907e791d3bfcfca78bc62a5859e3b9899ba29956e5' diff --git a/configs/components/rubygem-deep_merge.rb b/configs/components/rubygem-deep_merge.rb index 1d9d36a5..ff19314a 100644 --- a/configs/components/rubygem-deep_merge.rb +++ b/configs/components/rubygem-deep_merge.rb @@ -3,15 +3,15 @@ # https://rubygems.org/gems/deep_merge # https://github.com/danielsdeleo/deep_merge/blob/master/CHANGELOG ##### -component "rubygem-deep_merge" do |pkg, settings, platform| +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') # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-erubi.rb b/configs/components/rubygem-erubi.rb index fa0e1454..fedc9804 100644 --- a/configs/components/rubygem-erubi.rb +++ b/configs/components/rubygem-erubi.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/erubi # https://github.com/jeremyevans/erubi/blob/master/CHANGELOG ##### -component 'rubygem-erubi' do |pkg, settings, platform| +component 'rubygem-erubi' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.13.1' pkg.sha256sum 'a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9' diff --git a/configs/components/rubygem-faraday-em_http.rb b/configs/components/rubygem-faraday-em_http.rb index a8931ca7..c755b292 100644 --- a/configs/components/rubygem-faraday-em_http.rb +++ b/configs/components/rubygem-faraday-em_http.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-em_http # https://github.com/lostisland/faraday-em_http/releases ##### -component 'rubygem-faraday-em_http' do |pkg, settings, platform| +component 'rubygem-faraday-em_http' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.0.1' pkg.sha256sum '05d3845d0b298a7dfbfb8205db39d10f1bc898d455be7a678ca6f460aba71632' diff --git a/configs/components/rubygem-faraday-em_synchrony.rb b/configs/components/rubygem-faraday-em_synchrony.rb index df756857..a47b44bf 100644 --- a/configs/components/rubygem-faraday-em_synchrony.rb +++ b/configs/components/rubygem-faraday-em_synchrony.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-em_synchrony # https://github.com/lostisland/faraday-em_synchrony/releases ##### -component 'rubygem-faraday-em_synchrony' do |pkg, settings, platform| +component 'rubygem-faraday-em_synchrony' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.0.1' pkg.sha256sum 'bf3ce45dcf543088d319ab051f80985ea6d294930635b7a0b966563179f81750' diff --git a/configs/components/rubygem-faraday-excon.rb b/configs/components/rubygem-faraday-excon.rb index 5af6bc01..eadfdeed 100644 --- a/configs/components/rubygem-faraday-excon.rb +++ b/configs/components/rubygem-faraday-excon.rb @@ -4,7 +4,7 @@ # https://github.com/excon/faraday-excon/tags # https://github.com/excon/faraday-excon/releases ##### -component 'rubygem-faraday-excon' do |pkg, settings, platform| +component 'rubygem-faraday-excon' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.0' pkg.sha256sum 'c5fc7175ab284b164496559e35f550587ec5b028b3cdbb40b7ebe83aa7e5b575' diff --git a/configs/components/rubygem-faraday-follow_redirects.rb b/configs/components/rubygem-faraday-follow_redirects.rb index df05ee3f..84caff6a 100644 --- a/configs/components/rubygem-faraday-follow_redirects.rb +++ b/configs/components/rubygem-faraday-follow_redirects.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-follow_redirects # https://github.com/tisba/faraday-follow-redirects/blob/main/CHANGELOG.md ##### -component 'rubygem-faraday-follow_redirects' do |pkg, settings, platform| +component 'rubygem-faraday-follow_redirects' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.3.0' pkg.md5sum '75fa678fa40b54a94e51efc1600a6461' diff --git a/configs/components/rubygem-faraday-httpclient.rb b/configs/components/rubygem-faraday-httpclient.rb index bfc4c908..9581930e 100644 --- a/configs/components/rubygem-faraday-httpclient.rb +++ b/configs/components/rubygem-faraday-httpclient.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-httpclient # https://github.com/lostisland/faraday-httpclient/releases ##### -component 'rubygem-faraday-httpclient' do |pkg, settings, platform| +component 'rubygem-faraday-httpclient' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'd95fbe60cce5a87e157957d67c539a4c22fb8b0b0611d493a939cdde19d8d67c' diff --git a/configs/components/rubygem-faraday-multipart.rb b/configs/components/rubygem-faraday-multipart.rb index 61619321..2a9592d4 100644 --- a/configs/components/rubygem-faraday-multipart.rb +++ b/configs/components/rubygem-faraday-multipart.rb @@ -2,8 +2,8 @@ # Component release information: # https://rubygems.org/gems/faraday-multipart # https://github.com/lostisland/faraday-multipart/releases -##### -component 'rubygem-faraday-multipart' do |pkg, settings, platform| +##### +component 'rubygem-faraday-multipart' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.1' pkg.sha256sum '77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903' diff --git a/configs/components/rubygem-faraday-net_http.rb b/configs/components/rubygem-faraday-net_http.rb index 5d1f6dc6..26b493e6 100644 --- a/configs/components/rubygem-faraday-net_http.rb +++ b/configs/components/rubygem-faraday-net_http.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-net_http # https://github.com/lostisland/faraday-net_http/releases ##### -component 'rubygem-faraday-net_http' do |pkg, settings, platform| +component 'rubygem-faraday-net_http' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.4.1' pkg.sha256sum '095757fae7872b94eac839c08a1a4b8d84fd91d6886cfbe75caa2143de64ab3b' diff --git a/configs/components/rubygem-faraday-net_http_persistent.rb b/configs/components/rubygem-faraday-net_http_persistent.rb index e01a5f96..8b2ddb75 100644 --- a/configs/components/rubygem-faraday-net_http_persistent.rb +++ b/configs/components/rubygem-faraday-net_http_persistent.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-net_http_persistent # https://github.com/lostisland/faraday-net_http_persistent/releases ##### -component 'rubygem-faraday-net_http_persistent' do |pkg, settings, platform| +component 'rubygem-faraday-net_http_persistent' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.1' pkg.sha256sum '23ffba37d6a27807a10f033d01918ec958aa73fa6ff0fccfbcd5ce2d2e68fca3' diff --git a/configs/components/rubygem-faraday-patron.rb b/configs/components/rubygem-faraday-patron.rb index 628b0870..58502cb5 100644 --- a/configs/components/rubygem-faraday-patron.rb +++ b/configs/components/rubygem-faraday-patron.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-patron # https://github.com/lostisland/faraday-patron/releases ##### -component 'rubygem-faraday-patron' do |pkg, settings, platform| +component 'rubygem-faraday-patron' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'cd4b77d48e3c638ce25c22b6affe2714cf13af99bfa8348c1c7f6733fc5f2086' diff --git a/configs/components/rubygem-faraday-rack.rb b/configs/components/rubygem-faraday-rack.rb index e5ef2a09..0c85a636 100644 --- a/configs/components/rubygem-faraday-rack.rb +++ b/configs/components/rubygem-faraday-rack.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-rack # https://github.com/lostisland/faraday-rack/releases ##### -component 'rubygem-faraday-rack' do |pkg, settings, platform| +component 'rubygem-faraday-rack' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.1.3' pkg.sha256sum '9869993a8f1010ade286bda697dea43a8f29f0ab760877d73ec7de5d1d18faed' diff --git a/configs/components/rubygem-faraday-retry.rb b/configs/components/rubygem-faraday-retry.rb index be40bd7e..01cfa48d 100644 --- a/configs/components/rubygem-faraday-retry.rb +++ b/configs/components/rubygem-faraday-retry.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday-retry # https://github.com/lostisland/faraday-retry/releases ##### -component 'rubygem-faraday-retry' do |pkg, settings, platform| +component 'rubygem-faraday-retry' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.2' pkg.sha256sum '2402d2029032ebd238a2046221e67f6ef0da78c5a8ce8cd4f8b9c62e4d6451d1' diff --git a/configs/components/rubygem-faraday.rb b/configs/components/rubygem-faraday.rb index 437ebd8b..b2434327 100644 --- a/configs/components/rubygem-faraday.rb +++ b/configs/components/rubygem-faraday.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/faraday # https://github.com/lostisland/faraday/releases ##### -component 'rubygem-faraday' do |pkg, settings, platform| +component 'rubygem-faraday' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.13.4' pkg.sha256sum 'c719ff52cfd0dbaeca79dd83ed3aeea3f621032abf8bc959d1c05666157cac26' diff --git a/configs/components/rubygem-fast_gettext.rb b/configs/components/rubygem-fast_gettext.rb index f9fc2d40..cfcfd976 100644 --- a/configs/components/rubygem-fast_gettext.rb +++ b/configs/components/rubygem-fast_gettext.rb @@ -5,7 +5,7 @@ # 2025-09-08: We must keep this at 2.4.0 for now because r10k # relies on gettext-setup, which pins fast_gettext ~> 2.1. ##### -component "rubygem-fast_gettext" do |pkg, settings, platform| +component 'rubygem-fast_gettext' do |pkg, settings, _platform| ### Maintained by update_gems automation ### # PINNED pkg.version '2.4.0' @@ -16,5 +16,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-ffi.rb b/configs/components/rubygem-ffi.rb index 760d8276..54a8a181 100644 --- a/configs/components/rubygem-ffi.rb +++ b/configs/components/rubygem-ffi.rb @@ -23,37 +23,38 @@ # 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" + 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.name =~ /solaris-11/ && (platform.is_cross_compiled? || platform.architecture != 'sparc') + pkg.environment 'CPATH', + '/opt/csw/lib/libffi-3.2.1/include' + end + pkg.environment 'MAKE', platform[:make] if platform.is_solaris? if platform.is_solaris? if !platform.is_cross_compiled? && platform.architecture == 'sparc' - pkg.environment "PATH", "#{settings[:ruby_bindir]}:$(PATH)" + pkg.environment 'PATH', "#{settings[:ruby_bindir]}:$(PATH)" else - pkg.environment "PATH", "/opt/csw/bin:$(PATH)" + pkg.environment 'PATH', '/opt/csw/bin:$(PATH)' end elsif platform.is_aix? pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' end - if platform.name =~ /solaris-10-i386/ - pkg.install_file "/opt/csw/lib/libffi.so.6", "#{settings[:libdir]}/libffi.so.6" - end + pkg.install_file '/opt/csw/lib/libffi.so.6', "#{settings[:libdir]}/libffi.so.6" if platform.name =~ /solaris-10-i386/ pkg.environment 'PKG_CONFIG_PATH', '/opt/puppetlabs/puppet/lib/pkgconfig:$(PKG_CONFIG_PATH)' if platform.is_cross_compiled? && !platform.is_macos? base_ruby = case platform.name when /solaris-10/ - "/opt/csw/lib/ruby/2.0.0" + '/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" + '/opt/pl-build-tools/lib/ruby/2.1.0' end # force compilation without system libffi in order to have a statically linked ffi_c.so @@ -72,7 +73,7 @@ end # move ld back after the gem is installed - pkg.install { "mv /usr/bin/ld1 /usr/bin/ld" } + pkg.install { 'mv /usr/bin/ld1 /usr/bin/ld' } elsif platform.name =~ /solaris-10-sparc/ sed_exp = 's|CONFIG\["LDFLAGS"\].*|CONFIG["LDFLAGS"] = "-Wl,-rpath-link,/opt/pl-build-tools/sparc-sun-solaris2.10/sysroot/lib:/opt/pl-build-tools/sparc-sun-solaris2.10/sysroot/usr/lib -L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector"|' diff --git a/configs/components/rubygem-gettext-setup.rb b/configs/components/rubygem-gettext-setup.rb index deb4ce28..7336fa1c 100644 --- a/configs/components/rubygem-gettext-setup.rb +++ b/configs/components/rubygem-gettext-setup.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-gettext.rb b/configs/components/rubygem-gettext.rb index 29af0b0b..15cea6f6 100644 --- a/configs/components/rubygem-gettext.rb +++ b/configs/components/rubygem-gettext.rb @@ -3,7 +3,7 @@ # 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' @@ -14,5 +14,5 @@ # 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. gem_home = settings[:puppet_gem_vendor_dir] || settings[:gem_home] - pkg.environment "GEM_HOME", gem_home + pkg.environment 'GEM_HOME', gem_home end diff --git a/configs/components/rubygem-gssapi.rb b/configs/components/rubygem-gssapi.rb index 9bc480ba..ad5f0d13 100644 --- a/configs/components/rubygem-gssapi.rb +++ b/configs/components/rubygem-gssapi.rb @@ -4,7 +4,7 @@ # https://github.com/zenchild/gssapi/tags # (Not up to date) https://github.com/zenchild/gssapi/blob/main/Changelog.md ##### -component 'rubygem-gssapi' do |pkg, settings, platform| +component 'rubygem-gssapi' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.1' pkg.md5sum '4bd2df09d8e0ab4c6d2e1828c344eba1' diff --git a/configs/components/rubygem-gyoku.rb b/configs/components/rubygem-gyoku.rb index 012b190e..08b117ab 100644 --- a/configs/components/rubygem-gyoku.rb +++ b/configs/components/rubygem-gyoku.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/gyoku # https://github.com/savonrb/gyoku/blob/main/CHANGELOG.md ##### -component 'rubygem-gyoku' do |pkg, settings, platform| +component 'rubygem-gyoku' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.md5sum 'fecd9488be9b07a250349e9bbe048e5f' diff --git a/configs/components/rubygem-hiera-eyaml.rb b/configs/components/rubygem-hiera-eyaml.rb index f99635ec..0b9ffe0b 100644 --- a/configs/components/rubygem-hiera-eyaml.rb +++ b/configs/components/rubygem-hiera-eyaml.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/hiera-eyaml # https://github.com/voxpupuli/hiera-eyaml/blob/master/CHANGELOG.md ##### -component 'rubygem-hiera-eyaml' do |pkg, settings, platform| +component 'rubygem-hiera-eyaml' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '4.3.0' pkg.sha256sum '19eba2ea9d70b2d56de064df9e3242860d8070d47ff9c9a6348b7fe94708ab0a' @@ -15,5 +15,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-hiera.rb b/configs/components/rubygem-hiera.rb index d1709b5a..b5339198 100644 --- a/configs/components/rubygem-hiera.rb +++ b/configs/components/rubygem-hiera.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/hiera # https://github.com/puppetlabs/hiera/tags ##### -component 'rubygem-hiera' do |pkg, settings, platform| +component 'rubygem-hiera' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.12.0' pkg.md5sum '67249a25571c9ee83cdb68579faf3f0d' diff --git a/configs/components/rubygem-highline.rb b/configs/components/rubygem-highline.rb index c6bfd671..9056b179 100644 --- a/configs/components/rubygem-highline.rb +++ b/configs/components/rubygem-highline.rb @@ -13,5 +13,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-hocon.rb b/configs/components/rubygem-hocon.rb index 3c0d038c..10ce4051 100644 --- a/configs/components/rubygem-hocon.rb +++ b/configs/components/rubygem-hocon.rb @@ -5,15 +5,15 @@ # (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' ### 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-httpclient.rb b/configs/components/rubygem-httpclient.rb index 86c428b0..7f7cc519 100644 --- a/configs/components/rubygem-httpclient.rb +++ b/configs/components/rubygem-httpclient.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/httpclient # https://github.com/nahi/httpclient/blob/master/CHANGELOG.md ##### -component 'rubygem-httpclient' do |pkg, settings, platform| +component 'rubygem-httpclient' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.9.0' pkg.sha256sum '4b645958e494b2f86c2f8a2f304c959baa273a310e77a2931ddb986d83e498c8' diff --git a/configs/components/rubygem-jmespath.rb b/configs/components/rubygem-jmespath.rb index d4a11bb4..d9554500 100644 --- a/configs/components/rubygem-jmespath.rb +++ b/configs/components/rubygem-jmespath.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/jmespath # https://github.com/jmespath/jmespath.rb/releases ##### -component 'rubygem-jmespath' do |pkg, settings, platform| +component 'rubygem-jmespath' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.6.2' pkg.md5sum 'fdd62edafbd40171f976a53ab349ae9e' diff --git a/configs/components/rubygem-little-plugger.rb b/configs/components/rubygem-little-plugger.rb index 086b1d87..0da77bed 100644 --- a/configs/components/rubygem-little-plugger.rb +++ b/configs/components/rubygem-little-plugger.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/little-plugger # https://github.com/TwP/little-plugger/blob/master/History.txt ##### -component 'rubygem-little-plugger' do |pkg, settings, platform| +component 'rubygem-little-plugger' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.4' pkg.md5sum '8b1cf294a87eaabd12d5326bc13d7fe0' diff --git a/configs/components/rubygem-locale.rb b/configs/components/rubygem-locale.rb index 7155a968..5c7ce4f0 100644 --- a/configs/components/rubygem-locale.rb +++ b/configs/components/rubygem-locale.rb @@ -4,7 +4,7 @@ # 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| +component 'rubygem-locale' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.1.4' pkg.md5sum 'c324a7f34b94044f8d38eabff159de62' @@ -14,5 +14,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-log4r.rb b/configs/components/rubygem-log4r.rb index ce2fc72e..02c720ad 100644 --- a/configs/components/rubygem-log4r.rb +++ b/configs/components/rubygem-log4r.rb @@ -4,7 +4,7 @@ # Note: # Hasn't been updated since 2012. Should probably dump this. ##### -component 'rubygem-log4r' do |pkg, settings, platform| +component 'rubygem-log4r' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.10' pkg.md5sum '8d54b52c97f9fc17cc20a5277af20402' diff --git a/configs/components/rubygem-logger.rb b/configs/components/rubygem-logger.rb index a0410143..07eed31c 100644 --- a/configs/components/rubygem-logger.rb +++ b/configs/components/rubygem-logger.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/logger # https://github.com/ruby/logger/releases ##### -component 'rubygem-logger' do |pkg, settings, platform| +component 'rubygem-logger' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.7.0' pkg.sha256sum '196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203' diff --git a/configs/components/rubygem-logging.rb b/configs/components/rubygem-logging.rb index f1912122..eadd85f8 100644 --- a/configs/components/rubygem-logging.rb +++ b/configs/components/rubygem-logging.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/logging # https://github.com/TwP/logging/blob/master/History.txt ##### -component 'rubygem-logging' do |pkg, settings, platform| +component 'rubygem-logging' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.4.0' pkg.md5sum '8953eab63c979ecdac781cbf0da1872a' diff --git a/configs/components/rubygem-molinillo.rb b/configs/components/rubygem-molinillo.rb index 1b022554..db1176b9 100644 --- a/configs/components/rubygem-molinillo.rb +++ b/configs/components/rubygem-molinillo.rb @@ -4,7 +4,7 @@ # https://github.com/CocoaPods/Molinillo/releases # https://github.com/CocoaPods/Molinillo/blob/master/CHANGELOG.md ##### -component 'rubygem-molinillo' do |pkg, settings, platform| +component 'rubygem-molinillo' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.8.0' pkg.md5sum '877866cc996d5ce819dd8843b3116b5f' diff --git a/configs/components/rubygem-multi_json.rb b/configs/components/rubygem-multi_json.rb index 6c85b9dc..11fd495b 100644 --- a/configs/components/rubygem-multi_json.rb +++ b/configs/components/rubygem-multi_json.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/multi_json # https://github.com/sferik/multi_json/blob/main/CHANGELOG.md ##### -component 'rubygem-multi_json' do |pkg, settings, platform| +component 'rubygem-multi_json' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.17.0' pkg.sha256sum '76581f6c96aebf2e85f8a8b9854829e0988f335e8671cd1a56a1036eb75e4a1b' @@ -13,5 +13,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-multipart-post.rb b/configs/components/rubygem-multipart-post.rb index 5265149a..8baea784 100644 --- a/configs/components/rubygem-multipart-post.rb +++ b/configs/components/rubygem-multipart-post.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/multipart-post # https://github.com/socketry/multipart-post/releases ##### -component 'rubygem-multipart-post' do |pkg, settings, platform| +component 'rubygem-multipart-post' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.4.1' pkg.md5sum '190a88b4cae633a46b64c30764e5d624' diff --git a/configs/components/rubygem-net-http-persistent.rb b/configs/components/rubygem-net-http-persistent.rb index e1002cb0..c3f9d9c6 100644 --- a/configs/components/rubygem-net-http-persistent.rb +++ b/configs/components/rubygem-net-http-persistent.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/net-http-persistent # https://github.com/drbrain/net-http-persistent/blob/master/History.txt ##### -component 'rubygem-net-http-persistent' do |pkg, settings, platform| +component 'rubygem-net-http-persistent' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '4.0.6' pkg.sha256sum '2abb3a04438edf6cb9e0e7e505969605f709eda3e3c5211beadd621a2c84dd5d' diff --git a/configs/components/rubygem-net-scp.rb b/configs/components/rubygem-net-scp.rb index 0cbe7253..f710936c 100644 --- a/configs/components/rubygem-net-scp.rb +++ b/configs/components/rubygem-net-scp.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/net-scp # https://github.com/net-ssh/net-scp/tags ##### -component 'rubygem-net-scp' do |pkg, settings, platform| +component 'rubygem-net-scp' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '4.1.0' pkg.sha256sum 'a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d' diff --git a/configs/components/rubygem-net-ssh-krb.rb b/configs/components/rubygem-net-ssh-krb.rb index 98c49f3c..851c7c5d 100644 --- a/configs/components/rubygem-net-ssh-krb.rb +++ b/configs/components/rubygem-net-ssh-krb.rb @@ -3,7 +3,7 @@ # 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' diff --git a/configs/components/rubygem-net-ssh.rb b/configs/components/rubygem-net-ssh.rb index 17524b13..e5189438 100644 --- a/configs/components/rubygem-net-ssh.rb +++ b/configs/components/rubygem-net-ssh.rb @@ -3,7 +3,7 @@ # 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| +component 'rubygem-net-ssh' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '7.3.0' pkg.sha256sum '172076c4b30ce56fb25a03961b0c4da14e1246426401b0f89cba1a3b54bf3ef0' diff --git a/configs/components/rubygem-nori.rb b/configs/components/rubygem-nori.rb index ae9ae40b..8e37e19c 100644 --- a/configs/components/rubygem-nori.rb +++ b/configs/components/rubygem-nori.rb @@ -4,7 +4,7 @@ # https://github.com/savonrb/nori/releases # https://github.com/savonrb/nori/blob/main/CHANGELOG.md ##### -component 'rubygem-nori' do |pkg, settings, platform| +component 'rubygem-nori' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.7.1' pkg.md5sum '83952a081b5e86d5aa62943ca9ccf312' diff --git a/configs/components/rubygem-openfact.rb b/configs/components/rubygem-openfact.rb index 273ad05e..03a95b53 100644 --- a/configs/components/rubygem-openfact.rb +++ b/configs/components/rubygem-openfact.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/openfact # https://github.com/OpenVoxProject/openfact/releases ##### -component 'rubygem-openfact' do |pkg, settings, platform| +component 'rubygem-openfact' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '5.1.0' pkg.sha256sum '569b93bc6941f8efeef55c138577ae2e3ff4f6727657f9f48925c4a657d3f70c' diff --git a/configs/components/rubygem-openvox-strings.rb b/configs/components/rubygem-openvox-strings.rb index 81e7ca26..b50d7782 100644 --- a/configs/components/rubygem-openvox-strings.rb +++ b/configs/components/rubygem-openvox-strings.rb @@ -4,7 +4,7 @@ # https://github.com/voxpupuli/openvox-strings/releases # https://github.com/voxpupuli/openvox-strings/blob/main/CHANGELOG.md ##### -component 'rubygem-openvox-strings' do |pkg, settings, platform| +component 'rubygem-openvox-strings' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '6.0.0' pkg.sha256sum '3fd42dfd91d7d42ece6edb4254876937ec5634a65f951d912abcaec30156dc88' @@ -15,4 +15,3 @@ instance_eval File.read('configs/components/_base-rubygem.rb') end - diff --git a/configs/components/rubygem-openvox.rb b/configs/components/rubygem-openvox.rb index 340ec7d4..767a7ada 100644 --- a/configs/components/rubygem-openvox.rb +++ b/configs/components/rubygem-openvox.rb @@ -5,7 +5,7 @@ # Notes: # To be replaced with openvox ##### -component 'rubygem-openvox' do |pkg, settings, platform| +component 'rubygem-openvox' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '8.23.1' pkg.sha256sum '0af1d648fd4dc749b871df2f8fdcc6b74a21635961e8aa080b980a032a1bc915' @@ -20,6 +20,6 @@ pkg.build_requires 'rubygem-scanf' pkg.build_requires 'rubygem-semantic_puppet' ### 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 130c577a..5bc6488c 100644 --- a/configs/components/rubygem-optimist.rb +++ b/configs/components/rubygem-optimist.rb @@ -13,5 +13,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-orchestrator_client.rb b/configs/components/rubygem-orchestrator_client.rb index 12ab1f11..70538940 100644 --- a/configs/components/rubygem-orchestrator_client.rb +++ b/configs/components/rubygem-orchestrator_client.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/orchestrator_client # https://github.com/puppetlabs/orchestrator_client-ruby/tags ##### -component 'rubygem-orchestrator_client' do |pkg, settings, platform| +component 'rubygem-orchestrator_client' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.7.1' pkg.md5sum '177686e31c134ae9fdee25ba8c0404a0' diff --git a/configs/components/rubygem-paint.rb b/configs/components/rubygem-paint.rb index ceff522d..08db05fd 100644 --- a/configs/components/rubygem-paint.rb +++ b/configs/components/rubygem-paint.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/paint # https://github.com/janlelis/paint/blob/main/CHANGELOG.md ##### -component 'rubygem-paint' do |pkg, settings, platform| +component 'rubygem-paint' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.0' pkg.md5sum '5f51716cec1f4fe3db8ba1880f9fc875' diff --git a/configs/components/rubygem-patron.rb b/configs/components/rubygem-patron.rb index a42cd28b..43d12c81 100644 --- a/configs/components/rubygem-patron.rb +++ b/configs/components/rubygem-patron.rb @@ -2,7 +2,7 @@ # Component release information: # https://rubygems.org/gems/patron ##### -component 'rubygem-patron' do |pkg, settings, platform| +component 'rubygem-patron' do |pkg, _settings, platform| ### Maintained by update_gems automation ### pkg.version '0.13.4' pkg.sha256sum 'c4ae37404a028772541e2f19a71e19be970aa53fdf8a3d70c5a9c1350bab3b09' diff --git a/configs/components/rubygem-prime.rb b/configs/components/rubygem-prime.rb index f87b19a5..88eb911e 100644 --- a/configs/components/rubygem-prime.rb +++ b/configs/components/rubygem-prime.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/prime # https://github.com/ruby/prime/releases ##### -component 'rubygem-prime' do |pkg, settings, platform| +component 'rubygem-prime' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.1.4' pkg.sha256sum '4d755ebf7c2994a6f3a3fee0d072063be3fff2d4042ebff6cd5eebd4747a225e' diff --git a/configs/components/rubygem-public_suffix.rb b/configs/components/rubygem-public_suffix.rb index 6931ae9c..cc5a87dc 100644 --- a/configs/components/rubygem-public_suffix.rb +++ b/configs/components/rubygem-public_suffix.rb @@ -4,7 +4,7 @@ # https://github.com/weppos/publicsuffix-ruby/blob/main/CHANGELOG.md # Notes: 2025-11-17 - Pinned to < 7 until the addressable gem updates its dependency ##### -component 'rubygem-public_suffix' do |pkg, settings, platform| +component 'rubygem-public_suffix' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### # PINNED pkg.version '6.0.2' diff --git a/configs/components/rubygem-puppet-resource_api.rb b/configs/components/rubygem-puppet-resource_api.rb index d039dd65..7b73d767 100644 --- a/configs/components/rubygem-puppet-resource_api.rb +++ b/configs/components/rubygem-puppet-resource_api.rb @@ -4,7 +4,7 @@ # https://github.com/puppetlabs/puppet-resource_api/releases # https://github.com/puppetlabs/puppet-resource_api/blob/main/CHANGELOG.md ##### -component 'rubygem-puppet-resource_api' do |pkg, settings, platform| +component 'rubygem-puppet-resource_api' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.0.0' pkg.sha256sum '4649fcb5d5e5f8cbda0887f706b95be5b52a089bcf98ce8ebf0496c3266fd9c4' diff --git a/configs/components/rubygem-puppetfile-resolver.rb b/configs/components/rubygem-puppetfile-resolver.rb index 8dae4f4d..b4e9f032 100644 --- a/configs/components/rubygem-puppetfile-resolver.rb +++ b/configs/components/rubygem-puppetfile-resolver.rb @@ -5,7 +5,7 @@ # Notes: # Deprecated and needs to be removed. ##### -component 'rubygem-puppetfile-resolver' do |pkg, settings, platform| +component 'rubygem-puppetfile-resolver' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.6.3' pkg.md5sum '8377387749cf0fcfcfd9f8c0c6baaf0c' diff --git a/configs/components/rubygem-r10k.rb b/configs/components/rubygem-r10k.rb index 5a76bf49..78444741 100644 --- a/configs/components/rubygem-r10k.rb +++ b/configs/components/rubygem-r10k.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/r10k # https://github.com/puppetlabs/r10k/blob/main/CHANGELOG.mkd ##### -component 'rubygem-r10k' do |pkg, settings, platform| +component 'rubygem-r10k' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '5.0.2' pkg.sha256sum '48e24e2b8447cdc56b03303b741247a5255bb40f170c9d113c5d3dbd8c83e8b3' diff --git a/configs/components/rubygem-rexml.rb b/configs/components/rubygem-rexml.rb index 86726bbb..0bafe000 100644 --- a/configs/components/rubygem-rexml.rb +++ b/configs/components/rubygem-rexml.rb @@ -15,9 +15,7 @@ # ignoring the dependencies, this is because the pl-ruby version used in these platforms is ancient so it gets # confused when installing rexml. It tries to install rexml's dependency 'strscan' by building native extensions # but fails. We can ignore insalling that since strscan is already shipped with ruby 2 as its default gem. - if platform.name =~ /solaris-(10|11)-sparc/ && settings[:ruby_version].to_i < 3 - settings["#{pkg.get_name}_gem_install_options".to_sym] = "--ignore-dependencies" - end + settings["#{pkg.get_name}_gem_install_options".to_sym] = '--ignore-dependencies' if platform.name =~ /solaris-(10|11)-sparc/ && settings[:ruby_version].to_i < 3 instance_eval File.read('configs/components/_base-rubygem.rb') end diff --git a/configs/components/rubygem-rgen.rb b/configs/components/rubygem-rgen.rb index 21d86f9f..843f4e08 100644 --- a/configs/components/rubygem-rgen.rb +++ b/configs/components/rubygem-rgen.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/rgen # https://github.com/mthiede/rgen/blob/master/CHANGELOG ##### -component 'rubygem-rgen' do |pkg, settings, platform| +component 'rubygem-rgen' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.10.2' pkg.sha256sum 'd978f84887a0b4815ff3a0e0c4d43a15cdeeac9fd4da02db8ec3ecd0f222f371' diff --git a/configs/components/rubygem-ruby2_keywords.rb b/configs/components/rubygem-ruby2_keywords.rb index 331d6d6a..cdc8a957 100644 --- a/configs/components/rubygem-ruby2_keywords.rb +++ b/configs/components/rubygem-ruby2_keywords.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/ruby2_keywords # https://github.com/ruby/ruby2_keywords/releases ##### -component 'rubygem-ruby2_keywords' do |pkg, settings, platform| +component 'rubygem-ruby2_keywords' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.0.5' pkg.md5sum '89bc1e9231e63a0f93599772ae871e03' diff --git a/configs/components/rubygem-ruby_smb.rb b/configs/components/rubygem-ruby_smb.rb index d21a9009..b3a4d7e2 100644 --- a/configs/components/rubygem-ruby_smb.rb +++ b/configs/components/rubygem-ruby_smb.rb @@ -6,7 +6,7 @@ # This is horrifically out of date. Need to try updating it carefully # and make sure this doesn't break Bolt SMB support. ##### -component 'rubygem-ruby_smb' do |pkg, settings, platform| +component 'rubygem-ruby_smb' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### # PINNED pkg.version '1.1.0' diff --git a/configs/components/rubygem-rubyzip.rb b/configs/components/rubygem-rubyzip.rb index 5c33356f..61c2e614 100644 --- a/configs/components/rubygem-rubyzip.rb +++ b/configs/components/rubygem-rubyzip.rb @@ -4,7 +4,7 @@ # https://github.com/rubyzip/rubyzip/releases # https://github.com/rubyzip/rubyzip/blob/master/Changelog.md ##### -component 'rubygem-rubyzip' do |pkg, settings, platform| +component 'rubygem-rubyzip' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.0.2' pkg.sha256sum '30f75c0b631e23c0891453acbcc019bc1496cd44f4a3ade4ff76bc09a595cfa6' diff --git a/configs/components/rubygem-scanf.rb b/configs/components/rubygem-scanf.rb index 2a09454d..82346005 100644 --- a/configs/components/rubygem-scanf.rb +++ b/configs/components/rubygem-scanf.rb @@ -3,7 +3,7 @@ # 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' @@ -13,5 +13,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-semantic_puppet.rb b/configs/components/rubygem-semantic_puppet.rb index 45763973..35a1c574 100644 --- a/configs/components/rubygem-semantic_puppet.rb +++ b/configs/components/rubygem-semantic_puppet.rb @@ -3,15 +3,15 @@ # https://rubygems.org/gems/semantic_puppet # https://github.com/puppetlabs/semantic_puppet/blob/main/CHANGELOG.md ##### -component 'rubygem-semantic_puppet' do |pkg, settings, platform| +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') # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-sys-filesystem.rb b/configs/components/rubygem-sys-filesystem.rb index 80a6f102..a7380432 100644 --- a/configs/components/rubygem-sys-filesystem.rb +++ b/configs/components/rubygem-sys-filesystem.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/sys-filesystem # https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md ##### -component 'rubygem-sys-filesystem' do |pkg, settings, platform| +component 'rubygem-sys-filesystem' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.5.3' pkg.sha256sum '17b561d1be683c34bc53946461ea9d67012d8f395e7297db8c63b9018cb30ece' diff --git a/configs/components/rubygem-terminal-table.rb b/configs/components/rubygem-terminal-table.rb index e542a051..884ee4b8 100644 --- a/configs/components/rubygem-terminal-table.rb +++ b/configs/components/rubygem-terminal-table.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/terminal-table # https://github.com/tj/terminal-table/releases ##### -component 'rubygem-terminal-table' do |pkg, settings, platform| +component 'rubygem-terminal-table' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '4.0.0' pkg.sha256sum 'f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2' diff --git a/configs/components/rubygem-text.rb b/configs/components/rubygem-text.rb index 4d2cff19..487df677 100644 --- a/configs/components/rubygem-text.rb +++ b/configs/components/rubygem-text.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/text # https://github.com/threedaymonk/text/tags ##### -component 'rubygem-text' do |pkg, settings, platform| +component 'rubygem-text' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.1' pkg.md5sum '514c3d1db7a955fe793fc0cb149c164f' @@ -13,5 +13,5 @@ # 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. - pkg.environment "GEM_HOME", (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) + pkg.environment 'GEM_HOME', (settings[:puppet_gem_vendor_dir] || settings[:gem_home]) end diff --git a/configs/components/rubygem-thor.rb b/configs/components/rubygem-thor.rb index 98946aaa..47e66f17 100644 --- a/configs/components/rubygem-thor.rb +++ b/configs/components/rubygem-thor.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/thor # https://github.com/rails/thor/releases ##### -component 'rubygem-thor' do |pkg, settings, platform| +component 'rubygem-thor' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.4.0' pkg.sha256sum '8763e822ccb0f1d7bee88cde131b19a65606657b847cc7b7b4b82e772bcd8a3d' diff --git a/configs/components/rubygem-unicode-display_width.rb b/configs/components/rubygem-unicode-display_width.rb index 0f047e07..d336683a 100644 --- a/configs/components/rubygem-unicode-display_width.rb +++ b/configs/components/rubygem-unicode-display_width.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/unicode-display_width # https://github.com/janlelis/unicode-display_width/blob/main/CHANGELOG.md ##### -component 'rubygem-unicode-display_width' do |pkg, settings, platform| +component 'rubygem-unicode-display_width' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.1.5' pkg.sha256sum 'bf566817855ee7ee3adcf7bace0d5906cb14401417db59193f8a5fcedf02dd4e' diff --git a/configs/components/rubygem-webrick.rb b/configs/components/rubygem-webrick.rb index e17c7793..57d95414 100644 --- a/configs/components/rubygem-webrick.rb +++ b/configs/components/rubygem-webrick.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/webrick # https://github.com/ruby/webrick/releases ##### -component 'rubygem-webrick' do |pkg, settings, platform| +component 'rubygem-webrick' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.9.1' pkg.sha256sum 'b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989' diff --git a/configs/components/rubygem-windows_error.rb b/configs/components/rubygem-windows_error.rb index 6da5aaf9..dbcf2fbe 100644 --- a/configs/components/rubygem-windows_error.rb +++ b/configs/components/rubygem-windows_error.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/windows_error # https://github.com/rapid7/windows_error/tags ##### -component 'rubygem-windows_error' do |pkg, settings, platform| +component 'rubygem-windows_error' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.1.5' pkg.md5sum 'cb1faeaed0e3b1e4d4ad4e7d1aef76c7' diff --git a/configs/components/rubygem-winrm-fs.rb b/configs/components/rubygem-winrm-fs.rb index 3f6bad70..33c10baa 100644 --- a/configs/components/rubygem-winrm-fs.rb +++ b/configs/components/rubygem-winrm-fs.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/winrm-fs # https://github.com/WinRb/winrm-fs/tags ##### -component 'rubygem-winrm-fs' do |pkg, settings, platform| +component 'rubygem-winrm-fs' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.5' pkg.md5sum 'dcde27a3aff684b8277c069cd4b2efe7' diff --git a/configs/components/rubygem-winrm.rb b/configs/components/rubygem-winrm.rb index 7f781b64..f4ce9d4b 100644 --- a/configs/components/rubygem-winrm.rb +++ b/configs/components/rubygem-winrm.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/winrm # https://github.com/WinRb/WinRM/releases ##### -component 'rubygem-winrm' do |pkg, settings, platform| +component 'rubygem-winrm' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.9' pkg.sha256sum 'ef6b767c5772d06e186300b506ea5e65afb849904a551f8482a5cfc2a1be5d06' diff --git a/configs/components/rubygem-yard.rb b/configs/components/rubygem-yard.rb index 12830812..beb1b601 100644 --- a/configs/components/rubygem-yard.rb +++ b/configs/components/rubygem-yard.rb @@ -3,7 +3,7 @@ # https://rubygems.org/gems/yard # https://github.com/lsegal/yard/releases ##### -component 'rubygem-yard' do |pkg, settings, platform| +component 'rubygem-yard' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.9.37' pkg.sha256sum 'a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992' @@ -11,4 +11,3 @@ instance_eval File.read('configs/components/_base-rubygem.rb') end - diff --git a/configs/components/runtime-agent.rb b/configs/components/runtime-agent.rb index ab6839ed..e6eb3527 100644 --- a/configs/components/runtime-agent.rb +++ b/configs/components/runtime-agent.rb @@ -1,47 +1,46 @@ # This component exists to link in the gcc and stdc++ runtime libraries as well as libssp. -component "runtime-agent" do |pkg, settings, platform| - pkg.environment "PROJECT_SHORTNAME", "puppet" - pkg.add_source "file://resources/files/runtime/runtime.sh" +component 'runtime-agent' do |pkg, settings, platform| + pkg.environment 'PROJECT_SHORTNAME', 'puppet' + pkg.add_source 'file://resources/files/runtime/runtime.sh' - if platform.is_macos? && platform.is_cross_compiled? - if settings[:ruby_version] =~ /^3\./ - pkg.install do - # These are dependencies of ruby@3.x, remove symlinks from /usr/local - # so our build doesn't use the wrong headers - "cd /etc/homebrew && su test -c '#{platform.brew} unlink openssl libyaml'" - end + if platform.is_macos? && platform.is_cross_compiled? && (settings[:ruby_version] =~ /^3\./) + pkg.install do + # These are dependencies of ruby@3.x, remove symlinks from /usr/local + # so our build doesn't use the wrong headers + "cd /etc/homebrew && su test -c '#{platform.brew} unlink openssl libyaml'" end end if platform.is_cross_compiled? - if platform.architecture =~ /aarch64|ppc64$|ppc64le/ - libdir = File.join("/opt/pl-build-tools", settings[:platform_triple], "lib64") - else - libdir = File.join("/opt/pl-build-tools", settings[:platform_triple], "lib") - end + libdir = if platform.architecture =~ /aarch64|ppc64$|ppc64le/ + File.join('/opt/pl-build-tools', settings[:platform_triple], 'lib64') + else + File.join('/opt/pl-build-tools', settings[:platform_triple], 'lib') + end elsif platform.is_aix? - libdir = "/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/10/" + libdir = '/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/10/' elsif platform.is_solaris? || platform.architecture =~ /i\d86/ - libdir = "/opt/pl-build-tools/lib" + libdir = '/opt/pl-build-tools/lib' elsif platform.architecture =~ /64/ - libdir = "/opt/pl-build-tools/lib64" + libdir = '/opt/pl-build-tools/lib64' end # The runtime script uses readlink, which is in an odd place on Solaris systems: - pkg.environment "PATH", "$(PATH):/opt/csw/gnu" if platform.is_solaris? + pkg.environment 'PATH', '$(PATH):/opt/csw/gnu' if platform.is_solaris? if platform.is_aix? - pkg.install_file File.join(libdir, "libstdc++.a"), "/opt/puppetlabs/puppet/lib/libstdc++.a" - pkg.install_file File.join(libdir, "libgcc_s.a"), "/opt/puppetlabs/puppet/lib/libgcc_s.a" - pkg.install_file File.join(libdir, "libatomic.a"), "/opt/puppetlabs/puppet/lib/libatomic.a" - pkg.install_file "/opt/freeware/lib/libiconv.a", "/opt/puppetlabs/puppet/lib/libiconv.a" - pkg.install_file "/opt/freeware/lib/libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so.6.4.0" - pkg.link "libncurses.so.6.4.0", "/opt/puppetlabs/puppet/lib/libncurses.so" - pkg.install_file "/opt/freeware/lib/libreadline.a", "/opt/puppetlabs/puppet/lib/libreadline.a" - pkg.install_file "/opt/freeware/lib/libz.a", "/opt/puppetlabs/puppet/lib/libz.a" + pkg.install_file File.join(libdir, 'libstdc++.a'), '/opt/puppetlabs/puppet/lib/libstdc++.a' + pkg.install_file File.join(libdir, 'libgcc_s.a'), '/opt/puppetlabs/puppet/lib/libgcc_s.a' + pkg.install_file File.join(libdir, 'libatomic.a'), '/opt/puppetlabs/puppet/lib/libatomic.a' + pkg.install_file '/opt/freeware/lib/libiconv.a', '/opt/puppetlabs/puppet/lib/libiconv.a' + pkg.install_file '/opt/freeware/lib/libncurses.so.6.4.0', '/opt/puppetlabs/puppet/lib/libncurses.so.6.4.0' + pkg.link 'libncurses.so.6.4.0', '/opt/puppetlabs/puppet/lib/libncurses.so' + pkg.install_file '/opt/freeware/lib/libreadline.a', '/opt/puppetlabs/puppet/lib/libreadline.a' + pkg.install_file '/opt/freeware/lib/libz.a', '/opt/puppetlabs/puppet/lib/libz.a' elsif 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" + 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" pkg.install_file "#{settings[:gcc_bindir]}/libstdc++-6.dll", "#{settings[:bindir]}/libstdc++-6.dll" pkg.install_file "#{settings[:gcc_bindir]}/libwinpthread-1.dll", "#{settings[:bindir]}/libwinpthread-1.dll" @@ -52,7 +51,8 @@ # gdbm and iconv are all runtime dependencies of ruby, and their libraries need # to exist inside our vendored ruby 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/libgdbm_compat-4.dll", + "#{settings[:ruby_bindir]}/libgdbm_compat-4.dll" pkg.install_file "#{settings[:tools_root]}/bin/libffi-6.dll", "#{settings[:ruby_bindir]}/libffi-6.dll" elsif platform.is_solaris? || platform.name =~ /redhatfips-7/ diff --git a/configs/components/runtime-openbolt.rb b/configs/components/runtime-openbolt.rb index a71c830c..895e972b 100644 --- a/configs/components/runtime-openbolt.rb +++ b/configs/components/runtime-openbolt.rb @@ -1,9 +1,10 @@ # This component exists to link in the gcc runtime libraries. component 'runtime-openbolt' do |pkg, settings, platform| - pkg.environment "PROJECT_SHORTNAME", "bolt" + 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" + 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/components/virt-what.rb b/configs/components/virt-what.rb index d45a91d2..1b54853c 100644 --- a/configs/components/virt-what.rb +++ b/configs/components/virt-what.rb @@ -7,26 +7,22 @@ # https://github.com/chuckleb/virt-what, which you # SHOULD NOT USE as this is a fork. ##### -component "virt-what" do |pkg, settings, platform| +component 'virt-what' do |pkg, settings, platform| pkg.version '1.27' pkg.sha256sum 'd4d9bd9d4ae59095597443fac663495315c7eb4330b872aa5f062df38ac69bf1' # 2025-08-05: The upstream site was down, so using a mirror here. Revert this back to the # original URL next time we bump this. - #pkg.url "https://people.redhat.com/~rjones/virt-what/files/virt-what-#{pkg.get_version}.tar.gz" + # pkg.url "https://people.redhat.com/~rjones/virt-what/files/virt-what-#{pkg.get_version}.tar.gz" pkg.url "https://artifacts.voxpupuli.org/components/virt-what-#{pkg.get_version}.tar.gz" pkg.mirror "#{settings[:buildsources_url]}/virt-what-#{pkg.get_version}.tar.gz" pkg.replaces 'pe-virt-what' # Run-time requirements - unless platform.is_deb? - requires "util-linux" - end + requires 'util-linux' unless platform.is_deb? - if platform.is_rpm? - pkg.build_requires "util-linux" - end + pkg.build_requires 'util-linux' if platform.is_rpm? if platform.is_linux? if platform.architecture =~ /ppc64le$/ @@ -39,9 +35,9 @@ if platform.is_cross_compiled_linux? host_opt = "--host #{settings[:platform_triple]}" - pkg.environment "PATH" => "/opt/pl-build-tools/bin:$$PATH:#{settings[:bindir]}" - pkg.environment "CFLAGS" => settings[:cflags] - pkg.environment "LDFLAGS" => settings[:ldflags] + pkg.environment 'PATH' => "/opt/pl-build-tools/bin:$$PATH:#{settings[:bindir]}" + pkg.environment 'CFLAGS' => settings[:cflags] + pkg.environment 'LDFLAGS' => settings[:ldflags] end pkg.configure do diff --git a/configs/platforms/aix-7.2-ppc.rb b/configs/platforms/aix-7.2-ppc.rb index db38eaab..d2ce401a 100644 --- a/configs/platforms/aix-7.2-ppc.rb +++ b/configs/platforms/aix-7.2-ppc.rb @@ -1,10 +1,10 @@ -platform "aix-7.2-ppc" do |plat| +platform 'aix-7.2-ppc' do |plat| # os_version = 7.2 - plat.make "gmake" - plat.patch "/opt/freeware/bin/patch" - plat.rpmbuild "/usr/bin/rpm" - plat.servicetype "aix" - plat.tar "/opt/freeware/bin/tar" + plat.make 'gmake' + plat.patch '/opt/freeware/bin/patch' + plat.rpmbuild '/usr/bin/rpm' + plat.servicetype 'aix' + plat.tar '/opt/freeware/bin/tar' plat.provision_with %( curl -O https://artifactory.delivery.puppetlabs.net/artifactory/generic__buildsources/openssl-1.1.2.2000.tar.Z; @@ -31,7 +31,7 @@ # versions. plat.provision_with 'yum update --assumeyes --skip-broken' - packages = %w( + packages = %w[ autoconf cmake coreutils @@ -52,15 +52,15 @@ xz-5.4.3 zlib zlib-devel - ) + ] plat.provision_with "yum install --assumeyes #{packages.join(' ')}" # No upstream rsync packages - plat.provision_with "rpm -Uvh --replacepkgs https://artifactory.delivery.puppetlabs.net/artifactory/rpm__remote_aix_linux_toolbox/RPMS/ppc/rsync/rsync-3.0.6-1.aix5.3.ppc.rpm" + plat.provision_with 'rpm -Uvh --replacepkgs https://artifactory.delivery.puppetlabs.net/artifactory/rpm__remote_aix_linux_toolbox/RPMS/ppc/rsync/rsync-3.0.6-1.aix5.3.ppc.rpm' # lots of things expect mktemp to be installed in the usual place, so link it - plat.provision_with "ln -sf /opt/freeware/bin/mktemp /usr/bin/mktemp" + plat.provision_with 'ln -sf /opt/freeware/bin/mktemp /usr/bin/mktemp' - plat.install_build_dependencies_with "yum install --assumeyes " - plat.vmpooler_template "aix-7.2-power" + plat.install_build_dependencies_with 'yum install --assumeyes ' + plat.vmpooler_template 'aix-7.2-power' end diff --git a/configs/platforms/debian-11-aarch64.rb b/configs/platforms/debian-11-aarch64.rb index 6bf5df19..0da9ddbf 100644 --- a/configs/platforms/debian-11-aarch64.rb +++ b/configs/platforms/debian-11-aarch64.rb @@ -1,22 +1,21 @@ -platform "debian-11-aarch64" do |plat| - plat.inherit_from_default - packages = [ - 'build-essential', - 'cmake', - 'debhelper', - 'devscripts', - 'fakeroot', - 'libbz2-dev', - 'libreadline-dev', - 'libselinux1-dev', - 'make', - 'pkg-config', - 'quilt', - 'rsync', - 'swig', - 'systemtap-sdt-dev', - 'zlib1g-dev' - ] - plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}" - end - \ No newline at end of file +platform 'debian-11-aarch64' do |plat| + plat.inherit_from_default + packages = [ + 'build-essential', + 'cmake', + 'debhelper', + 'devscripts', + 'fakeroot', + 'libbz2-dev', + 'libreadline-dev', + 'libselinux1-dev', + 'make', + 'pkg-config', + 'quilt', + 'rsync', + 'swig', + 'systemtap-sdt-dev', + 'zlib1g-dev' + ] + plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}" +end diff --git a/configs/platforms/debian-11-amd64.rb b/configs/platforms/debian-11-amd64.rb index a4b9abd5..d9c545f8 100644 --- a/configs/platforms/debian-11-amd64.rb +++ b/configs/platforms/debian-11-amd64.rb @@ -1,4 +1,4 @@ -platform "debian-11-amd64" do |plat| +platform 'debian-11-amd64' do |plat| plat.inherit_from_default packages = [ diff --git a/configs/platforms/debian-11-armhf.rb b/configs/platforms/debian-11-armhf.rb index ae5c15a7..d1fb4541 100644 --- a/configs/platforms/debian-11-armhf.rb +++ b/configs/platforms/debian-11-armhf.rb @@ -1,29 +1,29 @@ -platform "debian-11-armhf" do |plat| - plat.servicedir "/lib/systemd/system" - plat.defaultdir "/etc/default" - plat.servicetype "systemd" - plat.codename "bullseye" +platform 'debian-11-armhf' do |plat| + plat.servicedir '/lib/systemd/system' + plat.defaultdir '/etc/default' + plat.servicetype 'systemd' + plat.codename 'bullseye' - plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends " + plat.install_build_dependencies_with 'DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends ' packages = [ - "build-essential", - "make", - "quilt", - "pkg-config", - "debhelper", - "rsync", - "fakeroot", - "libbz2-dev", - "libreadline-dev", - "libselinux1-dev", - "make", - "pkg-config", - "cmake", - "gcc", - "swig", - "systemtap-sdt-dev", - "zlib1g-dev" + 'build-essential', + 'make', + 'quilt', + 'pkg-config', + 'debhelper', + 'rsync', + 'fakeroot', + 'libbz2-dev', + 'libreadline-dev', + 'libselinux1-dev', + 'make', + 'pkg-config', + 'cmake', + 'gcc', + 'swig', + 'systemtap-sdt-dev', + 'zlib1g-dev' ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" diff --git a/configs/platforms/debian-12-aarch64.rb b/configs/platforms/debian-12-aarch64.rb index faf85e5c..e2fcc7bf 100644 --- a/configs/platforms/debian-12-aarch64.rb +++ b/configs/platforms/debian-12-aarch64.rb @@ -1,4 +1,4 @@ -platform "debian-12-aarch64" do |plat| +platform 'debian-12-aarch64' do |plat| plat.inherit_from_default packages = [ 'build-essential', @@ -18,4 +18,4 @@ 'zlib1g-dev' ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}" -end \ No newline at end of file +end diff --git a/configs/platforms/debian-12-amd64.rb b/configs/platforms/debian-12-amd64.rb index f0ed30db..476a264b 100644 --- a/configs/platforms/debian-12-amd64.rb +++ b/configs/platforms/debian-12-amd64.rb @@ -1,4 +1,4 @@ -platform "debian-12-amd64" do |plat| +platform 'debian-12-amd64' do |plat| plat.inherit_from_default packages = [ 'build-essential', diff --git a/configs/platforms/debian-12-armhf.rb b/configs/platforms/debian-12-armhf.rb index 47fe31c5..c556d978 100644 --- a/configs/platforms/debian-12-armhf.rb +++ b/configs/platforms/debian-12-armhf.rb @@ -1,29 +1,29 @@ -platform "debian-12-armhf" do |plat| - plat.servicedir "/lib/systemd/system" - plat.defaultdir "/etc/default" - plat.servicetype "systemd" - plat.codename "bullseye" +platform 'debian-12-armhf' do |plat| + plat.servicedir '/lib/systemd/system' + plat.defaultdir '/etc/default' + plat.servicetype 'systemd' + plat.codename 'bullseye' - plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends " + plat.install_build_dependencies_with 'DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends ' packages = [ - "build-essential", - "make", - "quilt", - "pkg-config", - "debhelper", - "rsync", - "fakeroot", - "libbz2-dev", - "libreadline-dev", - "libselinux1-dev", - "make", - "pkg-config", - "cmake", - "gcc", - "swig", - "systemtap-sdt-dev", - "zlib1g-dev" + 'build-essential', + 'make', + 'quilt', + 'pkg-config', + 'debhelper', + 'rsync', + 'fakeroot', + 'libbz2-dev', + 'libreadline-dev', + 'libselinux1-dev', + 'make', + 'pkg-config', + 'cmake', + 'gcc', + 'swig', + 'systemtap-sdt-dev', + 'zlib1g-dev' ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" diff --git a/configs/platforms/debian-13-aarch64.rb b/configs/platforms/debian-13-aarch64.rb index 873220ab..6bfaddd9 100644 --- a/configs/platforms/debian-13-aarch64.rb +++ b/configs/platforms/debian-13-aarch64.rb @@ -1,4 +1,4 @@ -platform "debian-13-aarch64" do |plat| +platform 'debian-13-aarch64' do |plat| plat.inherit_from_default packages = [ 'build-essential', @@ -19,4 +19,3 @@ ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}" end - diff --git a/configs/platforms/debian-13-amd64.rb b/configs/platforms/debian-13-amd64.rb index d0e3cab2..29d8a5c8 100644 --- a/configs/platforms/debian-13-amd64.rb +++ b/configs/platforms/debian-13-amd64.rb @@ -1,4 +1,4 @@ -platform "debian-13-amd64" do |plat| +platform 'debian-13-amd64' do |plat| plat.inherit_from_default packages = [ 'build-essential', diff --git a/configs/platforms/el-10-aarch64.rb b/configs/platforms/el-10-aarch64.rb index 641f055a..4f950d98 100644 --- a/configs/platforms/el-10-aarch64.rb +++ b/configs/platforms/el-10-aarch64.rb @@ -1,18 +1,18 @@ platform 'el-10-aarch64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ perl perl-FindBin - perl-Getopt-Long + perl-Getopt-Long perl-lib - patch - swig - readline-devel - zlib-devel + patch + swig + readline-devel + zlib-devel systemtap-sdt-devel systemtap-sdt-dtrace - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") - plat.install_build_dependencies_with "dnf install -y --allowerasing " + plat.install_build_dependencies_with 'dnf install -y --allowerasing ' end diff --git a/configs/platforms/el-10-x86_64.rb b/configs/platforms/el-10-x86_64.rb index ee5f1c11..546a5250 100644 --- a/configs/platforms/el-10-x86_64.rb +++ b/configs/platforms/el-10-x86_64.rb @@ -1,10 +1,10 @@ -platform "el-10-x86_64" do |plat| +platform 'el-10-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ perl perl-FindBin - perl-Getopt-Long + perl-Getopt-Long perl-lib libsepol libsepol-devel @@ -16,7 +16,6 @@ systemtap-sdt-devel yum-utils zlib-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") end - diff --git a/configs/platforms/el-7-x86_64.rb b/configs/platforms/el-7-x86_64.rb index 77a6c89b..c0aa8be7 100644 --- a/configs/platforms/el-7-x86_64.rb +++ b/configs/platforms/el-7-x86_64.rb @@ -1,6 +1,6 @@ -platform "el-7-x86_64" do |plat| +platform 'el-7-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ bzip2-devel libsepol libsepol-devel @@ -11,6 +11,6 @@ swig zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("yum install --assumeyes #{packages.join(' ')}") end diff --git a/configs/platforms/el-8-aarch64.rb b/configs/platforms/el-8-aarch64.rb index abc87f17..3f4d1fb5 100644 --- a/configs/platforms/el-8-aarch64.rb +++ b/configs/platforms/el-8-aarch64.rb @@ -1,14 +1,14 @@ platform 'el-8-aarch64' do |plat| plat.inherit_from_default - packages = %w( - perl-Getopt-Long - patch - swig - libselinux-devel - readline-devel - zlib-devel + packages = %w[ + perl-Getopt-Long + patch + swig + libselinux-devel + readline-devel + zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") end diff --git a/configs/platforms/el-8-x86_64.rb b/configs/platforms/el-8-x86_64.rb index 96a79403..917c1202 100644 --- a/configs/platforms/el-8-x86_64.rb +++ b/configs/platforms/el-8-x86_64.rb @@ -1,17 +1,17 @@ -platform "el-8-x86_64" do |plat| +platform 'el-8-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libsepol libsepol-devel libselinux-devel - pkgconfig + pkgconfig readline-devel rpmdevtools swig systemtap-sdt-devel yum-utils zlib-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") end diff --git a/configs/platforms/el-9-aarch64.rb b/configs/platforms/el-9-aarch64.rb index a1590699..71284391 100644 --- a/configs/platforms/el-9-aarch64.rb +++ b/configs/platforms/el-9-aarch64.rb @@ -1,18 +1,18 @@ platform 'el-9-aarch64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ perl perl-FindBin - perl-Getopt-Long + perl-Getopt-Long perl-lib - patch - swig - readline-devel - zlib-devel + patch + swig + readline-devel + zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") - plat.install_build_dependencies_with "dnf install -y --allowerasing " - plat.vmpooler_template "redhat-9-arm64" + plat.install_build_dependencies_with 'dnf install -y --allowerasing ' + plat.vmpooler_template 'redhat-9-arm64' end diff --git a/configs/platforms/el-9-ppc64le.rb b/configs/platforms/el-9-ppc64le.rb index a26c6e20..5c522e7d 100644 --- a/configs/platforms/el-9-ppc64le.rb +++ b/configs/platforms/el-9-ppc64le.rb @@ -1,16 +1,16 @@ platform 'el-9-ppc64le' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ perl perl-FindBin - perl-Getopt-Long + perl-Getopt-Long perl-lib - patch - swig - readline-devel - zlib-devel + patch + swig + readline-devel + zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") - plat.install_build_dependencies_with "dnf install -y --allowerasing " + plat.install_build_dependencies_with 'dnf install -y --allowerasing ' end diff --git a/configs/platforms/el-9-x86_64.rb b/configs/platforms/el-9-x86_64.rb index ca9db925..a8b1b722 100644 --- a/configs/platforms/el-9-x86_64.rb +++ b/configs/platforms/el-9-x86_64.rb @@ -1,10 +1,10 @@ -platform "el-9-x86_64" do |plat| +platform 'el-9-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ perl perl-FindBin - perl-Getopt-Long + perl-Getopt-Long perl-lib libsepol libsepol-devel @@ -15,7 +15,6 @@ systemtap-sdt-devel yum-utils zlib-devel - ) + ] plat.provision_with("dnf install -y --allowerasing #{packages.join(' ')}") end - diff --git a/configs/platforms/redhatfips-8-x86_64.rb b/configs/platforms/redhatfips-8-x86_64.rb index 8692d845..f18dd412 100644 --- a/configs/platforms/redhatfips-8-x86_64.rb +++ b/configs/platforms/redhatfips-8-x86_64.rb @@ -1,3 +1,3 @@ -platform "redhatfips-8-x86_64" do |plat| +platform 'redhatfips-8-x86_64' do |plat| plat.inherit_from_default end diff --git a/configs/platforms/redhatfips-9-x86_64.rb b/configs/platforms/redhatfips-9-x86_64.rb index 21ec6ded..74d8b707 100644 --- a/configs/platforms/redhatfips-9-x86_64.rb +++ b/configs/platforms/redhatfips-9-x86_64.rb @@ -1,3 +1,3 @@ -platform "redhatfips-9-x86_64" do |plat| +platform 'redhatfips-9-x86_64' do |plat| plat.inherit_from_default end diff --git a/configs/platforms/sles-12-x86_64.rb b/configs/platforms/sles-12-x86_64.rb index be47f0eb..cc85dd48 100644 --- a/configs/platforms/sles-12-x86_64.rb +++ b/configs/platforms/sles-12-x86_64.rb @@ -1,6 +1,6 @@ -platform "sles-12-x86_64" do |plat| +platform 'sles-12-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-devel pkgconfig pl-cmake @@ -8,6 +8,6 @@ readline-devel zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("zypper -n --no-gpg-checks install -y #{packages.join(' ')}") end diff --git a/configs/platforms/sles-15-x86_64.rb b/configs/platforms/sles-15-x86_64.rb index d81c1568..c3f78b32 100644 --- a/configs/platforms/sles-15-x86_64.rb +++ b/configs/platforms/sles-15-x86_64.rb @@ -1,12 +1,12 @@ -platform "sles-15-x86_64" do |plat| +platform 'sles-15-x86_64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-devel pkg-config readline-devel zlib-devel systemtap-sdt-devel - ) + ] plat.provision_with("zypper -n --no-gpg-checks install -y #{packages.join(' ')}") end diff --git a/configs/platforms/solaris-11-i386.rb b/configs/platforms/solaris-11-i386.rb index 1ac5501b..5e9cb4b5 100644 --- a/configs/platforms/solaris-11-i386.rb +++ b/configs/platforms/solaris-11-i386.rb @@ -1,13 +1,13 @@ -platform "solaris-11-i386" do |plat| +platform 'solaris-11-i386' do |plat| plat.inherit_from_default - plat.make "gmake" + plat.make 'gmake' - packages = %w( + packages = %w[ pl-binutils-i386 pl-cmake pl-gcc-i386 pl-pkg-config - ) + ] plat.provision_with("pkg install #{packages.join(' ')}") @@ -43,5 +43,5 @@ pkgadd -n -a /var/tmp/vanagon-noask -d http://get.opencsw.org/now all /opt/csw/bin/pkgutil --config=/var/tmp/vanagon-pkgutil.conf -y -i libffi_dev autoconf gcc4core CSWxz-5.2.8,REV=2022.11.16 || exit 1; ntpdate pool.ntp.org] - plat.output_dir File.join("solaris", "11", "PC1") + plat.output_dir File.join('solaris', '11', 'PC1') end diff --git a/configs/platforms/solaris-11-native-sparc.rb b/configs/platforms/solaris-11-native-sparc.rb index 3dcf0b19..8296497a 100644 --- a/configs/platforms/solaris-11-native-sparc.rb +++ b/configs/platforms/solaris-11-native-sparc.rb @@ -1,27 +1,27 @@ # This platform definition is used to build natively on SPARC, unlike # solaris-10/11-sparc, which are cross compiled. Therefore, this definition does # not inherit from vanagon defaults. -platform("solaris-11-sparc", override_name: true) do |plat| - plat.servicedir "/lib/svc/manifest" - plat.defaultdir "/lib/svc/method" - plat.servicetype "smf" +platform('solaris-11-sparc', override_name: true) do |plat| + plat.servicedir '/lib/svc/manifest' + plat.defaultdir '/lib/svc/method' + plat.servicetype 'smf' - plat.vmpooler_template "solaris-11-sparc" - plat.add_build_repository "http://solaris-11-reposync.delivery.puppetlabs.net:81", "puppetlabs.com" - plat.install_build_dependencies_with "pkg install ", " || [[ $? -eq 4 ]]" + plat.vmpooler_template 'solaris-11-sparc' + plat.add_build_repository 'http://solaris-11-reposync.delivery.puppetlabs.net:81', 'puppetlabs.com' + plat.install_build_dependencies_with 'pkg install ', ' || [[ $? -eq 4 ]]' packages = [ - "pl-gcc10", - "pl-libffi", - "pl-openssl", - "pl-yaml-cpp-sparc", + 'pl-gcc10', + 'pl-libffi', + 'pl-openssl', + 'pl-yaml-cpp-sparc', - "autoconf", - "automake", - "cmake", - "gnu-make", - "libtool", - "pkg-config" + 'autoconf', + 'automake', + 'cmake', + 'gnu-make', + 'libtool', + 'pkg-config' ] plat.provision_with("pkg install #{packages.join(' ')}") diff --git a/configs/platforms/solaris-11-sparc.rb b/configs/platforms/solaris-11-sparc.rb index 7c6da323..d1d2e71d 100644 --- a/configs/platforms/solaris-11-sparc.rb +++ b/configs/platforms/solaris-11-sparc.rb @@ -1,12 +1,12 @@ -platform "solaris-11-sparc" do |plat| +platform 'solaris-11-sparc' do |plat| plat.inherit_from_default - + packages = [ - "pl-binutils-sparc", - "pl-cmake", - "pl-gcc-sparc", - "pl-pkg-config", - "pl-ruby" + 'pl-binutils-sparc', + 'pl-cmake', + 'pl-gcc-sparc', + 'pl-pkg-config', + 'pl-ruby' ] plat.provision_with("pkg install #{packages.join(' ')}") diff --git a/configs/platforms/ubuntu-22.04-aarch64.rb b/configs/platforms/ubuntu-22.04-aarch64.rb index f06d8cd8..c09de279 100644 --- a/configs/platforms/ubuntu-22.04-aarch64.rb +++ b/configs/platforms/ubuntu-22.04-aarch64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-22.04-aarch64" do |plat| +platform 'ubuntu-22.04-aarch64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/ubuntu-22.04-amd64.rb b/configs/platforms/ubuntu-22.04-amd64.rb index 9ebc1a08..cf812e74 100644 --- a/configs/platforms/ubuntu-22.04-amd64.rb +++ b/configs/platforms/ubuntu-22.04-amd64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-22.04-amd64" do |plat| +platform 'ubuntu-22.04-amd64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/ubuntu-24.04-aarch64.rb b/configs/platforms/ubuntu-24.04-aarch64.rb index 61e26017..74d06026 100644 --- a/configs/platforms/ubuntu-24.04-aarch64.rb +++ b/configs/platforms/ubuntu-24.04-aarch64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-24.04-aarch64" do |plat| +platform 'ubuntu-24.04-aarch64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/ubuntu-24.04-amd64.rb b/configs/platforms/ubuntu-24.04-amd64.rb index 162cef93..c8a0ddd8 100644 --- a/configs/platforms/ubuntu-24.04-amd64.rb +++ b/configs/platforms/ubuntu-24.04-amd64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-24.04-amd64" do |plat| +platform 'ubuntu-24.04-amd64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/ubuntu-25.04-aarch64.rb b/configs/platforms/ubuntu-25.04-aarch64.rb index 1c16e83b..e44d1635 100644 --- a/configs/platforms/ubuntu-25.04-aarch64.rb +++ b/configs/platforms/ubuntu-25.04-aarch64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-25.04-aarch64" do |plat| +platform 'ubuntu-25.04-aarch64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/ubuntu-25.04-amd64.rb b/configs/platforms/ubuntu-25.04-amd64.rb index c081fc56..ab041ffa 100644 --- a/configs/platforms/ubuntu-25.04-amd64.rb +++ b/configs/platforms/ubuntu-25.04-amd64.rb @@ -1,7 +1,7 @@ -platform "ubuntu-25.04-amd64" do |plat| +platform 'ubuntu-25.04-amd64' do |plat| plat.inherit_from_default - packages = %w( + packages = %w[ libbz2-dev libreadline-dev libselinux1-dev @@ -9,6 +9,6 @@ swig systemtap-sdt-dev zlib1g-dev - ) + ] plat.provision_with "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq && apt-get install -qy --no-install-recommends #{packages.join(' ')}" end diff --git a/configs/platforms/windows-all-x64.rb b/configs/platforms/windows-all-x64.rb index e6e9d664..fb54c1b7 100644 --- a/configs/platforms/windows-all-x64.rb +++ b/configs/platforms/windows-all-x64.rb @@ -1,12 +1,12 @@ -platform "windows-all-x64" do |plat| - plat.vmpooler_template "win-2019-x86_64" - +platform 'windows-all-x64' do |plat| + plat.vmpooler_template 'win-2019-x86_64' + # Not currently used - plat.docker_image "windows:ltsc2019" - plat.docker_registry "mcr.microsoft.com" - plat.docker_arch "linux/amd64" + plat.docker_image 'windows:ltsc2019' + plat.docker_registry 'mcr.microsoft.com' + plat.docker_arch 'linux/amd64' - plat.servicetype "windows" + plat.servicetype 'windows' # Install ruby, ruby-devel, gcc-core, make, git, and libyaml-devel in Cygwin on the Windows image. # Run setup.bat found in the root of this repo. These are needed in order to successfully @@ -28,23 +28,23 @@ 'mingw64-x86_64-zlib', 'ruby', 'ruby-devel', - 'patch', + 'patch' ] plat.provision_with("C:/setup-x86_64.exe -q -P #{packages.join(',')}") - plat.install_build_dependencies_with "C:/setup-x86_64.exe -q -P" + plat.install_build_dependencies_with 'C:/setup-x86_64.exe -q -P' - plat.make "/usr/bin/make" - plat.patch "TMP=/var/tmp /usr/bin/patch.exe --binary" + plat.make '/usr/bin/make' + plat.patch 'TMP=/var/tmp /usr/bin/patch.exe --binary' - plat.platform_triple "x86_64-w64-mingw32" + plat.platform_triple 'x86_64-w64-mingw32' # Putting these here as a reminder where we use them elsewhere. DO NOT # use the full path, just the name of the executable without the extension. # Otherwise, autoconf gets confused. - plat.environment 'CC', "x86_64-w64-mingw32-gcc" - plat.environment 'CXX', "x86_64-w64-mingw32-g++" + plat.environment 'CC', 'x86_64-w64-mingw32-gcc' + plat.environment 'CXX', 'x86_64-w64-mingw32-g++' - plat.package_type "archive" - plat.output_dir "windows" + plat.package_type 'archive' + plat.output_dir 'windows' end diff --git a/configs/platforms/windowsfips-2016-x64.rb b/configs/platforms/windowsfips-2016-x64.rb index 4d32b41e..6338ce7c 100644 --- a/configs/platforms/windowsfips-2016-x64.rb +++ b/configs/platforms/windowsfips-2016-x64.rb @@ -1,4 +1,4 @@ -platform "windowsfips-2016-x64" do |plat| +platform 'windowsfips-2016-x64' do |plat| plat.vmpooler_template 'win-2016-fips-x86_64' plat.servicetype 'windows' @@ -6,26 +6,26 @@ visual_studio_sdk_version = 'win8.1' # We need to ensure we install chocolatey prior to adding any nuget repos. Otherwise, everything will fall over - plat.add_build_repository "https://artifactory.delivery.puppetlabs.net/artifactory/generic/buildsources/windows/chocolatey/install-chocolatey-1.4.0.ps1" - plat.provision_with "C:/ProgramData/chocolatey/bin/choco.exe feature enable -n useFipsCompliantChecksums" + plat.add_build_repository 'https://artifactory.delivery.puppetlabs.net/artifactory/generic/buildsources/windows/chocolatey/install-chocolatey-1.4.0.ps1' + plat.provision_with 'C:/ProgramData/chocolatey/bin/choco.exe feature enable -n useFipsCompliantChecksums' - plat.add_build_repository "https://artifactory.delivery.puppetlabs.net/artifactory/api/nuget/nuget" + plat.add_build_repository 'https://artifactory.delivery.puppetlabs.net/artifactory/api/nuget/nuget' # C:\tools is likely added by mingw, however because we also want to use that # dir for vsdevcmd.bat we create it for safety - plat.provision_with "mkdir -p C:/tools" + plat.provision_with 'mkdir -p C:/tools' # We don't want to install any packages from the chocolatey repo by accident - plat.provision_with "C:/ProgramData/chocolatey/bin/choco.exe sources remove -name chocolatey" + plat.provision_with 'C:/ProgramData/chocolatey/bin/choco.exe sources remove -name chocolatey' packages = [ - "cmake", - "pl-gdbm-#{self._platform.architecture}", - "pl-iconv-#{self._platform.architecture}", - "pl-libffi-#{self._platform.architecture}", - "pl-pdcurses-#{self._platform.architecture}", - "pl-toolchain-#{self._platform.architecture}", - "pl-zlib-#{self._platform.architecture}", - "mingw-w64 -version 5.2.0 -debug", + 'cmake', + "pl-gdbm-#{_platform.architecture}", + "pl-iconv-#{_platform.architecture}", + "pl-libffi-#{_platform.architecture}", + "pl-pdcurses-#{_platform.architecture}", + "pl-toolchain-#{_platform.architecture}", + "pl-zlib-#{_platform.architecture}", + 'mingw-w64 -version 5.2.0 -debug' ] packages.each do |name| @@ -42,13 +42,13 @@ # Note that the unruly \'s in the following string escape the following sequence to literal chars: "\" and then \"" plat.provision_with "touch C:/tools/vsdevcmd.bat && echo \"\\\"%ProgramFiles(x86)%\\Microsoft Visual Studio\\#{visual_studio_version}\\BuildTools\\Common7\\Tools\\vsdevcmd\\\"\" >> C:/tools/vsdevcmd.bat" - plat.install_build_dependencies_with "C:/ProgramData/chocolatey/bin/choco.exe install -y --no-progress" + plat.install_build_dependencies_with 'C:/ProgramData/chocolatey/bin/choco.exe install -y --no-progress' - plat.make "/usr/bin/make" - plat.patch "TMP=/var/tmp /usr/bin/patch.exe --binary" + plat.make '/usr/bin/make' + plat.patch 'TMP=/var/tmp /usr/bin/patch.exe --binary' - plat.platform_triple "x86_64-w64-mingw32" + plat.platform_triple 'x86_64-w64-mingw32' - plat.package_type "archive" - plat.output_dir "windows" + plat.package_type 'archive' + plat.output_dir 'windows' end diff --git a/configs/projects/_shared-agent-settings.rb b/configs/projects/_shared-agent-settings.rb index 9575ade2..96e4cc47 100644 --- a/configs/projects/_shared-agent-settings.rb +++ b/configs/projects/_shared-agent-settings.rb @@ -26,76 +26,74 @@ proj.homepage 'https://github.com/OpenVoxProject' proj.version_from_git -proj.setting(:artifactory_url, "https://artifactory.delivery.puppetlabs.net/artifactory") +proj.setting(:artifactory_url, 'https://artifactory.delivery.puppetlabs.net/artifactory') proj.setting(:buildsources_url, "#{proj.artifactory_url}/generic/buildsources") if platform.is_windows? # In order not to break people, we need to keep the paths Puppetlabs/Puppet - proj.setting(:company_id, "VoxPupuli") - proj.setting(:pl_company_id, "PuppetLabs") - proj.setting(:product_id, "OpenVox") - proj.setting(:pl_product_id, "Puppet") - if platform.architecture == "x64" - proj.setting(:base_dir, "ProgramFiles64Folder") + proj.setting(:company_id, 'VoxPupuli') + proj.setting(:pl_company_id, 'PuppetLabs') + proj.setting(:product_id, 'OpenVox') + proj.setting(:pl_product_id, 'Puppet') + 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(:install_root, File.join("C:", proj.base_dir, proj.pl_company_id, proj.pl_product_id)) - proj.setting(:sysconfdir, File.join("C:", "CommonAppDataFolder", proj.pl_company_id)) - proj.setting(:tmpfilesdir, "C:/Windows/Temp") + proj.setting(:install_root, File.join('C:', proj.base_dir, proj.pl_company_id, proj.pl_product_id)) + proj.setting(:sysconfdir, File.join('C:', 'CommonAppDataFolder', proj.pl_company_id)) + proj.setting(:tmpfilesdir, 'C:/Windows/Temp') else - proj.setting(:install_root, "/opt/puppetlabs") + proj.setting(:install_root, '/opt/puppetlabs') if platform.is_macos? - proj.setting(:sysconfdir, "/private/etc/puppetlabs") + proj.setting(:sysconfdir, '/private/etc/puppetlabs') else - proj.setting(:sysconfdir, "/etc/puppetlabs") + proj.setting(:sysconfdir, '/etc/puppetlabs') end - proj.setting(:logdir, "/var/log/puppetlabs") + proj.setting(:logdir, '/var/log/puppetlabs') if platform.is_linux? && platform.name !~ /sles-11|el-6/ - proj.setting(:piddir, "/run/puppetlabs") + proj.setting(:piddir, '/run/puppetlabs') else - proj.setting(:piddir, "/var/run/puppetlabs") + proj.setting(:piddir, '/var/run/puppetlabs') end - proj.setting(:tmpfilesdir, "/usr/lib/tmpfiles.d") + proj.setting(:tmpfilesdir, '/usr/lib/tmpfiles.d') end -proj.setting(:miscdir, File.join(proj.install_root, "misc")) -proj.setting(:prefix, File.join(proj.install_root, "puppet")) -proj.setting(:bindir, File.join(proj.prefix, "bin")) -proj.setting(:libdir, File.join(proj.prefix, "lib")) -proj.setting(:link_bindir, File.join(proj.install_root, "bin")) -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(:miscdir, File.join(proj.install_root, 'misc')) +proj.setting(:prefix, File.join(proj.install_root, 'puppet')) +proj.setting(:bindir, File.join(proj.prefix, 'bin')) +proj.setting(:libdir, File.join(proj.prefix, 'lib')) +proj.setting(:link_bindir, File.join(proj.install_root, 'bin')) +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(:windows_tools, proj.bindir) -end +proj.setting(:windows_tools, proj.bindir) if platform.is_windows? proj.setting(:ruby_dir, proj.prefix) proj.setting(:ruby_bindir, proj.bindir) raise "Couldn't find a :ruby_version setting in the project file" unless proj.ruby_version + 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(:ruby_vendordir, File.join(proj.libdir, "ruby", "vendor_ruby")) +proj.setting(:ruby_vendordir, File.join(proj.libdir, 'ruby', 'vendor_ruby')) -proj.setting(:ruby_dir_base, File.join(proj.libdir, "ruby")) +proj.setting(:ruby_dir_base, File.join(proj.libdir, 'ruby')) proj.setting(:ruby_dir_base_version, File.join(proj.ruby_dir_base, ruby_base_version)) proj.setting(:rubygems_dir, File.join(proj.ruby_dir_base_version, 'rubygems')) proj.setting(:rubygems_ssl_dir, File.join(proj.rubygems_dir, 'ssl_certs')) # Cross-compiled Linux platforms -platform_triple = "ppc64le-redhat-linux" if platform.architecture == "ppc64le" -platform_triple = "powerpc64le-suse-linux" if platform.architecture == "ppc64le" && platform.name =~ /^sles-/ -platform_triple = "powerpc64le-linux-gnu" if platform.architecture == "ppc64el" -platform_triple = "arm-linux-gnueabihf" if platform.architecture == "armhf" -platform_triple = "aarch64-apple-darwin" if platform.is_cross_compiled? && platform.is_macos? +platform_triple = 'ppc64le-redhat-linux' if platform.architecture == 'ppc64le' +platform_triple = 'powerpc64le-suse-linux' if platform.architecture == 'ppc64le' && platform.name =~ /^sles-/ +platform_triple = 'powerpc64le-linux-gnu' if platform.architecture == 'ppc64el' +platform_triple = 'arm-linux-gnueabihf' if platform.architecture == 'armhf' +platform_triple = 'aarch64-apple-darwin' if platform.is_cross_compiled? && platform.is_macos? # Ruby's build process needs a functional "baseruby". When native compiling, # ruby will build "miniruby" and use that as "baseruby". When cross compiling, @@ -103,28 +101,28 @@ # # Our build process also needs a "host" ruby to install rubygem-* components. 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')) elsif platform.is_cross_compiled? && (platform.is_linux? || platform.is_solaris?) if platform.name =~ /solaris-10-sparc/ - proj.setting(:host_ruby, "/opt/csw/bin/ruby") - proj.setting(:host_gem, "/opt/csw/bin/gem2.0") + proj.setting(:host_ruby, '/opt/csw/bin/ruby') + proj.setting(:host_gem, '/opt/csw/bin/gem2.0') else - proj.setting(:host_ruby, "/opt/pl-build-tools/bin/ruby") - proj.setting(:host_gem, "/opt/pl-build-tools/bin/gem") + proj.setting(:host_ruby, '/opt/pl-build-tools/bin/ruby') + proj.setting(:host_gem, '/opt/pl-build-tools/bin/gem') end elsif platform.is_cross_compiled? && platform.is_macos? proj.setting(:host_ruby, "/usr/local/opt/ruby@#{ruby_version_y}/bin/ruby") proj.setting(:host_gem, "/usr/local/opt/ruby@#{ruby_version_y}/bin/gem") 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 if platform.is_cross_compiled_linux? host = "--host #{platform_triple}" elsif platform.is_cross_compiled? && platform.is_macos? - host = "--host aarch64-apple-darwin --build x86_64-apple-darwin --target aarch64-apple-darwin" + host = '--host aarch64-apple-darwin --build x86_64-apple-darwin --target aarch64-apple-darwin' elsif platform.is_solaris? if platform.architecture == 'i386' platform_triple = "#{platform.architecture}-pc-solaris2.#{platform.os_version}" @@ -142,9 +140,7 @@ proj.setting(:gem_uninstall, "#{proj.host_gem} uninstall --all --ignore-dependencies ") # For AIX, we use the triple to install a better rbconfig -if platform.is_aix? - platform_triple = "powerpc-ibm-aix#{platform.os_version}.0.0" -end +platform_triple = "powerpc-ibm-aix#{platform.os_version}.0.0" if platform.is_aix? proj.setting(:platform_triple, platform_triple) proj.setting(:host, host) @@ -155,22 +151,20 @@ proj.setting(:openssl_version, '3.0') if platform.is_windows? - proj.setting(:gcc_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") + proj.setting(:gcc_root, '/usr/x86_64-w64-mingw32/sys-root/mingw') proj.setting(:gcc_bindir, "#{proj.gcc_root}/bin") - proj.setting(:tools_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") + 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(:cflags, proj.cppflags) ldflags = "-L#{proj.tools_root}/lib -L#{proj.gcc_root}/lib -L#{proj.libdir} -Wl,--nxcompat" - if platform.name !~ /windowsfips-/ || name != 'agent-runtime-7.x' - ldflags += ' -Wl,--dynamicbase' - end + ldflags += ' -Wl,--dynamicbase' if platform.name !~ /windowsfips-/ || name != 'agent-runtime-7.x' proj.setting(:ldflags, ldflags) - proj.setting(:cygwin, "nodosfilewarning winsymlinks:native") + proj.setting(:cygwin, 'nodosfilewarning winsymlinks:native') else - proj.setting(:tools_root, "/opt/pl-build-tools") + proj.setting(:tools_root, '/opt/pl-build-tools') end if platform.is_macos? @@ -190,7 +184,6 @@ proj.setting(:ldflags, "-L#{proj.libdir}") end - proj.setting(:ldflags, "-Wl,-brtl -L#{proj.libdir}") if platform.is_aix? if platform.is_solaris? @@ -203,15 +196,17 @@ # Most branches of puppet-agent use these openssl flags in addition to the defaults in configs/components/openssl.rb - # Individual projects can override these if necessary. -proj.setting(:openssl_extra_configure_flags, [ - 'no-dtls', - 'no-dtls1', - 'no-idea', - 'no-seed', - # 'no-ssl2-method', - 'no-weak-ssl-ciphers', - '-DOPENSSL_NO_HEARTBEATS', -]) unless proj.settings[:openssl_extra_configure_flags] +unless proj.settings[:openssl_extra_configure_flags] + proj.setting(:openssl_extra_configure_flags, [ + 'no-dtls', + 'no-dtls1', + 'no-idea', + 'no-seed', + # 'no-ssl2-method', + 'no-weak-ssl-ciphers', + '-DOPENSSL_NO_HEARTBEATS' + ]) +end # Commmon platform-specific settings for all agent branches: platform = proj.get_platform diff --git a/configs/projects/_shared-compiler-settings.rb b/configs/projects/_shared-compiler-settings.rb index 260f928e..b8f93bf0 100644 --- a/configs/projects/_shared-compiler-settings.rb +++ b/configs/projects/_shared-compiler-settings.rb @@ -1,7 +1,7 @@ # 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(:cflags, proj.cppflags) proj.setting(:ldflags, "-L#{proj.libdir} -L/opt/pl-build-tools/lib -Wl,-rpath=#{proj.libdir}") # Platform specific overrides or settings, which may override the defaults @@ -11,12 +11,11 @@ # We only do this on platforms that use their default OS toolchain since pl-gcc versions # are too old to support these flags. -if((platform.is_sles? && platform.os_version.to_i >= 15) || - (platform.is_el? && platform.os_version.to_i == 8 && platform.architecture !~ /ppc64/) || - (platform.is_debian? && platform.os_version.to_i >= 10) || - (platform.is_ubuntu? && platform.os_version.to_i >= 22) || - platform.is_fedora? - ) +if (platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i == 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 22) || + platform.is_fedora? proj.setting(:supports_pie, true) proj.setting(:cppflags, "-I#{proj.includedir} -D_FORTIFY_SOURCE=2") proj.setting(:cflags, '-fstack-protector-strong -fno-plt -O2') diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 42e18698..0e2c11c0 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -1,5 +1,4 @@ project 'agent-runtime-main' do |proj| - # Set preferred component versions if they differ from defaults: proj.setting :ruby_version, '3.2' # Leave the .Z out for Ruby 3.2 proj.setting :rubygem_highline_version, '3.0.1' @@ -22,15 +21,13 @@ ######## # Directory for gems shared by puppet and puppetserver - proj.setting(:puppet_gem_vendor_dir, File.join(proj.libdir, "ruby", "vendor_gems")) + proj.setting(:puppet_gem_vendor_dir, File.join(proj.libdir, 'ruby', 'vendor_gems')) # Ruby 2.7 loads openssl on installation. Because pl-ruby was not # built with openssl support, we switch to compile with system # rubies. # Solaris 11 seems to work with pl-ruby, and 10 is handled in _shared-agent-settings.rb. - if platform.is_cross_compiled_linux? - proj.setting(:host_ruby, "/usr/bin/ruby") - end + proj.setting(:host_ruby, '/usr/bin/ruby') if platform.is_cross_compiled_linux? # Ruby 2.6 (RubyGems 3.0.1) removed the --ri and --rdoc # options. Switch to using --no-document which is available starting @@ -44,6 +41,7 @@ # automation can insert components as needed. ######## + # rubocop:disable Style/IfUnlessModifier proj.component 'runtime-agent' proj.component 'libffi' proj.component 'libyaml' @@ -114,7 +112,8 @@ end if platform.is_linux? - proj.component "virt-what" - proj.component "dmidecode" unless platform.architecture =~ /ppc64/ + proj.component 'virt-what' + proj.component 'dmidecode' unless platform.architecture =~ /ppc64/ end + # rubocop:enable Style/IfUnlessModifier end diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index a1c1491d..b1517040 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -57,8 +57,6 @@ 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}") @@ -74,13 +72,12 @@ # Platform specific overrides or settings, which may override the defaults if platform.is_windows? - arch = platform.architecture == 'x64' ? '64' : '32' - proj.setting(:gcc_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") + proj.setting(:gcc_root, '/usr/x86_64-w64-mingw32/sys-root/mingw') proj.setting(:gcc_bindir, "#{proj.gcc_root}/bin") - proj.setting(:tools_root, "/usr/x86_64-w64-mingw32/sys-root/mingw") + 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(:cflags, proj.cppflags) proj.setting(:ldflags, "-L#{proj.gcc_root}/lib -L#{proj.libdir} -Wl,--nxcompat -Wl,--dynamicbase") proj.setting(:cygwin, 'nodosfilewarning winsymlinks:native') end @@ -97,16 +94,21 @@ # These flags are applied in addition to the defaults in configs/component/openssl.rb. proj.setting(:openssl_extra_configure_flags, [ - 'no-dtls', - 'no-dtls1', - 'no-idea', - 'no-seed', - 'no-weak-ssl-ciphers', - '-DOPENSSL_NO_HEARTBEATS', - ]) + 'no-dtls', + 'no-dtls1', + 'no-idea', + 'no-seed', + 'no-weak-ssl-ciphers', + '-DOPENSSL_NO_HEARTBEATS' + ]) - # What to build? - # -------------- + ######## + # Components + # Use full blocks here, rather than single line logic so that + # automation can insert components as needed. + ######## + + # rubocop:disable Style/IfUnlessModifier # Required to build ruby >=3.0.0 proj.component 'libffi' @@ -241,6 +243,8 @@ proj.component 'ruby-shadow' end + # rubocop:enable Style/IfUnlessModifier + # What to include in package? proj.directory proj.prefix proj.directory proj.bindir if platform.is_windows? || platform.is_macos? diff --git a/generate.rb b/generate.rb old mode 100644 new mode 100755 index d609a94d..dff91890 --- a/generate.rb +++ b/generate.rb @@ -23,18 +23,16 @@ bundle = Bundler::LockfileParser.new(Bundler.read_file(lockfile)) gem_name_to_version = bundle.specs.each_with_object({}) { |gem_object, acc| acc[gem_object.name] = gem_object.version } -# Print a warning if the version defined in the component defintion is +# Print a warning if the version defined in the component defintion is # Older than the version in the Gemfile.lock def check_update(component_def, spec, gem_name_to_version) component_def.each_line do |line| - # TODO: Some of the component files handle multiple versions with a case statement (for example net-ssh). - # Add more logic to compare each of those versions. For now there are only a hand full. - if line =~ /pkg.version/ - ver = Gem::Version.new(line.scan(/\d\.*/).join('')) - if gem_name_to_version[spec.name] > ver - warn "Update needed for: #{spec.name} \nUpgrade from #{ver} to #{gem_name_to_version[spec.name]}\n\n" - end - end + # TODO: Some of the component files handle multiple versions with a case statement (for example net-ssh). + # Add more logic to compare each of those versions. For now there are only a hand full. + next unless line =~ /pkg.version/ + + ver = Gem::Version.new(line.scan(/\d\.*/).join('')) + warn "Update needed for: #{spec.name} \nUpgrade from #{ver} to #{gem_name_to_version[spec.name]}\n\n" if gem_name_to_version[spec.name] > ver end end @@ -43,11 +41,10 @@ def check_update(component_def, spec, gem_name_to_version) bundle.specs.each do |s| filename = "configs/components/rubygem-#{s.name}.rb" next unless File.exist?(filename) + # Check if an update is needed by comparing version in component defintion to version in lockfile check_update(File.read(filename), s, gem_name_to_version) # Warn if the gem is not mirrored in artifactory resp = http.head("/artifactory/generic__buildsources/buildsources/#{s.name}-#{s.version}.gem") - unless resp.is_a?(Net::HTTPSuccess) - warn "Update Needed for #{s.name}:\n!mirrorsource https://rubygems.org/downloads/#{s.name}-#{s.version}.gem\n\n" - end + warn "Update Needed for #{s.name}:\n!mirrorsource https://rubygems.org/downloads/#{s.name}-#{s.version}.gem\n\n" unless resp.is_a?(Net::HTTPSuccess) end diff --git a/resources/files/ruby/patch-hostruby.rb b/resources/files/ruby/patch-hostruby.rb index 0e09dd68..9b7afd40 100644 --- a/resources/files/ruby/patch-hostruby.rb +++ b/resources/files/ruby/patch-hostruby.rb @@ -9,11 +9,11 @@ require 'tempfile' if ARGV.length < 2 - warn < + warn <<~USAGE + USAGE: patch-hostruby.rb -example: patch-hostruby.rb 3.2.2 arm64-darwin -USAGE + example: patch-hostruby.rb 3.2.2 arm64-darwin + USAGE exit(1) end @@ -32,7 +32,7 @@ def rewrite(file) # so rename doesn't cross filesystems tmpfile = Tempfile.new(File.basename(file), File.dirname(file)) begin - File.open("#{file}.orig", "w") do |orig| + File.open("#{file}.orig", 'w') do |orig| File.open(file, 'r').readlines.each do |line| orig.write(line) yield line @@ -55,13 +55,13 @@ def rewrite(file) # was, that way we can easily append to it. And since it's in a double quoted string, it's escaped # as `\\&` # -if GEM_VERSION <= Gem::Version.new('2.0.0') +if Gem::Version.new('2.0.0') >= GEM_VERSION # $ git show v2.0.0:lib/rubygems/ext/ext_conf_builder.rb # cmd = "#{Gem.ruby} #{File.basename extension}" regexp = /{Gem\.ruby}/ replace = "\\& -r/opt/puppetlabs/puppet/share/doc/rbconfig-#{target_ruby_version}-orig.rb" builder = 'rubygems/ext/ext_conf_builder.rb' -elsif GEM_VERSION < Gem::Version.new('3.0.0') # there weren't any tags between >= 2.7.11 and < 3.0.0 +elsif Gem::Version.new('3.0.0') > GEM_VERSION # there weren't any tags between >= 2.7.11 and < 3.0.0 # $ git show v2.0.1:lib/rubygems/ext/ext_conf_builder.rb # cmd = [Gem.ruby, File.basename(extension), *args].join ' ' # @@ -70,7 +70,7 @@ def rewrite(file) regexp = /Gem\.ruby/ replace = "\\&, '-r/opt/puppetlabs/puppet/share/doc/rbconfig-#{target_ruby_version}-orig.rb'" builder = 'rubygems/ext/ext_conf_builder.rb' -elsif GEM_VERSION <= Gem::Version.new('3.4.8') +elsif Gem::Version.new('3.4.8') >= GEM_VERSION # $ git show v3.0.0:lib/rubygems/ext/ext_conf_builder.rb # cmd = Gem.ruby.shellsplit << "-I" << File.expand_path("../../..", __FILE__) << # @@ -79,7 +79,7 @@ def rewrite(file) regexp = /Gem\.ruby\.shellsplit/ replace = "\\& << '-r/opt/puppetlabs/puppet/share/doc/rbconfig-#{target_ruby_version}-orig.rb'" builder = 'rubygems/ext/ext_conf_builder.rb' -elsif GEM_VERSION <= Gem::Version.new('3.4.14') +elsif Gem::Version.new('3.4.14') >= GEM_VERSION # NOTE: rubygems 3.4.9 moved the code to builder.rb # # $ git show v3.4.9:lib/rubygems/ext/builder.rb @@ -90,7 +90,7 @@ def rewrite(file) regexp = /Gem\.ruby\.shellsplit/ replace = "\\& << '-r/opt/puppetlabs/puppet/share/doc/rbconfig-#{target_ruby_version}-orig.rb'" builder = 'rubygems/ext/builder.rb' -elsif GEM_VERSION <= Gem::Version.new('3.5.16') +elsif Gem::Version.new('3.5.16') >= GEM_VERSION # $ git show v3.4.9:lib/rubygems/ext/builder.rb # cmd = Shellwords.split(Gem.ruby) # @@ -111,9 +111,7 @@ def rewrite(file) # hook rubygems builder so it loads our rbconfig when building native gems patched = false rewrite(builder) do |line| - if line.gsub!(regexp, replace) - patched = true - end + patched = true if line.gsub!(regexp, replace) end raise "Failed to patch rubygems hook, because we couldn't match #{regexp} in #{builder}" unless patched @@ -129,17 +127,15 @@ def rewrite(file) api_version_patched = false spec_file = "#{host_rubylibdir}/rubygems/basic_specification.rb" rewrite(spec_file) do |line| - if line.gsub!(/Gem::Platform\.local\.to_s/, "'#{target_triple}'") - triple_patched = true - end - if line.gsub!(/Gem\.extension_api_version/, "'#{target_api_version}'") - api_version_patched = true - end + triple_patched = true if line.gsub!(/Gem::Platform\.local\.to_s/, "'#{target_triple}'") + api_version_patched = true if line.gsub!(/Gem\.extension_api_version/, "'#{target_api_version}'") end raise "Failed to patch '#{target_triple}' in #{spec_file}" unless triple_patched + puts "Patched '#{target_triple}' in #{spec_file}" raise "Failed to patch '#{target_api_version}' in #{spec_file}" unless api_version_patched + puts "Patched '#{target_api_version}' in #{spec_file}" end diff --git a/resources/files/ruby/rbconfig-update.rb b/resources/files/ruby/rbconfig-update.rb index 7691a74b..7f58f45e 100644 --- a/resources/files/ruby/rbconfig-update.rb +++ b/resources/files/ruby/rbconfig-update.rb @@ -16,7 +16,7 @@ # The following replaces any configuration line in an rbconfig # that matches any of the key value pairs listed in the CHANGES # hash -def replace_line(changes, line, file) +def replace_line(changes, line, _file) changes.each do |change_key, change_value| if line.strip.start_with?("CONFIG[\"#{change_key}\"]") puts "Updating #{change_key} to CONFIG[\"#{change_key}\"] = \"#{change_value}\"" @@ -26,7 +26,6 @@ def replace_line(changes, line, file) line end - # the following creates two files: # new_rbconfig.rb that is a copy of the rbcofig read from ARGV1 # with replacements for anything provided in the hash passed in as ARGV0 @@ -34,9 +33,9 @@ def replace_line(changes, line, file) # and original_rbconfig.rb that is a copy of rbconfig with all exceptions changed # to warnings. begin - new_rbconfig = File.open("new_rbconfig.rb", "w") - copy_rbconfig = File.open("original_rbconfig.rb", "w") - File.open(File.join(ARGV[1], "rbconfig.rb"), "r").readlines.each do |line| + new_rbconfig = File.open('new_rbconfig.rb', 'w') + copy_rbconfig = File.open('original_rbconfig.rb', 'w') + File.open(File.join(ARGV[1], 'rbconfig.rb'), 'r').readlines.each do |line| new_rbconfig.puts replace_line(instance_eval(ARGV[0]), line, new_rbconfig) copy_rbconfig.puts line.gsub('raise', 'warn') end diff --git a/resources/files/ruby_vendor_gems/operating_system.rb b/resources/files/ruby_vendor_gems/operating_system.rb index b84eb786..799b5c2a 100644 --- a/resources/files/ruby_vendor_gems/operating_system.rb +++ b/resources/files/ruby_vendor_gems/operating_system.rb @@ -7,21 +7,21 @@ class << self remove_method :default_path if method_defined? :default_path def puppet_vendor_dir - path = if defined? RUBY_FRAMEWORK_VERSION then + path = if defined? RUBY_FRAMEWORK_VERSION [ - File.dirname(RbConfig::CONFIG['sitedir']), - 'VendorGems' + File.dirname(RbConfig::CONFIG['sitedir']), + 'VendorGems' ] - elsif RbConfig::CONFIG['rubylibprefix'] then + elsif RbConfig::CONFIG['rubylibprefix'] [ - RbConfig::CONFIG['rubylibprefix'], - 'vendor_gems', + RbConfig::CONFIG['rubylibprefix'], + 'vendor_gems' ] else [ - RbConfig::CONFIG['libdir'], - 'ruby', - 'vendor_gems', + RbConfig::CONFIG['libdir'], + 'ruby', + 'vendor_gems' ] end @@ -33,7 +33,7 @@ def default_path path << user_dir if user_home && File.exist?(user_home) path << default_dir path << puppet_vendor_dir - path << vendor_dir if vendor_dir and File.directory? vendor_dir + path << vendor_dir if vendor_dir && File.directory?(vendor_dir) path end end diff --git a/tasks/build.rake b/tasks/build.rake index 813db3ff..392c3805 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -10,7 +10,7 @@ namespace :vox do abort 'You must provide a platform.' if args[:platform].nil? || args[:platform].empty? platform = args[:platform] - os, _ver, arch = platform.match(/^(\w+)-([\w|\.]+)-(\w+)$/).captures + os, _ver, arch = platform.match(/^(\w+)-([\w|.]+)-(\w+)$/).captures if os == 'macos' shell = `uname -m`.chomp ruby = `ruby -v`.chomp diff --git a/tasks/update_gems.rake b/tasks/update_gems.rake index a16d268c..66f5a570 100644 --- a/tasks/update_gems.rake +++ b/tasks/update_gems.rake @@ -19,17 +19,17 @@ 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*$/ +GEM_TYPE = /^\s*#\s*GEM\s+TYPE:\s*(?[A-Za-z0-9\-_.]+)\s*$/ PROJ_COMPONENT = /^\s*proj\.component\s+(?['"]?)(?rubygem-[^'"\s]+)\k\s*$/ TARGET_RUBY_VER = ENV['TARGET_RUBY']&.strip || '3.2' MAX_TABLE_WIDTH = 140 -VERSIONS_CACHE = {} +@versions_cache = {} def git_relative_path(path) path = File.expand_path(path) prefix = REPO_ROOT + File::SEPARATOR - path.start_with?(prefix) ? path[prefix.length..-1] : path + path.start_with?(prefix) ? path[prefix.length..] : path end def git_commit_file(path, message) @@ -38,42 +38,44 @@ def git_commit_file(path, message) 'git', '-C', REPO_ROOT, 'status', '--porcelain', '--', rel ) unless status_ok - $stderr.puts "git status failed for #{rel}:\n#{status_err}\n#{status_out}" + warn "git status failed for #{rel}:\n#{status_err}\n#{status_out}" return false end return true if status_out.strip.empty? _, add_err, add_ok = Open3.capture3('git', '-C', REPO_ROOT, 'add', rel) unless add_ok - $stderr.puts "git add failed for #{rel}:\n#{add_err}" + warn "git add failed for #{rel}:\n#{add_err}" return false end _, commit_err, commit_ok = Open3.capture3('git', '-C', REPO_ROOT, 'commit', '-m', message) unless commit_ok - $stderr.puts "git commit failed for #{rel}:\n#{commit_err}" + warn "git commit failed for #{rel}:\n#{commit_err}" return false end true end -def color_status(s) +def color_status(status) require 'colorize' - case s - when 'UP TO DATE' then s.green - when 'UPDATED' then s.yellow - when 'ADDED' then s.cyan - when 'ERROR', 'UNKNOWN' then s.red - else s + case status + when 'UP TO DATE' then status.green + when 'UPDATED' then status.yellow + when 'ADDED' then status.cyan + when 'ERROR', 'UNKNOWN' then status.red + else status end end def print_table(headers, rows) require 'tty-table' - comp_w, status_w, version_w = 50, 12, 32 + comp_w = 50 + status_w = 12 + version_w = 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| + 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] @@ -90,6 +92,7 @@ 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 @@ -102,12 +105,13 @@ def http(url) 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")) + @versions_cache[name] ||= JSON.parse(http("https://rubygems.org/api/v1/versions/#{name}.json")) end def get_version_details(name, version) @@ -126,6 +130,7 @@ def find_sha(name, version, platform) metadata = get_versions(name).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 @@ -138,9 +143,11 @@ def get_metadata(name:, version: nil, platforms: ['ruby']) candidates = all.select do |v| next false if v['prerelease'] || 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 @@ -149,7 +156,7 @@ def get_metadata(name:, version: nil, platforms: ['ruby']) platforms.each { |platform| shas[platform] = find_sha(name, new_version, platform) } details = get_version_details(name, new_version) - deps = (details.dig('dependencies', 'runtime') || []) + deps = details.dig('dependencies', 'runtime') || [] { 'version' => new_version, 'shas' => shas, 'dependencies' => deps } end @@ -158,7 +165,9 @@ def process_component(path, gemname) lines = File.read(path, encoding: 'UTF-8').lines 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}" + end_rel = lines[(start + 1)..].to_a.index do |l| + l =~ MAINT_END + end or raise "Automated maintenance section not closed in #{path}" finish = start + 1 + end_rel body = lines[(start + 1)...finish] @@ -200,6 +209,7 @@ def process_component(path, gemname) 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 @@ -218,20 +228,20 @@ def process_component(path, gemname) File.write(path, lines.join, encoding: 'UTF-8') if block_changed - status = (version_changed || newly_added.any? || block_changed) ? 'UPDATED' : 'UP TO DATE' + status = version_changed || newly_added.any? || block_changed ? 'UPDATED' : 'UP TO DATE' ver_col = version_changed ? "#{current_version} -> #{target_version}" : '' - missing = new_deps.select { |name| !File.exist?(File.join(COMPONENT_DIR, "rubygem-#{name}.rb")) } + missing = new_deps.reject { |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, - gem_deps: new_deps, - path: path, - old_version: current_version, - new_version: target_version, + name: gemname, + status: status, + version: ver_col, + deps_added: newly_added.map { |n| "rubygem-#{n}" }, + missing: missing, + gem_deps: new_deps, + path: path, + old_version: current_version, + new_version: target_version, block_changed: block_changed } end @@ -245,11 +255,11 @@ def update_projects_for_added(gem, added) gem_index = nil gem_indent = ' ' lines.each_with_index do |l, i| - if (m = l.match(PROJ_COMPONENT)) && m[:component] == gem - gem_index = i - gem_indent = (l[/^\s*/] || ' ') - break - end + next unless (m = l.match(PROJ_COMPONENT)) && m[:component] == gem + + gem_index = i + gem_indent = l[/^\s*/] || ' ' + break end next unless gem_index @@ -267,7 +277,7 @@ def create_component_file(path, gemname, version, sha, deps = []) # Component release information: # https://rubygems.org/gems/#{gemname} ##### - component 'rubygem-#{gemname}' do |pkg, settings, platform| + component 'rubygem-#{gemname}' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '#{version}' pkg.sha256sum '#{sha}' @@ -318,6 +328,7 @@ def ensure_projects_have_component_deps(component_deps_map) deps.each do |dep| key = "#{component}->#{dep}" next if processed_pairs[key] + processed_pairs[key] = true changed_files = update_projects_for_added(component, dep) @@ -327,10 +338,10 @@ def ensure_projects_have_component_deps(component_deps_map) project_name = File.basename(proj_path, '.rb') git_commit_file(proj_path, "#{project_name}: Add #{dep} component") issues << { - project: project_name, + project: project_name, project_path: proj_path, - component: component, - missing_dep: dep + component: component, + missing_dep: dep } end end @@ -354,6 +365,7 @@ def update_all_components_and_projects results << r next unless r[:block_changed] + component = "rubygem-#{r[:name]}" msg = if r[:old_version] != r[:new_version] @@ -426,11 +438,11 @@ def output_json(results, added, project_issues) ruby_version_used_for_checks: TARGET_RUBY_VER, results: results.map { |r| { - name: r[:name], - status: r[:status], - version: r[:version], + name: r[:name], + status: r[:status], + version: r[:version], deps_added: r[:deps_added], - missing: r[:missing] + missing: r[:missing] } }, added: added.map { |info| @@ -438,9 +450,9 @@ def output_json(results, added, project_issues) }, project_dependency_fixes: project_issues.map { |i| { - project: i[:project], - project_path: git_relative_path(i[:project_path]), - component: i[:component], + project: i[:project], + project_path: git_relative_path(i[:project_path]), + component: i[:component], missing_dependency_added: i[:missing_dep] } } @@ -467,13 +479,13 @@ def output_table(results, added, project_issues) end print_table(headers, rows) - unless project_issues.empty? - puts - puts 'Project dependency fixes:' - project_issues.group_by { |i| i[:project] }.each do |project, list| - deps_list = list.map { |i| "#{i[:component]} -> #{i[:missing_dep]}" }.uniq - puts " #{project}: #{deps_list.join(', ')}" - end + return if project_issues.empty? + + puts + puts 'Project dependency fixes:' + project_issues.group_by { |i| i[:project] }.each do |project, list| + deps_list = list.map { |i| "#{i[:component]} -> #{i[:missing_dep]}" }.uniq + puts " #{project}: #{deps_list.join(', ')}" end end diff --git a/tasks/vox.rake b/tasks/vox.rake index 4478bfcb..7a8f6e06 100644 --- a/tasks/vox.rake +++ b/tasks/vox.rake @@ -1,10 +1,10 @@ class Version attr_reader :date, :x, :raw - def initialize(v) - @raw = v + def initialize(value) + @raw = value - if (m = v.match(%r{\A(?\d{4}[-|\.]\d{2}[-|\.]\d{2})[-|\.](?\d+)\z})) + if (m = value.match(%r{\A(?\d{4}[-|.]\d{2}[-|.]\d{2})[-|.](?\d+)\z})) @date = m['date'] @x = m['x'].to_i else @@ -68,22 +68,23 @@ task 'vox:version:next' do end begin - require "github_changelog_generator/task" + require 'github_changelog_generator/task' GitHubChangelogGenerator::RakeTask.new :changelog do |config| config.header = <<~HEADER.chomp - # Changelog - All notable changes to this project will be documented in this file. + # Changelog + All notable changes to this project will be documented in this file. HEADER - config.user = "openvoxproject" - config.project = "puppet-runtime" + config.user = 'openvoxproject' + config.project = 'puppet-runtime' config.exclude_labels = %w[dependencies duplicate question invalid wontfix wont-fix modulesync skip-changelog] - config.since_tag = "202501080" + config.since_tag = '202501080' config.future_release = Version.load_from_changelog.next!.to_s end rescue LoadError task :changelog do - abort("Run `bundle install --with release` to install the `github_changelog_generator` gem.") + abort('Run `bundle install --with release` to install the `github_changelog_generator` gem.') end end +desc 'Prepare the changelog for a new release' task 'release:prepare': :changelog From baea60dc1b99ab39c815145a10888b32b84733c1 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Wed, 19 Nov 2025 16:06:53 -0800 Subject: [PATCH 27/33] Remove libxslt Even though the openbolt runtime comment says it's needed for Augeas, it really isn't. It was only needed for Nokogiri. --- configs/components/libxslt.rb | 57 -------------------------- configs/projects/agent-runtime-main.rb | 1 - configs/projects/openbolt-runtime.rb | 1 - 3 files changed, 59 deletions(-) delete mode 100644 configs/components/libxslt.rb diff --git a/configs/components/libxslt.rb b/configs/components/libxslt.rb deleted file mode 100644 index 8ac0fe55..00000000 --- a/configs/components/libxslt.rb +++ /dev/null @@ -1,57 +0,0 @@ -##### -# Component release information: -# https://gitlab.gnome.org/GNOME/libxslt/-/releases -# https://github.com/GNOME/libxslt/tags -##### -component 'libxslt' do |pkg, settings, platform| - pkg.version '1.1.43' - pkg.sha256sum '5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a' - - libxslt_version_y = pkg.get_version.gsub(/(\d+)\.(\d+)(\.\d+)?/, '\1.\2') - pkg.url "https://download.gnome.org/sources/libxslt/#{libxslt_version_y}/libxslt-#{pkg.get_version}.tar.xz" - pkg.mirror "#{settings[:buildsources_url]}/libxslt-#{pkg.get_version}.tar.xz" - - pkg.build_requires 'libxml2' - - if platform.is_aix? - pkg.environment 'PATH', '/opt/freeware/bin:$(PATH)' - elsif platform.is_cross_compiled_linux? - pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}" - pkg.environment 'CFLAGS', settings[:cflags] - pkg.environment 'LDFLAGS', settings[:ldflags] - - # libxslt is picky about manually specifying the build host - build = '--build x86_64-linux-gnu' - # don't depend on libgcrypto - disable_crypto = '--without-crypto' - elsif platform.is_solaris? - pkg.environment 'PATH', - "/opt/pl-build-tools/bin:$(PATH):/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin:#{settings[:bindir]}" - pkg.environment 'CFLAGS', settings[:cflags] - pkg.environment 'LDFLAGS', settings[:ldflags] - elsif platform.is_macos? - pkg.environment 'LDFLAGS', settings[:ldflags] - pkg.environment 'CFLAGS', settings[:cflags] - pkg.environment 'CC', settings[:cc] - pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target] - else - pkg.environment 'LDFLAGS', settings[:ldflags] - pkg.environment 'CFLAGS', settings[:cflags] - end - - pkg.configure do - ["./configure --without-python --prefix=#{settings[:prefix]} --docdir=/tmp --with-libxml-prefix=#{settings[:prefix]} #{settings[:host]} #{disable_crypto} #{build}"] - end - - pkg.build do - ["#{platform[:make]} VERBOSE=1 -j$(shell expr $(shell #{platform[:num_cores]}) + 1)"] - end - - pkg.install do - [ - "#{platform[:make]} VERBOSE=1 -j$(shell expr $(shell #{platform[:num_cores]}) + 1) install", - "rm -rf #{settings[:datadir]}/gtk-doc", - "rm -rf #{settings[:datadir]}/doc/#{pkg.get_name}*" - ] - end -end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 0e2c11c0..c7515f1c 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -80,7 +80,6 @@ proj.component 'augeas' proj.component 'ruby-augeas' proj.component 'libxml2' - proj.component 'libxslt' proj.component 'rubygem-sys-filesystem' end diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index b1517040..af968066 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -237,7 +237,6 @@ proj.component 'readline' if platform.is_macos? proj.component 'augeas' proj.component 'libxml2' - proj.component 'libxslt' # Ruby Augeas and shadow proj.component 'ruby-augeas' proj.component 'ruby-shadow' From dbb5b546c6c39fdaaa3fee956079bbbfcf5abed7 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:47:24 -0800 Subject: [PATCH 28/33] Fix unintended pipe in regex in build task --- tasks/build.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/build.rake b/tasks/build.rake index 392c3805..793481c1 100644 --- a/tasks/build.rake +++ b/tasks/build.rake @@ -10,7 +10,7 @@ namespace :vox do abort 'You must provide a platform.' if args[:platform].nil? || args[:platform].empty? platform = args[:platform] - os, _ver, arch = platform.match(/^(\w+)-([\w|.]+)-(\w+)$/).captures + os, _ver, arch = platform.match(/^(\w+)-([\w.]+)-(\w+)$/).captures if os == 'macos' shell = `uname -m`.chomp ruby = `ruby -v`.chomp From f2f5f351165a7548c277f5bcd277a3ebe7884e99 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:20:06 -0800 Subject: [PATCH 29/33] rubygem-fiddle: Add new component --- configs/components/rubygem-fiddle.rb | 13 +++++++++++++ configs/projects/agent-runtime-main.rb | 1 + configs/projects/openbolt-runtime.rb | 1 + 3 files changed, 15 insertions(+) create mode 100644 configs/components/rubygem-fiddle.rb diff --git a/configs/components/rubygem-fiddle.rb b/configs/components/rubygem-fiddle.rb new file mode 100644 index 00000000..bbaf4fd4 --- /dev/null +++ b/configs/components/rubygem-fiddle.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/fiddle +# https://github.com/ruby/fiddle/releases +##### +component 'rubygem-fiddle' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.1.8' + pkg.sha256sum '7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index c7515f1c..a3606059 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -57,6 +57,7 @@ proj.component 'rubygem-erubi' proj.component 'rubygem-fast_gettext' proj.component 'rubygem-ffi' + proj.component 'rubygem-fiddle' proj.component 'rubygem-gettext' proj.component 'rubygem-hiera-eyaml' proj.component 'rubygem-highline' diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index af968066..9505ef90 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -180,6 +180,7 @@ proj.component 'rubygem-erubi' proj.component 'rubygem-openfact' proj.component 'rubygem-ffi' + proj.component 'rubygem-fiddle' proj.component 'rubygem-gssapi' proj.component 'rubygem-gyoku' proj.component 'rubygem-hiera' From f855137ff795d0e7181615b3aaf94ce109a23dd1 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:22:51 -0800 Subject: [PATCH 30/33] rubygem-net-ftp: Add new component --- configs/components/rubygem-net-ftp.rb | 13 +++++++++++++ configs/projects/agent-runtime-main.rb | 1 + configs/projects/openbolt-runtime.rb | 1 + 3 files changed, 15 insertions(+) create mode 100644 configs/components/rubygem-net-ftp.rb diff --git a/configs/components/rubygem-net-ftp.rb b/configs/components/rubygem-net-ftp.rb new file mode 100644 index 00000000..d376e8a2 --- /dev/null +++ b/configs/components/rubygem-net-ftp.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/net-ftp +# https://github.com/ruby/net-ftp/releases +##### +component 'rubygem-net-ftp' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.3.9' + pkg.sha256sum '307817ccf7f428f79d083f7e36dbb46a9d1d375e0d23027824de1866f0b13b65' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index a3606059..59dee535 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -65,6 +65,7 @@ proj.component 'rubygem-locale' proj.component 'rubygem-logger' proj.component 'rubygem-multi_json' + proj.component 'rubygem-net-ftp' proj.component 'rubygem-net-ssh' proj.component 'rubygem-optimist' proj.component 'rubygem-prime' diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index 9505ef90..ade3c0ec 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -195,6 +195,7 @@ proj.component 'rubygem-multi_json' proj.component 'rubygem-multipart-post' proj.component 'rubygem-net-http-persistent' + proj.component 'rubygem-net-ftp' proj.component 'rubygem-net-scp' proj.component 'rubygem-net-ssh' proj.component 'rubygem-net-ssh-krb' From d5c61adfab777cd807847b2e681b4f248fc2a949 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:26:27 -0800 Subject: [PATCH 31/33] rubygem-win32ole: Add new component --- configs/components/rubygem-win32ole.rb | 13 +++++++++++++ configs/projects/agent-runtime-main.rb | 1 + configs/projects/openbolt-runtime.rb | 4 ++++ 3 files changed, 18 insertions(+) create mode 100644 configs/components/rubygem-win32ole.rb diff --git a/configs/components/rubygem-win32ole.rb b/configs/components/rubygem-win32ole.rb new file mode 100644 index 00000000..a7be897d --- /dev/null +++ b/configs/components/rubygem-win32ole.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/win32ole +# https://github.com/ruby/win32ole/releases +##### +component 'rubygem-win32ole' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.9.2' + pkg.sha256sum '99612fe2c6cb397c0910680f7d1ba6366f08e37aeac83ebaeab9e72ee823e0f5' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 59dee535..6409088c 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -83,6 +83,7 @@ proj.component 'ruby-augeas' proj.component 'libxml2' proj.component 'rubygem-sys-filesystem' + proj.component 'rubygem-win32ole' end if platform.is_macos? diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index ade3c0ec..902da666 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -233,6 +233,10 @@ proj.component 'ruby-selinux' end + if platform.is_windows? + proj.component 'rubygem-win32ole' + end + # Non-windows specific components unless platform.is_windows? # C Augeas + deps From f07d3074fe46016c50ab0914558bc89488bd9bb2 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Tue, 25 Nov 2025 17:57:02 -0800 Subject: [PATCH 32/33] Refactor update_gems task This streamlines the logic and makes it a bit simpler and easier to follow. --- Gemfile | 2 - tasks/update_gems.rake | 568 +++++++++++++++++------------------------ 2 files changed, 237 insertions(+), 333 deletions(-) diff --git a/Gemfile b/Gemfile index 63fa6435..ec53d1a1 100644 --- a/Gemfile +++ b/Gemfile @@ -22,11 +22,9 @@ gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || 'https://github.com/open gem 'openssl' unless `uname -o`.chomp == 'Cygwin' group(:development, optional: true) do - gem 'colorize', require: false gem 'hashdiff', require: false gem 'highline', require: false gem 'parallel', require: false - gem 'tty-table', require: false end group(:release, optional: true) do diff --git a/tasks/update_gems.rake b/tasks/update_gems.rake index 66f5a570..891cac9d 100644 --- a/tasks/update_gems.rake +++ b/tasks/update_gems.rake @@ -23,87 +23,33 @@ GEM_TYPE = /^\s*#\s*GEM\s+TYPE:\s*(?[A-Za-z0-9\-_.]+)\s*$/ PROJ_COMPONENT = /^\s*proj\.component\s+(?['"]?)(?rubygem-[^'"\s]+)\k\s*$/ TARGET_RUBY_VER = ENV['TARGET_RUBY']&.strip || '3.2' -MAX_TABLE_WIDTH = 140 @versions_cache = {} -def git_relative_path(path) - path = File.expand_path(path) - prefix = REPO_ROOT + File::SEPARATOR - path.start_with?(prefix) ? path[prefix.length..] : path -end - -def git_commit_file(path, message) - rel = git_relative_path(path) - status_out, status_err, status_ok = Open3.capture3( - 'git', '-C', REPO_ROOT, 'status', '--porcelain', '--', rel - ) - unless status_ok - warn "git status failed for #{rel}:\n#{status_err}\n#{status_out}" - return false - end - return true if status_out.strip.empty? - - _, add_err, add_ok = Open3.capture3('git', '-C', REPO_ROOT, 'add', rel) - unless add_ok - warn "git add failed for #{rel}:\n#{add_err}" - return false - end - - _, commit_err, commit_ok = Open3.capture3('git', '-C', REPO_ROOT, 'commit', '-m', message) - unless commit_ok - warn "git commit failed for #{rel}:\n#{commit_err}" - return false - end - true -end - -def color_status(status) - require 'colorize' - case status - when 'UP TO DATE' then status.green - when 'UPDATED' then status.yellow - when 'ADDED' then status.cyan - when 'ERROR', 'UNKNOWN' then status.red - else status - end -end +@component_deps = {} # gem_name => [dep gem names] +@component_changes = [] # changed / created components +@project_component_additions = Hash.new { |h, k| h[k] = [] } # project => [component names added, e.g. "rubygem-foo"] -def print_table(headers, rows) - require 'tty-table' - comp_w = 50 - status_w = 12 - version_w = 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] - } +def component_path(gem_name) + File.join(COMPONENT_DIR, "rubygem-#{gem_name}.rb") 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)}") + clean = msg[0, 100].ljust(100) + io.print("\r#{clean}") io.flush end def progress_clear(io: $stderr) - return if @progress_max_width <= 0 - - io.print("\r#{' ' * @progress_max_width}\r") + io.print("\r#{' ' * 100}\r") io.flush - @progress_max_width = 0 end 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) + req = Net::HTTP::Get.new(uri) + req['User-Agent'] = 'openvox_update_gems/1.0' + res = h.request(req) raise "HTTP #{res.code} #{uri}" unless res.is_a?(Net::HTTPSuccess) res.body @@ -122,8 +68,9 @@ end def ruby_req_ok?(req_str) req = req_str.to_s.strip req = '>= 0' if req.empty? - Gem::Requirement.new(req.split(',').map!(&:strip)) - .satisfied_by?(Gem::Version.new(TARGET_RUBY_VER)) + Gem::Requirement + .new(req.split(',').map!(&:strip)) + .satisfied_by?(Gem::Version.new(TARGET_RUBY_VER)) end def find_sha(name, version, platform) @@ -135,71 +82,73 @@ def find_sha(name, version, platform) end def get_metadata(name:, version: nil, platforms: ['ruby']) - all = get_versions(name) - raise "No versions found for gem #{name}" if all.empty? - - new_version = version - unless new_version - candidates = all.select do |v| - next false if v['prerelease'] || v['yanked'] - next false unless v['platform'].nil? || v['platform'] == 'ruby' - - ruby_req_ok?(v['ruby_version']) + versions = get_versions(name) + raise "No versions found for gem #{name}" if versions.empty? + + # Only look up latest version if version was not passed in + version ||= begin + candidates = versions.select do |v| + !v['prerelease'] && + !v['yanked'] && + (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'] + candidates.max_by { |v| Gem::Version.new(v['number']) }['number'] end - platforms = platforms.compact.uniq - shas = {} - platforms.each { |platform| shas[platform] = find_sha(name, new_version, platform) } - - details = get_version_details(name, new_version) - deps = details.dig('dependencies', 'runtime') || [] - - { 'version' => new_version, 'shas' => shas, 'dependencies' => deps } + shas = platforms.to_h { |platform| [platform, find_sha(name, version, platform)] } + deps = get_version_details(name, version).dig('dependencies', 'runtime') || [] + { 'version' => version, 'shas' => shas, 'dependencies' => deps } end -def process_component(path, gemname) +# Process a single component file, updating its maintenance section as needed. +# Returns an array of gem names for any missing dependency components that need to be created. +def process_component_file(path) lines = File.read(path, encoding: 'UTF-8').lines start = lines.index { |l| l =~ MAINT_START } or raise "Automated maintenance section not found in #{path}" - end_rel = lines[(start + 1)..].to_a.index do |l| - l =~ MAINT_END - end or raise "Automated maintenance section not closed in #{path}" + end_rel = lines[(start + 1)..].index { |l| l =~ MAINT_END } or raise "Automated maintenance section not closed in #{path}" finish = start + 1 + end_rel + body = lines[(start + 1)...finish] - body = lines[(start + 1)...finish] - old_body_str = body.join - - pinned = false + pinned = false current_version = nil - old_deps = [] - platforms = ['ruby'] - prev = nil + current_deps = [] + platforms = ['ruby'] + + # Scan existing maintenance section for current state body.each do |line| if (m = line.match(VER_LINE)) current_version = m[:version] - pinned = !!(prev && prev =~ PINNED_LINE) + elsif line.match?(PINNED_LINE) + pinned = true elsif (m = line.match(BUILD_REQ)) - old_deps << m[1] + current_deps << m[1] elsif (m = line.match(GEM_TYPE)) platforms << m[:platform] end - prev = line end + platforms.uniq! raise "pkg.version not found in maintenance section for #{path}" unless current_version - metadata = get_metadata(name: gemname, version: pinned ? current_version : nil, platforms: platforms) + component_name = File.basename(path, '.rb') + gem_name = component_name.sub(/^rubygem-/, '') + + metadata = get_metadata(name: gem_name, version: pinned ? current_version : nil, platforms: platforms) target_version = metadata['version'] - shas = metadata['shas'] - new_deps = metadata['dependencies'].map { |d| d['name'] }.uniq.sort - [gemname] - newly_added = new_deps - old_deps + shas = metadata['shas'] + gem_deps = (metadata['dependencies'] || []).map { |d| d['name'] }.uniq.sort + + @component_deps[gem_name] = gem_deps - new_body = [] + new_body = [] current_platform = nil + + # Rebuild maintenance section with updated info. We do replacement + # this way to preserve any extra comments or formatting. body.each do |l| if (m = l.match(VER_LINE)) new_body << l.sub(m[:version], target_version) @@ -208,295 +157,252 @@ def process_component(path, gemname) 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] + sha = shas[platform] + raise "No SHA found for platform #{platform} of gem #{gem_name}" unless sha - new_body << l.sub('md5sum', 'sha256sum').sub(m[:sha], shas[platform]) + new_body << l.sub('md5sum', 'sha256sum').sub(m[:sha], sha) current_platform = nil elsif l =~ BUILD_REQ + # rebuild build_requires from gem_deps later next else new_body << l end end - 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}" : '' - missing = new_deps.reject { |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, - gem_deps: new_deps, - path: path, - old_version: current_version, - new_version: target_version, - block_changed: block_changed - } -end + gem_deps.each { |dep| new_body << " pkg.build_requires 'rubygem-#{dep}'\n" } -def update_projects_for_added(gem, added) - changed_files = [] - Dir[PROJECT_GLOB].each do |proj_path| - lines = File.read(proj_path, encoding: 'UTF-8').lines - next if lines.any? { |l| (m = l.match(PROJ_COMPONENT)) && m[:component] == added } + block_changed = (body != new_body) + if block_changed + lines[(start + 1)...finish] = new_body + File.write(path, lines.join, encoding: 'UTF-8') + end - gem_index = nil - gem_indent = ' ' - lines.each_with_index do |l, i| - next unless (m = l.match(PROJ_COMPONENT)) && m[:component] == gem + old_deps = current_deps.uniq.sort + deps_added_gems = gem_deps - old_deps + deps_added_components = deps_added_gems.map { |gem| "rubygem-#{gem}" } - gem_index = i - gem_indent = l[/^\s*/] || ' ' - break - end - next unless gem_index + missing_gems = gem_deps.reject { |gem| File.exist?(component_path(gem)) } - lines.insert(gem_index + 1, "#{gem_indent}proj.component '#{added}'\n") - File.write(proj_path, lines.join, encoding: 'UTF-8') - changed_files << proj_path + # Only mark a component as changed if we materially changed something. + # Ignore sorting of existing dependencies or updating md5 to sha256. + if current_version != target_version || !deps_added_components.empty? + @component_changes << { + name: component_name, + old_version: current_version, + new_version: target_version, + deps_added: deps_added_components + } end - changed_files + + missing_gems end -def create_component_file(path, gemname, version, sha, deps = []) - deps_block = deps.map { |name| " pkg.build_requires 'rubygem-#{name}'\n" }.join - content = <<~RUBY +def create_missing_component(gem_name) + path = component_path(gem_name) + + metadata = get_metadata(name: gem_name, platforms: ['ruby']) + version = metadata['version'] + sha = metadata['shas']['ruby'] + raise "No ruby SHA found for new component rubygem-#{gem_name}" unless sha + + gem_deps = (metadata['dependencies'] || []).map { |d| d['name'] }.uniq.sort + + content = <<~TEXT ##### # Component release information: - # https://rubygems.org/gems/#{gemname} + # https://rubygems.org/gems/#{gem_name} ##### - component 'rubygem-#{gemname}' do |pkg, _settings, _platform| + component 'rubygem-#{gem_name}' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '#{version}' pkg.sha256sum '#{sha}' - RUBY - content << deps_block - content << <<~RUBY + TEXT + content << gem_deps.map { |name| " pkg.build_requires 'rubygem-#{name}'\n" }.join + content << <<~TEXT ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') end - RUBY + TEXT File.write(path, content, encoding: 'UTF-8') -end -# Build a map of "rubygem-foo" => ["rubygem-bar", "rubygem-baz", ...] -# based on component metadata (after components and any new ones are in place). -def build_component_dependency_map(results, added) - existing_components = Dir[COMPONENT_GLOB].map { |p| File.basename(p, '.rb') } - deps_map = Hash.new { |h, k| h[k] = [] } - - results.each do |r| - component_name = "rubygem-#{r[:name]}" - (r[:gem_deps] || []).each do |gem_dep| - dep_component = "rubygem-#{gem_dep}" - deps_map[component_name] << dep_component if existing_components.include?(dep_component) - end - end + @component_deps[gem_name] = gem_deps - added.each do |info| - component_name = "rubygem-#{info[:name]}" - (info[:deps] || []).each do |gem_dep| - dep_component = "rubygem-#{gem_dep}" - deps_map[component_name] << dep_component if existing_components.include?(dep_component) - end - end + @component_changes << { + name: "rubygem-#{gem_name}", + old_version: nil, + new_version: version, + deps_added: gem_deps.map { |gem| "rubygem-#{gem}" } + } - deps_map.each_value(&:uniq!) - deps_map + gem_deps end -# Ensure that for every project that references a component, the project also -# references all of that component's dependencies as components. -def ensure_projects_have_component_deps(component_deps_map) - issues = [] - processed_pairs = {} - - component_deps_map.each do |component, deps| - deps.each do |dep| - key = "#{component}->#{dep}" - next if processed_pairs[key] - - processed_pairs[key] = true - - changed_files = update_projects_for_added(component, dep) - next if changed_files.empty? - - changed_files.each do |proj_path| - project_name = File.basename(proj_path, '.rb') - git_commit_file(proj_path, "#{project_name}: Add #{dep} component") - issues << { - project: project_name, - project_path: proj_path, - component: component, - missing_dep: dep - } - end - end +def update_all_components_and_create_missing + missing_queue = [] + component_paths = Dir[COMPONENT_GLOB].sort + total = component_paths.length + + component_paths.each_with_index do |path, i| + progress_print("Processing (#{i + 1}/#{total}): #{File.basename(path, '.rb')}") + missing_queue.concat(process_component_file(path)) end + progress_clear - issues -end + until missing_queue.empty? + gem_name = missing_queue.shift + next if File.exist?(component_path(gem_name)) -def update_all_components_and_projects - results = [] - added = [] - - files = Dir[COMPONENT_GLOB] - 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}") - r = process_component(path, gemname) - results << r - - next unless r[:block_changed] - - component = "rubygem-#{r[:name]}" - msg = - if r[:old_version] != r[:new_version] - "#{component}: Update #{r[:old_version]} -> #{r[:new_version]}" - elsif !r[:deps_added].empty? - if r[:deps_added].length == 1 - dep = r[:deps_added].first - "#{component}: Add #{dep} dependency" - else - deps = r[:deps_added].join(', ') - "#{component}: Add dependencies #{deps}" - end - else - "#{component}: Update component metadata" - end - git_commit_file(r[:path], msg) + progress_print("Creating component rubygem-#{gem_name}") + create_missing_component(gem_name).each do |dep_gem| + dep_path = component_path(dep_gem) + missing_queue << dep_gem if !File.exist?(dep_path) && !missing_queue.include?(dep_gem) + end end progress_clear +end - queue = results.flat_map { |r| (r[:missing] || []).map { |dep| [r[:name], dep] } } +def ensure_projects_have_component_deps + @project_component_additions = Hash.new { |h, k| h[k] = [] } - until queue.empty? - existing_gem, added_dep = queue.shift - dep_path = File.join(COMPONENT_DIR, "rubygem-#{added_dep}.rb") - created = false - deps = nil + Dir[PROJECT_GLOB].sort.each do |proj_path| + lines = File.read(proj_path, encoding: 'UTF-8').lines + project_name = File.basename(proj_path, '.rb') - unless File.exist?(dep_path) - progress_print("Creating component rubygem-#{added_dep} (required by #{existing_gem})") - m = get_metadata(name: added_dep, platforms: ['ruby']) - ver = m['version'] - sha = m['shas']['ruby'] - deps = (m['dependencies'] || []).map { |d| d['name'] }.uniq.sort - [added_dep] + # Map gem_name => line index where its component is declared so + # that we can insert dependencies after it, in case it is inside + # a conditional block (e.g. only for Windows platforms). + components = {} + lines.each_with_index do |line, idx| + next unless (m = line.match(PROJ_COMPONENT)) - create_component_file(dep_path, added_dep, ver, sha, deps) - added << { name: added_dep, version: ver, deps: deps, path: dep_path } + gem_name = m[:component].sub(/^rubygem-/, '') + components[gem_name] ||= idx + end - component_full_name = "rubygem-#{added_dep}" - git_commit_file(dep_path, "#{component_full_name}: Add new component") - created = true + @component_deps.each do |gem_name, dep_gems| + comp_line_index = components[gem_name] + next unless comp_line_index + + dep_gems.each do |dep_gem| + next if components.key?(dep_gem) # Project already declares this dep component + + indent = lines[comp_line_index][/^\s*/] + insert_index = comp_line_index + 1 + lines.insert(insert_index, "#{indent}proj.component 'rubygem-#{dep_gem}'\n") + + # Shift indices of later components down by one line + components[dep_gem] = insert_index + components.each do |comp_gem, idx| + next if comp_gem == dep_gem + + components[comp_gem] = idx + 1 if idx > comp_line_index + end + + @project_component_additions[project_name] << "rubygem-#{dep_gem}" + end end - if created || added.any? { |g| g[:name] == added_dep } - component_full_name = "rubygem-#{added_dep}" - update_projects_for_added("rubygem-#{existing_gem}", component_full_name).each do |proj_path| - project_name = File.basename(proj_path, '.rb') - git_commit_file(proj_path, "#{project_name}: Add #{component_full_name} component") + File.write(proj_path, lines.join, encoding: 'UTF-8') unless @project_component_additions[project_name].empty? + end +end + +def build_summary + lines = [] + + unless @component_changes.empty? + lines << 'Component updates:' + @component_changes.sort_by { |c| c[:name] }.each do |c| + parts = [] + if c[:old_version] && c[:new_version] && c[:old_version] != c[:new_version] + parts << "version #{c[:old_version]} -> #{c[:new_version]}" + elsif c[:old_version].nil? && c[:new_version] + parts << "new component (version #{c[:new_version]})" end + parts << "added deps: #{c[:deps_added].join(', ')}" unless c[:deps_added].empty? + lines << "- #{c[:name]}: #{parts.join(', ')}" unless parts.empty? end + end - deps&.each do |trans_dep| - trans_path = File.join(COMPONENT_DIR, "rubygem-#{trans_dep}.rb") - queue << [added_dep, trans_dep] unless File.exist?(trans_path) + unless @project_component_additions.empty? + lines << '' unless lines.empty? + lines << 'Project component additions:' + @project_component_additions.keys.sort.each do |project| + components = @project_component_additions[project].uniq.sort + lines << "- #{project}: #{components.join(', ')}" unless components.empty? end end - progress_clear + lines.join("\n") +end + +def git_add + _, err, ok = Open3.capture3( + 'git', '-C', REPO_ROOT, + 'add', 'configs/components', 'configs/projects' + ) + warn "git add failed:\n#{err}" unless ok + ok +end + +def git_commit(message) + out, err, ok = Open3.capture3('git', '-C', REPO_ROOT, 'diff', '--cached', '--name-only') + warn "git diff --cached failed:\n#{err}\n#{out}" unless ok + return if !ok || out.strip.empty? - # After all components and new components have been created, build the - # component dependency map and ensure every project includes all required - # component dependencies. - component_deps_map = build_component_dependency_map(results, added) - project_issues = ensure_projects_have_component_deps(component_deps_map) + args = ['git', '-C', REPO_ROOT, 'commit', '-m', 'Update rubygem components'] + args += ['-m', message] unless message.empty? - [results, added, project_issues] + _, err, ok = Open3.capture3(*args) + warn "git commit failed:\n#{err}" unless ok end -def output_json(results, added, project_issues) - puts JSON.pretty_generate( - ruby_version_used_for_checks: TARGET_RUBY_VER, - results: results.map { |r| - { - name: r[:name], - status: r[:status], - version: r[:version], - deps_added: r[:deps_added], - missing: r[:missing] - } - }, - added: added.map { |info| - { name: info[:name], version: info[:version], deps: info[:deps] } - }, - project_dependency_fixes: project_issues.map { |i| - { - project: i[:project], - project_path: git_relative_path(i[:project_path]), - component: i[:component], - missing_dependency_added: i[:missing_dep] - } - } +def ensure_no_uncommitted_changes + out, status = Open3.capture2e( + 'git', '-C', REPO_ROOT, + 'status', '--porcelain', '--', + 'configs/components', 'configs/projects' ) -end -def output_table(results, added, project_issues) - 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(', ') - ] + unless status.success? + warn "git status failed:\n#{out}" + exit 1 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) - return if project_issues.empty? + return if out.strip.empty? - puts - puts 'Project dependency fixes:' - project_issues.group_by { |i| i[:project] }.each do |project, list| - deps_list = list.map { |i| "#{i[:component]} -> #{i[:missing_dep]}" }.uniq - puts " #{project}: #{deps_list.join(', ')}" - end + warn <<~MSG + Refusing to run: uncommitted changes detected in configs: + #{out} + Please commit, stash, or discard these changes before running this task. + MSG + exit 1 end namespace :vox do - desc 'Update rubygem components and print a summary table or JSON of changes' + desc 'Update rubygem components and print a summary of changes' task :update_gems do - results, added, project_issues = update_all_components_and_projects - if !(ARGV & ['--json', '-j', '--format=json']).empty? - output_json(results, added, project_issues) - else - output_table(results, added, project_issues) + ensure_no_uncommitted_changes + + progress_print('Updating components and creating missing ones') + update_all_components_and_create_missing + progress_clear + + progress_print('Ensuring project component dependencies') + ensure_projects_have_component_deps + progress_clear + + summary = build_summary + + if summary.empty? + puts 'No updates to any rubygem components needed' + exit 0 end + + puts summary + + git_add + git_commit(summary) end end From 19b799f65a1efa74e7ac24baba2fcfab8597e043 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 28 Nov 2025 15:25:16 -0800 Subject: [PATCH 33/33] Update rubygem components Component updates: - rubygem-CFPropertyList: version 3.0.7 -> 4.0.0, added deps: rubygem-base64, rubygem-nkf, rubygem-rexml - rubygem-addressable: version 2.8.7 -> 2.8.8, added deps: rubygem-public_suffix - rubygem-aws-partitions: version 1.1154.0 -> 1.1188.0 - rubygem-aws-sdk-core: version 3.232.0 -> 3.239.2, added deps: rubygem-aws-eventstream, rubygem-aws-partitions, rubygem-aws-sigv4, rubygem-base64, rubygem-bigdecimal, rubygem-jmespath, rubygem-logger - rubygem-aws-sdk-ec2: version 1.555.0 -> 1.583.0, added deps: rubygem-aws-sdk-core, rubygem-aws-sigv4 - rubygem-aws-sigv4: added deps: rubygem-aws-eventstream - rubygem-benchmark: new component (version 0.5.0) - rubygem-bigdecimal: new component (version 3.3.1) - rubygem-cookiejar: new component (version 0.3.4) - rubygem-date: new component (version 3.5.0) - rubygem-em-http-request: new component (version 1.1.7), added deps: rubygem-addressable, rubygem-cookiejar, rubygem-em-socksify, rubygem-eventmachine, rubygem-http_parser.rb - rubygem-em-socksify: new component (version 0.3.3), added deps: rubygem-base64, rubygem-eventmachine - rubygem-eventmachine: new component (version 1.2.7) - rubygem-excon: new component (version 1.3.1), added deps: rubygem-logger - rubygem-faraday: version 2.13.4 -> 2.14.0, added deps: rubygem-faraday-net_http, rubygem-json, rubygem-logger - rubygem-faraday-em_http: added deps: rubygem-em-http-request, rubygem-faraday - rubygem-faraday-excon: version 2.3.0 -> 2.4.0, added deps: rubygem-excon, rubygem-faraday - rubygem-faraday-follow_redirects: version 0.3.0 -> 0.4.0, added deps: rubygem-faraday - rubygem-faraday-httpclient: added deps: rubygem-httpclient - rubygem-faraday-multipart: added deps: rubygem-multipart-post - rubygem-faraday-net_http: version 3.4.1 -> 3.4.2, added deps: rubygem-net-http - rubygem-faraday-net_http_persistent: added deps: rubygem-faraday, rubygem-net-http-persistent - rubygem-faraday-patron: added deps: rubygem-patron - rubygem-faraday-rack: added deps: rubygem-faraday - rubygem-faraday-retry: added deps: rubygem-faraday - rubygem-fast_gettext: added deps: rubygem-prime - rubygem-forwardable: new component (version 1.3.3) - rubygem-getoptlong: new component (version 0.2.1) - rubygem-gettext: added deps: rubygem-erubi, rubygem-locale, rubygem-prime, rubygem-racc, rubygem-text - rubygem-gettext-setup: added deps: rubygem-fast_gettext, rubygem-gettext, rubygem-locale - rubygem-gssapi: added deps: rubygem-ffi - rubygem-gyoku: added deps: rubygem-builder, rubygem-rexml - rubygem-highline: added deps: rubygem-reline - rubygem-http_parser.rb: new component (version 0.8.0) - rubygem-httpclient: added deps: rubygem-mutex_m - rubygem-io-console: new component (version 0.8.1) - rubygem-json: new component (version 2.16.0) - rubygem-jwt: added deps: rubygem-base64 - rubygem-logging: added deps: rubygem-little-plugger, rubygem-multi_json - rubygem-minitar: version 0.12.1 -> 1.1.0 - rubygem-mutex_m: new component (version 0.3.0) - rubygem-net-ftp: added deps: rubygem-net-protocol, rubygem-time - rubygem-net-http: new component (version 0.8.0), added deps: rubygem-uri - rubygem-net-http-persistent: added deps: rubygem-connection_pool - rubygem-net-protocol: new component (version 0.2.2), added deps: rubygem-timeout - rubygem-net-scp: added deps: rubygem-net-ssh - rubygem-net-ssh-krb: added deps: rubygem-gssapi, rubygem-net-ssh - rubygem-nkf: new component (version 0.2.0) - rubygem-nori: added deps: rubygem-bigdecimal - rubygem-openfact: added deps: rubygem-base64, rubygem-hocon, rubygem-logger, rubygem-thor - rubygem-openvox: added deps: rubygem-base64, rubygem-benchmark, rubygem-ostruct, rubygem-racc - rubygem-orchestrator_client: version 0.7.1 -> 0.7.2, added deps: rubygem-faraday, rubygem-faraday-net_http_persistent - rubygem-ostruct: new component (version 0.6.3) - rubygem-prime: added deps: rubygem-forwardable, rubygem-singleton - rubygem-puppet-resource_api: added deps: rubygem-hocon - rubygem-puppet_forge: version 5.0.4 -> 6.0.0, added deps: rubygem-faraday, rubygem-faraday-follow_redirects, rubygem-minitar, rubygem-semantic_puppet - rubygem-puppetfile-resolver: added deps: rubygem-molinillo, rubygem-semantic_puppet - rubygem-r10k: added deps: rubygem-colored2, rubygem-cri, rubygem-gettext-setup, rubygem-jwt, rubygem-log4r, rubygem-minitar, rubygem-multi_json, rubygem-puppet_forge - rubygem-racc: new component (version 1.8.1) - rubygem-reline: new component (version 0.6.3), added deps: rubygem-io-console - rubygem-rexml: version 3.4.2 -> 3.4.4 - rubygem-ruby_smb: added deps: rubygem-bindata, rubygem-rubyntlm, rubygem-windows_error - rubygem-rubyntlm: version 0.6.3 -> 0.6.5, added deps: rubygem-base64 - rubygem-rubyzip: version 3.0.2 -> 3.2.2 - rubygem-singleton: new component (version 0.3.0) - rubygem-sys-filesystem: version 1.5.3 -> 1.5.4, added deps: rubygem-ffi - rubygem-terminal-table: added deps: rubygem-unicode-display_width - rubygem-time: new component (version 0.4.1), added deps: rubygem-date - rubygem-timeout: new component (version 0.4.4) - rubygem-unicode-display_width: version 3.1.5 -> 3.2.0, added deps: rubygem-unicode-emoji - rubygem-unicode-emoji: new component (version 4.1.0) - rubygem-uri: new component (version 1.1.1) - rubygem-webrick: version 1.9.1 -> 1.9.2 - rubygem-winrm: added deps: rubygem-builder, rubygem-erubi, rubygem-gssapi, rubygem-gyoku, rubygem-httpclient, rubygem-logging, rubygem-nori, rubygem-rexml, rubygem-rubyntlm - rubygem-winrm-fs: added deps: rubygem-erubi, rubygem-logging, rubygem-rubyzip, rubygem-winrm Project component additions: - agent-runtime-main: rubygem-date, rubygem-forwardable, rubygem-io-console, rubygem-net-protocol, rubygem-nkf, rubygem-racc, rubygem-reline, rubygem-singleton, rubygem-time, rubygem-timeout - openbolt-runtime: rubygem-benchmark, rubygem-bigdecimal, rubygem-cookiejar, rubygem-date, rubygem-em-http-request, rubygem-em-socksify, rubygem-eventmachine, rubygem-excon, rubygem-forwardable, rubygem-http_parser.rb, rubygem-io-console, rubygem-json, rubygem-mutex_m, rubygem-net-http, rubygem-net-protocol, rubygem-nkf, rubygem-ostruct, rubygem-patron, rubygem-racc, rubygem-reline, rubygem-rexml, rubygem-singleton, rubygem-time, rubygem-timeout, rubygem-unicode-emoji, rubygem-uri --- configs/components/rubygem-CFPropertyList.rb | 7 +++-- configs/components/rubygem-addressable.rb | 5 ++-- configs/components/rubygem-aws-partitions.rb | 4 +-- configs/components/rubygem-aws-sdk-core.rb | 11 ++++++-- configs/components/rubygem-aws-sdk-ec2.rb | 6 +++-- configs/components/rubygem-aws-sigv4.rb | 1 + configs/components/rubygem-bcrypt_pbkdf.rb | 2 +- configs/components/rubygem-benchmark.rb | 12 +++++++++ configs/components/rubygem-bigdecimal.rb | 12 +++++++++ configs/components/rubygem-builder.rb | 2 +- configs/components/rubygem-connection_pool.rb | 2 +- configs/components/rubygem-cookiejar.rb | 12 +++++++++ configs/components/rubygem-date.rb | 12 +++++++++ configs/components/rubygem-em-http-request.rb | 17 ++++++++++++ configs/components/rubygem-em-socksify.rb | 14 ++++++++++ configs/components/rubygem-eventmachine.rb | 12 +++++++++ configs/components/rubygem-excon.rb | 13 ++++++++++ configs/components/rubygem-faraday-em_http.rb | 2 ++ configs/components/rubygem-faraday-excon.rb | 6 +++-- .../rubygem-faraday-follow_redirects.rb | 5 ++-- .../components/rubygem-faraday-httpclient.rb | 1 + .../components/rubygem-faraday-multipart.rb | 1 + .../components/rubygem-faraday-net_http.rb | 5 ++-- .../rubygem-faraday-net_http_persistent.rb | 2 ++ configs/components/rubygem-faraday-patron.rb | 1 + configs/components/rubygem-faraday-rack.rb | 1 + configs/components/rubygem-faraday-retry.rb | 1 + configs/components/rubygem-faraday.rb | 7 +++-- configs/components/rubygem-fast_gettext.rb | 1 + configs/components/rubygem-forwardable.rb | 12 +++++++++ configs/components/rubygem-getoptlong.rb | 12 +++++++++ configs/components/rubygem-gettext-setup.rb | 3 +++ configs/components/rubygem-gettext.rb | 5 ++++ configs/components/rubygem-gssapi.rb | 3 ++- configs/components/rubygem-gyoku.rb | 4 ++- configs/components/rubygem-hiera-eyaml.rb | 2 +- configs/components/rubygem-hiera.rb | 2 +- configs/components/rubygem-highline.rb | 1 + configs/components/rubygem-http_parser.rb.rb | 12 +++++++++ configs/components/rubygem-httpclient.rb | 1 + configs/components/rubygem-io-console.rb | 12 +++++++++ configs/components/rubygem-jmespath.rb | 2 +- configs/components/rubygem-json.rb | 12 +++++++++ configs/components/rubygem-jwt.rb | 1 + configs/components/rubygem-little-plugger.rb | 2 +- configs/components/rubygem-locale.rb | 2 +- configs/components/rubygem-log4r.rb | 2 +- configs/components/rubygem-logging.rb | 4 ++- configs/components/rubygem-minitar.rb | 4 +-- configs/components/rubygem-molinillo.rb | 2 +- configs/components/rubygem-multipart-post.rb | 2 +- configs/components/rubygem-mutex_m.rb | 12 +++++++++ configs/components/rubygem-net-ftp.rb | 2 ++ .../components/rubygem-net-http-persistent.rb | 1 + configs/components/rubygem-net-http.rb | 13 ++++++++++ configs/components/rubygem-net-protocol.rb | 13 ++++++++++ configs/components/rubygem-net-scp.rb | 1 + configs/components/rubygem-net-ssh-krb.rb | 4 ++- configs/components/rubygem-nkf.rb | 12 +++++++++ configs/components/rubygem-nori.rb | 3 ++- configs/components/rubygem-openfact.rb | 4 +++ configs/components/rubygem-openvox.rb | 6 ++++- .../components/rubygem-orchestrator_client.rb | 6 +++-- configs/components/rubygem-ostruct.rb | 12 +++++++++ configs/components/rubygem-paint.rb | 2 +- configs/components/rubygem-prime.rb | 2 ++ .../components/rubygem-puppet-resource_api.rb | 1 + configs/components/rubygem-puppet_forge.rb | 8 ++++-- .../components/rubygem-puppetfile-resolver.rb | 4 ++- configs/components/rubygem-r10k.rb | 8 ++++++ configs/components/rubygem-racc.rb | 12 +++++++++ configs/components/rubygem-reline.rb | 13 ++++++++++ configs/components/rubygem-rexml.rb | 4 +-- configs/components/rubygem-ruby2_keywords.rb | 2 +- configs/components/rubygem-ruby_smb.rb | 5 +++- configs/components/rubygem-rubyntlm.rb | 5 ++-- configs/components/rubygem-rubyzip.rb | 4 +-- configs/components/rubygem-scanf.rb | 2 +- configs/components/rubygem-singleton.rb | 12 +++++++++ configs/components/rubygem-sys-filesystem.rb | 5 ++-- configs/components/rubygem-terminal-table.rb | 1 + configs/components/rubygem-text.rb | 2 +- configs/components/rubygem-time.rb | 13 ++++++++++ configs/components/rubygem-timeout.rb | 12 +++++++++ .../rubygem-unicode-display_width.rb | 5 ++-- configs/components/rubygem-unicode-emoji.rb | 12 +++++++++ configs/components/rubygem-uri.rb | 12 +++++++++ configs/components/rubygem-webrick.rb | 4 +-- configs/components/rubygem-windows_error.rb | 2 +- configs/components/rubygem-winrm-fs.rb | 6 ++++- configs/components/rubygem-winrm.rb | 9 +++++++ configs/projects/agent-runtime-main.rb | 10 +++++++ configs/projects/openbolt-runtime.rb | 26 +++++++++++++++++++ 93 files changed, 510 insertions(+), 61 deletions(-) create mode 100644 configs/components/rubygem-benchmark.rb create mode 100644 configs/components/rubygem-bigdecimal.rb create mode 100644 configs/components/rubygem-cookiejar.rb create mode 100644 configs/components/rubygem-date.rb create mode 100644 configs/components/rubygem-em-http-request.rb create mode 100644 configs/components/rubygem-em-socksify.rb create mode 100644 configs/components/rubygem-eventmachine.rb create mode 100644 configs/components/rubygem-excon.rb create mode 100644 configs/components/rubygem-forwardable.rb create mode 100644 configs/components/rubygem-getoptlong.rb create mode 100644 configs/components/rubygem-http_parser.rb.rb create mode 100644 configs/components/rubygem-io-console.rb create mode 100644 configs/components/rubygem-json.rb create mode 100644 configs/components/rubygem-mutex_m.rb create mode 100644 configs/components/rubygem-net-http.rb create mode 100644 configs/components/rubygem-net-protocol.rb create mode 100644 configs/components/rubygem-nkf.rb create mode 100644 configs/components/rubygem-ostruct.rb create mode 100644 configs/components/rubygem-racc.rb create mode 100644 configs/components/rubygem-reline.rb create mode 100644 configs/components/rubygem-singleton.rb create mode 100644 configs/components/rubygem-time.rb create mode 100644 configs/components/rubygem-timeout.rb create mode 100644 configs/components/rubygem-unicode-emoji.rb create mode 100644 configs/components/rubygem-uri.rb diff --git a/configs/components/rubygem-CFPropertyList.rb b/configs/components/rubygem-CFPropertyList.rb index e0bb3c91..c85eeda8 100644 --- a/configs/components/rubygem-CFPropertyList.rb +++ b/configs/components/rubygem-CFPropertyList.rb @@ -8,8 +8,11 @@ ##### component 'rubygem-CFPropertyList' do |pkg, settings, _platform| ### Maintained by update_gems automation ### - pkg.version '3.0.7' - pkg.md5sum 'ed89ce5e7074a6f8e8b8e744eaf014d0' + pkg.version '4.0.0' + pkg.sha256sum '385e7bbd7c27e176b23415275ca936ca0ece1727e5b890b08e36632076b00aff' + pkg.build_requires 'rubygem-base64' + pkg.build_requires 'rubygem-nkf' + pkg.build_requires 'rubygem-rexml' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-addressable.rb b/configs/components/rubygem-addressable.rb index 4c4da55d..d4978d92 100644 --- a/configs/components/rubygem-addressable.rb +++ b/configs/components/rubygem-addressable.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-addressable' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '2.8.7' - pkg.sha256sum '462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232' + pkg.version '2.8.8' + pkg.sha256sum '7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057' + pkg.build_requires 'rubygem-public_suffix' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-aws-partitions.rb b/configs/components/rubygem-aws-partitions.rb index c339645c..08f34542 100644 --- a/configs/components/rubygem-aws-partitions.rb +++ b/configs/components/rubygem-aws-partitions.rb @@ -5,8 +5,8 @@ ##### component 'rubygem-aws-partitions' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '1.1154.0' - pkg.sha256sum 'be80a8e07b87ce6c936eb251a8f371a887e07ed21ca7f45e5e1b66949eb77294' + pkg.version '1.1188.0' + pkg.sha256sum 'dff035be9381b37a71295f88608640323de6d0e25c83a1b1932390b03a08af9a' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-aws-sdk-core.rb b/configs/components/rubygem-aws-sdk-core.rb index b20ed5eb..ea708d36 100644 --- a/configs/components/rubygem-aws-sdk-core.rb +++ b/configs/components/rubygem-aws-sdk-core.rb @@ -5,8 +5,15 @@ ##### component 'rubygem-aws-sdk-core' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '3.232.0' - pkg.sha256sum '05291ae0da4fb69e9b6494fcc2d839584e8345714a93cd01f0f1bf11475619f2' + pkg.version '3.239.2' + pkg.sha256sum 'a6801845ee0bdb061a3f9fb488136f3a585d51ff05b77063a9e228c9539cf239' + pkg.build_requires 'rubygem-aws-eventstream' + pkg.build_requires 'rubygem-aws-partitions' + pkg.build_requires 'rubygem-aws-sigv4' + pkg.build_requires 'rubygem-base64' + pkg.build_requires 'rubygem-bigdecimal' + pkg.build_requires 'rubygem-jmespath' + pkg.build_requires 'rubygem-logger' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-aws-sdk-ec2.rb b/configs/components/rubygem-aws-sdk-ec2.rb index 872e944b..3a817dab 100644 --- a/configs/components/rubygem-aws-sdk-ec2.rb +++ b/configs/components/rubygem-aws-sdk-ec2.rb @@ -5,8 +5,10 @@ ##### component 'rubygem-aws-sdk-ec2' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '1.555.0' - pkg.sha256sum 'e323b6a5f810b97e51fc64befc4c88dba4dfa81c8ebb841907bad4cb7969f92f' + pkg.version '1.583.0' + pkg.sha256sum 'd35d4f58811b7619b27f2919f6b88ad87ef764974dfdf05b506d8bc7a2693e15' + pkg.build_requires 'rubygem-aws-sdk-core' + pkg.build_requires 'rubygem-aws-sigv4' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-aws-sigv4.rb b/configs/components/rubygem-aws-sigv4.rb index 8b1e9b4e..701d7e25 100644 --- a/configs/components/rubygem-aws-sigv4.rb +++ b/configs/components/rubygem-aws-sigv4.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '1.12.1' pkg.sha256sum '6973ff95cb0fd0dc58ba26e90e9510a2219525d07620c8babeb70ef831826c00' + pkg.build_requires 'rubygem-aws-eventstream' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-bcrypt_pbkdf.rb b/configs/components/rubygem-bcrypt_pbkdf.rb index a1375226..9d88c837 100644 --- a/configs/components/rubygem-bcrypt_pbkdf.rb +++ b/configs/components/rubygem-bcrypt_pbkdf.rb @@ -6,7 +6,7 @@ component 'rubygem-bcrypt_pbkdf' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.1' - pkg.md5sum '3efcbfd0289e0783513b738823a2deba' + pkg.sha256sum '2f9077dde837d1f0dd2eb0f9e5327c6871c68ebc8eba88870fb6b7956e1e2b13' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-benchmark.rb b/configs/components/rubygem-benchmark.rb new file mode 100644 index 00000000..d1511e98 --- /dev/null +++ b/configs/components/rubygem-benchmark.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/benchmark +##### +component 'rubygem-benchmark' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.5.0' + pkg.sha256sum '465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-bigdecimal.rb b/configs/components/rubygem-bigdecimal.rb new file mode 100644 index 00000000..20596397 --- /dev/null +++ b/configs/components/rubygem-bigdecimal.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/bigdecimal +##### +component 'rubygem-bigdecimal' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '3.3.1' + pkg.sha256sum 'eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218' + ### 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 074af90b..9ed86fe6 100644 --- a/configs/components/rubygem-builder.rb +++ b/configs/components/rubygem-builder.rb @@ -6,7 +6,7 @@ component 'rubygem-builder' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.3.0' - pkg.md5sum '3048be022111b96f47bb17c34c67dbc7' + pkg.sha256sum '497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-connection_pool.rb b/configs/components/rubygem-connection_pool.rb index 56f46dda..df565ee3 100644 --- a/configs/components/rubygem-connection_pool.rb +++ b/configs/components/rubygem-connection_pool.rb @@ -11,7 +11,7 @@ ### Maintained by update_gems automation ### # PINNED pkg.version '2.4.1' - pkg.md5sum 'fd45f00b6d127bb49845afd7f7b91baa' + pkg.sha256sum '0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-cookiejar.rb b/configs/components/rubygem-cookiejar.rb new file mode 100644 index 00000000..4bc23f04 --- /dev/null +++ b/configs/components/rubygem-cookiejar.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/cookiejar +##### +component 'rubygem-cookiejar' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.3.4' + pkg.sha256sum '11b16acfc4baf7a0f463c21a6212005e04e25f5554d4d9f24d97f3492dfda0df' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-date.rb b/configs/components/rubygem-date.rb new file mode 100644 index 00000000..e5f4d2bf --- /dev/null +++ b/configs/components/rubygem-date.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/date +##### +component 'rubygem-date' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '3.5.0' + pkg.sha256sum '5e74fd6c04b0e65d97ad4f3bb5cb2d8efb37f386cc848f46310b4593ffc46ee5' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-em-http-request.rb b/configs/components/rubygem-em-http-request.rb new file mode 100644 index 00000000..bc5ead4d --- /dev/null +++ b/configs/components/rubygem-em-http-request.rb @@ -0,0 +1,17 @@ +##### +# Component release information: +# https://rubygems.org/gems/em-http-request +##### +component 'rubygem-em-http-request' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.1.7' + pkg.sha256sum '16fbc72b2a6e20c804c564ac5d12e98668c6fcef8c3b1dd2387dff505f2efdab' + pkg.build_requires 'rubygem-addressable' + pkg.build_requires 'rubygem-cookiejar' + pkg.build_requires 'rubygem-em-socksify' + pkg.build_requires 'rubygem-eventmachine' + pkg.build_requires 'rubygem-http_parser.rb' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-em-socksify.rb b/configs/components/rubygem-em-socksify.rb new file mode 100644 index 00000000..52777eb3 --- /dev/null +++ b/configs/components/rubygem-em-socksify.rb @@ -0,0 +1,14 @@ +##### +# Component release information: +# https://rubygems.org/gems/em-socksify +##### +component 'rubygem-em-socksify' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.3.3' + pkg.sha256sum '7d8d08a7a8acc1263173433a6b5540edd80a8a36e35a066b650c929a3a3974ed' + pkg.build_requires 'rubygem-base64' + pkg.build_requires 'rubygem-eventmachine' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-eventmachine.rb b/configs/components/rubygem-eventmachine.rb new file mode 100644 index 00000000..6b45ca81 --- /dev/null +++ b/configs/components/rubygem-eventmachine.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/eventmachine +##### +component 'rubygem-eventmachine' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.2.7' + pkg.sha256sum '994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-excon.rb b/configs/components/rubygem-excon.rb new file mode 100644 index 00000000..5b9ba9b5 --- /dev/null +++ b/configs/components/rubygem-excon.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/excon +##### +component 'rubygem-excon' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.3.1' + pkg.sha256sum 'bdf66805b7095105e45f7f36244f65c021d2d04a8453757a5d731e6a02587dbb' + pkg.build_requires 'rubygem-logger' + ### 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 c755b292..e902a58d 100644 --- a/configs/components/rubygem-faraday-em_http.rb +++ b/configs/components/rubygem-faraday-em_http.rb @@ -7,6 +7,8 @@ ### Maintained by update_gems automation ### pkg.version '2.0.1' pkg.sha256sum '05d3845d0b298a7dfbfb8205db39d10f1bc898d455be7a678ca6f460aba71632' + pkg.build_requires 'rubygem-em-http-request' + pkg.build_requires 'rubygem-faraday' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-excon.rb b/configs/components/rubygem-faraday-excon.rb index eadfdeed..73ae94ce 100644 --- a/configs/components/rubygem-faraday-excon.rb +++ b/configs/components/rubygem-faraday-excon.rb @@ -6,8 +6,10 @@ ##### component 'rubygem-faraday-excon' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '2.3.0' - pkg.sha256sum 'c5fc7175ab284b164496559e35f550587ec5b028b3cdbb40b7ebe83aa7e5b575' + pkg.version '2.4.0' + pkg.sha256sum '2a07ff3583468468eb62325c6263d0b2dd39282a8de7dc35908d782de531c8f6' + pkg.build_requires 'rubygem-excon' + pkg.build_requires 'rubygem-faraday' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-follow_redirects.rb b/configs/components/rubygem-faraday-follow_redirects.rb index 84caff6a..750fff15 100644 --- a/configs/components/rubygem-faraday-follow_redirects.rb +++ b/configs/components/rubygem-faraday-follow_redirects.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-faraday-follow_redirects' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '0.3.0' - pkg.md5sum '75fa678fa40b54a94e51efc1600a6461' + pkg.version '0.4.0' + pkg.sha256sum 'd3fa1118ab1350e24035a272b4cff64948643bb7182846db89acaf87abadd5d9' + pkg.build_requires 'rubygem-faraday' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-httpclient.rb b/configs/components/rubygem-faraday-httpclient.rb index 9581930e..9a363137 100644 --- a/configs/components/rubygem-faraday-httpclient.rb +++ b/configs/components/rubygem-faraday-httpclient.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'd95fbe60cce5a87e157957d67c539a4c22fb8b0b0611d493a939cdde19d8d67c' + pkg.build_requires 'rubygem-httpclient' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-multipart.rb b/configs/components/rubygem-faraday-multipart.rb index 2a9592d4..da5b84e4 100644 --- a/configs/components/rubygem-faraday-multipart.rb +++ b/configs/components/rubygem-faraday-multipart.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '1.1.1' pkg.sha256sum '77a18ff40149030fd1aef55bb4fc7a67ce46419a8a3fcd010e28c2526e8d8903' + pkg.build_requires 'rubygem-multipart-post' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-net_http.rb b/configs/components/rubygem-faraday-net_http.rb index 26b493e6..3bc80b6e 100644 --- a/configs/components/rubygem-faraday-net_http.rb +++ b/configs/components/rubygem-faraday-net_http.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-faraday-net_http' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '3.4.1' - pkg.sha256sum '095757fae7872b94eac839c08a1a4b8d84fd91d6886cfbe75caa2143de64ab3b' + pkg.version '3.4.2' + pkg.sha256sum 'f147758260d3526939bf57ecf911682f94926a3666502e24c69992765875906c' + pkg.build_requires 'rubygem-net-http' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-net_http_persistent.rb b/configs/components/rubygem-faraday-net_http_persistent.rb index 8b2ddb75..bec4b239 100644 --- a/configs/components/rubygem-faraday-net_http_persistent.rb +++ b/configs/components/rubygem-faraday-net_http_persistent.rb @@ -7,6 +7,8 @@ ### Maintained by update_gems automation ### pkg.version '2.3.1' pkg.sha256sum '23ffba37d6a27807a10f033d01918ec958aa73fa6ff0fccfbcd5ce2d2e68fca3' + pkg.build_requires 'rubygem-faraday' + pkg.build_requires 'rubygem-net-http-persistent' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-patron.rb b/configs/components/rubygem-faraday-patron.rb index 58502cb5..d21fdfb6 100644 --- a/configs/components/rubygem-faraday-patron.rb +++ b/configs/components/rubygem-faraday-patron.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '2.0.2' pkg.sha256sum 'cd4b77d48e3c638ce25c22b6affe2714cf13af99bfa8348c1c7f6733fc5f2086' + pkg.build_requires 'rubygem-patron' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-rack.rb b/configs/components/rubygem-faraday-rack.rb index 0c85a636..b0eea480 100644 --- a/configs/components/rubygem-faraday-rack.rb +++ b/configs/components/rubygem-faraday-rack.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '2.1.3' pkg.sha256sum '9869993a8f1010ade286bda697dea43a8f29f0ab760877d73ec7de5d1d18faed' + pkg.build_requires 'rubygem-faraday' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday-retry.rb b/configs/components/rubygem-faraday-retry.rb index 01cfa48d..f9ddfa76 100644 --- a/configs/components/rubygem-faraday-retry.rb +++ b/configs/components/rubygem-faraday-retry.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '2.3.2' pkg.sha256sum '2402d2029032ebd238a2046221e67f6ef0da78c5a8ce8cd4f8b9c62e4d6451d1' + pkg.build_requires 'rubygem-faraday' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-faraday.rb b/configs/components/rubygem-faraday.rb index b2434327..5f62580c 100644 --- a/configs/components/rubygem-faraday.rb +++ b/configs/components/rubygem-faraday.rb @@ -5,8 +5,11 @@ ##### component 'rubygem-faraday' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '2.13.4' - pkg.sha256sum 'c719ff52cfd0dbaeca79dd83ed3aeea3f621032abf8bc959d1c05666157cac26' + 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 ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-fast_gettext.rb b/configs/components/rubygem-fast_gettext.rb index cfcfd976..ae28f872 100644 --- a/configs/components/rubygem-fast_gettext.rb +++ b/configs/components/rubygem-fast_gettext.rb @@ -10,6 +10,7 @@ # PINNED pkg.version '2.4.0' pkg.sha256sum 'fd26c4c406aa10be34f0fd2847ce3ffdc1e9d9798de87538594757bbb9175fbf' + pkg.build_requires 'rubygem-prime' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-forwardable.rb b/configs/components/rubygem-forwardable.rb new file mode 100644 index 00000000..9d9a2aee --- /dev/null +++ b/configs/components/rubygem-forwardable.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/forwardable +##### +component 'rubygem-forwardable' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.3.3' + pkg.sha256sum 'f17df4bd6afa6f46a003217023fe5716ef88ce261f5c4cf0edbdeed6470cafac' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-getoptlong.rb b/configs/components/rubygem-getoptlong.rb new file mode 100644 index 00000000..563e2cf9 --- /dev/null +++ b/configs/components/rubygem-getoptlong.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/getoptlong +##### +component 'rubygem-getoptlong' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.2.1' + pkg.sha256sum 'fd23f07397b994bf9310d4531cfdb4332629a9b8e8c9c457c32b7edf5bf21ba5' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-gettext-setup.rb b/configs/components/rubygem-gettext-setup.rb index 7336fa1c..6ce8a45a 100644 --- a/configs/components/rubygem-gettext-setup.rb +++ b/configs/components/rubygem-gettext-setup.rb @@ -7,6 +7,9 @@ ### Maintained by update_gems automation ### pkg.version '1.1.0' pkg.sha256sum '2ad4fa99575d869f18056941d98dc9cb2a656abc7b991f360fbd3e32d28fd4ec' + pkg.build_requires 'rubygem-fast_gettext' + pkg.build_requires 'rubygem-gettext' + pkg.build_requires 'rubygem-locale' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-gettext.rb b/configs/components/rubygem-gettext.rb index 15cea6f6..e252900d 100644 --- a/configs/components/rubygem-gettext.rb +++ b/configs/components/rubygem-gettext.rb @@ -7,6 +7,11 @@ ### Maintained by update_gems automation ### pkg.version '3.5.1' pkg.sha256sum '03ec7f71ea7e2cf1fdcd5e08682e98b81601922fdbee890b7bc6f63b0e1a512a' + pkg.build_requires 'rubygem-erubi' + pkg.build_requires 'rubygem-locale' + pkg.build_requires 'rubygem-prime' + pkg.build_requires 'rubygem-racc' + pkg.build_requires 'rubygem-text' ### 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 ad5f0d13..88f78961 100644 --- a/configs/components/rubygem-gssapi.rb +++ b/configs/components/rubygem-gssapi.rb @@ -7,7 +7,8 @@ component 'rubygem-gssapi' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.1' - pkg.md5sum '4bd2df09d8e0ab4c6d2e1828c344eba1' + pkg.sha256sum 'c51cf30842ee39bd93ce7fc33e20405ff8a04cda9dec6092071b61258284aee1' + pkg.build_requires 'rubygem-ffi' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-gyoku.rb b/configs/components/rubygem-gyoku.rb index 08b117ab..f23c1251 100644 --- a/configs/components/rubygem-gyoku.rb +++ b/configs/components/rubygem-gyoku.rb @@ -6,7 +6,9 @@ component 'rubygem-gyoku' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.4.0' - pkg.md5sum 'fecd9488be9b07a250349e9bbe048e5f' + pkg.sha256sum '389d887384c777f271cb9377bb642f20bbe0c633d1ef5af78569d4db53c1a2cd' + pkg.build_requires 'rubygem-builder' + pkg.build_requires 'rubygem-rexml' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-hiera-eyaml.rb b/configs/components/rubygem-hiera-eyaml.rb index 0b9ffe0b..91f8db5d 100644 --- a/configs/components/rubygem-hiera-eyaml.rb +++ b/configs/components/rubygem-hiera-eyaml.rb @@ -7,8 +7,8 @@ ### Maintained by update_gems automation ### pkg.version '4.3.0' pkg.sha256sum '19eba2ea9d70b2d56de064df9e3242860d8070d47ff9c9a6348b7fe94708ab0a' - pkg.build_requires 'rubygem-optimist' pkg.build_requires 'rubygem-highline' + pkg.build_requires 'rubygem-optimist' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-hiera.rb b/configs/components/rubygem-hiera.rb index b5339198..7c5d4ead 100644 --- a/configs/components/rubygem-hiera.rb +++ b/configs/components/rubygem-hiera.rb @@ -6,7 +6,7 @@ component 'rubygem-hiera' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '3.12.0' - pkg.md5sum '67249a25571c9ee83cdb68579faf3f0d' + pkg.sha256sum '7808800f6da3ec9bb3b5d63d113a8ccbc3fb4fe72f459d5b67a1ef23ab952b61' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-highline.rb b/configs/components/rubygem-highline.rb index 9056b179..8a69bc01 100644 --- a/configs/components/rubygem-highline.rb +++ b/configs/components/rubygem-highline.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '3.1.2' pkg.sha256sum '67cbd34d19f6ef11a7ee1d82ffab5d36dfd5b3be861f450fc1716c7125f4bb4a' + pkg.build_requires 'rubygem-reline' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-http_parser.rb.rb b/configs/components/rubygem-http_parser.rb.rb new file mode 100644 index 00000000..e3a48f47 --- /dev/null +++ b/configs/components/rubygem-http_parser.rb.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/http_parser.rb +##### +component 'rubygem-http_parser.rb' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.8.0' + pkg.sha256sum '5a0932f1fa82ce08a8516a2685d5a86031c000560f89946913c555a0697544be' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-httpclient.rb b/configs/components/rubygem-httpclient.rb index 7f7cc519..ae231413 100644 --- a/configs/components/rubygem-httpclient.rb +++ b/configs/components/rubygem-httpclient.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '2.9.0' pkg.sha256sum '4b645958e494b2f86c2f8a2f304c959baa273a310e77a2931ddb986d83e498c8' + pkg.build_requires 'rubygem-mutex_m' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-io-console.rb b/configs/components/rubygem-io-console.rb new file mode 100644 index 00000000..92a8fec1 --- /dev/null +++ b/configs/components/rubygem-io-console.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/io-console +##### +component 'rubygem-io-console' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.8.1' + pkg.sha256sum '1e15440a6b2f67b6ea496df7c474ed62c860ad11237f29b3bd187f054b925fcb' + ### 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 d9554500..a125eae5 100644 --- a/configs/components/rubygem-jmespath.rb +++ b/configs/components/rubygem-jmespath.rb @@ -6,7 +6,7 @@ component 'rubygem-jmespath' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.6.2' - pkg.md5sum 'fdd62edafbd40171f976a53ab349ae9e' + pkg.sha256sum '238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-json.rb b/configs/components/rubygem-json.rb new file mode 100644 index 00000000..7b25ed34 --- /dev/null +++ b/configs/components/rubygem-json.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/json +##### +component 'rubygem-json' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '2.16.0' + pkg.sha256sum 'ca5630320bb5ca23ebfd0bac84532fab56eb357575653b815b9df42c051e1525' + ### 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 bc5e0fbc..c1e027c8 100644 --- a/configs/components/rubygem-jwt.rb +++ b/configs/components/rubygem-jwt.rb @@ -10,6 +10,7 @@ # PINNED pkg.version '2.10.2' pkg.sha256sum '31e1ee46f7359883d5e622446969fe9c118c3da87a0b1dca765ce269c3a0c4f4' + pkg.build_requires 'rubygem-base64' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-little-plugger.rb b/configs/components/rubygem-little-plugger.rb index 0da77bed..2c35e01b 100644 --- a/configs/components/rubygem-little-plugger.rb +++ b/configs/components/rubygem-little-plugger.rb @@ -6,7 +6,7 @@ component 'rubygem-little-plugger' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.4' - pkg.md5sum '8b1cf294a87eaabd12d5326bc13d7fe0' + pkg.sha256sum 'd5f347c00d9d648040ef7c17d6eb09d3d0719adf19ca30d1a3b6fb26d0a631bb' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-locale.rb b/configs/components/rubygem-locale.rb index 5c7ce4f0..545b8a9f 100644 --- a/configs/components/rubygem-locale.rb +++ b/configs/components/rubygem-locale.rb @@ -7,7 +7,7 @@ component 'rubygem-locale' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.1.4' - pkg.md5sum 'c324a7f34b94044f8d38eabff159de62' + pkg.sha256sum '522f9973ef3eee64aac9bca06d21db2fba675fa3d2cf61d21f42d1ca18a9f780' ### 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 02c720ad..431c1686 100644 --- a/configs/components/rubygem-log4r.rb +++ b/configs/components/rubygem-log4r.rb @@ -7,7 +7,7 @@ component 'rubygem-log4r' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.1.10' - pkg.md5sum '8d54b52c97f9fc17cc20a5277af20402' + pkg.sha256sum '9b452928c964b7c54c09aeb25ff045b5a722b387b16c9ce37cb1baec00062966' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-logging.rb b/configs/components/rubygem-logging.rb index eadd85f8..dab63efe 100644 --- a/configs/components/rubygem-logging.rb +++ b/configs/components/rubygem-logging.rb @@ -6,7 +6,9 @@ component 'rubygem-logging' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.4.0' - pkg.md5sum '8953eab63c979ecdac781cbf0da1872a' + pkg.sha256sum 'ba8893a3c211b836f4131bb93b3eb3137a0c3b1fcd0ec3d570e324d8bdc00ccb' + pkg.build_requires 'rubygem-little-plugger' + pkg.build_requires 'rubygem-multi_json' ### 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 1699160c..653910d7 100644 --- a/configs/components/rubygem-minitar.rb +++ b/configs/components/rubygem-minitar.rb @@ -5,8 +5,8 @@ ##### component 'rubygem-minitar' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '0.12.1' - pkg.md5sum '975dee1dadeb26a2a01105802c3172ab' + pkg.version '1.1.0' + pkg.sha256sum '38db0cfb6f3801017946cdcd8dc53f2cf3fd41ff752892312bf9a1639c9ea23e' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-molinillo.rb b/configs/components/rubygem-molinillo.rb index db1176b9..c622a148 100644 --- a/configs/components/rubygem-molinillo.rb +++ b/configs/components/rubygem-molinillo.rb @@ -7,7 +7,7 @@ component 'rubygem-molinillo' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.8.0' - pkg.md5sum '877866cc996d5ce819dd8843b3116b5f' + pkg.sha256sum 'efbff2716324e2a30bccd3eba1ff3a735f4d5d53ffddbc6a2f32c0ca9433045d' ### 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 8baea784..f42e9c8c 100644 --- a/configs/components/rubygem-multipart-post.rb +++ b/configs/components/rubygem-multipart-post.rb @@ -6,7 +6,7 @@ component 'rubygem-multipart-post' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.4.1' - pkg.md5sum '190a88b4cae633a46b64c30764e5d624' + pkg.sha256sum '9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-mutex_m.rb b/configs/components/rubygem-mutex_m.rb new file mode 100644 index 00000000..fef555b8 --- /dev/null +++ b/configs/components/rubygem-mutex_m.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/mutex_m +##### +component 'rubygem-mutex_m' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.3.0' + pkg.sha256sum 'cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-net-ftp.rb b/configs/components/rubygem-net-ftp.rb index d376e8a2..fbc15bee 100644 --- a/configs/components/rubygem-net-ftp.rb +++ b/configs/components/rubygem-net-ftp.rb @@ -7,6 +7,8 @@ ### Maintained by update_gems automation ### pkg.version '0.3.9' pkg.sha256sum '307817ccf7f428f79d083f7e36dbb46a9d1d375e0d23027824de1866f0b13b65' + pkg.build_requires 'rubygem-net-protocol' + pkg.build_requires 'rubygem-time' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-net-http-persistent.rb b/configs/components/rubygem-net-http-persistent.rb index c3f9d9c6..227a44bb 100644 --- a/configs/components/rubygem-net-http-persistent.rb +++ b/configs/components/rubygem-net-http-persistent.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '4.0.6' pkg.sha256sum '2abb3a04438edf6cb9e0e7e505969605f709eda3e3c5211beadd621a2c84dd5d' + pkg.build_requires 'rubygem-connection_pool' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-net-http.rb b/configs/components/rubygem-net-http.rb new file mode 100644 index 00000000..f309dfd2 --- /dev/null +++ b/configs/components/rubygem-net-http.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/net-http +##### +component 'rubygem-net-http' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.8.0' + pkg.sha256sum 'df42c47ce9f9e95ad32a317c97c12f945bc1af365288837ea4ff259876ecb46d' + pkg.build_requires 'rubygem-uri' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-net-protocol.rb b/configs/components/rubygem-net-protocol.rb new file mode 100644 index 00000000..f9617f65 --- /dev/null +++ b/configs/components/rubygem-net-protocol.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/net-protocol +##### +component 'rubygem-net-protocol' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.2.2' + pkg.sha256sum 'aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8' + pkg.build_requires 'rubygem-timeout' + ### 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 f710936c..11123ac6 100644 --- a/configs/components/rubygem-net-scp.rb +++ b/configs/components/rubygem-net-scp.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '4.1.0' pkg.sha256sum 'a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d' + pkg.build_requires 'rubygem-net-ssh' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-net-ssh-krb.rb b/configs/components/rubygem-net-ssh-krb.rb index 851c7c5d..4cdb000f 100644 --- a/configs/components/rubygem-net-ssh-krb.rb +++ b/configs/components/rubygem-net-ssh-krb.rb @@ -6,7 +6,9 @@ component 'rubygem-net-ssh-krb' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.5.1' - pkg.md5sum '58f770a6a8eca61b5da467d584bb7016' + pkg.sha256sum '0c1448f32d7b1dc4decc5e2bb329f38c502c9fed6fb16122b257e5dc8cb61588' + pkg.build_requires 'rubygem-gssapi' + pkg.build_requires 'rubygem-net-ssh' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-nkf.rb b/configs/components/rubygem-nkf.rb new file mode 100644 index 00000000..7ae002b5 --- /dev/null +++ b/configs/components/rubygem-nkf.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/nkf +##### +component 'rubygem-nkf' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.2.0' + pkg.sha256sum 'fbc151bda025451f627fafdfcb3f4f13d0b22ae11f58c6d3a2939c76c5f5f126' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-nori.rb b/configs/components/rubygem-nori.rb index 8e37e19c..bb0fd3f6 100644 --- a/configs/components/rubygem-nori.rb +++ b/configs/components/rubygem-nori.rb @@ -7,7 +7,8 @@ component 'rubygem-nori' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.7.1' - pkg.md5sum '83952a081b5e86d5aa62943ca9ccf312' + pkg.sha256sum '6166cd336959854762073e2fbae888593809cac1b3e904f4fb009313d7226861' + pkg.build_requires 'rubygem-bigdecimal' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-openfact.rb b/configs/components/rubygem-openfact.rb index 03a95b53..1c7bbe71 100644 --- a/configs/components/rubygem-openfact.rb +++ b/configs/components/rubygem-openfact.rb @@ -7,6 +7,10 @@ ### Maintained by update_gems automation ### pkg.version '5.1.0' pkg.sha256sum '569b93bc6941f8efeef55c138577ae2e3ff4f6727657f9f48925c4a657d3f70c' + pkg.build_requires 'rubygem-base64' + pkg.build_requires 'rubygem-hocon' + pkg.build_requires 'rubygem-logger' + pkg.build_requires 'rubygem-thor' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-openvox.rb b/configs/components/rubygem-openvox.rb index 767a7ada..3d165a6b 100644 --- a/configs/components/rubygem-openvox.rb +++ b/configs/components/rubygem-openvox.rb @@ -9,14 +9,18 @@ ### Maintained by update_gems automation ### pkg.version '8.23.1' pkg.sha256sum '0af1d648fd4dc749b871df2f8fdcc6b74a21635961e8aa080b980a032a1bc915' + pkg.build_requires 'rubygem-base64' + pkg.build_requires 'rubygem-benchmark' pkg.build_requires 'rubygem-concurrent-ruby' pkg.build_requires 'rubygem-deep_merge' - pkg.build_requires 'rubygem-openfact' pkg.build_requires 'rubygem-fast_gettext' pkg.build_requires 'rubygem-getoptlong' pkg.build_requires 'rubygem-locale' pkg.build_requires 'rubygem-multi_json' + pkg.build_requires 'rubygem-openfact' + pkg.build_requires 'rubygem-ostruct' pkg.build_requires 'rubygem-puppet-resource_api' + pkg.build_requires 'rubygem-racc' pkg.build_requires 'rubygem-scanf' pkg.build_requires 'rubygem-semantic_puppet' ### End automated maintenance section ### diff --git a/configs/components/rubygem-orchestrator_client.rb b/configs/components/rubygem-orchestrator_client.rb index 70538940..d27d0bb4 100644 --- a/configs/components/rubygem-orchestrator_client.rb +++ b/configs/components/rubygem-orchestrator_client.rb @@ -5,8 +5,10 @@ ##### component 'rubygem-orchestrator_client' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '0.7.1' - pkg.md5sum '177686e31c134ae9fdee25ba8c0404a0' + pkg.version '0.7.2' + pkg.sha256sum 'ed07d84f3cfc6e03258fd91177c679712c5c95f3dbda467498d5ca429ad4b2df' + pkg.build_requires 'rubygem-faraday' + pkg.build_requires 'rubygem-faraday-net_http_persistent' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-ostruct.rb b/configs/components/rubygem-ostruct.rb new file mode 100644 index 00000000..7f9cefad --- /dev/null +++ b/configs/components/rubygem-ostruct.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/ostruct +##### +component 'rubygem-ostruct' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.6.3' + pkg.sha256sum '95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912' + ### 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 08db05fd..70959859 100644 --- a/configs/components/rubygem-paint.rb +++ b/configs/components/rubygem-paint.rb @@ -6,7 +6,7 @@ component 'rubygem-paint' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '2.3.0' - pkg.md5sum '5f51716cec1f4fe3db8ba1880f9fc875' + pkg.sha256sum '327d623e4038619d5bd99ae5db07973859cd78400c7f0329eea283cef8e83be5' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-prime.rb b/configs/components/rubygem-prime.rb index 88eb911e..2e023923 100644 --- a/configs/components/rubygem-prime.rb +++ b/configs/components/rubygem-prime.rb @@ -7,6 +7,8 @@ ### Maintained by update_gems automation ### pkg.version '0.1.4' pkg.sha256sum '4d755ebf7c2994a6f3a3fee0d072063be3fff2d4042ebff6cd5eebd4747a225e' + pkg.build_requires 'rubygem-forwardable' + pkg.build_requires 'rubygem-singleton' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-puppet-resource_api.rb b/configs/components/rubygem-puppet-resource_api.rb index 7b73d767..657fd243 100644 --- a/configs/components/rubygem-puppet-resource_api.rb +++ b/configs/components/rubygem-puppet-resource_api.rb @@ -8,6 +8,7 @@ ### Maintained by update_gems automation ### pkg.version '2.0.0' pkg.sha256sum '4649fcb5d5e5f8cbda0887f706b95be5b52a089bcf98ce8ebf0496c3266fd9c4' + pkg.build_requires 'rubygem-hocon' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-puppet_forge.rb b/configs/components/rubygem-puppet_forge.rb index 332a04d2..9d1ca4a1 100644 --- a/configs/components/rubygem-puppet_forge.rb +++ b/configs/components/rubygem-puppet_forge.rb @@ -6,8 +6,12 @@ ##### component 'rubygem-puppet_forge' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '5.0.4' - pkg.md5sum '04a2ca2f027ed41d9142ced587b71bd7' + pkg.version '6.0.0' + pkg.sha256sum '0770bed61c9f5b21bd81666b121e086165e34c45691bdefec70438bf412f8ddf' + pkg.build_requires 'rubygem-faraday' + pkg.build_requires 'rubygem-faraday-follow_redirects' + pkg.build_requires 'rubygem-minitar' + pkg.build_requires 'rubygem-semantic_puppet' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-puppetfile-resolver.rb b/configs/components/rubygem-puppetfile-resolver.rb index b4e9f032..a6899b7e 100644 --- a/configs/components/rubygem-puppetfile-resolver.rb +++ b/configs/components/rubygem-puppetfile-resolver.rb @@ -8,7 +8,9 @@ component 'rubygem-puppetfile-resolver' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.6.3' - pkg.md5sum '8377387749cf0fcfcfd9f8c0c6baaf0c' + pkg.sha256sum 'd54695251bb62ca033d10bba2d9d91243fff474265d4979f2783259a974634ce' + pkg.build_requires 'rubygem-molinillo' + pkg.build_requires 'rubygem-semantic_puppet' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-r10k.rb b/configs/components/rubygem-r10k.rb index 78444741..de483138 100644 --- a/configs/components/rubygem-r10k.rb +++ b/configs/components/rubygem-r10k.rb @@ -7,6 +7,14 @@ ### Maintained by update_gems automation ### pkg.version '5.0.2' pkg.sha256sum '48e24e2b8447cdc56b03303b741247a5255bb40f170c9d113c5d3dbd8c83e8b3' + pkg.build_requires 'rubygem-colored2' + pkg.build_requires 'rubygem-cri' + pkg.build_requires 'rubygem-gettext-setup' + pkg.build_requires 'rubygem-jwt' + pkg.build_requires 'rubygem-log4r' + pkg.build_requires 'rubygem-minitar' + pkg.build_requires 'rubygem-multi_json' + pkg.build_requires 'rubygem-puppet_forge' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-racc.rb b/configs/components/rubygem-racc.rb new file mode 100644 index 00000000..3dfb340f --- /dev/null +++ b/configs/components/rubygem-racc.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/racc +##### +component 'rubygem-racc' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.8.1' + pkg.sha256sum '4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-reline.rb b/configs/components/rubygem-reline.rb new file mode 100644 index 00000000..92ca4111 --- /dev/null +++ b/configs/components/rubygem-reline.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/reline +##### +component 'rubygem-reline' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.6.3' + pkg.sha256sum '1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835' + pkg.build_requires 'rubygem-io-console' + ### 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 0bafe000..54abb1d1 100644 --- a/configs/components/rubygem-rexml.rb +++ b/configs/components/rubygem-rexml.rb @@ -5,8 +5,8 @@ ##### component 'rubygem-rexml' do |pkg, settings, platform| ### Maintained by update_gems automation ### - pkg.version '3.4.2' - pkg.sha256sum '1384268554a37af5da5279431ca3f2f37d46f09ffdd6c95e17cc84c83ea7c417' + pkg.version '3.4.4' + pkg.sha256sum '19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142' ### End automated maintenance section ### settings["#{pkg.get_name}_remove_older_versions".to_sym] = true diff --git a/configs/components/rubygem-ruby2_keywords.rb b/configs/components/rubygem-ruby2_keywords.rb index cdc8a957..da494d60 100644 --- a/configs/components/rubygem-ruby2_keywords.rb +++ b/configs/components/rubygem-ruby2_keywords.rb @@ -6,7 +6,7 @@ component 'rubygem-ruby2_keywords' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.0.5' - pkg.md5sum '89bc1e9231e63a0f93599772ae871e03' + pkg.sha256sum 'ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-ruby_smb.rb b/configs/components/rubygem-ruby_smb.rb index b3a4d7e2..0a3ec891 100644 --- a/configs/components/rubygem-ruby_smb.rb +++ b/configs/components/rubygem-ruby_smb.rb @@ -10,7 +10,10 @@ ### Maintained by update_gems automation ### # PINNED pkg.version '1.1.0' - pkg.md5sum 'f926be4cb045b5984d02dc10e2b240ca' + pkg.sha256sum 'c4692ec8983f492161239d36a743b2a8cd309d4523c832a71de14ead6a8db788' + pkg.build_requires 'rubygem-bindata' + pkg.build_requires 'rubygem-rubyntlm' + pkg.build_requires 'rubygem-windows_error' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-rubyntlm.rb b/configs/components/rubygem-rubyntlm.rb index 7c4c3bcd..3b85701c 100644 --- a/configs/components/rubygem-rubyntlm.rb +++ b/configs/components/rubygem-rubyntlm.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-rubyntlm' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '0.6.3' - pkg.md5sum 'e1f7477acf8a7d3effb2a3fb931aa84c' + pkg.version '0.6.5' + pkg.sha256sum '47013402b99ae29ee93f930af51edaec8c6008556f4be25705a422b4430314f5' + pkg.build_requires 'rubygem-base64' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-rubyzip.rb b/configs/components/rubygem-rubyzip.rb index 61c2e614..dabb0fc4 100644 --- a/configs/components/rubygem-rubyzip.rb +++ b/configs/components/rubygem-rubyzip.rb @@ -6,8 +6,8 @@ ##### component 'rubygem-rubyzip' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '3.0.2' - pkg.sha256sum '30f75c0b631e23c0891453acbcc019bc1496cd44f4a3ade4ff76bc09a595cfa6' + pkg.version '3.2.2' + pkg.sha256sum 'c0ed99385f0625415c8f05bcae33fe649ed2952894a95ff8b08f26ca57ea5b3c' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-scanf.rb b/configs/components/rubygem-scanf.rb index 82346005..ad267161 100644 --- a/configs/components/rubygem-scanf.rb +++ b/configs/components/rubygem-scanf.rb @@ -6,7 +6,7 @@ component 'rubygem-scanf' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.0.0' - pkg.md5sum '6a48b02b5d7109331afa8bd9d55a802e' + pkg.sha256sum '533db7f7e5acafea1a145d6c5329cef667a58fbcb7d64379a808ff1199ee1b00' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-singleton.rb b/configs/components/rubygem-singleton.rb new file mode 100644 index 00000000..47dc8728 --- /dev/null +++ b/configs/components/rubygem-singleton.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/singleton +##### +component 'rubygem-singleton' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.3.0' + pkg.sha256sum '83ea1bca5f4aa34d00305ab842a7862ea5a8a11c73d362cb52379d94e9615778' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-sys-filesystem.rb b/configs/components/rubygem-sys-filesystem.rb index a7380432..5b63886f 100644 --- a/configs/components/rubygem-sys-filesystem.rb +++ b/configs/components/rubygem-sys-filesystem.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-sys-filesystem' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '1.5.3' - pkg.sha256sum '17b561d1be683c34bc53946461ea9d67012d8f395e7297db8c63b9018cb30ece' + pkg.version '1.5.4' + pkg.sha256sum 'a6101674a4d0e641b0f628753439091134e080ed84a3e794570aa2fb07872b45' + pkg.build_requires 'rubygem-ffi' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-terminal-table.rb b/configs/components/rubygem-terminal-table.rb index 884ee4b8..2a466811 100644 --- a/configs/components/rubygem-terminal-table.rb +++ b/configs/components/rubygem-terminal-table.rb @@ -7,6 +7,7 @@ ### Maintained by update_gems automation ### pkg.version '4.0.0' pkg.sha256sum 'f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2' + pkg.build_requires 'rubygem-unicode-display_width' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-text.rb b/configs/components/rubygem-text.rb index 487df677..aea9949c 100644 --- a/configs/components/rubygem-text.rb +++ b/configs/components/rubygem-text.rb @@ -6,7 +6,7 @@ component 'rubygem-text' do |pkg, settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.1' - pkg.md5sum '514c3d1db7a955fe793fc0cb149c164f' + pkg.sha256sum '2fbbbc82c1ce79c4195b13018a87cbb00d762bda39241bb3cdc32792759dd3f4' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-time.rb b/configs/components/rubygem-time.rb new file mode 100644 index 00000000..bb2fd13c --- /dev/null +++ b/configs/components/rubygem-time.rb @@ -0,0 +1,13 @@ +##### +# Component release information: +# https://rubygems.org/gems/time +##### +component 'rubygem-time' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.4.1' + pkg.sha256sum '035f360508a4a4dbabcbbcd3886566b9abd432de89136795d2ff7aec5bcdea61' + pkg.build_requires 'rubygem-date' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-timeout.rb b/configs/components/rubygem-timeout.rb new file mode 100644 index 00000000..1a7e57e8 --- /dev/null +++ b/configs/components/rubygem-timeout.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/timeout +##### +component 'rubygem-timeout' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '0.4.4' + pkg.sha256sum 'f0f6f970104b82427cd990680f539b6bbb8b1e55efa913a55c6492935e4e0edb' + ### 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 d336683a..e91a97e1 100644 --- a/configs/components/rubygem-unicode-display_width.rb +++ b/configs/components/rubygem-unicode-display_width.rb @@ -5,8 +5,9 @@ ##### component 'rubygem-unicode-display_width' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '3.1.5' - pkg.sha256sum 'bf566817855ee7ee3adcf7bace0d5906cb14401417db59193f8a5fcedf02dd4e' + pkg.version '3.2.0' + pkg.sha256sum '0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42' + pkg.build_requires 'rubygem-unicode-emoji' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-unicode-emoji.rb b/configs/components/rubygem-unicode-emoji.rb new file mode 100644 index 00000000..666401a1 --- /dev/null +++ b/configs/components/rubygem-unicode-emoji.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/unicode-emoji +##### +component 'rubygem-unicode-emoji' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '4.1.0' + pkg.sha256sum '4997d2d5df1ed4252f4830a9b6e86f932e2013fbff2182a9ce9ccabda4f325a5' + ### End automated maintenance section ### + + instance_eval File.read('configs/components/_base-rubygem.rb') +end diff --git a/configs/components/rubygem-uri.rb b/configs/components/rubygem-uri.rb new file mode 100644 index 00000000..e40f71a8 --- /dev/null +++ b/configs/components/rubygem-uri.rb @@ -0,0 +1,12 @@ +##### +# Component release information: +# https://rubygems.org/gems/uri +##### +component 'rubygem-uri' do |pkg, _settings, _platform| + ### Maintained by update_gems automation ### + pkg.version '1.1.1' + pkg.sha256sum '379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6' + ### 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 57d95414..728026b0 100644 --- a/configs/components/rubygem-webrick.rb +++ b/configs/components/rubygem-webrick.rb @@ -5,8 +5,8 @@ ##### component 'rubygem-webrick' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### - pkg.version '1.9.1' - pkg.sha256sum 'b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989' + pkg.version '1.9.2' + pkg.sha256sum 'beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-windows_error.rb b/configs/components/rubygem-windows_error.rb index dbcf2fbe..8a357318 100644 --- a/configs/components/rubygem-windows_error.rb +++ b/configs/components/rubygem-windows_error.rb @@ -6,7 +6,7 @@ component 'rubygem-windows_error' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '0.1.5' - pkg.md5sum 'cb1faeaed0e3b1e4d4ad4e7d1aef76c7' + pkg.sha256sum '59a827b74a9c7adc8f9d40782e8edc136806a239db79a68dd61d50b6e1d945a0' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-winrm-fs.rb b/configs/components/rubygem-winrm-fs.rb index 33c10baa..7670ec3d 100644 --- a/configs/components/rubygem-winrm-fs.rb +++ b/configs/components/rubygem-winrm-fs.rb @@ -6,7 +6,11 @@ component 'rubygem-winrm-fs' do |pkg, _settings, _platform| ### Maintained by update_gems automation ### pkg.version '1.3.5' - pkg.md5sum 'dcde27a3aff684b8277c069cd4b2efe7' + pkg.sha256sum '0d2cdd9e1fb6fc8d01f56a32dce41d98ae6eefb481937ed0e058faa0cd0c693d' + pkg.build_requires 'rubygem-erubi' + pkg.build_requires 'rubygem-logging' + pkg.build_requires 'rubygem-rubyzip' + pkg.build_requires 'rubygem-winrm' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/components/rubygem-winrm.rb b/configs/components/rubygem-winrm.rb index f4ce9d4b..cff84144 100644 --- a/configs/components/rubygem-winrm.rb +++ b/configs/components/rubygem-winrm.rb @@ -7,6 +7,15 @@ ### Maintained by update_gems automation ### pkg.version '2.3.9' pkg.sha256sum 'ef6b767c5772d06e186300b506ea5e65afb849904a551f8482a5cfc2a1be5d06' + pkg.build_requires 'rubygem-builder' + pkg.build_requires 'rubygem-erubi' + pkg.build_requires 'rubygem-gssapi' + pkg.build_requires 'rubygem-gyoku' + pkg.build_requires 'rubygem-httpclient' + pkg.build_requires 'rubygem-logging' + pkg.build_requires 'rubygem-nori' + pkg.build_requires 'rubygem-rexml' + pkg.build_requires 'rubygem-rubyntlm' ### End automated maintenance section ### instance_eval File.read('configs/components/_base-rubygem.rb') diff --git a/configs/projects/agent-runtime-main.rb b/configs/projects/agent-runtime-main.rb index 6409088c..48b5f21a 100644 --- a/configs/projects/agent-runtime-main.rb +++ b/configs/projects/agent-runtime-main.rb @@ -59,16 +59,25 @@ proj.component 'rubygem-ffi' proj.component 'rubygem-fiddle' proj.component 'rubygem-gettext' + proj.component 'rubygem-racc' proj.component 'rubygem-hiera-eyaml' proj.component 'rubygem-highline' + proj.component 'rubygem-reline' + proj.component 'rubygem-io-console' proj.component 'rubygem-hocon' proj.component 'rubygem-locale' proj.component 'rubygem-logger' proj.component 'rubygem-multi_json' proj.component 'rubygem-net-ftp' + proj.component 'rubygem-time' + proj.component 'rubygem-date' + proj.component 'rubygem-net-protocol' + proj.component 'rubygem-timeout' proj.component 'rubygem-net-ssh' proj.component 'rubygem-optimist' proj.component 'rubygem-prime' + proj.component 'rubygem-singleton' + proj.component 'rubygem-forwardable' proj.component 'rubygem-semantic_puppet' proj.component 'rubygem-scanf' proj.component 'rubygem-text' @@ -89,6 +98,7 @@ if platform.is_macos? proj.component 'readline' proj.component 'rubygem-CFPropertyList' + proj.component 'rubygem-nkf' end unless platform.is_aix? || platform.is_windows? diff --git a/configs/projects/openbolt-runtime.rb b/configs/projects/openbolt-runtime.rb index 902da666..2010d43c 100644 --- a/configs/projects/openbolt-runtime.rb +++ b/configs/projects/openbolt-runtime.rb @@ -135,7 +135,10 @@ proj.component 'rubygem-text' proj.component 'rubygem-locale' proj.component 'rubygem-gettext' + proj.component 'rubygem-racc' proj.component 'rubygem-prime' + proj.component 'rubygem-singleton' + proj.component 'rubygem-forwardable' proj.component 'rubygem-fast_gettext' proj.component 'rubygem-scanf' proj.component 'rubygem-semantic_puppet' @@ -145,19 +148,31 @@ # hiera-eyaml and its dependencies proj.component 'rubygem-highline' + proj.component 'rubygem-reline' + proj.component 'rubygem-io-console' proj.component 'rubygem-optimist' proj.component 'rubygem-hiera-eyaml' # faraday and its dependencies proj.component 'rubygem-faraday' + proj.component 'rubygem-json' proj.component 'rubygem-faraday-em_http' + proj.component 'rubygem-em-http-request' + proj.component 'rubygem-http_parser.rb' + proj.component 'rubygem-eventmachine' + proj.component 'rubygem-em-socksify' + proj.component 'rubygem-cookiejar' proj.component 'rubygem-faraday-em_synchrony' proj.component 'rubygem-faraday-excon' + proj.component 'rubygem-excon' proj.component 'rubygem-faraday-httpclient' proj.component 'rubygem-faraday-multipart' proj.component 'rubygem-faraday-net_http' + proj.component 'rubygem-net-http' + proj.component 'rubygem-uri' proj.component 'rubygem-faraday-net_http_persistent' proj.component 'rubygem-faraday-patron' + proj.component 'rubygem-patron' proj.component 'rubygem-faraday-rack' proj.component 'rubygem-faraday-retry' proj.component 'rubygem-faraday-follow_redirects' @@ -168,11 +183,14 @@ proj.component 'rubygem-aws-eventstream' proj.component 'rubygem-aws-partitions' proj.component 'rubygem-aws-sdk-core' + proj.component 'rubygem-bigdecimal' proj.component 'rubygem-aws-sdk-ec2' proj.component 'rubygem-aws-sigv4' proj.component 'rubygem-bindata' proj.component 'rubygem-builder' proj.component 'rubygem-CFPropertyList' + proj.component 'rubygem-rexml' + proj.component 'rubygem-nkf' proj.component 'rubygem-colored2' proj.component 'rubygem-concurrent-ruby' proj.component 'rubygem-connection_pool' @@ -185,6 +203,7 @@ proj.component 'rubygem-gyoku' proj.component 'rubygem-hiera' proj.component 'rubygem-httpclient' + proj.component 'rubygem-mutex_m' proj.component 'rubygem-jmespath' proj.component 'rubygem-jwt' proj.component 'rubygem-little-plugger' @@ -196,6 +215,10 @@ proj.component 'rubygem-multipart-post' proj.component 'rubygem-net-http-persistent' proj.component 'rubygem-net-ftp' + proj.component 'rubygem-time' + proj.component 'rubygem-date' + proj.component 'rubygem-net-protocol' + proj.component 'rubygem-timeout' proj.component 'rubygem-net-scp' proj.component 'rubygem-net-ssh' proj.component 'rubygem-net-ssh-krb' @@ -204,6 +227,8 @@ proj.component 'rubygem-paint' proj.component 'rubygem-public_suffix' proj.component 'rubygem-openvox' + proj.component 'rubygem-ostruct' + proj.component 'rubygem-benchmark' proj.component 'rubygem-getoptlong' proj.component 'rubygem-openfact' proj.component 'rubygem-puppet_forge' @@ -219,6 +244,7 @@ proj.component 'rubygem-terminal-table' proj.component 'rubygem-thor' proj.component 'rubygem-unicode-display_width' + proj.component 'rubygem-unicode-emoji' proj.component 'rubygem-webrick' proj.component 'rubygem-yard'