diff --git a/shared/additional-modules/ruby/manifests/init.pp b/shared/additional-modules/ruby/manifests/init.pp index 7943b6f..b58de4f 100644 --- a/shared/additional-modules/ruby/manifests/init.pp +++ b/shared/additional-modules/ruby/manifests/init.pp @@ -6,7 +6,8 @@ class ruby($version, $configure = "--disable-install-doc", $build_path = '') { version => $version, source => "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-<%= version %>.tar.gz", configure => $configure, - path => "${base::path}:${path}:${build_path}" + preconfigure => "LDFLAGS='-rdynamic -Wl,-export-dynamic'", + path => "${build_path}:${with_ruby_path}" } if ($osfamily == 'debian') { diff --git a/shared/lib/puppet/provider/configure/action.rb b/shared/lib/puppet/provider/configure/action.rb index ec25a7b..ffd4cc8 100644 --- a/shared/lib/puppet/provider/configure/action.rb +++ b/shared/lib/puppet/provider/configure/action.rb @@ -2,7 +2,8 @@ Puppet::Type.type(:configure).provide(:action) do desc "Configure a program to install" def create - system %{bash -c '#{path} cd #{@resource[:build_path]} ; #{@resource[:preconfigure]} ./configure --prefix=#{@resource[:install_path]} #{@resource[:options]}'}.tap { |o| p o } + system %{bash -c "cd #{@resource[:build_path]} && #{@resource[:preconfigure].gsub('"', '\\"')} #{path} ./configure --prefix=#{@resource[:install_path]} #{@resource[:options]}"}.tap { |o| p o } + p $? raise StandardError.new("Could not configure") if $?.exitstatus != 0 end @@ -15,7 +16,7 @@ Puppet::Type.type(:configure).provide(:action) do File.file?(config_status) end - + private def config_status File.join(@resource[:build_path], @resource[:config_status]) @@ -30,7 +31,7 @@ Puppet::Type.type(:configure).provide(:action) do end def path - @resource[:path].empty? ? '' : "export PATH=#{@resource[:path]}:$PATH ; " + @resource[:path].empty? ? '' : "PATH=#{@resource[:path]}:$PATH " end end