[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]