rb_sys 0.9.88 → 0.9.103

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15d57a4553b64cda8df8725e87004f41d8270cc44200659a0af0e64a4b45c873
4
- data.tar.gz: cdf02a0c1d4fbdbbf279f8298bddc5d62acda5fb51304b489f0844827bcb8a70
3
+ metadata.gz: 1cc1c79fc1d7d8cd6eccd02f21f2edc9e24642e5c98232e2d76b6b9d86e0a1b2
4
+ data.tar.gz: b8816aa7c2dd0c66e9dcccd4e2e26fdb73968a39382639735b1752723d460267
5
5
  SHA512:
6
- metadata.gz: 2acaf8ff57e2e6fa56eccbb3e3ad70a337539089c3ec7c8bae760b88ae6fac584dc009fb07655e71d5db61e61f975fc37801a0e90c8d5768c2f95a4a02bfd2e5
7
- data.tar.gz: c68d528f92d88c16cfa68fe80c640672cb366e3bcac268bbfeab3479766226cf39d22e6e31753d38b8f551d172d7ed5eca1773177bc3d9c40a0df0f0abc48961
6
+ metadata.gz: 6886911f933b14099952de5eab3e2b8a1c952a6a12041d7e843bdccfc48e5e6f28c7263fdc27091b0a2e5f8521cf3e623632052f57b7e29970af0b1123dda9f1
7
+ data.tar.gz: 8f5a626a488b17c04e4dab41330b01ebf9347e1d8d473af2c896b2ec236084a48e5178a9f4b1e0fc974ad5135754588b1dbdd4e520ef0902a03fd9ee816d9944
checksums.yaml.gz.sig CHANGED
Binary file
data/certs/ianks.pem CHANGED
@@ -1,7 +1,7 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMRQwEgYDVQQDDAtpLmtl
2
+ MIIDODCCAiCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBCMRQwEgYDVQQDDAtpLmtl
3
3
  cnNleW1lcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
4
- Y29tMB4XDTIzMDQxNDEzMzYxNVoXDTI0MDQxMzEzMzYxNVowQjEUMBIGA1UEAwwL
4
+ Y29tMB4XDTI0MDQxODA1MzY0N1oXDTI1MDQxODA1MzY0N1owQjEUMBIGA1UEAwwL
5
5
  aS5rZXJzZXltZXIxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
6
6
  ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJ2pG+er4cP
7
7
  PasxsMIKL9/tmLL4gh80EMuF3SCS0qZoh+Oo8dkvRYxW8NXdwEIcp3cCNgE+5G+J
@@ -9,13 +9,12 @@ TCMOVF8S15n1Z1P7xxXiXxa/BIofKKbtatVRngm14uR/6pjdkvLXqlrWdS57bNwv
9
9
  7LtpzYVfDHfsl/qRWaEi4jq00PNCRSWjcva8teqswjBg8KlwGtyygpezPbVSWP8Y
10
10
  vzWZmVF7fqRBXU78Ah0+pNOhslBXDTvI3xJdN4hQ3H7rLjpD/qxKWq/8o+Qvx6cX
11
11
  dNZ3ugH/Pr3BAsqt4JFLXin9AK7PO9GDMH5JXJrUb+hAt2VNIZqpz9VlKA6BA0jN
