rake-compiler-dock 0.7.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +4 -0
  5. data/Dockerfile.jruby +12 -8
  6. data/Dockerfile.mri.erb +231 -0
  7. data/History.md +56 -0
  8. data/README.md +86 -15
  9. data/Rakefile +44 -4
  10. data/{lib/rake_compiler_dock → build}/gem_helper.rb +0 -15
  11. data/build/parallel_docker_build.rb +102 -0
  12. data/build/patches/{ruby-2.5.3 → ruby-2.5.8}/no_sendfile.patch +1 -1
  13. data/build/patches/ruby-3.0.0/no_sendfile.patch +24 -0
  14. data/build/patches2/hoe-3.20.0/0001-Load-encrypted-private-key-using-ENV-GEM_PRIVATE_KEY.patch +32 -0
  15. data/build/patches2/rake-compiler-1.1.1/0001-Fix-determining-of-ruby-versions-in-rake-native-gem.patch +44 -0
  16. data/build/patches2/rake-compiler-1.1.1/0003-Allow-building-of-cross-rubies-in-parallel.patch +214 -0
  17. data/build/patches2/rake-compiler-1.1.1/0004-Enable-build-of-static-libruby.patch +29 -0
  18. data/build/patches2/rake-compiler-1.1.1/0005-Don-t-mask-out-build-env-vars-for-cross-ruby.patch +30 -0
  19. data/build/patches2/rake-compiler-1.1.1/0006-Use-RAKE_EXTENSION_TASK_NO_NATIVE-env-var-as-the-def.patch +26 -0
  20. data/build/patches2/ruby-2.7.0/ruby2_keywords.patch +15 -0
  21. data/build/patches2/ruby-3.0.0/ruby2_keywords.patch +15 -0
  22. data/build/runas +4 -1
  23. data/build/sudoers +1 -1
  24. data/lib/rake_compiler_dock.rb +10 -0
  25. data/lib/rake_compiler_dock/docker_check.rb +12 -6
  26. data/lib/rake_compiler_dock/starter.rb +68 -53
  27. data/lib/rake_compiler_dock/version.rb +2 -2
  28. data/test/test_environment_variables.rb +2 -2
  29. data/test/test_parallel_docker_build.rb +57 -0
  30. metadata +35 -25
  31. metadata.gz.sig +0 -0
  32. data/Dockerfile.mri +0 -122
  33. data/build/patches/rake-compiler-1.0.6/enable-static.diff +0 -13
