rake-compiler-dock 1.1.0 → 1.2.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.
- 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
|
-
|