12
- eWGea+yCZkECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
13
- BBYEFOkrF6hsocaIMOjR/K3JBzyXCLJPMCAGA1UdEQQZMBeBFWkua2Vyc2V5bWVy
14
- QGdtYWlsLmNvbTAgBgNVHRIEGTAXgRVpLmtlcnNleW1lckBnbWFpbC5jb20wDQYJ
15
- KoZIhvcNAQELBQADggEBAMAohCl0cdVlYrJl9viGtzbEyLV/Krn0ZD/LM9d2cIRj
16
- WBu7HRkP6AfYVzhZwdgUgDYw67d715kOMpLNGeWQw3QGEHFqbVzRML64jL8IxuTz
17
- J8ttZVqM8f4GrHyISJnL92u6iP4WzdbVqx89EFjrrHd14OJXK+ZpdRh0YvnN/vMJ
18
- t2EcDweRHkN/MEdrwbH+PbYjELnKcTIEZqcCWTk8pgssGrNyjkMhxGSsSUo9qTz0
19
- DIZ6NVmpBvohJVCCCDxQQxFKLXZp1ivoxjN+m7eJSW7yzIz062pH4u8pPNQsiVSb
20
- I5rgRPbDr2rAFGXKoQ0+u6CLkRxqrVsITl/OPfZhBQI=
12
+ eWGea+yCZkECAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
13
+ BBYEFOkrF6hsocaIMOjR/K3JBzyXCLJPMA0GCSqGSIb3DQEBCwUAA4IBAQARHgco
14
+ yCxWUqN+HBGewmSB7T4oq6YS2FtU62K+GuWWCTqjl5byLKMXQW8HPDja9TC1My1m
15
+ 2r0uDshtUvUjuB/Vfe9jVMTjnPBspHZYo0MRuMPc7owJaahjkqD3l7w9aa8Ci5aC
16
+ YU4Aj71Sc8s7YIxgHn/yIUdCe1yu6cC0+h+Ss9r/Yjr53NNXwjGQlDmH1eHcVQGZ
17
+ mEoVcZO1uWNtRPPsn1gfvKLPjRe5pclXQnGviS5DiH0Du+8QMxQGBJnYz2zSMW7G
18
+ Lvd35BNvZkhFzs9xfykhurpkT2TiP2F3ZFn9dwLXMFe41pwrtEYLIWhYi8mUG4Ek
19
+ 6aR8M/tqIpChVV39
21
20
  -----END CERTIFICATE-----
data/exe/rb-sys-dock CHANGED
@@ -18,7 +18,13 @@ OPTIONS = {
18
18
  }
19
19
 
20
20
  def cargo_metadata
21
- @cargo_metadata ||= RbSys::Cargo::Metadata.new("rb-sys-dock", deps: true)
21
+ return @cargo_metadata if defined?(@cargo_metadata)
22
+
23
+ @cargo_metadata = begin
24
+ RbSys::Cargo::Metadata.inferred(deps: true)
25
+ rescue
26
+ nil
27
+ end
22
28
  end
23
29
 
24
30
  def logger
@@ -172,9 +178,9 @@ end
172
178
 
173
179
  def determine_cache_dir
174
180
  return ENV["RB_SYS_DOCK_CACHE_DIR"] if ENV["RB_SYS_DOCK_CACHE_DIR"]
175
- return File.join(ENV["XDG_CACHE_HOME"], "rb-sys-dock") if ENV["XDG_CACHE_HOME"]
181
+ return File.join(ENV["XDG_CACHE_HOME"], "rb-sys") if ENV["XDG_CACHE_HOME"]
176
182
 
177
- File.join(ENV["HOME"], ".cache", "rb-sys-dock")
183
+ File.join(ENV["HOME"], ".cache", "rb-sys")
178
184
  end
179
185
 
180
186
  def docker_tmp
@@ -359,7 +365,7 @@ def rcd(input_args)
359
365
  cmd = <<~SH
360
366
  #{default_docker_command} run \
361
367
  --platform #{OPTIONS.fetch(:docker_platform)} \
362
- -v #{working_directory}:#{working_directory} \
368
+ -v $(pwd):$(pwd) \
363
369
  #{mount_tmp_dir} \
364
370
  #{mount_target_dir} \
365
371
  #{mount_cargo_registry} \
@@ -421,7 +427,7 @@ def set_env
421
427
  end
422
428
 
423
429
  def lint_rb_sys
424
- cargo_version = cargo_metadata.rb_sys_version
430
+ cargo_version = cargo_metadata&.rb_sys_version || RbSys::VERSION
425
431
  return if cargo_version == RbSys::VERSION
426
432
  logger.warn("Cargo rb-sys version (#{cargo_version}) does not match Ruby gem version (#{RbSys::VERSION})")
