rake-compiler-dock 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/workflows/ci.yml +168 -0
- data/.gitignore +11 -1
- data/Dockerfile.jruby +6 -5
- data/Dockerfile.mri.erb +83 -43
- data/History.md +19 -1
- data/README.md +95 -36
- data/Rakefile +39 -12
- data/build/parallel_docker_build.rb +7 -3
- data/build/patches/{ruby-2.5.8 → ruby-2.5.9}/no_sendfile.patch +0 -0
- data/build/patches/{ruby-3.0.0 → ruby-3.1.0}/no_sendfile.patch +0 -0
- data/build/patches2/{rake-compiler-1.1.1 → rake-compiler-1.1.6}/0004-Enable-build-of-static-libruby.patch +3 -4
- data/build/rcd-env.sh +6 -0
- data/build/runas +1 -9
- data/lib/rake_compiler_dock/starter.rb +3 -2
- data/lib/rake_compiler_dock/version.rb +2 -2
- data/mingw64-ucrt/Dockerfile +62 -0
- data/mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch +13 -0
- data/mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch +13 -0
- data/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
- data/rake-compiler-dock.gemspec +2 -2
- data/test/env/Dockerfile.alpine +17 -0
- data/test/env/Dockerfile.centos +17 -0
- data/test/env/Dockerfile.debian +24 -0
- data/test/rcd_test/Gemfile +11 -0
- data/test/rcd_test/Rakefile +74 -0
- data/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
- data/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
- data/test/rcd_test/ext/mri/extconf.rb +20 -0
- data/test/rcd_test/ext/mri/rcd_test_ext.c +35 -0
- data/test/rcd_test/ext/mri/rcd_test_ext.h +6 -0
- data/test/rcd_test/lib/rcd_test.rb +6 -0
- data/test/rcd_test/rcd_test.gemspec +27 -0
- data/test/rcd_test/test/test_basic.rb +22 -0
- data/test/test_environment_variables.rb +56 -31
- data/test/test_parallel_docker_build.rb +19 -6
- data.tar.gz.sig +0 -0
- metadata +74 -37
- metadata.gz.sig +0 -0
- data/build/patches2/hoe-3.20.0/0001-Load-encrypted-private-key-using-ENV-GEM_PRIVATE_KEY.patch +0 -32
- data/build/patches2/rake-compiler-1.1.1/0001-Fix-determining-of-ruby-versions-in-rake-native-gem.patch +0 -44
- data/build/patches2/rake-compiler-1.1.1/0003-Allow-building-of-cross-rubies-in-parallel.patch +0 -214
- data/build/patches2/rake-compiler-1.1.1/0005-Don-t-mask-out-build-env-vars-for-cross-ruby.patch +0 -30
- data/build/patches2/rake-compiler-1.1.1/0006-Use-RAKE_EXTENSION_TASK_NO_NATIVE-env-var-as-the-def.patch +0 -26
- data/build/patches2/ruby-2.7.0/ruby2_keywords.patch +0 -15
- data/build/patches2/ruby-3.0.0/ruby2_keywords.patch +0 -15
@@ -0,0 +1,74 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rubygems/package_task"
|
3
|
+
require "rake/testtask"
|
4
|
+
|
5
|
+
rcd_test_spec = Bundler.load_gemspec("rcd_test.gemspec")
|
6
|
+
|
7
|
+
if RUBY_ENGINE == "jruby"
|
8
|
+
require "rake/javaextensiontask"
|
9
|
+
|
10
|
+
Rake::JavaExtensionTask.new("rcd_test_ext", rcd_test_spec) do |ext|
|
11
|
+
ext.ext_dir = 'ext/java'
|
12
|
+
ext.lib_dir = 'lib/rcd_test'
|
13
|
+
end
|
14
|
+
else
|
15
|
+
require "rake/extensiontask"
|
16
|
+
|
17
|
+
exttask = Rake::ExtensionTask.new('rcd_test_ext', rcd_test_spec) do |ext|
|
18
|
+
ext.ext_dir = 'ext/mri'
|
19
|
+
ext.lib_dir = 'lib/rcd_test'
|
20
|
+
ext.cross_compile = true
|
21
|
+
ext.cross_platform = %w[x86-mingw32 x64-mingw-ucrt x64-mingw32 x86-linux x86_64-linux aarch64-linux arm-linux x86_64-darwin arm64-darwin]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
namespace "gem" do
|
26
|
+
if exttask
|
27
|
+
task 'prepare' do
|
28
|
+
require 'rake_compiler_dock'
|
29
|
+
require 'io/console'
|
30
|
+
sh "bundle package --all"
|
31
|
+
sh "mkdir -p tmp/gem"
|
32
|
+
sh "cp ~/.gem/gem-*.pem tmp/gem/ || true"
|
33
|
+
unless ENV['CI']
|
34
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
exttask.cross_platform.each do |plat|
|
39
|
+
desc "Build all native binary gems"
|
40
|
+
multitask 'native' => plat
|
41
|
+
|
42
|
+
desc "Build the native gem for #{plat}"
|
43
|
+
task plat => 'prepare' do
|
44
|
+
# Set mountdir of the directory where .git resides, so that git ls-files in the gemspec works
|
45
|
+
RakeCompilerDock.sh <<-EOT, platform: plat, mountdir: Dir.pwd + "/../.."
|
46
|
+
(cp tmp/gem/gem-*.pem ~/.gem/ || true) &&
|
47
|
+
bundle --local &&
|
48
|
+
rake native:#{plat} pkg/#{exttask.gem_spec.full_name}-#{plat}.gem
|
49
|
+
EOT
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "Build a jruby gem"
|
55
|
+
task "jruby" do
|
56
|
+
require 'rake_compiler_dock'
|
57
|
+
sh "bundle package --all"
|
58
|
+
RakeCompilerDock.sh <<-EOT, rubyvm: "jruby", platform: "jruby", mountdir: Dir.pwd + "/../.."
|
59
|
+
bundle --local &&
|
60
|
+
bundle exec rake java gem
|
61
|
+
EOT
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
Rake::TestTask.new(:test) do |t|
|
66
|
+
t.libs << "test"
|
67
|
+
t.libs << "lib"
|
68
|
+
t.test_files = FileList["test/**/test_*.rb"]
|
69
|
+
end
|
70
|
+
|
71
|
+
task default: [:clobber, :compile, :test]
|
72
|
+
task gem: :build
|
73
|
+
|
74
|
+
CLEAN.add("{ext,lib}/**/*.{o,so}", "pkg", "tmp")
|
@@ -0,0 +1,19 @@
|
|
1
|
+
package rcd_test;
|
2
|
+
|
3
|
+
import org.jruby.Ruby;
|
4
|
+
import org.jruby.RubyClass;
|
5
|
+
import org.jruby.RubyModule;
|
6
|
+
import org.jruby.runtime.ObjectAllocator;
|
7
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
8
|
+
import org.jruby.runtime.load.BasicLibraryService;
|
9
|
+
|
10
|
+
import java.io.IOException;
|
11
|
+
|
12
|
+
public class RcdTestExtService implements BasicLibraryService {
|
13
|
+
@Override
|
14
|
+
public boolean basicLoad(final Ruby ruby) throws IOException {
|
15
|
+
RubyModule rb_mRcdTest = ruby.defineModule("RcdTest");
|
16
|
+
rb_mRcdTest.defineAnnotatedMethods(RubyRcdTest.class);
|
17
|
+
return true;
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
package rcd_test;
|
2
|
+
|
3
|
+
import org.jruby.Ruby;
|
4
|
+
import org.jruby.anno.JRubyMethod;
|
5
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
6
|
+
import org.jruby.anno.JRubyModule;
|
7
|
+
import org.jruby.runtime.ThreadContext;
|
8
|
+
|
9
|
+
@JRubyModule(name = "RcdTest")
|
10
|
+
public class RubyRcdTest {
|
11
|
+
@JRubyMethod(name = "do_something", module = true, meta = true)
|
12
|
+
public static IRubyObject buildSelfString(ThreadContext context, IRubyObject recv) {
|
13
|
+
Ruby runtime = context.getRuntime();
|
14
|
+
return runtime.newString("something has been done");
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
if RUBY_ENGINE == "jruby"
|
2
|
+
File.open("Makefile", "w") do |mf|
|
3
|
+
mf.puts "# Dummy makefile for JRuby"
|
4
|
+
mf.puts "all install::\n"
|
5
|
+
end
|
6
|
+
else
|
7
|
+
require "mkmf"
|
8
|
+
|
9
|
+
include RbConfig
|
10
|
+
|
11
|
+
puts "-"*70
|
12
|
+
puts "CONFIG['arch']: #{CONFIG['arch'].inspect}"
|
13
|
+
puts "CONFIG['sitearch']: #{CONFIG['sitearch'].inspect}"
|
14
|
+
puts "CONFIG['RUBY_SO_NAME']: #{CONFIG['RUBY_SO_NAME'].inspect}"
|
15
|
+
puts "RUBY_PLATFORM: #{RUBY_PLATFORM.inspect}"
|
16
|
+
puts "Gem::Platform.local.to_s: #{Gem::Platform.local.to_s.inspect}"
|
17
|
+
puts "-"*70
|
18
|
+
|
19
|
+
create_makefile("rcd_test/rcd_test_ext")
|
20
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#include "rcd_test_ext.h"
|
2
|
+
|
3
|
+
#ifndef __has_builtin
|
4
|
+
#define __has_builtin(x) 0
|
5
|
+
#endif
|
6
|
+
|
7
|
+
VALUE rb_mRcdTest;
|
8
|
+
|
9
|
+
static VALUE
|
10
|
+
rcdt_do_something(VALUE self)
|
11
|
+
{
|
12
|
+
return rb_str_new_cstr("something has been done");
|
13
|
+
}
|
14
|
+
|
15
|
+
static VALUE
|
16
|
+
rcdt_darwin_builtin_available_eh(VALUE self)
|
17
|
+
{
|
18
|
+
#if __has_builtin(__builtin_available)
|
19
|
+
// This version must be higher than MACOSX_DEPLOYMENT_TARGET to prevent clang from optimizing it away
|
20
|
+
if (__builtin_available(macOS 10.14, *)) {
|
21
|
+
return Qtrue;
|
22
|
+
}
|
23
|
+
return Qfalse;
|
24
|
+
#else
|
25
|
+
rb_raise(rb_eRuntimeError, "__builtin_available is not defined");
|
26
|
+
#endif
|
27
|
+
}
|
28
|
+
|
29
|
+
void
|
30
|
+
Init_rcd_test_ext(void)
|
31
|
+
{
|
32
|
+
rb_mRcdTest = rb_define_module("RcdTest");
|
33
|
+
rb_define_singleton_method(rb_mRcdTest, "do_something", rcdt_do_something, 0);
|
34
|
+
rb_define_singleton_method(rb_mRcdTest, "darwin_builtin_available?", rcdt_darwin_builtin_available_eh, 0);
|
35
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "rcd_test"
|
5
|
+
spec.version = "1.0.0"
|
6
|
+
spec.authors = ["Lars Kanis"]
|
7
|
+
spec.email = ["lars@greiz-reinsdorf.de"]
|
8
|
+
|
9
|
+
spec.summary = "C extension for testing rake-compiler-dock"
|
10
|
+
spec.description = "This gem has no real use other than testing builds of binary gems."
|
11
|
+
spec.homepage = "https://github.com/rake-compiler/rake-compiler-dock"
|
12
|
+
spec.required_ruby_version = ">= 2.0.0"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
# Specify which files should be added to the gem when it is released.
|
16
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
17
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
18
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
19
|
+
end
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
spec.extensions = ["ext/mri/extconf.rb"]
|
24
|
+
|
25
|
+
# Uncomment to register a new dependency of your gem
|
26
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
27
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "minitest/autorun"
|
4
|
+
require "rcd_test"
|
5
|
+
|
6
|
+
class TestBasic < Minitest::Test
|
7
|
+
|
8
|
+
def test_do_something
|
9
|
+
assert_equal "something has been done", RcdTest.do_something
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_check_darwin_compiler_rt_symbol_resolution
|
13
|
+
skip("jruby should not run libc-specific tests") if RUBY_ENGINE == "jruby"
|
14
|
+
|
15
|
+
if RUBY_PLATFORM.include?("darwin")
|
16
|
+
assert(RcdTest.darwin_builtin_available?)
|
17
|
+
else
|
18
|
+
e = assert_raises(RuntimeError) { RcdTest.darwin_builtin_available? }
|
19
|
+
assert_equal("__builtin_available is not defined", e.message)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -6,49 +6,74 @@ begin
|
|
6
6
|
rescue LoadError
|
7
7
|
end
|
8
8
|
|
9
|
-
class TestEnvironmentVariables
|
10
|
-
|
9
|
+
class TestEnvironmentVariables
|
10
|
+
module Common
|
11
|
+
IMAGE_NAME = "larskanis/rake-compiler-dock-mri-x86-mingw32:#{RakeCompilerDock::IMAGE_VERSION}"
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
cmd = "#{RbConfig::CONFIG['RUBY_INSTALL_NAME']} -I#{idir.inspect} bin/rake-compiler-dock #{args}"
|
17
|
-
output = `#{cmd}`
|
13
|
+
def rcd_env
|
14
|
+
self.class.instance_variable_get("@rcd_env") || begin
|
15
|
+
command = "env"
|
16
|
+
output = %x(#{invocation(command)})
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
hash[$1] = $2.chomp
|
18
|
+
env = output.split("\n").each_with_object({}) do |line, hash|
|
19
|
+
hash[Regexp.last_match(1)] = Regexp.last_match(2).chomp if line =~ /\A(\w+)=(.*)\z/
|
22
20
|
end
|
23
|
-
|
21
|
+
|
22
|
+
self.class.instance_variable_set("@rcd_env", env)
|
24
23
|
end
|
25
24
|
end
|
26
|
-
end
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
def test_RUBY_CC_VERSION
|
27
|
+
df = File.read(File.expand_path("../../Dockerfile.mri.erb", __FILE__))
|
28
|
+
df =~ /^ENV RUBY_CC_VERSION\s+(.*)\s+$/
|
29
|
+
assert_equal $1, rcd_env['RUBY_CC_VERSION']
|
30
|
+
end
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
def test_RAKE_EXTENSION_TASK_NO_NATIVE
|
33
|
+
assert_equal "true", rcd_env['RAKE_EXTENSION_TASK_NO_NATIVE']
|
34
|
+
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
36
|
+
def test_symlink_rake_compiler
|
37
|
+
cmd = invocation("if test -h $HOME/.rake-compiler ; then echo yes ; else echo no ; fi")
|
38
|
+
assert_equal("yes", %x(#{cmd}).strip)
|
39
|
+
end
|
41
40
|
|
42
|
-
|
43
|
-
|
41
|
+
def test_gem_directory
|
42
|
+
cmd = invocation("if test -d $HOME/.gem ; then echo yes ; else echo no ; fi")
|
43
|
+
assert_equal("yes", %x(#{cmd}).strip)
|
44
|
+
end
|
44
45
|
end
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
47
|
+
class UsingWrapper < Test::Unit::TestCase
|
48
|
+
include Common
|
49
|
+
|
50
|
+
def invocation(command)
|
51
|
+
idir = File.join(File.dirname(__FILE__), '../lib')
|
52
|
+
"#{RbConfig::CONFIG['RUBY_INSTALL_NAME']} -I#{idir.inspect} bin/rake-compiler-dock bash -c '#{command}'"
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_HOST_RUBY_PLATFORM
|
56
|
+
assert_equal RUBY_PLATFORM, rcd_env['RCD_HOST_RUBY_PLATFORM']
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_HOST_RUBY_VERSION
|
60
|
+
assert_equal RUBY_VERSION, rcd_env['RCD_HOST_RUBY_VERSION']
|
61
|
+
end
|
49
62
|
|
50
|
-
|
51
|
-
|
63
|
+
def test_IMAGE
|
64
|
+
assert_equal IMAGE_NAME, rcd_env['RCD_IMAGE']
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_PWD
|
68
|
+
assert_equal Dir.pwd, rcd_env['PWD']
|
69
|
+
end
|
52
70
|
end
|
53
71
|
|
72
|
+
class AsIfContinuousIntegration < Test::Unit::TestCase
|
73
|
+
include Common
|
74
|
+
|
75
|
+
def invocation(command)
|
76
|
+
"docker run -it #{IMAGE_NAME} bash -c '#{command}'"
|
77
|
+
end
|
78
|
+
end
|
54
79
|
end
|
@@ -1,36 +1,47 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require_relative "../build/parallel_docker_build"
|
3
|
+
require "tmpdir"
|
3
4
|
|
4
5
|
class TestParallelDockerBuild < Test::Unit::TestCase
|
5
6
|
def setup
|
6
|
-
|
7
|
+
@tmpdir ||= Dir.mktmpdir
|
8
|
+
|
9
|
+
Dir.chdir(@tmpdir) do
|
10
|
+
File.write "File0", <<-EOT
|
7
11
|
FROM a
|
8
12
|
RUN a
|
9
13
|
RUN d
|
10
14
|
EOT
|
11
|
-
|
15
|
+
File.write "File1", <<-EOT
|
12
16
|
FROM a
|
13
17
|
RUN a
|
14
18
|
RUN d
|
15
19
|
RUN f \\
|
16
20
|
g
|
17
21
|
EOT
|
18
|
-
|
22
|
+
File.write "File2", <<-EOT
|
19
23
|
FROM a
|
20
24
|
RUN b
|
21
25
|
RUN c
|
22
26
|
RUN d
|
23
27
|
EOT
|
24
|
-
|
28
|
+
File.write "File3", <<-EOT
|
25
29
|
FROM a
|
26
30
|
RUN b
|
27
31
|
RUN c
|
28
32
|
RUN d
|
29
33
|
EOT
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def teardown
|
38
|
+
FileUtils.rm_rf @tmpdir
|
30
39
|
end
|
31
40
|
|
32
41
|
def test_tasks
|
33
|
-
|
42
|
+
Dir.chdir(@tmpdir) do
|
43
|
+
RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
|
44
|
+
end
|
34
45
|
|
35
46
|
assert_operator Rake::Task["File0"].prerequisites, :include?, "yFile0File1"
|
36
47
|
assert_operator Rake::Task["File1"].prerequisites, :include?, "yFile1"
|
@@ -43,7 +54,9 @@ class TestParallelDockerBuild < Test::Unit::TestCase
|
|
43
54
|
end
|
44
55
|
|
45
56
|
def test_common_files
|
46
|
-
|
57
|
+
Dir.chdir(@tmpdir) do
|
58
|
+
RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
|
59
|
+
end
|
47
60
|
|
48
61
|
assert_equal "FROM a\nRUN a\nRUN d\nRUN f \\\ng\n", read_df("yFile1")
|
49
62
|
assert_equal "FROM a\nRUN a\nRUN d\n", read_df("yFile0File1")
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-compiler-dock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Kanis
|
@@ -10,55 +10,67 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
+
|
29
|
-
|
30
|
-
|
13
|
+
MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
14
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yMTAzMTAyMDIxNDBaFw0yMjAz
|
15
|
+
MTAyMDIxNDBaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
16
|
+
PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAoJSMECFMhBiOcic1
|
17
|
+
y1cPjgrfxw/R7wK81sQbiilecqw7zcTRZKzhy7sFQzEF0Wbiy2WmStbktq8cXmet
|
18
|
+
44ZEQI5LtyDhkGl7AFMSows5eMu1ChBdOr45OJsHaidrZfVU2vkkohu2+ZJmcqCB
|
19
|
+
TmjBIxTrKpSjMbL1TFd/C491L/SyKhJq90QMs3OfA12SUBD5wlgdfkQ5ZDi1LNTY
|
20
|
+
rKCOqGaa/zkr7/5BWpsgYcC6ziaA956ktyuQFVUgZgyJTzYStRuYjbDmaZv2sldW
|
21
|
+
zwx3Z2YTEItsdGAoZGbiLNuULmzzwyu8yGaWycpK8l8Al+vMpPaa/dgKUFUkAPjy
|
22
|
+
neRjP+N6qWW0hxt0acdw3nXN5ITxo618dQmMzWdLw94wxsWzSUMGldLfNfu9hFnV
|
23
|
+
zLrh1bFBYdXk6Mg1OnejZFBc2YlzF1u8Us+NNydHR8dMfRcAhp7sPeHOEKH8V6z2
|
24
|
+
VgCHlzf1xq+P+FR8svIqGEBVPHuidr1GguIEqJe7enbjrF2ZAgMBAAGjgYEwfzAJ
|
25
|
+
BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUZT8nEztzNp6aQDDOuZHX
|
26
|
+
K9PjoW0wIgYDVR0RBBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwIgYDVR0S
|
27
|
+
BBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwDQYJKoZIhvcNAQELBQADggGB
|
28
|
+
AHZW9LEmp+sptD9VhxGbMSacFwlf03IdkEfmd+7MGzS4nQCQJvs/B5JGTm6q20ML
|
29
|
+
IJXpCnjBPjwnAflyV9rSr9DL2ShuAIJVNWuWs0uhUtz5HEOuV/fVSAFgLHpXP1yV
|
30
|
+
weeoJfLmVeXhRUNo/mH0sjpuRm+C1EVb8QuKFItVa5VBf111Zgn7cFXuOjAtflQ2
|
31
|
+
n3EGZATdVzduNvUENzg6l1Ba+q/nRKKHq5CnG6+1YzOhdzYKFOwlYMi6jLQK33aV
|
32
|
+
aLvq6jWUIpNbL/95ZdOR8Cd6KsCmK5Zvxd5FMMjrQCsZD6OgReshsok5r6tSiNXc
|
33
|
+
YgnBIIAFeoeGz8q+dsm6hPtkii/zr25MPRPmKnbRV7bV/zlbmwpIPxhso95lq3R5
|
34
|
+
H5q2yo7qMajDFkxRffqQO8ONvDLGecxbuv1QEyzNBdehVt4I7UedIfxyOvKd9cg2
|
35
|
+
d5T9wAD7jW/0seVujw+76/YOJWO3Dft+FQmMBbdd8s3J47HbN9R2mDt6fl6he+X/
|
36
|
+
gw==
|
31
37
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
38
|
+
date: 2022-01-04 00:00:00.000000000 Z
|
33
39
|
dependencies:
|
34
40
|
- !ruby/object:Gem::Dependency
|
35
41
|
name: bundler
|
36
42
|
requirement: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
|
-
- - "
|
44
|
+
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
46
|
version: '1.7'
|
47
|
+
- - "<"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.0'
|
41
50
|
type: :development
|
42
51
|
prerelease: false
|
43
52
|
version_requirements: !ruby/object:Gem::Requirement
|
44
53
|
requirements:
|
45
|
-
- - "
|
54
|
+
- - ">="
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: '1.7'
|
57
|
+
- - "<"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.0'
|
48
60
|
- !ruby/object:Gem::Dependency
|
49
61
|
name: rake
|
50
62
|
requirement: !ruby/object:Gem::Requirement
|
51
63
|
requirements:
|
52
|
-
- - "
|
64
|
+
- - ">="
|
53
65
|
- !ruby/object:Gem::Version
|
54
|
-
version: '12
|
66
|
+
version: '12'
|
55
67
|
type: :development
|
56
68
|
prerelease: false
|
57
69
|
version_requirements: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - ">="
|
60
72
|
- !ruby/object:Gem::Version
|
61
|
-
version: '12
|
73
|
+
version: '12'
|
62
74
|
- !ruby/object:Gem::Dependency
|
63
75
|
name: test-unit
|
64
76
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,6 +95,7 @@ executables:
|
|
83
95
|
extensions: []
|
84
96
|
extra_rdoc_files: []
|
85
97
|
files:
|
98
|
+
- ".github/workflows/ci.yml"
|
86
99
|
- ".gitignore"
|
87
100
|
- Dockerfile.jruby
|
88
101
|
- Dockerfile.mri.erb
|
@@ -95,16 +108,10 @@ files:
|
|
95
108
|
- build/gem_helper.rb
|
96
109
|
- build/mk_i686.rb
|
97
110
|
- build/parallel_docker_build.rb
|
98
|
-
- build/patches/ruby-2.5.
|
99
|
-
- build/patches/ruby-3.
|
100
|
-
- build/patches2/
|
101
|
-
- build/
|
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
|
111
|
+
- build/patches/ruby-2.5.9/no_sendfile.patch
|
112
|
+
- build/patches/ruby-3.1.0/no_sendfile.patch
|
113
|
+
- build/patches2/rake-compiler-1.1.6/0004-Enable-build-of-static-libruby.patch
|
114
|
+
- build/rcd-env.sh
|
108
115
|
- build/runas
|
109
116
|
- build/sigfw.c
|
110
117
|
- build/strip_wrapper
|
@@ -115,7 +122,24 @@ files:
|
|
115
122
|
- lib/rake_compiler_dock/predefined_user_group.rb
|
116
123
|
- lib/rake_compiler_dock/starter.rb
|
117
124
|
- lib/rake_compiler_dock/version.rb
|
125
|
+
- mingw64-ucrt/Dockerfile
|
126
|
+
- mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch
|
127
|
+
- mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch
|
128
|
+
- mingw64-ucrt/mingw-w64-enable-ucrt.patch
|
118
129
|
- rake-compiler-dock.gemspec
|
130
|
+
- test/env/Dockerfile.alpine
|
131
|
+
- test/env/Dockerfile.centos
|
132
|
+
- test/env/Dockerfile.debian
|
133
|
+
- test/rcd_test/Gemfile
|
134
|
+
- test/rcd_test/Rakefile
|
135
|
+
- test/rcd_test/ext/java/RcdTestExtService.java
|
136
|
+
- test/rcd_test/ext/java/RubyRcdTest.java
|
137
|
+
- test/rcd_test/ext/mri/extconf.rb
|
138
|
+
- test/rcd_test/ext/mri/rcd_test_ext.c
|
139
|
+
- test/rcd_test/ext/mri/rcd_test_ext.h
|
140
|
+
- test/rcd_test/lib/rcd_test.rb
|
141
|
+
- test/rcd_test/rcd_test.gemspec
|
142
|
+
- test/rcd_test/test/test_basic.rb
|
119
143
|
- test/test_environment_variables.rb
|
120
144
|
- test/test_parallel_docker_build.rb
|
121
145
|
- test/test_starter.rb
|
@@ -138,12 +162,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
162
|
- !ruby/object:Gem::Version
|
139
163
|
version: '0'
|
140
164
|
requirements: []
|
141
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.2.22
|
142
166
|
signing_key:
|
143
167
|
specification_version: 4
|
144
168
|
summary: Easy to use and reliable cross compiler environment for building Windows
|
145
169
|
and Linux binary gems.
|
146
170
|
test_files:
|
171
|
+
- test/env/Dockerfile.alpine
|
172
|
+
- test/env/Dockerfile.centos
|
173
|
+
- test/env/Dockerfile.debian
|
174
|
+
- test/rcd_test/Gemfile
|
175
|
+
- test/rcd_test/Rakefile
|
176
|
+
- test/rcd_test/ext/java/RcdTestExtService.java
|
177
|
+
- test/rcd_test/ext/java/RubyRcdTest.java
|
178
|
+
- test/rcd_test/ext/mri/extconf.rb
|
179
|
+
- test/rcd_test/ext/mri/rcd_test_ext.c
|
180
|
+
- test/rcd_test/ext/mri/rcd_test_ext.h
|
181
|
+
- test/rcd_test/lib/rcd_test.rb
|
182
|
+
- test/rcd_test/rcd_test.gemspec
|
183
|
+
- test/rcd_test/test/test_basic.rb
|
147
184
|
- test/test_environment_variables.rb
|
148
185
|
- test/test_parallel_docker_build.rb
|
149
186
|
- test/test_starter.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/build/patches2/hoe-3.20.0/0001-Load-encrypted-private-key-using-ENV-GEM_PRIVATE_KEY.patch
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
From ecc5669223457ceaba6bd94c2947ae99ddfa8f10 Mon Sep 17 00:00:00 2001
|
2
|
-
From: Lars Kanis <lars@greiz-reinsdorf.de>
|
3
|
-
Date: Fri, 27 Dec 2019 15:57:07 +0100
|
4
|
-
Subject: [PATCH] Load encrypted private key using
|
5
|
-
ENV['GEM_PRIVATE_KEY_PASSPHRASE'] as passphrase.
|
6
|
-
|
7
|
-
This way the password can be avoided to be entered several times when building multiple gems.
|
8
|
-
It also allows parallel builds which are incompatible to interactive password prompts.
|
9
|
-
|
10
|
-
The same feature has been implemented in rubygems:
|
11
|
-
https://github.com/rubygems/rubygems/commit/c1a114396fcec124d3feabf74708b4bdec02eac3
|
12
|
-
---
|
13
|
-
lib/hoe/signing.rb | 3 ++-
|
14
|
-
1 file changed, 2 insertions(+), 1 deletion(-)
|
15
|
-
|
16
|
-
diff --git a/lib/hoe/signing.rb b/lib/hoe/signing.rb
|
17
|
-
index 4833c55..11c8c2f 100644
|
18
|
-
--- a/lib/hoe/signing.rb
|
19
|
-
+++ b/lib/hoe/signing.rb
|
20
|
-
@@ -70,7 +70,8 @@ module Hoe::Signing
|
21
|
-
end
|
22
|
-
|
23
|
-
if signing_key and cert_chain then
|
24
|
-
- spec.signing_key = OpenSSL::PKey::RSA.new File.read signing_key
|
25
|
-
+ passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
|
26
|
-
+ spec.signing_key = OpenSSL::PKey::RSA.new(File.read(signing_key), passphrase)
|
27
|
-
spec.cert_chain = cert_chain
|
28
|
-
end
|
29
|
-
end
|
30
|
-
--
|
31
|
-
2.20.1
|
32
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
From 365843bfe0bfc3f1c1b11e81e24ac7b6c7942bdf Mon Sep 17 00:00:00 2001
|
2
|
-
From: Lars Kanis <lars@greiz-reinsdorf.de>
|
3
|
-
Date: Fri, 27 Dec 2019 18:18:59 +0100
|
4
|
-
Subject: [PATCH] Fix determining of ruby versions in "rake native gem"
|
5
|
-
|
6
|
-
"rake native gem" without "cross" didn't set the ruby version constraint.
|
7
|
-
Instead it failed with NoMethodError like so:
|
8
|
-
|
9
|
-
/ffi $ rake native gem
|
10
|
-
no configuration section for specified version of Ruby (rbconfig-i386-mingw32-2.6.3)
|
11
|
-
no configuration section for specified version of Ruby (rbconfig-x64-mingw32-2.6.3)
|
12
|
-
install -c build/x86_64-linux/ffi_c/2.6.3/ffi_c.so lib/ffi_c.so
|
13
|
-
cp build/x86_64-linux/ffi_c/2.6.3/ffi_c.so build/x86_64-linux/stage/lib/ffi_c.so
|
14
|
-
rake aborted!
|
15
|
-
NoMethodError: undefined method `split' for nil:NilClass
|
16
|
-
/home/lars/.rvm/gems/ruby-2.6.3/gems/rake-compiler-1.0.9/lib/rake/extensiontask.rb:515:in `ruby_api_version'
|
17
|
-
/home/lars/.rvm/gems/ruby-2.6.3/gems/rake-compiler-1.0.9/lib/rake/extensiontask.rb:262:in `block in define_native_tasks'
|
18
|
-
/home/lars/.rvm/gems/ruby-2.6.3/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
|
19
|
-
/home/lars/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `eval'
|
20
|
-
/home/lars/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `<main>'
|
21
|
-
Tasks: TOP => native => native:x86_64-linux => native:ffi:x86_64-linux
|
22
|
-
(See full trace by running task with --trace)
|
23
|
-
---
|
24
|
-
lib/rake/extensiontask.rb | 4 ++++
|
25
|
-
1 file changed, 4 insertions(+)
|
26
|
-
|
27
|
-
diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb
|
28
|
-
index d85b1a3..cb1ea12 100644
|
29
|
-
--- a/lib/rake/extensiontask.rb
|
30
|
-
+++ b/lib/rake/extensiontask.rb
|
31
|
-
@@ -242,6 +242,10 @@ Java extension should be preferred.
|
32
|
-
# lib_path
|
33
|
-
lib_path = lib_dir
|
34
|
-
|
35
|
-
+ # Update compiled platform/version combinations
|
36
|
-
+ ruby_versions = (@ruby_versions_per_platform[platf] ||= [])
|
37
|
-
+ ruby_versions << ruby_ver
|
38
|
-
+
|
39
|
-
# create 'native:gem_name' and chain it to 'native' task
|
40
|
-
unless Rake::Task.task_defined?("native:#{@gem_spec.name}:#{platf}")
|
41
|
-
task "native:#{@gem_spec.name}:#{platf}" do |t|
|
42
|
-
--
|
43
|
-
2.20.1
|
44
|
-
|