Description of problem: puppet -help /usr/share/ruby/vendor_ruby/puppet/defaults.rb:465: warning: duplicated key at line 466 ignored: :queue_type /usr/share/ruby/vendor_ruby/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb:42:in `<top (required)>': uninitialized constant Syck (NameError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/ruby/vendor_ruby/puppet/vendor/safe_yaml/lib/safe_yaml.rb:197:in `<module:YAML>' from /usr/share/ruby/vendor_ruby/puppet/vendor/safe_yaml/lib/safe_yaml.rb:132:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/ruby/vendor_ruby/puppet/vendor/require_vendored.rb:4:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/ruby/vendor_ruby/puppet/vendor.rb:40:in `require_libs' from /usr/share/ruby/vendor_ruby/puppet/vendor.rb:53:in `load_vendored' from /usr/share/ruby/vendor_ruby/puppet.rb:172:in `<module:Puppet>' from /usr/share/ruby/vendor_ruby/puppet.rb:29:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require' from /usr/bin/puppet:7:in `<main>' Version-Release number of selected component (if applicable): puppet-3.7.1-3.fc22.noarch How reproducible: Run puppet --help
Looks like we need to require rubygem-syck? Although that doesn't fix it. It also looks like we have some more bundled libraries: ls lib/puppet/vendor: load_pathspec.rb load_safe_yaml.rb pathspec rgen safe_yaml_patches.rb load_rgen.rb load_semantic.rb require_vendored.rb safe_yaml semantic
hacking out safe_yaml and using rubygem-safe_yaml looks promising so far.
Thanks Orion! By unbundling safe_yaml and adding reqs on rubygem-syck & rubygem-safe_yaml, puppet works fine.
How does this seem? diff --git a/puppet.spec b/puppet.spec index 359adef..c55cda2 100644 --- a/puppet.spec +++ b/puppet.spec @@ -19,7 +19,7 @@ Name: puppet Version: 3.7.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A network tool for managing many disparate systems License: ASL 2.0 URL: http://puppetlabs.com @@ -47,6 +47,7 @@ Requires: ruby(release) Requires: ruby(shadow) Requires: rubygem(json) +Requires: rubygem(safe_yaml) # Prevents jruby from being pulled in by dependencies (BZ #985208) Requires: ruby @@ -114,6 +115,9 @@ The server can also function as a certificate authority and file server. %prep %setup -q chmod +x ext/puppet-load.rb ext/regexp_nodes/regexp_nodes.rb +# Unbundle +rm -r lib/puppet/vendor/* +echo "require 'safe_yaml'" > lib/puppet/vendor/require_vendored.rb %build # Nothing to build @@ -369,6 +373,9 @@ exit 0 rm -rf %{buildroot} %changelog +* Mon Mar 16 2015 Orion Poplawski <orion.com> - 3.7.1-3 +- Unbundle libs (bug #1198366) + * Sat Feb 28 2015 Haïkel Guémar <hguemar> - 3.7.1-3 - Use systemd macros (RHBZ #1197239)
*** Bug 1202374 has been marked as a duplicate of this bug. ***
This change mentioned in comment 4 does resolve the traceback for me, but the duplicated key warning still remains: $ puppet --version /usr/share/ruby/vendor_ruby/puppet/defaults.rb:465: warning: duplicated key at line 466 ignored: :queue_type 3.7.1
Looks like upstream has some movement on ruby 2.2 support for 3.7 so hopefully that warning will get fixed soon. In the meantime I've committed this change.
puppet-3.7.5-2.fc22 has been submitted as an update for Fedora 22. https://admin.fedoraproject.org/updates/puppet-3.7.5-2.fc22
The warning can be resolved pretty easily by patching /usr/share/ruby/vendor_ruby/puppet/defaults.rb and removing the duplicate entry from this file (if you open this file in an editor and go to line 465 the duplicate entry can be spotted pretty easily)
Package puppet-3.7.5-2.fc22: * should fix your issue, * was pushed to the Fedora 22 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing puppet-3.7.5-2.fc22' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2015-5315/puppet-3.7.5-2.fc22 then log in and leave karma (feedback).
puppet-3.7.5-2.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.
Warning still exists, dont know if this was designed to fix this though /usr/share/ruby/vendor_ruby/puppet/defaults.rb:489: warning: duplicated key at line 489 ignored: :queue_type Different line num though, removed the duplicate dec and it works again in the interim puppet-3.7.5-2.fc22 ruby-2.2.2-40.fc22
still not fixed.
This applies to Fedora 23. It appears there is another bug in Fedora 23 as well: Bug 1242676 which is hiera.
I am sorry, this is Fedora 22 that I meant.