427
433
  rescue => e
@@ -9,6 +9,26 @@ module RbSys
9
9
  class Metadata
10
10
  attr_reader :name
11
11
 
12
+ class << self
13
+ # Infers the Cargo project's name from the Cargo.toml file.
14
+ #
15
+ # @return [RbSys::Cargo::Metadata]
16
+ def inferred(deps: false)
17
+ new(File.read("Cargo.toml").match(/^name = "(.*)"/)[1], deps: deps)
18
+ rescue
19
+ new(File.basename(Dir.pwd), deps: deps)
20
+ end
21
+
22
+ # Initializes a new Cargo::Metadata instance or infers the Cargo project's name.
23
+ #
24
+ # @param name [String] the name of the Cargo project
25
+ def new_or_inferred(name, deps: false)
26
+ new(name, deps: deps).load!
27
+ rescue CargoMetadataError
28
+ inferred
29
+ end
30
+ end
31
+
12
32
  # Initializes a new Cargo::Metadata instance.
13
33
  #
14
34
  # @param name [String] the name of the Cargo project
@@ -92,12 +112,22 @@ module RbSys
92
112
  end
93
113
 
94
114
  # Returns the rb-sys version, if any.
115
+ #
116
+ # @return [String]
95
117
  def rb_sys_version
96
118
  pkg = packages.find { |p| p.fetch("name") == "rb-sys" }
97
119
  return unless pkg
98
120
  pkg["version"]
99
121
  end
100
122
 
123
+ # Eagerly run `cargo metadata`, raising a RbSys::CargoCargoMetadataError` if it fails.
124
+ #
125
+ # @return [RbSys::Cargo::Metadata]
126
+ def load!
127
+ cargo_metadata
128
+ self
129
+ end
130
+
101
131
  private
102
132
 
103
133
  def package_metadata
@@ -9,7 +9,7 @@ module RbSys
9
9
  WELL_KNOWN_WRAPPERS = %w[sccache cachepot].freeze
10
10
 
11
11
  attr_accessor :spec, :runner, :env, :features, :target, :extra_rustc_args, :dry_run, :ext_dir, :extra_rustflags,
12
- :extra_cargo_args
12
+ :extra_cargo_args, :config
13
13
  attr_writer :profile
14
14
 
15
15
  def initialize(spec)
@@ -66,7 +66,11 @@ module RbSys
66
66
 
67
67
  def cargo_command(dest_path, args = [])
68
68
  cmd = []
69
- cmd += ["cargo", "rustc"]
69
+ cmd += if config.use_cargo_build
70
+ ["cargo", "build"]
71
+ else
72
+ ["cargo", "rustc"]
73
+ end
70
74
  cmd += ["--target", target] if target
71
75
  cmd += ["--target-dir", dest_path]
72
76
  cmd += ["--features", features.join(",")] unless features.empty?
@@ -74,9 +78,11 @@ module RbSys
74
78
  cmd += ["--profile", profile.to_s]
75
79
  cmd += Gem::Command.build_args
76
80
  cmd += args
77
- cmd += ["--"]
78
- cmd += [*rustc_args(dest_path)]
79
- cmd += extra_rustc_args
81
+ if !config.use_cargo_build
82
+ cmd += ["--"]
83
+ cmd += [*rustc_args(dest_path)]
84
+ cmd += extra_rustc_args
85
+ end
80
86
  cmd
81
87
  end
82
88
 
@@ -140,6 +146,15 @@ module RbSys
140
146
  # See https://github.com/oxidize-rb/rb-sys/issues/88
141
147
  dl_flag = "-Wl,-undefined,dynamic_lookup"
142
148
  flags += ["-C", "link-arg=#{dl_flag}"] unless makefile_config("DLDFLAGS")&.include?(dl_flag)