@@ -0,0 +1,29 @@
1
+ diff --git a/tasks/bin/cross-ruby.rake b/tasks/bin/cross-ruby.rake
2
+ index 8edf5cd..5d25b82 100644
3
+ --- a/tasks/bin/cross-ruby.rake
4
+ +++ b/tasks/bin/cross-ruby.rake
5
+ @@ -116,11 +116,22 @@ RUBY_CC_VERSIONS.split(":").each do |ruby_cc_version|
6
+ "--host=#{mingw_host}",
7
+ "--target=#{mingw_target}",
8
+ "--build=#{RUBY_BUILD}",
9
+ - '--enable-shared',
10
+ + '--enable-install-static-library',
11
+ + '--disable-jit-support',
12
+ '--disable-install-doc',
13
+ '--with-ext=',
14
+ - 'LDFLAGS=-pipe -s',
15
+ ]
16
+ + if mingw_host=~/darwin/
17
+ + options += [
18
+ + '--enable-static',
19
+ + '--disable-shared',
20
+ + ]
21
+ + else
22
+ + options += [
23
+ + '--enable-static',
24
+ + '--enable-shared',
25
+ + ]
26
+ + end
27
+
28
+ # Force Winsock2 for Ruby 1.8, 1.9 defaults to it
29
+ options << "--with-winsock2" if major == "1.8"
@@ -0,0 +1,30 @@
1
+ From 783d3d380e6abf107e0747d229da0f5e001c623f Mon Sep 17 00:00:00 2001
2
+ From: Lars Kanis <lars@greiz-reinsdorf.de>
3
+ Date: Sun, 20 Dec 2020 19:08:22 +0100
4
+ Subject: [PATCH] Don't mask out build env vars for cross-ruby
5
+
6
+ This was introduced in commit a7c113e580c1565000166f9967da82ff2ecdaeaa to avoid interference with host build.
7
+ However it prohibits setting important flags for cross-build.
8
+
9
+ Also don't force 'LDFLAGS=-pipe -s' in configure, which doesn't work with clang targeting MacOS.
10
+ It can now be set externally.
11
+ ---
12
+ tasks/bin/cross-ruby.rake | 3 +--
13
+ 1 file changed, 1 insertion(+), 2 deletions(-)
14
+
15
+ diff --git a/tasks/bin/cross-ruby.rake b/tasks/bin/cross-ruby.rake
16
+ index 8edf5cd..8317a2a 100644
17
+ --- a/tasks/bin/cross-ruby.rake
18
+ +++ b/tasks/bin/cross-ruby.rake
19
+ @@ -46,7 +46,7 @@ RUBY_SOURCE = ENV['SOURCE']
20
+ RUBY_BUILD = RbConfig::CONFIG["host"]
21
+
22
+ # Unset any possible variable that might affect compilation
23
+ -["CC", "CXX", "CPPFLAGS", "LDFLAGS", "RUBYOPT"].each do |var|
24
+ +["RUBYOPT"].each do |var|
25
+ ENV.delete(var)
26
+ end
27
+
28
+ --
29
+ 2.27.0
30
+
@@ -0,0 +1,26 @@
1
+ From 15f630adc4325f9cafb762e15a051c2ec8bd21e2 Mon Sep 17 00:00:00 2001
2
+ From: Sutou Kouhei <kou@clear-code.com>
3
+ Date: Mon, 21 Dec 2020 04:30:44 +0900
4
+ Subject: [PATCH] Use RAKE_EXTENSION_TASK_NO_NATIVE env var as the default
5
+ value
6
+
7
+ ---
8
+ lib/rake/extensiontask.rb | 2 +-
9
+ 1 file changed, 1 insertion(+), 1 deletion(-)
10
+
11
+ diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb
12
+ index b0ab88e..49d59da 100644
13
+ --- a/lib/rake/extensiontask.rb
14
+ +++ b/lib/rake/extensiontask.rb
15
+ @@ -23,7 +23,7 @@ module Rake
16
+ @cross_compile = false
17
+ @cross_config_options = []
18
+ @cross_compiling = nil
19
+ - @no_native = false
20
+ + @no_native = (ENV["RAKE_EXTENSION_TASK_NO_NATIVE"] == "true")
21
+ @config_includes = []
22
+ @ruby_versions_per_platform = {}
23
+ @make = nil
24
+ --
25
+ 2.27.0
26
+
@@ -0,0 +1,15 @@
1
+ diff --git a/template/fake.rb.in b/template/fake.rb.in
2
+ index f1da719ecb..e0b649fb28 100644
3
+ --- a/template/fake.rb.in
4
+ +++ b/template/fake.rb.in
5
+ @@ -27,6 +27,10 @@ case "$0" in /*) r=-r"$0";; *) r=-r"./$0";; esac
6
+ exec $ruby "$r" "$@"
7
+ =end
8
+ =baseruby
9
+ +<% if RUBY_VERSION < "2.7" %>
10
+ +def ruby2_keywords(*)
11
+ +end
12
+ +<% end %>
13
+ class Object
14
+ remove_const :CROSS_COMPILING if defined?(CROSS_COMPILING)
15
+ CROSS_COMPILING = RUBY_PLATFORM
@@ -0,0 +1,15 @@
1
+ diff --git a/template/fake.rb.in b/template/fake.rb.in
2
+ index f1da719ecb..e0b649fb28 100644
3
+ --- a/template/fake.rb.in
4
+ +++ b/template/fake.rb.in
5
+ @@ -27,6 +27,10 @@ case "$0" in /*) r=-r"$0";; *) r=-r"./$0";; esac
6
+ exec $ruby "$r" "$@"
7
+ =end
8
+ =baseruby
9
+ +<% if RUBY_VERSION < "2.7" %>
10
+ +def ruby2_keywords(*)
11
+ +end
12
+ +<% end %>
13
+ class Object
14
+ remove_const :CROSS_COMPILING if defined?(CROSS_COMPILING)
15
+ CROSS_COMPILING = RUBY_PLATFORM
@@ -6,7 +6,10 @@ useradd -o -g "$GID" -u "$UID" -G rvm,sudo -p "" -b /tmp/home -m "$USER"
6
6
 
7
7
  HOME=$(bash <<< "echo ~$USER")
8
8
  ln -s /usr/local/rake-compiler "$HOME"/.rake-compiler
9
+ mkdir -p "$HOME"/.gem
10
+ chown "$USER" "$HOME"/.gem
9
11
 
10
- sudo -u "$USER" --set-home \
12
+ /usr/bin/sudo -u "$USER" -H \
11
13
  BASH_ENV=/etc/rubybashrc \
14
+ RAKE_EXTENSION_TASK_NO_NATIVE=true \
12
15
  -- "$@"
@@ -1 +1 @@
1
- Defaults env_keep += "http_proxy https_proxy ftp_proxy RCD_HOST_RUBY_PLATFORM RCD_HOST_RUBY_VERSION RCD_IMAGE RUBY_CC_VERSION"
1
+ Defaults env_keep += "http_proxy https_proxy ftp_proxy GEM_PRIVATE_KEY_PASSPHRASE RCD_HOST_RUBY_PLATFORM RCD_HOST_RUBY_VERSION RCD_IMAGE RUBY_CC_VERSION LD_LIBRARY_PATH DEVTOOLSET_ROOTPATH"
@@ -21,6 +21,16 @@ module RakeCompilerDock
21
21
  # Option +:verbose+ can be set to enable printing of the command line.
22
22
  # If not set, rake's verbose flag is used.
23
23
  #
24
+ # Option +:rubyvm+ can be set to +:mri+ or +:jruby+ .
25
+ # It selects the docker image with an appropriate toolchain.
26
+ #
27
+ # Option +:platform+ can be set to a list of space separated values.
28
+ # It selects the docker image(s) with an appropriate toolchain.
29
+ # Allowed values are +:x86-mingw32+, +x64-mingw32+, +x86-linux+ or +x86_64-linux+.
30
+ # If the list contains multiple values, +cmd+ is consecutively executed in each of the docker images,
31
+ # Option +:platform+ is ignored when +:rubyvm+ is set to +:jruby+.
32
+ # Default is "x86-mingw32 x64-mingw32" .
33
+ #
24
34
  # Examples:
25
35
  #
26
36
  # RakeCompilerDock.sh 'bundle && rake cross native gem'
@@ -8,6 +8,7 @@ module RakeCompilerDock
8
8
 
9
9
  attr_reader :io
10
10
  attr_reader :pwd
11
+ attr_reader :docker_command
11
12
  attr_accessor :machine_name
12
13
 
13
14
  def initialize(io, pwd, machine_name="rake-compiler-dock")
@@ -53,12 +54,17 @@ module RakeCompilerDock
53
54
  end
54
55
  end
55
56
 
57
+ COMMANDS = %w[docker podman]
56
58
  def docker_version
57
- @docker_version_text, @docker_version_status = run("docker version")
59
+ COMMANDS.find do |command|
60
+ @docker_version_text, @docker_version_status = run("#{command} version")
61
+ @docker_command = command
62
+ @docker_version_status == 0
63
+ end
58
64
  end
59
65
 
60
66
  def ok?
61
- @docker_version_status == 0 && @docker_version_text =~ /version/ && doma_pwd_ok?
67
+ @docker_version_status == 0 && @docker_version_text =~ /version/i && doma_pwd_ok?
62
68
  end
63
69
 
64
70
  def docker_client_avail?
@@ -216,16 +222,16 @@ module RakeCompilerDock
216
222
  help << yellow("Please download and install the docker-toolbox:")
217
223
  help << yellow(" https://www.docker.com/docker-toolbox")
218
224
  when /linux/
219
- help << red("Docker is not available.")
225
+ help << red("Neither Docker nor Podman is available.")
220
226
  help << ""
221
- help << yellow("Install on Ubuntu/Debian:")
227
+ help << yellow("Install Docker on Ubuntu/Debian:")
222
228
  help << " sudo apt-get install docker.io"
223
229
  help << ""
224
- help << yellow("Install on Fedora/Centos/RHEL")
230
+ help << yellow("Install Docker on Fedora/Centos/RHEL")
225
231
  help << " sudo yum install docker"
226
232
  help << " sudo systemctl start docker"
227
233
  help << ""
228
- help << yellow("Install on SuSE")
234
+ help << yellow("Install Docker on SuSE")
229
235
  help << " sudo zypper install docker"
230
236
  help << " sudo systemctl start docker"
231
237
  when /darwin/
@@ -1,5 +1,6 @@
1
1
  require "shellwords"
2
2
  require "etc"
3
+ require "io/console"
3
4
  require "rake_compiler_dock/version"
4
5
 
5
6
  module RakeCompilerDock
@@ -9,15 +10,15 @@ module RakeCompilerDock
9
10
  class Starter
10
11
  class << self
11
12
  def sh(cmd, options={}, &block)
12
- if verbose_flag(options)
13
- $stderr.puts "rake-compiler-dock bash -c #{ cmd.inspect }"
13
+ begin
14
+ exec('bash', '-c', cmd, options, &block)
15
+ ensure
16
+ STDIN.cooked! if STDIN.tty?
14
17
  end
15
- exec('bash', '-c', cmd, options, &block)
16
18
  end
17
19
 
18
20
  def exec(*args)
19
21
  options = (Hash === args.last) ? args.pop : {}
20
- runargs = args.dup
21
22
 
22
23
  mountdir = options.fetch(:mountdir){ ENV['RCD_MOUNTDIR'] || Dir.pwd }
23
24
  workdir = options.fetch(:workdir){ ENV['RCD_WORKDIR'] || Dir.pwd }
@@ -40,49 +41,61 @@ module RakeCompilerDock
40
41
  user = options.fetch(:username){ current_user }
41
42
  group = options.fetch(:groupname){ current_group }
42
43
  rubyvm = options.fetch(:rubyvm){ ENV['RCD_RUBYVM'] } || "mri"
43
- image_name = options.fetch(:image) do
44
- ENV['RCD_IMAGE'] ||
45
- ENV['RAKE_COMPILER_DOCK_IMAGE'] ||
46
- "larskanis/rake-compiler-dock-#{rubyvm}:#{IMAGE_VERSION}"
47
- end
48
44
 
49
- check_docker(mountdir) if options.fetch(:check_docker){ true }
50
- runargs.unshift("sigfw") if options.fetch(:sigfw){ true }
51
- runargs.unshift("runas") if options.fetch(:runas){ true }
52
- docker_opts = options.fetch(:options) do
53
- opts = ["--rm", "-i"]
54
- opts << "-t" if $stdin.tty?
55
- opts
56
- end
45
+ platforms = options.fetch(:platform){ ENV['RCD_PLATFORM'] } || "x86-mingw32 x64-mingw32"
46
+ platforms.split(" ").each do |platform|
47
+ image_name = options.fetch(:image) do
48
+ platform_postfix = rubyvm.to_s == "jruby" ? "" : "-#{platform}"
49
+ ENV['RCD_IMAGE'] ||
50
+ ENV['RAKE_COMPILER_DOCK_IMAGE'] ||
51
+ "larskanis/rake-compiler-dock-#{rubyvm}#{platform_postfix}:#{IMAGE_VERSION}"
52
+ end
57
53
 
58
- cmd = ["docker", "run",
59
- "-v", "#{mountdir}:#{make_valid_path(mountdir)}",
60
- "-e", "UID=#{uid}",
61
- "-e", "GID=#{gid}",
62
- "-e", "USER=#{user}",
63
- "-e", "GROUP=#{group}",
64
- "-e", "ftp_proxy=#{ENV['ftp_proxy']}",
65
- "-e", "http_proxy=#{ENV['http_proxy']}",
66
- "-e", "https_proxy=#{ENV['https_proxy']}",
67
- "-e", "RCD_HOST_RUBY_PLATFORM=#{RUBY_PLATFORM}",
68
- "-e", "RCD_HOST_RUBY_VERSION=#{RUBY_VERSION}",
69
- "-e", "RCD_IMAGE=#{image_name}",
70
- "-w", make_valid_path(workdir),
71
- *docker_opts,
72
- image_name,
73
- *runargs]
74
-
75
- cmdline = Shellwords.join(cmd)
76
- if verbose_flag(options) == true
77
- $stderr.puts cmdline
78
- end
54
+ check = check_docker(mountdir) if options.fetch(:check_docker){ true }
55
+ docker_opts = options.fetch(:options) do
56
+ opts = ["--rm", "-i"]
57
+ opts << "-t" if $stdin.tty?
58
+ opts
59
+ end
60
+
61
+ if verbose_flag(options) && args.size == 3 && args[0] == "bash" && args[1] == "-c"
62
+ $stderr.puts "rake-compiler-dock bash -c #{ args[2].inspect }"
63
+ end
64
+
65
+ runargs = args.dup
66
+ runargs.unshift("sigfw") if options.fetch(:sigfw){ true }
67
+ runargs.unshift("runas") if options.fetch(:runas){ true }
68
+
69
+ cmd = [check.docker_command, "run",
70
+ "-v", "#{mountdir}:#{make_valid_path(mountdir)}",
71
+ "-e", "UID=#{uid}",
72
+ "-e", "GID=#{gid}",
73
+ "-e", "USER=#{user}",
74
+ "-e", "GROUP=#{group}",
75
+ "-e", "GEM_PRIVATE_KEY_PASSPHRASE",
76
+ "-e", "ftp_proxy",
77
+ "-e", "http_proxy",
78
+ "-e", "https_proxy",
79
+ "-e", "RCD_HOST_RUBY_PLATFORM=#{RUBY_PLATFORM}",
80
+ "-e", "RCD_HOST_RUBY_VERSION=#{RUBY_VERSION}",
81
+ "-e", "RCD_IMAGE=#{image_name}",
82
+ "-w", make_valid_path(workdir),
83
+ *docker_opts,
84
+ image_name,
85
+ *runargs]
86
+
87
+ cmdline = Shellwords.join(cmd)
88
+ if verbose_flag(options) == true
89
+ $stderr.puts cmdline
90
+ end
79
91
 
80
- ok = system(*cmd)
81
- if block_given?
82
- yield(ok, $?)
83
- elsif !ok
84
- fail "Command failed with status (#{$?.exitstatus}): " +
85
- "[#{cmdline}]"
92
+ ok = system(*cmd)
93
+ if block_given?
94
+ yield(ok, $?)
95
+ elsif !ok
96
+ fail "Command failed with status (#{$?.exitstatus}): " +
97
+ "[#{cmdline}]"
98
+ end
86
99
  end
87
100
  end
88
101
 
@@ -130,20 +143,22 @@ module RakeCompilerDock
130
143
  name = name.gsub(/[ ]/i, "_")
131
144
  end
132
145
 
146
+ @@docker_checked_lock = Mutex.new
133
147
  @@docker_checked = {}
134
148
 
135
149
  def check_docker(pwd)
136
- return if @@docker_checked[pwd]
137
-
138
- check = DockerCheck.new($stderr, pwd)
139
- unless check.ok?
140
- at_exit do
141
- check.print_help_text
150
+ @@docker_checked_lock.synchronize do
151
+ @@docker_checked[pwd] ||= begin
152
+ check = DockerCheck.new($stderr, pwd)
153
+ unless check.ok?
154
+ at_exit do
155
+ check.print_help_text
156
+ end
157
+ raise DockerIsNotAvailable, "Docker is not available"
158
+ end
159
+ check
142
160
  end
143
- raise DockerIsNotAvailable, "Docker is not available"
144
161
  end
145
-
146
- @@docker_checked[pwd] = check
147
162
  end
148
163
 
149
164
  # Change Path from "C:\Path" to "/c/Path" as used by boot2docker
@@ -1,4 +1,4 @@
1
1
  module RakeCompilerDock
2
- VERSION = "0.7.0"
3
- IMAGE_VERSION = "0.7.0"
2
+ VERSION = "1.1.0"
3
+ IMAGE_VERSION = "1.1.0"
4
4
  end
@@ -30,11 +30,11 @@ class TestEnvironmentVariables < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def test_IMAGE
33
- assert_equal "larskanis/rake-compiler-dock-mri:#{RakeCompilerDock::IMAGE_VERSION}", rcd_env['RCD_IMAGE']
33
+ assert_equal "larskanis/rake-compiler-dock-mri-x86-mingw32:#{RakeCompilerDock::IMAGE_VERSION}", rcd_env['RCD_IMAGE']
34
34
  end
35
35
 
36
36
  def test_RUBY_CC_VERSION
37
- df = File.read(File.expand_path("../../Dockerfile.mri", __FILE__))
37
+ df = File.read(File.expand_path("../../Dockerfile.mri.erb", __FILE__))
38
38
  df =~ /^ENV RUBY_CC_VERSION\s+(.*)\s+$/
39
39
  assert_equal $1, rcd_env['RUBY_CC_VERSION']
40
40
  end
@@ -0,0 +1,57 @@
1
+ require 'test/unit'
2
+ require_relative "../build/parallel_docker_build"
3
+
4
+ class TestParallelDockerBuild < Test::Unit::TestCase
5
+ def setup
6
+ File.write "File0", <<-EOT
7
+ FROM a
8
+ RUN a
9
+ RUN d
10
+ EOT
11
+ File.write "File1", <<-EOT
12
+ FROM a
13
+ RUN a
14
+ RUN d
15
+ RUN f \\
16
+ g
17
+ EOT
18
+ File.write "File2", <<-EOT
19
+ FROM a
20
+ RUN b
21
+ RUN c
22
+ RUN d
23
+ EOT
24
+ File.write "File3", <<-EOT
25
+ FROM a
26
+ RUN b
27
+ RUN c
28
+ RUN d
29
+ EOT
30
+ end
31
+
32
+ def test_tasks
33
+ RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
34
+
35
+ assert_operator Rake::Task["File0"].prerequisites, :include?, "yFile0File1"
36
+ assert_operator Rake::Task["File1"].prerequisites, :include?, "yFile1"
37
+ assert_operator Rake::Task["yFile1"].prerequisites, :include?, "yFile0File1"
38
+ assert_operator Rake::Task["yFile0File1"].prerequisites, :include?, "yFile0File1File2File3"
39
+
40
+ assert_operator Rake::Task["File2"].prerequisites, :include?, "yFile2File3"
41
+ assert_operator Rake::Task["File3"].prerequisites, :include?, "yFile2File3"
42
+ assert_operator Rake::Task["yFile2File3"].prerequisites, :include?, "yFile0File1File2File3"
43
+ end
44
+
45
+ def test_common_files
46
+ RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
47
+
48
+ assert_equal "FROM a\nRUN a\nRUN d\nRUN f \\\ng\n", read_df("yFile1")
49
+ assert_equal "FROM a\nRUN a\nRUN d\n", read_df("yFile0File1")
50
+ assert_equal "FROM a\nRUN b\nRUN c\nRUN d\n", read_df("yFile2File3")
51
+ assert_equal "FROM a\n", read_df("yFile0File1File2File3")
52
+ end
53
+
54
+ def read_df(fn)
55
+ File.read("tmp/docker/#{fn}").each_line.map(&:lstrip).join
56
+ end
57
+ end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler-dock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPDCCAiSgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBEMQ0wCwYDVQQDDARsYXJz
13
+ MIIDPDCCAiSgAwIBAgIBBTANBgkqhkiG9w0BAQsFADBEMQ0wCwYDVQQDDARsYXJz
14
14
  MR8wHQYKCZImiZPyLGQBGRYPZ3JlaXotcmVpbnNkb3JmMRIwEAYKCZImiZPyLGQB
15
- GRYCZGUwHhcNMTgwNjAyMDkwNzQxWhcNMTkwNjAyMDkwNzQxWjBEMQ0wCwYDVQQD
15
+ GRYCZGUwHhcNMjAxMjI2MTgzMzUyWhcNMjExMjI2MTgzMzUyWjBEMQ0wCwYDVQQD
16
16
  DARsYXJzMR8wHQYKCZImiZPyLGQBGRYPZ3JlaXotcmVpbnNkb3JmMRIwEAYKCZIm
17
17
  iZPyLGQBGRYCZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZb4Uv
18
18
  RFJfRu/VEWiy3psh2jinETjiuBrL0NeRFGf8H7iU9+gx/DI/FFhfHGLrDeIskrJx
@@ -22,52 +22,52 @@ cert_chain:
22
22
  LMO2vULHKKHDdX54K/sbVCj9pN9h1aotNzrEyo55zxn0G9PHg/G3P8nMvAXPkUTe
23
23
  brhXrfCwWRvOXA4TAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0G
24
24
  A1UdDgQWBBRAHK81igrXodaDj8a8/BIKsaZrETANBgkqhkiG9w0BAQsFAAOCAQEA
25
- 0s99WtnVnaqOaSGxZyu8oamWfqmT5j6bjZoEMUEXmd6kiFY/MWvybIQon0PHFb5Y
26
- uUd3Nl60VG5ZjdtC4BVWl6cmLSg1HwL2zb4WRKM+LHwRUXSsmYsdTTA4jG64O26V
27
- eERRAKlcg6oNqcWjHH+CbeNWL2rIJlfqRykQ8o3S6PXQnDYcuTf/bBiU9bwEc2uu
28
- UfE3teqcc04i4+zWgDBu45UpF79QXbFbInaZkd92ozdnNYbd4jOud1SWtR5I2OFv
29
- cIEWu8F/maa7XqF9Sk/GEGriqlaobodHfoJxAb/u9IDz0ytY3p8mEyGwqNDoCjeL
30
- 7/9XxD10fBRrg2rR7rYqZg==
25
+ DT6QoI7WEM1wivGn5BBHv3hJa2vGgmAxSPy7QM5iQX7U2ROfOeXYIHIRxsIv/cQl
26
+ +F568J6v3GAcFePi4Is9S7b8KWQkm+IjrPjL863hds6WVG8KyJZ758oczbviXNEV
27
+ vzna4S8Ra0m7LqGYGZW9B8ZIVdfhzKAF6V6iVlQtEFP7GQp17SjpNPd/gCbictIw
28
+ +jwual4DCn3p1X+Vgyl/AXPwU1NBAuuYUijOr7dVIoW2QNUh2d7jCwGe2mNi7Dbu
29
+ CqyDIUe+OuWLEpvgupYpVKQKx4+pa0s2ccLokMXYGFp1Z36heaYApV92yDjks8Sq
30
+ XtSi3zpLl4JPGBoeuZj97Q==
31
31
  -----END CERTIFICATE-----
32
- date: 2018-12-26 00:00:00.000000000 Z
32
+ date: 2020-12-29 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
+ name: bundler
35
36
  requirement: !ruby/object:Gem::Requirement
36
37
  requirements:
37
38
  - - "~>"
38
39
  - !ruby/object:Gem::Version
39
40
  version: '1.7'
40
- name: bundler
41
- prerelease: false
42
41
  type: :development
42
+ prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.7'
48
48
  - !ruby/object:Gem::Dependency
49
+ name: rake
49
50
  requirement: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
54
  version: '12.0'
54
- name: rake
55
- prerelease: false
56
55
  type: :development
56
+ prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '12.0'
62
62
  - !ruby/object:Gem::Dependency
63
+ name: test-unit
63
64
  requirement: !ruby/object:Gem::Requirement
64
65
  requirements:
65
66
  - - "~>"
66
67
  - !ruby/object:Gem::Version
67
68
  version: '3.0'
68
- name: test-unit
69
- prerelease: false
70
69
  type: :development
70
+ prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
@@ -85,16 +85,26 @@ extra_rdoc_files: []
85
85
  files:
86
86
  - ".gitignore"
87
87
  - Dockerfile.jruby
88
- - Dockerfile.mri
88
+ - Dockerfile.mri.erb
89
89
  - Gemfile
90
90
  - History.md
91
91
  - LICENSE.txt
92
92
  - README.md
93
93
  - Rakefile
94
94
  - bin/rake-compiler-dock
95
+ - build/gem_helper.rb
95
96
  - build/mk_i686.rb
96
- - build/patches/rake-compiler-1.0.6/enable-static.diff
97
- - build/patches/ruby-2.5.3/no_sendfile.patch
97
+ - build/parallel_docker_build.rb
98
+ - build/patches/ruby-2.5.8/no_sendfile.patch
99
+ - build/patches/ruby-3.0.0/no_sendfile.patch
100
+ - build/patches2/hoe-3.20.0/0001-Load-encrypted-private-key-using-ENV-GEM_PRIVATE_KEY.patch
101
+ - build/patches2/rake-compiler-1.1.1/0001-Fix-determining-of-ruby-versions-in-rake-native-gem.patch
102
+ - build/patches2/rake-compiler-1.1.1/0003-Allow-building-of-cross-rubies-in-parallel.patch
103
+ - build/patches2/rake-compiler-1.1.1/0004-Enable-build-of-static-libruby.patch
104
+ - build/patches2/rake-compiler-1.1.1/0005-Don-t-mask-out-build-env-vars-for-cross-ruby.patch
105
+ - build/patches2/rake-compiler-1.1.1/0006-Use-RAKE_EXTENSION_TASK_NO_NATIVE-env-var-as-the-def.patch
106
+ - build/patches2/ruby-2.7.0/ruby2_keywords.patch
107
+ - build/patches2/ruby-3.0.0/ruby2_keywords.patch
98
108
  - build/runas
99
109
  - build/sigfw.c
100
110
  - build/strip_wrapper
@@ -102,18 +112,18 @@ files:
102
112
  - lib/rake_compiler_dock.rb
103
113
  - lib/rake_compiler_dock/colors.rb
104
114
  - lib/rake_compiler_dock/docker_check.rb
105
- - lib/rake_compiler_dock/gem_helper.rb
106
115
  - lib/rake_compiler_dock/predefined_user_group.rb
107
116
  - lib/rake_compiler_dock/starter.rb
108
117
  - lib/rake_compiler_dock/version.rb
109
118
  - rake-compiler-dock.gemspec
110
119
  - test/test_environment_variables.rb
120
+ - test/test_parallel_docker_build.rb
111
121
  - test/test_starter.rb
112
122
  homepage: https://github.com/rake-compiler/rake-compiler-dock
113
123
  licenses:
114
124
  - MIT
115
125
  metadata: {}
116
- post_install_message:
126
+ post_install_message:
117
127
  rdoc_options: []
118
128
  require_paths:
119
129
  - lib
@@ -128,12 +138,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
138
  - !ruby/object:Gem::Version
129
139
  version: '0'
130
140
  requirements: []
131
- rubyforge_project:
132
- rubygems_version: 2.7.6
133
- signing_key:
141
+ rubygems_version: 3.1.4
142
+ signing_key:
134
143
  specification_version: 4
135
144
  summary: Easy to use and reliable cross compiler environment for building Windows
136
145
  and Linux binary gems.
137
146
  test_files:
138
147
  - test/test_environment_variables.rb
148
+ - test/test_parallel_docker_build.rb
139
149
  - test/test_starter.rb