Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def location_for(place)
end

gem 'artifactory'
gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || '~> 0.16')
gem 'vanagon', *location_for(ENV['VANAGON_LOCATION'] || '~> 0.20.0')
gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.99.8')
gem 'rake', '~> 12.0'

Expand Down
1 change: 1 addition & 0 deletions configs/components/ruby-2.4.10.rb
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
'ubuntu-16.04-ppc64el',
'windows-2012r2-x64',
'windows-2012r2-x86',
'windows-2019-x64',
'windowsfips-2012r2-x64'
]

Expand Down
1 change: 1 addition & 0 deletions configs/components/ruby-2.5.9.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@
'ubuntu-16.04-ppc64el',
'windows-2012r2-x64',
'windows-2012r2-x86',
'windows-2019-x64',
'windowsfips-2012r2-x64'
]

Expand Down
3 changes: 3 additions & 0 deletions configs/components/ruby-2.7.3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
# Patch for https://bugs.ruby-lang.org/issues/14972
pkg.apply_patch "#{base}/net_http_eof_14972_r2.5.patch"

pkg.apply_patch "#{base}/ruby-faster-load_27.patch"

if platform.is_cross_compiled?
pkg.apply_patch "#{base}/uri_generic_remove_safe_nav_operator_r2.5.patch"
pkg.apply_patch "#{base}/lib_optparse_remove_safe_nav_operator.patch"
Expand Down Expand Up @@ -112,6 +114,7 @@
'ubuntu-16.04-ppc64el',
'windows-2012r2-x64',
'windows-2012r2-x86',
'windows-2019-x64',
'windowsfips-2012r2-x64'
]

Expand Down
54 changes: 54 additions & 0 deletions configs/platforms/windows-2019-x64.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
platform "windows-2019-x64" do |plat|
plat.vmpooler_template "win-2019-x86_64"

plat.servicetype "windows"
visual_studio_version = '2017'
visual_studio_sdk_version = 'win8.1'

# We need to ensure we install chocolatey prior to adding any nuget repos. Otherwise, everything will fall over
plat.add_build_repository "https://artifactory.delivery.puppetlabs.net/artifactory/generic/buildsources/windows/chocolatey/install-chocolatey.ps1"
plat.add_build_repository "https://artifactory.delivery.puppetlabs.net/artifactory/api/nuget/nuget"

# C:\tools is likely added by mingw, however because we also want to use that
# dir for vsdevcmd.bat we create it for safety
plat.provision_with "mkdir C:/tools"
# We don't want to install any packages from the chocolatey repo by accident
plat.provision_with "C:/ProgramData/chocolatey/bin/choco.exe upgrade -y chocolatey"
plat.provision_with "C:/ProgramData/chocolatey/bin/choco.exe sources remove -name chocolatey"

packages = [
"cmake",
"pl-gdbm-#{self._platform.architecture}",
"pl-iconv-#{self._platform.architecture}",
"pl-libffi-#{self._platform.architecture}",
"pl-pdcurses-#{self._platform.architecture}",
"pl-toolchain-#{self._platform.architecture}",
"pl-zlib-#{self._platform.architecture}",
"mingw-w64 -version 5.2.0 -debug",
"Wix310 -version 3.10.2 -debug -x86"
]

packages.each do |name|
plat.provision_with("C:/ProgramData/chocolatey/bin/choco.exe install -y --no-progress #{name}")
end
# We use cache-location in the following install because msvc has several long paths
# if we do not update the cache location choco will fail because paths get too long
plat.provision_with "C:/ProgramData/chocolatey/bin/choco.exe install msvc.#{visual_studio_version}-#{visual_studio_sdk_version}.sdk.en-us -y --cache-location=\"C:\\msvc\" --no-progress"
# The following creates a batch file that will execute the vsdevcmd batch file located within visual studio.
# We create the following batch file under C:\tools\vsdevcmd.bat so we can avoid using both the %ProgramFiles(x86)%
# evironment var, as well as any spaces in the path when executing things with cygwin. This makes command execution
# through cygwin much easier.
#
# Note that the unruly \'s in the following string escape the following sequence to literal chars: "\" and then \""
plat.provision_with "touch C:/tools/vsdevcmd.bat && echo \"\\\"%ProgramFiles(x86)%\\Microsoft Visual Studio\\#{visual_studio_version}\\BuildTools\\Common7\\Tools\\vsdevcmd\\\"\" >> C:/tools/vsdevcmd.bat"

plat.install_build_dependencies_with "C:/ProgramData/chocolatey/bin/choco.exe install -y --no-progress"

plat.make "/usr/bin/make"
plat.patch "TMP=/var/tmp /usr/bin/patch.exe --binary"

plat.platform_triple "x86_64-w64-mingw32"

plat.package_type "archive"
plat.output_dir "windows"
end
11 changes: 11 additions & 0 deletions resources/patches/ruby_27/ruby-faster-load_27.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- ruby-2.7.0/load.c.orig 2020-02-26 12:19:04.963826602 -0800
+++ ruby-2.7.0/load.c 2020-02-26 12:28:55.865876051 -0800
@@ -578,7 +578,7 @@
rb_parser_set_context(parser, NULL, FALSE);
ast = (rb_ast_t *)rb_parser_load_file(parser, fname);
iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit("<top (required)>"),
- fname, rb_realpath_internal(Qnil, fname, 1), NULL);
+ fname, fname, NULL);
rb_ast_dispose(ast);
}
rb_exec_event_hook_script_compiled(ec, iseq, Qnil);