149
+ elsif RUBY_ENGINE == "truffleruby"
150
+ dl_flag = "-Wl,-z,lazy"
151
+ flags += ["-C", "link-arg=#{dl_flag}"] unless makefile_config("DLDFLAGS")&.include?(dl_flag)
152
+ # lazy binding requires RELRO to be off, see https://users.rust-lang.org/t/linux-executable-lazy-loading/65621/2
153
+ flags += ["-C", "relro-level=off"]
154
+ end
155
+
156
+ if musl?
157
+ flags += ["-C", "target-feature=-crt-static"]
143
158
  end
144
159
 
145
160
  flags
@@ -328,7 +343,11 @@ module RbSys
328
343
  end
329
344
 
330
345
  def rubygems_invoked?
331
- ENV.key?("SOURCE_DATE_EPOCH") && !ENV["RB_SYS_TEST"] == "1"
346
+ ENV.key?("SOURCE_DATE_EPOCH") && ENV["RB_SYS_TEST"] != "1"
347
+ end
348
+
349
+ def musl?
350
+ RbConfig::CONFIG["target_os"] == "linux-musl" || RbConfig::CONFIG["CC"]&.include?("musl-gcc")
332
351
  end
333
352
 
334
353
  # Error raised when no cdylib artifact was created
@@ -57,7 +57,7 @@ module RbSys
57
57
  end
58
58
 
59
59
  def cargo_metadata
60
- @cargo_metadata ||= Cargo::Metadata.new(@name)
60
+ @cargo_metadata ||= Cargo::Metadata.new_or_inferred(@name)
61
61
  end
62
62
 
63
63
  def extconf
@@ -25,8 +25,13 @@ module RbSys
25
25
  # Use compiled C code fallback for stable API for ruby-head (default: false)
26
26
  attr_accessor :use_stable_api_compiled_fallback
27
27
 
28
+ # Instead of the default `cargo rustc` behaviour, just call `cargo build`.
29
+ # Requires manually setting relevant rb-sys environment (default: false)
30
+ attr_accessor :use_cargo_build
31
+
28
32
  def initialize(builder)
29
33
  @builder = builder
34
+ @builder.config = self
30
35
  @force_install_rust_toolchain = false
31
36
  @auto_install_rust_toolchain = true
32
37
  @use_stable_api_compiled_fallback = false
@@ -55,7 +60,7 @@ module RbSys
55
60
  # install, to remove bloat.
56
61
  # @api private
57
62
  def rubygems_invoked?
58
- ENV.key?("SOURCE_DATE_EPOCH") && !ENV["RB_SYS_TEST"] == "1"
63
+ ENV.key?("SOURCE_DATE_EPOCH") && ENV["RB_SYS_TEST"] != "1"
59
64
  end
60
65
 
61
66
  def use_stable_api_compiled_fallback?
data/lib/rb_sys/mkmf.rb CHANGED
@@ -10,9 +10,6 @@ require_relative "mkmf/config"
10
10
  module RbSys
11
11
  # Helper class for creating Rust Makefiles
12
12
  module Mkmf
13
- # @api private
14
- GLOBAL_RUSTFLAGS = ["--cfg=rb_sys_gem"]
15
-
16
13
  # Helper for building Rust extensions by creating a Ruby compatible makefile
17
14
  # for Rust. By using this class, your rust extension will be 100% compatible
18
15
  # with the rake-compiler gem, which allows for easy cross compilation.
@@ -32,7 +29,7 @@ module RbSys
32
29
  # r.env = { 'FOO' => 'bar' }
33
30
  # r.profile = ENV.fetch('RB_SYS_CARGO_PROFILE', :dev).to_sym
34
31
  # r.features = %w[some_cargo_feature]
35
- # r.rustflags = %w[--cfg=foo]
32
+ # r.extra_rustflags = %w[--cfg=foo]
36
33
  # r.target_dir = "some/target/dir"
37
34
  # end
38
35
  def create_rust_makefile(target, &blk)
@@ -53,7 +50,10 @@ module RbSys
53
50
  RbConfig.expand(srcdir = srcprefix.dup)
54
51
 
55
52
  full_cargo_command = cargo_command(srcdir, builder)
