ruby-changes:71063
From: Jean <ko1@a...>
Date: Tue, 1 Feb 2022 14:12:13 +0900 (JST)
Subject: [ruby-changes:71063] ddb9d60f7d (master): [ruby/io-wait] Make the gem a noop on Rubies older than 2.6
https://git.ruby-lang.org/ruby.git/commit/?id=ddb9d60f7d From ddb9d60f7df1a7316092c795f97ca2fcae19e2c3 Mon Sep 17 00:00:00 2001 From: Jean Boussier <jean.boussier@g...> Date: Tue, 11 Jan 2022 16:14:20 +0100 Subject: [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 --- ext/io/wait/extconf.rb | 32 ++++++++++++++++++-------------- ext/io/wait/io-wait.gemspec | 1 - 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ext/io/wait/extconf.rb b/ext/io/wait/extconf.rb index d20ff4553f9..eecdcce99f8 100644 --- a/ext/io/wait/extconf.rb +++ b/ext/io/wait/extconf.rb @@ -1,20 +1,24 @@ https://github.com/ruby/ruby/blob/trunk/ext/io/wait/extconf.rb#L1 # 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 a56bfb70663..f71fe39a8a5 100644 --- a/ext/io/wait/io-wait.gemspec +++ b/ext/io/wait/io-wait.gemspec @@ -10,7 +10,6 @@ Gem::Specification.new do |spec| https://github.com/ruby/ruby/blob/trunk/ext/io/wait/io-wait.gemspec#L10 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 -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/