Skip to content

Conversation

@bastelfreak
Copy link
Contributor

@bastelfreak bastelfreak commented Feb 6, 2026

latest builds of openvox-agent have failing pipelines for the acceptance tests. This PR is for debugging purposes only. I removed some tests to speedup the overall execution time. We see the following error on all platforms:

      Debug: Facter: Loading custom facts
      Debug: Executing: '/opt/puppetlabs/puppet/bin/gem list --local'
      Error: Could not prefetch package provider 'puppetserver_gem': Execution of '/opt/puppetlabs/puppet/bin/gem list --local' returned 1: ERROR:  Loading command: list (Gem::MissingSpecError)
      	Gem::MissingSpecError
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1466:in `rescue in block in activate_dependencies'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1463:in `block in activate_dependencies'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `each'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `activate_dependencies'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1434:in `activate'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `block in gem'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `synchronize'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `gem'
      	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:74:in `require'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/request.rb:3:in `<top (required)>'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `require_relative'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `<top (required)>'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `require_relative'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `<top (required)>'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `require_relative'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `<top (required)>'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `require_relative'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `<top (required)>'
      	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
      	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:236:in `load_and_instantiate'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:137:in `[]'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:209:in `find_command'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:251:in `invoke_command'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
      	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'
      ERROR:  While executing gem ... (NoMethodError)
          undefined method `deprecated?' for nil:NilClass
      
          cmd.deprecation_warning if cmd.deprecated?
                                        ^^^^^^^^^^^^
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
      	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
      	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/execution.rb:312:in `execute'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider.rb:108:in `execute'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/gem.rb:87:in `execute_gem_command'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/puppetserver_gem.rb:166:in `execute_rubygems_list_command'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/puppetserver_gem.rb:59:in `gemlist'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package/gem.rb:99:in `instances'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package_targetable.rb:33:in `block in prefetch'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package_targetable.rb:32:in `each'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package_targetable.rb:32:in `prefetch'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:381:in `prefetch'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:259:in `prefetch_if_necessary'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:115:in `block in evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:122:in `traverse'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:177:in `evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:241:in `block (2 levels) in apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:520:in `block in thinmark'
      /opt/puppetlabs/puppet/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:519:in `thinmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:240:in `block in apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:167:in `with_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:153:in `as_logging_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:239:in `apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:289:in `block (2 levels) in apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:520:in `block in thinmark'
      /opt/puppetlabs/puppet/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:519:in `thinmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:288:in `block in apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:190:in `block in benchmark'
      /opt/puppetlabs/puppet/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:189:in `benchmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:287:in `apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:505:in `run_internal'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:342:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:366:in `apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:279:in `block in main'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:292:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:218:in `main'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/apply.rb:186:in `run_command'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:423:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:712:in `exit_on_fail'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:423:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:145:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:79:in `execute'
      /opt/puppetlabs/puppet/bin/puppet:6:in `<main>'
      Warning: /Package[world_airports]: Skipping because provider prefetch failed

@bastelfreak
Copy link
Contributor Author

bastelfreak commented Feb 6, 2026

I added some debug statements in 36247f9. That should allow us to reproduce it locally with the correct environment parameters. The package builds happens in https://github.com/OpenVoxProject/openvox/actions/runs/21750529041. And the new acceptance test pipeline runs in https://github.com/OpenVoxProject/openvox/actions/runs/21750761522/job/62747866956

@bastelfreak
Copy link
Contributor Author

from the latest run:

      Debug: puppetserver_gem provider: command_options: ["list", "--local"]
      Debug: puppetserver_gem provider: gem_env: {"GEM_HOME"=>"/opt/puppetlabs/server/data/puppetserver/jruby-gems", "GEM_PATH"=>"/opt/puppetlabs/server/data/puppetserver/jruby-gems:/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems:/opt/puppetlabs/puppet/lib/ruby/vendor_gems", "GEM_SPEC_CACHE"=>"/tmp/6452"}
      Debug: Executing: '/opt/puppetlabs/puppet/bin/gem list --local'
      Error: Could not prefetch package provider 'puppetserver_gem': Execution of '/opt/puppetlabs/puppet/bin/gem list --local' returned 1: ERROR:  Loading command: list (Gem::MissingSpecError)

@bastelfreak
Copy link
Contributor Author

AHA!

root@student1 ~ # rpm -qa | grep openvox
openvox8-release-1-1.el9.noarch
openvox-agent-8.24.2.20.g9c590f254-1.el9.x86_64
openvox-server-8.12.1-1.el9.noarch
root@student1 ~ # GEM_HOME=/opt/puppetlabs/server/data/puppetserver/jruby-gems GEM_PATH="/opt/puppetlabs/server/data/puppetserver/jruby-gems:/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems:/opt/puppetlabs/puppet/lib/ruby/vendor_gems" GEM_SPEC_CACHE=/tmp/6452 /opt/puppetlabs/puppet/bin/gem list --local
ERROR:  Loading command: list (Gem::MissingSpecError)
	Gem::MissingSpecError
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1466:in `rescue in block in activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1463:in `block in activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `each'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1434:in `activate'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `block in gem'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `synchronize'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `gem'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:74:in `require'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/request.rb:3:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `<top (required)>'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:236:in `load_and_instantiate'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:137:in `[]'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:209:in `find_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:251:in `invoke_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'
ERROR:  While executing gem ... (NoMethodError)
    undefined method `deprecated?' for nil:NilClass

    cmd.deprecation_warning if cmd.deprecated?
                                  ^^^^^^^^^^^^
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'

