Ok, so the linking issues were simply me being silly. I forgot to run `make ragel` and commit the output (to use a git gem). Unicorn now run just fine under 3.0.0-dev (current master).
So here's the patch that warn users about the Ruby version in extconf.rb and test_helper.rb. I'm not too fan of the duplication, but not sure how this could be shared. -- From 68a862f65d6bc202bc4191a495e87626c2e4bfa3 Mon Sep 17 00:00:00 2001 From: Jean Boussier <[email protected]> Date: Tue, 1 Sep 2020 17:00:12 +0200 Subject: [PATCH] Update ruby_version requirement to allow ruby 3.0 Ruby just recently bump the master version to 3.0. This requirement bump is necessary to test unicorn against ruby master. --- ext/unicorn_http/extconf.rb | 4 ++++ test/test_helper.rb | 4 ++++ unicorn.gemspec | 9 +++++---- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ext/unicorn_http/extconf.rb b/ext/unicorn_http/extconf.rb index d5f81fb..2e9a7f1 100644 --- a/ext/unicorn_http/extconf.rb +++ b/ext/unicorn_http/extconf.rb @@ -1,6 +1,10 @@ # -*- encoding: binary -*- require 'mkmf' +unless RUBY_VERSION < '3.1' + warn "Unicorn was only tested against MRI up to 3.0. It might not properly work with #{RUBY_VERSION}" +end + have_macro("SIZEOF_OFF_T", "ruby.h") or check_sizeof("off_t", "sys/types.h") have_macro("SIZEOF_SIZE_T", "ruby.h") or check_sizeof("size_t", "sys/types.h") have_macro("SIZEOF_LONG", "ruby.h") or check_sizeof("long", "sys/types.h") diff --git a/test/test_helper.rb b/test/test_helper.rb index e3c6ad4..19528f4 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -34,6 +34,10 @@ Debugger.start end +unless RUBY_VERSION < '3.1' + warn "Unicorn was only tested against MRI up to 3.0. It might not properly work with #{RUBY_VERSION}" +end + def redirect_test_io orig_err = STDERR.dup orig_out = STDOUT.dup diff --git a/unicorn.gemspec b/unicorn.gemspec index cbe855d..e6af44d 100644 --- a/unicorn.gemspec +++ b/unicorn.gemspec @@ -25,10 +25,11 @@ s.homepage = 'https://yhbt.net/unicorn/' s.test_files = test_files - # technically we need ">= 1.9.3", too, but avoid the array here since - # old rubygems versions (1.8.23.2 at least) do not support multiple - # version requirements here. - s.required_ruby_version = '< 3.0' + # 1.9.3 is the minumum supported version. We don't specify + # a maximum version to make it easier to test pre-releases, + # but we do warn users if they install unicorn on an untested + # version in extconf.rb + s.required_ruby_version = ">= 1.9.3" # We do not have a hard dependency on rack, it's possible to load # things which respond to #call. HTTP status lines in responses -- 2.26.2