56
- global_rustflags = GLOBAL_RUSTFLAGS.dup
53
+
54
+ global_rustflags = []
55
+ # Re-enable if this causes issues, but it should be fine and it prevents unnecessary recompilation
56
+ # global_rustflags << "--cfg=rb_sys_gem" unless builder.use_cargo_build
57
57
  global_rustflags << "--cfg=rb_sys_use_stable_api_compiled_fallback" if builder.use_stable_api_compiled_fallback?
58
58
 
59
59
  make_install = +<<~MAKE
@@ -102,6 +102,7 @@ module RbSys
102
102
  RUSTLIBDIR = $(RB_SYS_FULL_TARGET_DIR)/$(RB_SYS_CARGO_PROFILE_DIR)
103
103
  RUSTLIB = $(RUSTLIBDIR)/$(SOEXT_PREFIX)$(TARGET_NAME).$(SOEXT)
104
104
  TIMESTAMP_DIR = .
105
+ POSTLINK = #{RbConfig::CONFIG["POSTLINK"] || "$(ECHO) skipping postlink"}
105
106
 
106
107
  CLEANOBJS = $(RUSTLIBDIR) $(RB_SYS_BUILD_DIR)
107
108
  CLEANLIBS = $(DLLIB) $(RUSTLIB)
@@ -132,9 +133,11 @@ module RbSys
132
133
 
133
134
  $(DLLIB): $(RUSTLIB)
134
135
  \t$(Q) $(COPY) "$(RUSTLIB)" $@
136
+ \t$(Q) $(POSTLINK)
135
137
 
136
138
  install-so: $(DLLIB) #{timestamp_file("sitearchdir")}
137
139
  \t$(ECHO) installing $(DLLIB) to $(RUBYARCHDIR)
140
+ \t#{fixup_libnames}
138
141
  \t$(Q) $(MAKEDIRS) $(RUBYARCHDIR)
139
142
  \t$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
140
143
 
@@ -164,12 +167,16 @@ module RbSys
164
167
  def cargo_command(cargo_dir, builder)
165
168
  builder.ext_dir = cargo_dir
166
169
  dest_path = builder.target_dir || File.join(Dir.pwd, "target")
167
- args = ARGV.dup
168
- args.shift if args.first == "--"
170
+ args = []
171
+ args = ARGV.dup.shift if args.first == "--"
169
172
  cargo_cmd = builder.cargo_command(dest_path, args)
170
173
  cmd = Shellwords.join(cargo_cmd)
171
174
  cmd.gsub!("\\=", "=")
172
- cmd.gsub!(/\Acargo rustc/, "$(CARGO) rustc $(RB_SYS_EXTRA_CARGO_ARGS) --manifest-path $(RB_SYS_CARGO_MANIFEST_DIR)/Cargo.toml")
175
+ if builder.use_cargo_build
176
+ cmd.gsub!(/\Acargo rustc/, "$(CARGO) build $(RB_SYS_EXTRA_CARGO_ARGS) --manifest-path $(RB_SYS_CARGO_MANIFEST_DIR)/Cargo.toml")
177
+ else
178
+ cmd.gsub!(/\Acargo rustc/, "$(CARGO) rustc $(RB_SYS_EXTRA_CARGO_ARGS) --manifest-path $(RB_SYS_CARGO_MANIFEST_DIR)/Cargo.toml")
179
+ end
173
180
  cmd.gsub!(/-v=\d/, "")
174
181
  cmd
175
182
  end
@@ -275,6 +282,12 @@ module RbSys
275
282
  find_executable("cargo").nil?
276
283
  end
277
284
 
285
+ def fixup_libnames
286
+ return unless find_executable("install_name_tool")
287
+
288
+ '$(Q) install_name_tool -id "" $(DLLIB)'
289
+ end
290
+
278
291
  def if_eq_stmt(a, b)
279
292
  if $nmake
280
293
  "!IF #{a.inspect} == #{b.inspect}"
@@ -5,6 +5,6 @@
5
5
  module RbSys
6
6
  class ToolchainInfo
7
7
  # @private