Not that this helps me a lot right now, but it at least enables us to reproduce it locally.

@bastelfreak
Copy link
Contributor Author

A bit more verbose:

# GEM_HOME=/opt/puppetlabs/server/data/puppetserver/jruby-gems GEM_PATH="/opt/puppetlabs/server/data/puppetserver/jruby-gems:/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems:/opt/puppetlabs/puppet/lib/ruby/vendor_gems" GEM_SPEC_CACHE=/tmp/6452 /opt/puppetlabs/puppet/bin/gem list --local --backtrace --debug --verbose --details
NOTE:  Debugging mode prints all exceptions even when rescued
Exception `Gem::MissingSpecError' at /opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/dependency.rb:315 - Gem::MissingSpecError
Exception `Gem::MissingSpecError' at /opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1466 - Gem::MissingSpecError
Exception `Gem::MissingSpecError' at <internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:77 - Gem::MissingSpecError
Exception `Gem::MissingSpecError' at <internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:163 - Gem::MissingSpecError
Exception `Gem::MissingSpecError' at <internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:163 - Gem::MissingSpecError
Exception `NameError' at /opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:240 - uninitialized constant Gem::Commands::ListCommand
ERROR:  Loading command: list (Gem::MissingSpecError)
	Gem::MissingSpecError
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1466:in `rescue in block in activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1463:in `block in activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `each'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1452:in `activate_dependencies'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/specification.rb:1434:in `activate'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `block in gem'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `synchronize'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in `gem'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:74:in `require'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/request.rb:3:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/remote_fetcher.rb:4:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/spec_fetcher.rb:3:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/query_utils.rb:4:in `<top (required)>'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `require_relative'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/commands/list_command.rb:4:in `<top (required)>'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
	<internal:/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:236:in `load_and_instantiate'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:137:in `[]'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:209:in `find_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:251:in `invoke_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'
Exception `NoMethodError' at /opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:252 - undefined method `deprecated?' for nil:NilClass
ERROR:  While executing gem ... (NoMethodError)
    undefined method `deprecated?' for nil:NilClass

    cmd.deprecation_warning if cmd.deprecated?
                                  ^^^^^^^^^^^^
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
	/opt/puppetlabs/puppet/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
	/opt/puppetlabs/puppet/bin/gem:10:in `<main>'

@bastelfreak
Copy link
Contributor Author

The different snapshot builds with rpm/deb packages are available at https://artifacts.voxpupuli.org/openvox-agent/.

We assume that the ruby 3.2.9->3.2.10 upgrade in puppet-runtime
2026.01.30.1 broke our builds.
@bastelfreak
Copy link
Contributor Author

@sebastianrakel and I did some debugging. We downgraded puppet-runtime in 0f493b1:

