fraenki / puppet-sshkeys

Puppet module to manage ssh public keys.
https://forge.puppetlabs.com/fraenki/sshkeys
BSD 2-Clause "Simplified" License
9 stars 9 forks source link

1.8.* ruby support #9

Closed kam1kaze closed 8 years ago

kam1kaze commented 8 years ago

Hi,

As I see you started to use new hash syntax in parsers (cd5b4bc47070f4701791c813b21cc0def0d3904c). These changes break compatibility with 1.8.* ruby version that is used in a lot of distro. At least the following distro do not work now:

Are you planning to support such version of distro?

Here is error message:

Error: Could not autoload puppet/parser/functions/sshkeys_convert_to_hash: /opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:19: syntax error, unexpected ':', expec
ting ')'
                  type: :rvalue,
                       ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:21: syntax error, unexpected ')', expecting kEND
                 ) do |args|
                  ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:44: syntax error, unexpected kEND, expecting $end
Error: Could not autoload puppet/parser/functions/sshkeys_convert_to_hash: /opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:19: syntax error, unexpected ':', expec
ting ')'
                  type: :rvalue,
                       ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:21: syntax error, unexpected ')', expecting kEND
                 ) do |args|
                  ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:44: syntax error, unexpected kEND, expecting $end on node v-influx-002-prod.phx2.symcpe.net
Error: Could not autoload puppet/parser/functions/sshkeys_convert_to_hash: /opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:19: syntax error, unexpected ':', expec
ting ')'
                  type: :rvalue,
                       ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:21: syntax error, unexpected ')', expecting kEND
                 ) do |args|
                  ^
/opt/puppet-aa/var/modules/sshkeys/lib/puppet/parser/functions/sshkeys_convert_to_hash.rb:44: syntax error, unexpected kEND, expecting $end on node v-influx-002-prod.phx2.symcpe.net
artem-sidorenko commented 8 years ago

@kam1kaze actually I removed the ruby 1.8 support as I didn't expect and wasn't aware of users on RHEL 5,6 platforms:)

I want to get this module running on puppet 4, so I'll have to check how big is the effort to maintain it for ruby 1.8 too. Can you tell me the version of puppet you use?

kam1kaze commented 8 years ago

Currently we are using puppet 3.7.4. Unfortunately packages that ships 3.* and 2.* puppet versions use system ruby and all redhat based distros before 7 version use ruby 1.8. According to puppet release page AIO packages should be available from 4.0 version only: https://docs.puppetlabs.com/puppet/4.0/reference/release_notes.html

artem-sidorenko commented 8 years ago

@kam1kaze right, I will have a look

artem-sidorenko commented 8 years ago

@kam1kaze I guess I have bad news here,

The fixes for ruby 1.8 are not a big problem itself in the current state (see 40638d7). But it isn't really easy to get the tests running, as a lot of gems do not run on ruby 1.8 anymore. Some of them state this pretty clear (so its quite easy to find the last version with ruby 1.8 support), but some do not provide such information directly and they just crash. This requires some time to figure out the real gem which makes troubles, find the last version with ruby 1.8 support, give it a next try, then again the same loop for another gem and so on..

In the end all this leads at some places to the ugly stuff like in 087fc1c

So I do not think its a good idea to introduce this ugly things and invest efforts for ruby 1.8, which is end of life already for >2years. (still if its in the long-term-support distros like RHEL 5/6)

My preference is more to invest the time for puppet 4 support, where the ruby version issue should be solved for the future as well (for RHEL 5/6 too)

I think it should be Ok, as this module itself is pretty simple and small, so you probably won't need any new functionality. The already released version provides support for ruby 1.8 and it can be still used on RHEL 5/6 with ruby 1.8 & puppet 3

I hope the reasons are clear and sry for troubles, I'll cover this question in the README file

artem-sidorenko commented 8 years ago

@kam1kaze as I stopped using puppet about 2 years ago, I'm not going to maintain this module anymore. Sorry for any inconvenience caused

fraenki commented 8 years ago

I'm sorry, but support for ruby 1.8 will not come back. I'd suggest to run your puppet master/server on a more recent distribution.