8
- DATA = {"arm-linux" => {"rust-target" => "arm-unknown-linux-gnueabihf", "rake-compiler-dock" => {"cc" => "arm-linux-gnueabihf-gcc"}, "docker-platform" => "linux/arm/v7", "supported" => true}, "aarch64-linux" => {"rust-target" => "aarch64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "aarch64-linux-gnu-gcc"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "arm64-darwin" => {"rust-target" => "aarch64-apple-darwin", "rake-compiler-dock" => {"cc" => "aarch64-apple-darwin-clang"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "x64-mingw-ucrt" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x64-mingw32" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86-linux" => {"rust-target" => "i686-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "i686-redhat-linux-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86-mingw32" => {"rust-target" => "i686-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "i686-w64-mingw32-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86_64-darwin" => {"rust-target" => "x86_64-apple-darwin", "rake-compiler-dock" => {"cc" => "x86_64-apple-darwin-clang"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux" => {"rust-target" => "x86_64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "x86_64-redhat-linux-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux-musl" => {"rust-target" => "x86_64-unknown-linux-musl", "rake-compiler-dock" => {"cc" => "x86_64-unknown-linux-musl-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}}
8
+ DATA = {"arm-linux" => {"rust-target" => "arm-unknown-linux-gnueabihf", "rake-compiler-dock" => {"cc" => "arm-linux-gnueabihf-gcc"}, "docker-platform" => "linux/arm/v7", "supported" => true}, "aarch64-linux" => {"rust-target" => "aarch64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "aarch64-linux-gnu-gcc"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "aarch64-linux-musl" => {"rust-target" => "aarch64-unknown-linux-musl", "rake-compiler-dock" => {"cc" => "aarch64-linux-musl-gcc"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "arm64-darwin" => {"rust-target" => "aarch64-apple-darwin", "rake-compiler-dock" => {"cc" => "aarch64-apple-darwin-clang"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "x64-mingw-ucrt" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x64-mingw32" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86-linux" => {"rust-target" => "i686-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "i686-redhat-linux-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86-mingw32" => {"rust-target" => "i686-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "i686-w64-mingw32-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86_64-darwin" => {"rust-target" => "x86_64-apple-darwin", "rake-compiler-dock" => {"cc" => "x86_64-apple-darwin-clang"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux" => {"rust-target" => "x86_64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "x86_64-redhat-linux-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux-musl" => {"rust-target" => "x86_64-unknown-linux-musl", "rake-compiler-dock" => {"cc" => "x86_64-unknown-linux-musl-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}}
9
9
  end
10
10
  end
@@ -28,6 +28,13 @@ module RbSys
28
28
  @supported ||= all.select(&:supported?)
29
29
  end
30
30
 
31
+ # Get all supported toolchain names, as strings.
32
+ #
33
+ # @return [Array<String>]
34
+ def supported_ruby_platforms
35
+ supported.map(&:platform)
36
+ end
37
+
31
38
  # Get the toolchain for the current platform.
32
39
  #
33
40
  # @return [RbSys::ToolchainInfo]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbSys
4
- VERSION = "0.9.88"
4
+ VERSION = "0.9.103"
5
5
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb_sys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.88
4
+ version: 0.9.103
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Ker-Seymer
@@ -10,9 +10,9 @@ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMRQwEgYDVQQDDAtpLmtl
13
+ MIIDODCCAiCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBCMRQwEgYDVQQDDAtpLmtl
14
14
  cnNleW1lcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
15
- Y29tMB4XDTIzMDQxNDEzMzYxNVoXDTI0MDQxMzEzMzYxNVowQjEUMBIGA1UEAwwL
15
+ Y29tMB4XDTI0MDQxODA1MzY0N1oXDTI1MDQxODA1MzY0N1owQjEUMBIGA1UEAwwL
16
16
  aS5rZXJzZXltZXIxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
17
17
  ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJ2pG+er4cP
18
18
  PasxsMIKL9/tmLL4gh80EMuF3SCS0qZoh+Oo8dkvRYxW8NXdwEIcp3cCNgE+5G+J
@@ -20,17 +20,16 @@ cert_chain:
20
20
  7LtpzYVfDHfsl/qRWaEi4jq00PNCRSWjcva8teqswjBg8KlwGtyygpezPbVSWP8Y
21
21
  vzWZmVF7fqRBXU78Ah0+pNOhslBXDTvI3xJdN4hQ3H7rLjpD/qxKWq/8o+Qvx6cX
22
22
  dNZ3ugH/Pr3BAsqt4JFLXin9AK7PO9GDMH5JXJrUb+hAt2VNIZqpz9VlKA6BA0jN
23
- eWGea+yCZkECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
24
- BBYEFOkrF6hsocaIMOjR/K3JBzyXCLJPMCAGA1UdEQQZMBeBFWkua2Vyc2V5bWVy
25
- QGdtYWlsLmNvbTAgBgNVHRIEGTAXgRVpLmtlcnNleW1lckBnbWFpbC5jb20wDQYJ
26
- KoZIhvcNAQELBQADggEBAMAohCl0cdVlYrJl9viGtzbEyLV/Krn0ZD/LM9d2cIRj
27
- WBu7HRkP6AfYVzhZwdgUgDYw67d715kOMpLNGeWQw3QGEHFqbVzRML64jL8IxuTz
28
- J8ttZVqM8f4GrHyISJnL92u6iP4WzdbVqx89EFjrrHd14OJXK+ZpdRh0YvnN/vMJ
29
- t2EcDweRHkN/MEdrwbH+PbYjELnKcTIEZqcCWTk8pgssGrNyjkMhxGSsSUo9qTz0
30
- DIZ6NVmpBvohJVCCCDxQQxFKLXZp1ivoxjN+m7eJSW7yzIz062pH4u8pPNQsiVSb
31
- I5rgRPbDr2rAFGXKoQ0+u6CLkRxqrVsITl/OPfZhBQI=
23
+ eWGea+yCZkECAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
24
+ BBYEFOkrF6hsocaIMOjR/K3JBzyXCLJPMA0GCSqGSIb3DQEBCwUAA4IBAQARHgco
25
+ yCxWUqN+HBGewmSB7T4oq6YS2FtU62K+GuWWCTqjl5byLKMXQW8HPDja9TC1My1m
26
+ 2r0uDshtUvUjuB/Vfe9jVMTjnPBspHZYo0MRuMPc7owJaahjkqD3l7w9aa8Ci5aC
27
+ YU4Aj71Sc8s7YIxgHn/yIUdCe1yu6cC0+h+Ss9r/Yjr53NNXwjGQlDmH1eHcVQGZ
28
+ mEoVcZO1uWNtRPPsn1gfvKLPjRe5pclXQnGviS5DiH0Du+8QMxQGBJnYz2zSMW7G
29
+ Lvd35BNvZkhFzs9xfykhurpkT2TiP2F3ZFn9dwLXMFe41pwrtEYLIWhYi8mUG4Ek
30
+ 6aR8M/tqIpChVV39
32
31
  -----END CERTIFICATE-----
33
- date: 1980-01-01 00:00:00.000000000 Z
32
+ date: 2024-11-19 00:00:00.000000000 Z
34
33
  dependencies: []
35
34
  description:
36
35
  email:
@@ -75,14 +74,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
74
  requirements:
76
75
  - - ">="
77
76
  - !ruby/object:Gem::Version
78
- version: 2.3.0
77
+ version: 2.5.0
79
78
  required_rubygems_version: !ruby/object:Gem::Requirement
80
79
  requirements:
81
80
  - - ">="
82
81
  - !ruby/object:Gem::Version
83
82
  version: '0'
84
83
  requirements: []
85
- rubygems_version: 3.5.5
84
+ rubygems_version: 3.5.9
86
85
  signing_key:
87
86
  specification_version: 4
88
87
  summary: Helpers for compiling Rust extensions for ruby
metadata.gz.sig CHANGED
Binary file