FS#65107 - [puppet] Fails to start since Ruby 2.7 release

Attached to Project: Community Packages
Opened by Tim (bastelfreak) - Friday, 10 January 2020, 14:24 GMT
Last edited by Christian Rebischke (Shibumi) - Saturday, 11 January 2020, 12:02 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Christian Rebischke (Shibumi)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

puppet fails since the ruby2.7 release / rebuild. There is a similar issue for the puppet5 package

# puppet --version
/usr/lib/ruby/vendor_ruby/2.7.0/puppet/indirector.rb:49: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/usr/lib/ruby/vendor_ruby/2.7.0/puppet/indirector/indirection.rb:95: warning: The called method `initialize' is defined here
/usr/lib/ruby/vendor_ruby/2.7.0/puppet/util.rb:463: warning: URI.escape is obsolete
cannot load such file -- sync


Additional info:

# pacman -Qi puppet
Name : puppet
Version : 6.10.1-2
Description : Server automation framework and application
Architecture : any
URL : https://puppet.com/products/open-source-projects
Licenses : Apache
Groups : None
Provides : puppet
Depends On : ruby facter hiera ruby-semantic_puppet ruby-augeas ruby-shadow ruby-concurrent ruby-multi_json
Optional Deps : ruby-shadow: user password management [installed]
Required By : None
Optional For : facter
Conflicts With : puppet5
Replaces : None
Installed Size : 6.52 MiB
Packager : Felix Yan <felixonmars@archlinux.org>
Build Date : Thu 26 Dec 2019 01:28:39 AM UTC
Install Date : Fri 10 Jan 2020 02:21:58 PM UTC
Install Reason : Explicitly installed
Install Script : Yes
Validated By : Signature


Steps to reproduce:

pacman -Syu puppet; puppet -version
This task depends upon

Closed by  Christian Rebischke (Shibumi)
Saturday, 11 January 2020, 12:02 GMT
Reason for closing:  Fixed
Additional comments about closing:  puppet-6.10.1-4

Note: Warnings are not disabled. If you want to disable them create a wrapper that wraps the puppet command as follows:

#!/bin/bash

/usr/bin/ruby -W0 /usr/bin/puppet "$@"
Comment by Quien Sabe (que) - Friday, 10 January 2020, 16:38 GMT
Both puppet and puppet5 can be made operable by manually installing the sync gem which is no longer a part of ruby as of 2.7. The command "sudo gem install --no-user-install sync" worked for me.

The following libraries are no longer bundled gems. Install corresponding gems to use these features.
CMath (cmath gem)
Scanf (scanf gem)
Shell (shell gem)
Synchronizer (sync gem)
ThreadsWait (thwait gem)
E2MM (e2mmap gem)

Once the sync gem is available, both puppet and puppet5 will run, but the versions in them are not yet 2.7 ready so there are literally screens and screens and more screens of ruby deprecation warnings.

As I use a wrapper script to invoke puppet on several different distros, I was able to eliminate the warnings by modifying my wrapper as follows on my arch systems.

if file "$(readlink -f "$PUPPET")" | grep -qi 'ruby script'
then
if sudo test -f /root/flags/nowarn.puppet
then
# suppress deprecation warnings for ruby v2.7 touch /root/flags/nowarn.puppet
PUPPET="ruby -W0 $PUPPET"
fi
fi
Comment by Tim (bastelfreak) - Friday, 10 January 2020, 17:35 GMT
thanks for the feedback. I already created the ruby-sync gem. I hope that it will soon be moved to community: https://aur.archlinux.org/packages/ruby-sync/

Loading...