summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2022-01-11 16:14:20 +0100
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-02-01 14:11:16 +0900
commitddb9d60f7df1a7316092c795f97ca2fcae19e2c3 (patch)
treed12372edebf02ef614bb39b8a189a97e7602831b /ext
parent804dca7b0c2ba97d7ce7ca3850f712dcc8640b9a (diff)
[ruby/io-wait] Make the gem a noop on Rubies older than 2.6
Ref: https://github.com/mikel/mail/pull/1439 Some gems depend on io-wait, but still support older rubies, so they have to chose between droping support or not listing io-wait. But io-wait could act a a noop on older rubies. https://github.com/ruby/io-wait/commit/75fcb74c32
Diffstat (limited to 'ext')
-rw-r--r--ext/io/wait/extconf.rb32
-rw-r--r--ext/io/wait/io-wait.gemspec1
2 files changed, 18 insertions, 15 deletions
diff --git a/ext/io/wait/extconf.rb b/ext/io/wait/extconf.rb
index d20ff4553f..eecdcce99f 100644
--- a/ext/io/wait/extconf.rb
+++ b/ext/io/wait/extconf.rb
@@ -1,20 +1,24 @@
# frozen_string_literal: false
require 'mkmf'
-target = "io/wait"
-have_func("rb_io_wait")
-unless macro_defined?("DOSISH", "#include <ruby.h>")
- have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
- fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
- have_macro("FIONREAD", [h, ioctl_h].compact)
- end
- if fionread
- $defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
- create_makefile(target)
- end
+if RUBY_VERSION < "2.6"
+ File.write("Makefile", dummy_makefile($srcdir).join(""))
else
- if have_func("rb_w32_ioctlsocket", "ruby.h")
- have_func("rb_w32_is_socket", "ruby.h")
- create_makefile(target)
+ target = "io/wait"
+ have_func("rb_io_wait")
+ unless macro_defined?("DOSISH", "#include <ruby.h>")
+ have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
+ fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
+ have_macro("FIONREAD", [h, ioctl_h].compact)
+ end
+ if fionread
+ $defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
+ create_makefile(target)
+ end
+ else
+ if have_func("rb_w32_ioctlsocket", "ruby.h")
+ have_func("rb_w32_is_socket", "ruby.h")
+ create_makefile(target)
+ end
end
end
diff --git a/ext/io/wait/io-wait.gemspec b/ext/io/wait/io-wait.gemspec
index a56bfb7066..f71fe39a8a 100644
--- a/ext/io/wait/io-wait.gemspec
+++ b/ext/io/wait/io-wait.gemspec
@@ -10,7 +10,6 @@ Gem::Specification.new do |spec|
spec.description = %q{Waits until IO is readable or writable without blocking.}
spec.homepage = "https://github.com/ruby/io-wait"
spec.licenses = ["Ruby", "BSD-2-Clause"]
- spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = spec.homepage