diff --git a/packaging/configs/components/puppet-runtime.json b/packaging/configs/components/puppet-runtime.json
index 27d523c6de..7210090a27 100644
--- a/packaging/configs/components/puppet-runtime.json
+++ b/packaging/configs/components/puppet-runtime.json
@@ -1 +1 @@
-{"location":"https://s3.osuosl.org/openvox-artifacts/puppet-runtime/2026.01.30.1/","version":"2026.01.30.1"}
+{"location":"https://s3.osuosl.org/openvox-artifacts/puppet-runtime/2026.01.29.2/","version":"2026.01.29.2"}

This downgrades Ruby 3.2.10 to the last known working version, 3.2.9:

git diff 2026.01.30.1..2026.01.29.2 -- configs
diff --git a/configs/components/curl.rb b/configs/components/curl.rb
index 5c6e2d4..da18188 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.18.0'
-  pkg.sha256sum 'e9274a5f8ab5271c0e0e6762d2fce194d5f98acc568e4ce816845b2dcc0cf88f'
+  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"
diff --git a/configs/components/dmidecode.rb b/configs/components/dmidecode.rb
index 0556828..c55c1c2 100644
--- a/configs/components/dmidecode.rb
+++ b/configs/components/dmidecode.rb
@@ -2,11 +2,11 @@
 # Component release information: https://github.com/mirror/dmidecode/tags
 #####
 component 'dmidecode' do |pkg, settings, platform|
-  pkg.version '3.7'
-  pkg.sha256sum '2c3aed12c85a1e6a9410d406d5e417c455466dc1bc7c89278bb32cf7cad91e8a'
+  pkg.version '3.6'
+  pkg.sha256sum 'e40c65f3ec3dafe31ad8349a4ef1a97122d38f65004ed66575e1a8d575dd8bae'

   pkg.apply_patch 'resources/patches/dmidecode/dmidecode-install-to-bin.patch'
-  pkg.url "https://download-mirror.savannah.gnu.org/releases/dmidecode/dmidecode-#{pkg.get_version}.tar.xz"
+  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]
diff --git a/configs/components/openssl-3.0.rb b/configs/components/openssl-3.0.rb
index e3dd619..56111e3 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.19'
-  pkg.sha256sum 'fa5a4143b8aae18be53ef2f3caf29a2e0747430b8bc74d32d88335b94ab63072'
+  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"

diff --git a/configs/components/ruby-3.2.rb b/configs/components/ruby-3.2.rb
index afe4682..273db78 100644
--- a/configs/components/ruby-3.2.rb
+++ b/configs/components/ruby-3.2.rb
@@ -6,8 +6,8 @@
 #   The file name of the ruby component must match the ruby_version
 #####
 component 'ruby-3.2' do |pkg, settings, platform|
-  pkg.version '3.2.10'
-  pkg.sha256sum '880acb05e08da8c559c56a13e512bae1b472da67c72ebb750c765f9c2134e689'
+  pkg.version '3.2.9'
+  pkg.sha256sum 'abbad98db9aeb152773b0d35868e50003b8c467f3d06152577c4dfed9d88ed2a'

   ruby_dir = settings[:ruby_dir]
   ruby_bindir = settings[:ruby_bindir]

But the acceptance test still fails in https://github.com/OpenVoxProject/openvox/actions/runs/21754287120/job/62760179025

      Debug: puppetserver_gem provider: command_options: ["list", "--local"]
      Debug: puppetserver_gem provider: gem_env: {"GEM_HOME"=>"/opt/puppetlabs/server/data/puppetserver/jruby-gems", "GEM_PATH"=>"/opt/puppetlabs/server/data/puppetserver/jruby-gems:/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems:/opt/puppetlabs/puppet/lib/ruby/vendor_gems", "GEM_SPEC_CACHE"=>"/tmp/6344"}
      Debug: Executing: '/opt/puppetlabs/puppet/bin/gem list --local'
      Error: Could not prefetch package provider 'puppetserver_gem': Execution of '/opt/puppetlabs/puppet/bin/gem list --local' returned 1: ERROR:  Loading command: list (Gem::MissingSpecError)

@bastelfreak
Copy link
Contributor Author

from puppet-runtime:

$ git show 04703060
commit 047030607d7c768825de674b0c368f5043af0c3a
Author: nmburgan <13688219+nmburgan@users.noreply.github.com>
Date:   Sun Dec 14 14:45:41 2025 -0800

    Remove gemspec for default gems we are updating

    When we are providing a newer version of a default gem than the one that Ruby ships with, in order to avoid warnings about multiple gem versions being available, we have to remove the gemspec for the older version. Generally, we don't need to ship our own version of a default gem unless it has a CVE and Ruby has not yet fixed it.

