Tests not working on ruby 3.4

  if daemons is semantically versioned, use:
    add_runtime_dependency "daemons", "~> 1.0"
WARNING:  See https://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: thin
  Version: 1.8.2
  File: thin-1.8.2.gem
==> Starting check()...
/usr/bin/make install sitearchdir=../../../../lib sitelibdir=../../../../lib target_prefix=
/usr/bin/install -c -m 0755 thin_parser.so ../../../../lib
cp tmp/x86_64-linux/thin_parser/3.4.2/thin_parser.so tmp/x86_64-linux/stage/lib/thin_parser.so
/usr/bin/ruby -I/usr/lib/ruby/gems/3.4.0/gems/rspec-support-3.13.2/lib:/usr/lib/ruby/gems/3.4.0/gems/rspec-core-3.13.1/lib /us
which: no swiftiply in (/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
Rails 2.0.2 is required to run the Rails adapter specs
Install mongrel to test compatibility w/ it
Ignoring Server on Swiftiply specs, gem install swiftiply to run
..........................................................................................................F.........F.F.FFFFFF

Failures:

  1) Rack::Adapter should load File adapter
     Failure/Error: expect(Rack::File).to receive(:new)

     NameError:
       uninitialized constant Rack::File
     # ./spec/rack/loader_spec.rb:35:in 'block (2 levels) in <top (required)>'

  2) Thin::Request parser should include basic headers
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:23:in 'block (2 levels) in <top (required)>'

  3) Thin::Request parser should not prepend HTTP_ to Content-Type and Content-Length
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:36:in 'block (2 levels) in <top (required)>'

  4) Thin::Request parser should support fragment in uri
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:52:in 'block (2 levels) in <top (required)>'

  5) Thin::Request parser should parse path with query string
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:61:in 'block (2 levels) in <top (required)>'

  6) Thin::Request parser should parse headers from GET request
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:83:in 'block (2 levels) in <top (required)>'

  7) Thin::Request parser should parse POST request with data
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:114:in 'block (2 levels) in <top (required)>'

  8) Thin::Request parser should not fuck up on stupid fucked IE6 headers
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:139:in 'block (2 levels) in <top (required)>'

  9) Thin::Request parser shoud accept long query string
     Failure/Error: expect(request).to validate_with_lint
       should validate with Rack Lint: uppercase character in header name: Content-Type
     # ./spec/request/parser_spec.rb:152:in 'block (2 levels) in <top (required)>'

  10) Thin::Request parser should parse absolute request URI
      Failure/Error: expect(request).to validate_with_lint
        should validate with Rack Lint: uppercase character in header name: Content-Type
      # ./spec/request/parser_spec.rb:204:in 'block (2 levels) in <top (required)>'

  11) Thin::Request processing should parse in chunks
      Failure/Error: expect(request).to validate_with_lint
        should validate with Rack Lint: uppercase character in header name: Content-Type
      # ./spec/request/processing_spec.rb:14:in 'block (2 levels) in <top (required)>'

  12) Thin::Server on UNIX domain socket should retreive remote address
      Failure/Error: expect(get('/')).to include('"REMOTE_ADDR"=>"127.0.0.1"')

        expected "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\nServer: thin\r\n\r\n{\"SERVER_SOF...b/thin/connection.rb:95>, \"async.close\" => #<EventMachine::DefaultDeferrable:0x000072ddb0d1d570>}" to include "\"REMOTE_ADDR\" => \"127.0.0.1\""
        Diff:
        @@ -1 +1,6 @@
        -"REMOTE_ADDR"=>"127.0.0.1"
        +HTTP/1.1 200 OK
        +Content-Type: text/html
        +Connection: close
        +Server: thin
        +
        +{"SERVER_SOFTWARE" => "thin 1.8.2 codename Ruby Razor", "SERVER_NAME" => "localhost", "rack.input" => #<StringIO:0x000072ddb1f04338>, "rack.version" => [1, 0], "rack.errors" => #<IO:<STDERR>>, "rack.multithread" => false, "rack.multiprocess" => false, "rack.run_once" => false, "REQUEST_METHOD" => "GET", "REQUEST_PATH" => "/", "PATH_INFO" => "/", "REQUEST_URI" => "/", "HTTP_VERSION" => "HTTP/1.1", "HTTP_CONNECTION" => "close", "GATEWAY_INTERFACE" => "CGI/1.2", "QUERY_STRING" => "", "SERVER_PROTOCOL" => "HTTP/1.1", "rack.url_scheme" => "http", "SCRIPT_NAME" => "", "REMOTE_ADDR" => "127.0.0.1", "async.callback" => #<Method: Thin::UnixConnection(Thin::Connection)#post_process(result) /build/ruby-thin/src/thin-1.8.2/lib/thin/connection.rb:95>, "async.close" => #<EventMachine::DefaultDeferrable:0x000072ddb0d1d570>}
      # ./spec/server/unix_socket_spec.rb:15:in 'block (2 levels) in <top (required)>'

Finished in 2.08 seconds (files took 0.16385 seconds to load)
203 examples, 12 failures

Failed examples:

rspec ./spec/rack/loader_spec.rb:34 # Rack::Adapter should load File adapter
rspec ./spec/request/parser_spec.rb:11 # Thin::Request parser should include basic headers
rspec ./spec/request/parser_spec.rb:31 # Thin::Request parser should not prepend HTTP_ to Content-Type and Content-Length
rspec ./spec/request/parser_spec.rb:44 # Thin::Request parser should support fragment in uri
rspec ./spec/request/parser_spec.rb:55 # Thin::Request parser should parse path with query string
rspec ./spec/request/parser_spec.rb:64 # Thin::Request parser should parse headers from GET request
rspec ./spec/request/parser_spec.rb:86 # Thin::Request parser should parse POST request with data
rspec ./spec/request/parser_spec.rb:117 # Thin::Request parser should not fuck up on stupid fucked IE6 headers
rspec ./spec/request/parser_spec.rb:142 # Thin::Request parser shoud accept long query string
rspec ./spec/request/parser_spec.rb:188 # Thin::Request parser should parse absolute request URI
rspec ./spec/request/processing_spec.rb:4 # Thin::Request processing should parse in chunks
rspec ./spec/server/unix_socket_spec.rb:14 # Thin::Server on UNIX domain socket should retreive remote address

/usr/bin/ruby -I/usr/lib/ruby/gems/3.4.0/gems/rspec-support-3.13.2/lib:/usr/lib/ruby/gems/3.4.0/gems/rspec-core-3.13.1/lib /usr/lib/ruby/gems/3.4.0/gems/rspec-core-3.13.1/exe/rspec spec/backends/swiftiply_client_spec.rb spec/backends/tcp_server_spec.rb spec/backends/unix_server_spec.rb spec/command_spec.rb spec/connection_spec.rb spec/controllers/cluster_spec.rb spec/controllers/controller_spec.rb spec/controllers/service_spec.rb spec/headers_spec.rb spec/logging_spec.rb spec/rack/loader_spec.rb spec/rack/rails_adapter_spec.rb spec/request/mongrel_spec.rb spec/request/parser_spec.rb spec/request/persistent_spec.rb spec/request/processing_spec.rb spec/response_spec.rb spec/runner_spec.rb spec/server/builder_spec.rb spec/server/robustness_spec.rb spec/server/swiftiply_spec.rb spec/server/unix_socket_spec.rb spec/server_spec.rb -c -f progress failed
==> ERROR: A failure occurred in check().