Skip to content

Commit

Permalink
DRY source and destination dirs
Browse files Browse the repository at this point in the history
  • Loading branch information
joshcooper committed Nov 17, 2023
1 parent 887c920 commit 81059f6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 18 deletions.
12 changes: 7 additions & 5 deletions configs/components/_base-ruby.rb
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,15 @@
# RE-7593. However, Windows paths were changed to match *nix in puppet 6, see
# commit 4b9d126dd5b. So only the pdk has this issue.
if platform.is_windows? && settings[:bindir] != ruby_bindir
bindir = settings[:bindir]

# Ruby 3+
if Gem::Version.new(pkg.get_version) >= Gem::Version.new('3.0')
pkg.install do
[
"cp #{settings[:gcc_bindir]}/libssp-0.dll #{ruby_bindir}",
"cp #{settings[:bindir]}/libffi-8.dll #{ruby_bindir}",
"cp #{settings[:bindir]}/libyaml-0-2.dll #{ruby_bindir}"
"cp #{bindir}/libffi-8.dll #{ruby_bindir}",
"cp #{bindir}/libyaml-0-2.dll #{ruby_bindir}"
]
end
end
Expand All @@ -160,9 +162,9 @@

pkg.install do
[
"cp #{settings[:bindir]}/libgcc_s_#{gcc_postfix}-1.dll #{ruby_bindir}",
"cp #{settings[:bindir]}/#{ssl_lib} #{ruby_bindir}",
"cp #{settings[:bindir]}/#{crypto_lib} #{ruby_bindir}",
"cp #{bindir}/libgcc_s_#{gcc_postfix}-1.dll #{ruby_bindir}",
"cp #{bindir}/#{ssl_lib} #{ruby_bindir}",
"cp #{bindir}/#{crypto_lib} #{ruby_bindir}"
]
end

Expand Down
30 changes: 17 additions & 13 deletions configs/components/runtime-pdk.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,30 @@
pkg.install_file File.join(settings[:gcc_bindir], dll), File.join(settings[:bindir], dll)
end

# Ruby needs zlib
tools_bindir = File.join(settings[:tools_root], 'bin')

# curl, openssl, etc need zlib, so install in *main* bin dir
pkg.build_requires "pl-zlib-#{platform.architecture}"
pkg.install_file "#{settings[:tools_root]}/bin/zlib1.dll", "#{settings[:bindir]}/zlib1.dll"
pkg.install_file "#{tools_bindir}/zlib1.dll", "#{settings[:bindir]}/zlib1.dll"

# zlib, gdbm, yaml-cpp and iconv are all runtime dependancies of ruby, and their libraries need
# To exist inside our vendored ruby
pkg.install_file "#{settings[:tools_root]}/bin/zlib1.dll", "#{settings[:ruby_bindir]}/zlib1.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libgdbm-4.dll", "#{settings[:ruby_bindir]}/libgdbm-4.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libgdbm_compat-4.dll", "#{settings[:ruby_bindir]}/libgdbm_compat-4.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libiconv-2.dll", "#{settings[:ruby_bindir]}/libiconv-2.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libffi-6.dll", "#{settings[:ruby_bindir]}/libffi-6.dll" if settings[:ruby_version].start_with?('2')
# to exist inside our primary ruby's bin dir
ruby_bindir = settings[:ruby_bindir]
pkg.install_file "#{tools_bindir}/zlib1.dll", "#{ruby_bindir}/zlib1.dll"
pkg.install_file "#{tools_bindir}/libgdbm-4.dll", "#{ruby_bindir}/libgdbm-4.dll"
pkg.install_file "#{tools_bindir}/libgdbm_compat-4.dll", "#{ruby_bindir}/libgdbm_compat-4.dll"
pkg.install_file "#{tools_bindir}/libiconv-2.dll", "#{ruby_bindir}/libiconv-2.dll"
pkg.install_file "#{tools_bindir}/libffi-6.dll", "#{ruby_bindir}/libffi-6.dll" if settings[:ruby_version].start_with?('2')

# Copy the DLLs into additional ruby install bindirs as well.
if settings.has_key?(:additional_rubies)
settings[:additional_rubies].each do |rubyver, local_settings|
pkg.install_file "#{settings[:tools_root]}/bin/zlib1.dll", "#{local_settings[:ruby_bindir]}/zlib1.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libgdbm-4.dll", "#{local_settings[:ruby_bindir]}/libgdbm-4.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libgdbm_compat-4.dll", "#{local_settings[:ruby_bindir]}/libgdbm_compat-4.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libiconv-2.dll", "#{local_settings[:ruby_bindir]}/libiconv-2.dll"
pkg.install_file "#{settings[:tools_root]}/bin/libffi-6.dll", "#{local_settings[:ruby_bindir]}/libffi-6.dll" if rubyver.start_with?('2')
local_bindir = local_settings[:ruby_bindir]
pkg.install_file "#{tools_bindir}/zlib1.dll", "#{local_bindir}/zlib1.dll"
pkg.install_file "#{tools_bindir}/libgdbm-4.dll", "#{local_bindir}/libgdbm-4.dll"
pkg.install_file "#{tools_bindir}/libgdbm_compat-4.dll", "#{local_bindir}/libgdbm_compat-4.dll"
pkg.install_file "#{tools_bindir}/libiconv-2.dll", "#{local_bindir}/libiconv-2.dll"
pkg.install_file "#{tools_bindir}/libffi-6.dll", "#{local_bindir}/libffi-6.dll" if rubyver.start_with?('2')
end
end

Expand Down

0 comments on commit 81059f6

Please sign in to comment.