diff --git a/configs/components/_base-rubygem.rb b/configs/components/_base-rubygem.rb
index 30494d7..663aa7a 100644
--- a/configs/components/_base-rubygem.rb
+++ b/configs/components/_base-rubygem.rb
@@ -46,4 +46,10 @@ pkg.install do
            else
              "#{settings[:gem_install]} #{name}-#{version}.gem #{gem_install_options}"
            end
+  # If we are installing a newer version of a default gem, we need to remove the existing
+  # specification file so that we don't get warnings.
+  steps << "rm -f #{settings[:gem_home]}/specifications/default/#{name}-*.gemspec"
+  # This dir is usually empty and only there for compatilibity reasons for things requiring
+  # a directory corresponding to a gemspec. Remove it to avoid confusion.
+  steps << "rm -f #{settings[:gem_home]}/gems/#{name}-*[!#{version}]"
 end

this seems related to our issue

@bastelfreak
Copy link
Contributor Author

We rebuild puppet-runtime and removed the uri gem. We explicitly managed it in 03fb02fd0bcdcca5224c4c98d6086afda35ea0bc:
OpenVoxProject/puppet-runtime@03fb02f

I assume the rm in 047030607d7c768825de674b0c368f5043af0c3a / OpenVoxProject/puppet-runtime@0470306 breaks the uri gem if it exists twice (because it's also a std gem). We fixed this in OpenVoxProject/puppet-runtime#111. the new tag 2026.02.06.1 contains that change. I restarted the CI for the acceptance2 branch and the previously failing test passes now: https://github.com/OpenVoxProject/openvox/actions/runs/21763584495

I'm now promoting puppet-runtime 2026.02.06.1 to main: #313. Afterwards we can build new packages and run the full acceptance test pipeline again.


I hope this roughly explains is issue.

tl;dr: puppet-runtime doesn't handle updated std gems very well (https://stdgems.org/).

ToDo: Update configs/components/_base-rubygem.rb in puppet-runtime to warn/block updates to stdgems or delete the old version properly (also talk to @rwaffen, because he has the same challenge in voxbox)

@bastelfreak
Copy link
Contributor Author

proof that it works now:

root@student2 ~ # GEM_HOME=/opt/puppetlabs/server/data/puppetserver/jruby-gems GEM_PATH="/opt/puppetlabs/server/data/puppetserver/jruby-gems:/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems:/opt/puppetlabs/puppet/lib/ruby/vendor_gems" GEM_SPEC_CACHE=/tmp/6452 /opt/puppetlabs/puppet/bin/gem list --local --backtrace --debug --verbose --details
NOTE:  Debugging mode prints all exceptions even when rescued

*** LOCAL GEMS ***

abbrev (0.1.1)
    Author: Akinori MUSHA
    Homepage: https://github.com/ruby/abbrev
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Calculates a set of unique abbreviations for a given set of strings

base64 (0.1.1)
    Author: Yusuke Endoh
    Homepage: https://github.com/ruby/base64
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Support for encoding and decoding binary data using a Base64
    representation.

benchmark (0.2.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/benchmark
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    a performance benchmarking library

bigdecimal (3.1.3)
    Authors: Kenta Murata, Zachary Scott, Shigeo Kobayashi
    Homepage: https://github.com/ruby/bigdecimal
    Licenses: Ruby, bsd-2-clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Arbitrary-precision decimal floating-point number library.

bundler (2.4.19)
    Authors: André Arko, Samuel Giddins, Colby Swandale, Hiroshi
    Shibata, David Rodríguez, Grey Baker, Stephanie Morillo, Chris
    Morris, James Wen, Tim Moore, André Medeiros, Jessica Lynn Suttles,
    Terence Lee, Carl Lerche, Yehuda Katz
    Homepage: https://bundler.io
    License: MIT
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    The best way to manage your application's dependencies

cgi (0.3.7)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/cgi
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Support for the Common Gateway Interface protocol.

concurrent-ruby (1.3.5)
    Authors: Jerry D'Antonio, Petr Chalupa, The Ruby Concurrency Team
    Homepage: http://www.concurrent-ruby.com
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Modern concurrency tools for Ruby. Inspired by Erlang, Clojure,
    Scala, Haskell, F#, C#, Java, and classic concurrency patterns.

csv (3.2.6)
    Authors: James Edward Gray II, Kouhei Sutou
    Homepage: https://github.com/ruby/csv
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    CSV Reading and Writing

date (3.3.3)
    Author: Tadayoshi Funaba
    Homepage: https://github.com/ruby/date
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    A subclass of Object includes Comparable module for handling dates.

deep_merge (1.2.2)
    Author: Steve Midgley
    Homepage: https://github.com/danielsdeleo/deep_merge
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Merge Deeply Nested Hashes

delegate (0.3.0)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/delegate
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides three abilities to delegate method calls to an object.

did_you_mean (1.6.3)
    Author: Yuki Nishijima
    Homepage: https://github.com/ruby/did_you_mean
    License: MIT
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    "Did you mean?" experience in Ruby

digest (3.1.1)
    Author: Akinori MUSHA
    Homepage: https://github.com/ruby/digest
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides a framework for message digest libraries.

drb (2.1.1)
    Author: Masatoshi SEKI
    Homepage: https://github.com/ruby/drb
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Distributed object system for Ruby

english (0.7.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/English
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Require 'English.rb' to reference global variables with less cryptic
    names.

erb (4.0.2)
    Authors: Masatoshi SEKI, Takashi Kokubun
    Homepage: https://github.com/ruby/erb
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    An easy to use but powerful templating system for Ruby.

error_highlight (0.5.1)
    Author: Yusuke Endoh
    Homepage: https://github.com/ruby/error_highlight
    License: MIT
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Shows a one-line code snippet with an underline in the error
    backtrace

erubi (1.13.1)
    Authors: Jeremy Evans, kuwata-lab.com
    Homepage: https://github.com/jeremyevans/erubi
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Small ERB Implementation

etc (1.4.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/etc
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides access to information typically stored in UNIX /etc
    directory.

fast_gettext (2.4.0)
    Author: Michael Grosser
    Homepage: https://github.com/grosser/fast_gettext
    Licenses: MIT, Ruby
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    A simple, fast, memory-efficient and threadsafe implementation of
    GetText

fcntl (1.0.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/fcntl
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Loads constants defined in the OS fcntl.h C header file

fiddle (1.1.1)
    Authors: Aaron Patterson, SHIBATA Hiroshi
    Homepage: https://github.com/ruby/fiddle
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    A libffi wrapper for Ruby.

fileutils (1.7.0)
    Author: Minero Aoki
    Homepage: https://github.com/ruby/fileutils
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Several file utility methods for copying, moving, removing, etc.

find (0.1.1)
    Author: Kazuki Tsujimoto
    Homepage: https://github.com/ruby/find
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    This module supports top-down traversal of a set of file paths.

forwardable (1.3.3)
    Author: Keiju ISHITSUKA
    Homepage: https://github.com/ruby/forwardable
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides delegation of specified methods to a designated object.

getoptlong (0.2.0)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/getoptlong
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    GetoptLong for Ruby

gettext (3.5.1)
    Authors: Kouhei Sutou, Masao Mutoh
    Homepage: https://ruby-gettext.github.io/
    Licenses: Ruby, LGPL-3.0+
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Gettext is a pure Ruby libary and tools to localize messages.

hiera-eyaml (4.3.0)
    Author: Vox Pupuli
    Homepage: https://github.com/voxpupuli/hiera-eyaml/
    License: MIT
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    OpenSSL Encryption backend for Hiera

highline (3.1.2)
    Author: James Edward Gray II
    Homepage: https://github.com/JEG2/highline
    License: Ruby
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    HighLine is a high-level command-line IO library.

hocon (1.4.0)
    Authors: Chris Price, Wayne Warren, Preben Ingvaldsen, Joe
    Pinsonault, Kevin Corcoran, Jane Lu
    Homepage: https://github.com/puppetlabs/ruby-hocon
    License: Apache License, v2
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    HOCON Config Library

io-console (0.6.0)
    Author: Nobu Nakada
    Homepage: https://github.com/ruby/io-console
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Console interface

io-nonblock (0.2.0)
    Author: Nobu Nakada
    Homepage: https://github.com/ruby/io-nonblock
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Enables non-blocking mode with IO class

io-wait (0.3.0)
    Authors: Nobu Nakada, Charles Oliver Nutter
    Homepage: https://github.com/ruby/io-wait
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Waits until IO is readable or writable without blocking.

ipaddr (1.2.5)
    Authors: Akinori MUSHA, Hajimu UMEMOTO
    Homepage: https://github.com/ruby/ipaddr
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    A class to manipulate an IP address in ruby

irb (1.6.2)
    Authors: aycabta, Keiju ISHITSUKA
    Homepage: https://github.com/ruby/irb
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Interactive Ruby command-line tool for REPL (Read Eval Print Loop).

json (2.6.3)
    Author: Florian Frank
    Homepage: http://flori.github.com/json
    License: Ruby
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    JSON Implementation for Ruby

locale (2.1.4)
    Authors: Kouhei Sutou, Masao Mutoh
    Homepage: https://github.com/ruby-gettext/locale
    Licenses: Ruby, LGPLv3+
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Ruby-Locale is the pure ruby library which provides basic APIs for
    localization.

logger (1.5.3)
    Authors: Naotoshi Seo, SHIBATA Hiroshi
    Homepage: https://github.com/ruby/logger
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides a simple logging utility for outputting messages.

matrix (0.4.3)
    Author: Marc-Andre Lafortune
    Homepage: https://github.com/ruby/matrix
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    An implementation of Matrix and Vector classes.

minitest (5.26.2)
    Author: Ryan Davis
    Homepage: https://github.com/minitest/minitest
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    minitest provides a complete suite of testing facilities supporting
    TDD, BDD, mocking, and benchmarking

multi_json (1.18.0)
    Authors: Michael Bleigh, Josh Kalderimis, Erik Berlin, Pavel
    Pravosud
    Homepage: https://github.com/sferik/multi_json
    License: MIT
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    A common interface to multiple JSON libraries.

mutex_m (0.1.2)
    Author: Keiju ISHITSUKA
    Homepage: https://github.com/ruby/mutex_m
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Mixin to extend objects to be handled like a Mutex.

net-ftp (0.3.9)
    Author: Shugo Maeda
    Homepage: https://github.com/ruby/net-ftp
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Support for the File Transfer Protocol.

net-http (0.4.1)
    Author: NARUSE, Yui
    Homepage: https://github.com/ruby/net-http
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    HTTP client api for Ruby.

net-imap (0.5.12)
    Authors: Shugo Maeda, nicholas a. evans
    Homepage: https://github.com/ruby/net-imap
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Ruby client api for Internet Message Access Protocol

net-pop (0.1.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/net-pop
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Ruby client library for POP3.

net-protocol (0.2.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/net-protocol
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    The abstract interface for net-* client.

net-smtp (0.5.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/net-smtp
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Simple Mail Transfer Protocol client library for Ruby.

nkf (0.1.2)
    Author: NARUSE Yui
    Homepage: https://github.com/ruby/nkf
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Ruby extension for Network Kanji Filter

observer (0.1.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/observer
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Implementation of the Observer object-oriented design pattern.

open-uri (0.3.0)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/open-uri
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.

open3 (0.1.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/open3
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Popen, but with stderr, too

openssl (3.1.0)
    Authors: Martin Bosslet, SHIBATA Hiroshi, Zachary Scott, Kazuki
    Yamaguchi
    Homepage: https://github.com/ruby/openssl
    License: Ruby
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    OpenSSL provides SSL, TLS and general purpose cryptography.

openvoxserver-ca (3.0.0)
    Author: OpenVox Project
    Homepage: https://github.com/OpenVoxProject/openvoxserver-ca/
    License: Apache-2.0
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    A simple CLI tool for interacting with OpenVox Server's Certificate
    Authority

optimist (3.2.1)
    Authors: William Morgan, Keenan Brock, Jason Frey
    Homepage: http://manageiq.github.io/optimist/
    License: MIT
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    Optimist is a commandline option parser for Ruby that just gets out
    of your way.

optparse (0.3.1)
    Author: Nobu Nakada
    Homepage: https://github.com/ruby/optparse
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    OptionParser is a class for command-line option analysis.

ostruct (0.5.5)
    Author: Marc-Andre Lafortune
    Homepage: https://github.com/ruby/ostruct
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Class to build custom data structures, similar to a Hash.

pathname (0.2.1)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/pathname
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Representation of the name of a file or directory on the filesystem

power_assert (2.0.5)
    Author: Kazuki Tsujimoto
    Homepage: https://github.com/ruby/power_assert
    Licenses: BSD-2-Clause, Ruby
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Power Assert for Ruby

pp (0.4.0)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/pp
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides a PrettyPrinter for Ruby objects

prettyprint (0.1.1)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/prettyprint
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Implements a pretty printing algorithm for readable structure.

prime (0.1.4)
    Author: Marc-Andre Lafortune
    Homepage: https://github.com/ruby/prime
    Licenses: Ruby, BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Prime numbers and factorization library.

pstore (0.1.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/pstore
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Transactional File Storage for Ruby Objects

psych (5.0.1)
    Authors: Aaron Patterson, SHIBATA Hiroshi, Charles Oliver Nutter
    Homepage: https://github.com/ruby/psych
    License: MIT
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Psych is a YAML parser and emitter

puppet-resource_api (1.9.0)
    Author: David Schmitt
    Homepage: https://github.com/puppetlabs/puppet-resource_api
    License: Apache-2.0
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    This library provides a simple way to write new native resources for
    puppet.

racc (1.6.2)
    Authors: Minero Aoki, Aaron Patterson
    Homepage: https://github.com/ruby/racc
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Racc is a LALR(1) parser generator

rake (13.3.1)
    Authors: Hiroshi SHIBATA, Eric Hodel, Jim Weirich
    Homepage: https://github.com/ruby/rake
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Rake is a Make-like program implemented in Ruby

rdoc (6.5.1.1)
    Authors: Eric Hodel, Dave Thomas, Phil Hagelberg, Tony Strauss,
    Zachary Scott, Hiroshi SHIBATA, ITOYANAGI Sakura
    Homepage: https://ruby.github.io/rdoc
    License: Ruby
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    RDoc produces HTML and command-line documentation for Ruby projects

readline (0.0.3)
    Author: aycabta
    Homepage: https://github.com/ruby/readline
    License: Ruby
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Loader for "readline".

readline-ext (0.1.5)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/readline-ext
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides an interface for GNU Readline and Edit Line (libedit).

reline (0.3.2)
    Author: aycabta
    Homepage: https://github.com/ruby/reline
    License: Ruby
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Alternative GNU Readline or Editline implementation by pure Ruby.

resolv (0.2.3)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/resolv
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Thread-aware DNS resolver library in Ruby.

resolv-replace (0.1.1)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/resolv-replace
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Replace Socket DNS with Resolv.

rexml (3.4.4)
    Author: Kouhei Sutou
    Homepage: https://github.com/ruby/rexml
    License: BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    An XML toolkit for Ruby

rinda (0.1.1)
    Author: Masatoshi SEKI
    Homepage: https://github.com/ruby/rinda
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    The Linda distributed computing paradigm in Ruby.

rss (0.3.1)
    Author: Kouhei Sutou
    Homepage: https://github.com/ruby/rss
    License: BSD-2-Clause
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Family of libraries that support various formats of XML "feeds".

ruby2_keywords (0.0.5)
    Author: Nobuyoshi Nakada
    Homepage: https://github.com/ruby/ruby2_keywords
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Shim library for Module#ruby2_keywords

scanf (1.0.0)
    Author: David Alan Black
    Homepage: https://github.com/ruby/scanf
    License: BSD-2-Clause
    Installed at: /opt/puppetlabs/puppet/lib/ruby/vendor_gems

    scanf is an implementation of the C function scanf(3).

securerandom (0.2.2)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/securerandom
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Interface for secure random number generator.

semantic_puppet (1.1.1)
    Author: Puppet Labs
    Homepage: https://github.com/puppetlabs/semantic_puppet
    License: Apache-2.0
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    Useful tools for working with Semantic Versions.

set (1.0.3)
    Author: Akinori MUSHA
    Homepage: https://github.com/ruby/set
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides a class to deal with collections of unordered, unique
    values

shellwords (0.1.0)
    Author: Akinori MUSHA
    Homepage: https://github.com/ruby/shellwords
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Manipulates strings with word parsing rules of UNIX Bourne shell.

singleton (0.1.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/singleton
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    The Singleton module implements the Singleton pattern.

stringio (3.0.4)
    Authors: Nobu Nakada, Charles Oliver Nutter
    Homepage: https://github.com/ruby/stringio
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Pseudo IO on String

strscan (3.0.7)
    Authors: Minero Aoki, Sutou Kouhei, Charles Oliver Nutter
    Homepage: https://github.com/ruby/strscan
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Provides lexical scanning operations on a String.

syntax_suggest (1.1.0)
    Author: schneems
    Homepage: https://github.com/ruby/syntax_suggest.git
    License: MIT
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Find syntax errors in your source in a snap

syslog (0.1.1)
    Author: Akinori MUSHA
    Homepage: https://github.com/ruby/syslog
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Ruby interface for the POSIX system logging facility.

tempfile (0.1.3)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/tempfile
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    A utility class for managing temporary files.

test-unit (3.7.3)
    Authors: Kouhei Sutou, Haruka Yoshihara
    Homepage: https://test-unit.github.io/
    Licenses: Ruby, BSDL, PSFL
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    An xUnit family unit testing framework for Ruby.

text (1.3.1)
    Authors: Paul Battley, Michael Neumann, Tim Fletcher
    Homepage: http://github.com/threedaymonk/text
    License: MIT
    Installed at: /opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems

    A collection of text algorithms

time (0.2.2)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/time
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Extends the Time class with methods for parsing and conversion.

timeout (0.3.1)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/timeout
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Auto-terminate potentially long-running operations in Ruby.

tmpdir (0.1.3)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/tmpdir
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Extends the Dir class to manage the OS temporary file path.

tsort (0.1.1)
    Author: Tanaka Akira
    Homepage: https://github.com/ruby/tsort
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Topological sorting using Tarjan's algorithm

un (0.2.1)
    Author: WATANABE Hirofumi
    Homepage: https://github.com/ruby/un
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Utilities to replace common UNIX commands

uri (0.12.5)
    Author: Akira Yamada
    Homepage: https://github.com/ruby/uri
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    URI is a module providing classes to handle Uniform Resource
    Identifiers

weakref (0.1.2)
    Author: Yukihiro Matsumoto
    Homepage: https://github.com/ruby/weakref
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Allows a referenced object to be garbage-collected.

yaml (0.2.1)
    Authors: Aaron Patterson, SHIBATA Hiroshi
    Homepage: https://github.com/ruby/yaml
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    YAML Ain't Markup Language

zlib (3.0.0)
    Authors: Yukihiro Matsumoto, UENO Katsuhiro
    Homepage: https://github.com/ruby/zlib
    Licenses: Ruby, BSD-2-Clause
    Installed at (default): /opt/puppetlabs/puppet/lib/ruby/gems/3.2.0

    Ruby interface for the zlib compression/decompression library
root@student2 ~ # dnf info openvox-agent
Last metadata expiration check: 0:00:06 ago on Fr 06 Feb 2026 22:06:48 CET.
Installed Packages
Name         : openvox-agent
Version      : 8.24.2.26.gba3eed31c
Release      : 1.el9
Architecture : x86_64
Size         : 84 M
Source       : openvox-agent-8.24.2.26.gba3eed31c-1.el9.src.rpm
Repository   : @System
From repo    : @commandline
Summary      : The OpenVox Agent package contains all of the elements needed to run the agent, including ruby and openfact.
URL          : https://voxpupuli.org
License      : See components
Description  : The OpenVox Agent package contains all of the elements needed to run the agent, including ruby and openfact.
             :
             : Contains the following components:
             : cleanup
             : execution_wrapper
             : module-puppetlabs-augeas_core v1.5.0
             : module-puppetlabs-cron_core v1.3.0
             : module-puppetlabs-host_core v1.3.0
             : module-puppetlabs-mount_core v1.3.0
             : module-puppetlabs-scheduled_task v3.2.0
             : module-puppetlabs-selinux_core v1.4.0
             : module-puppetlabs-sshkeys_core v2.5.0
             : module-puppetlabs-yumrepo_core v2.1.0
             : module-puppetlabs-zfs_core v1.6.1
             : module-puppetlabs-zone_core v1.2.0
             : openfact 5.2.1
             : puppet 8.24.2
             : puppet-resource_api 1.9.0
             : puppet-runtime 2026.02.06.1
             : shellpath 2023-02-15
             : wrapper-script

root@student2 ~ #

@bastelfreak bastelfreak closed this Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant