Issue #5097 has been updated by Jeremy Evans.

File ruby193.diff added

> I can't understand why OpenBSD fails the test.

It looks like the socket failure on OpenBSD is because in Socket.udp_server_recv, you are adding the pktinfo in the sendmsg call, and OpenBSD appears not to like that in all cases, specifically when you are sending from a link-local IPv6 address to the same link-local IPv6 address on a different port.  It causes the client to not receive the reply, which makes the test fail since the response is not received within 10 seconds.  I think adding the pktinfo is unnecessary in the sendmsg call (the server needs pktinfo to know the address of the client, but the client must already know the address of the server in order to communicate), so I removed it.  This causes the test to pass, and still should work with dynamic IPv6 address changes.

I've attached a smaller updated patch with four fixes:

1) Use "Thread.new{Thread.pass while true}" instead of "Thread.new{loop{Thread.pass}}" in the thread bootstrap tests, as otherwise they hang on OpenBSD.  This works around the issue instead of fixing it, but it's not like "Thread.new{loop{Thread.pass}}" will be used in regular code.

2) Remove the unused pkinfo_sockets hash from Socket.udp_server_sockets.

3) Don't add the pktinfo to the sendmsg call in Socket.udp_server_recv.

4) Fix a couple of bugs in lib/test/unit.rb that assume @workers is an array when it can be nil.

The other patches I'm using are:

1) Eric Wong's thread patch

2) The patches for the rake issue that a separate ticket was created for (5114), with the Regexp.quote changes recommended by znz.

With these patches, make check has no failures on errors on OpenBSD.
----------------------------------------
Feature #5097: Supported platforms of Ruby 1.9.3
http://redmine.ruby-lang.org/issues/5097

Author: Yui NARUSE
Status: Assigned
Priority: Normal
Assignee: Yui NARUSE
Category: 
Target version: 1.9.3


Let's decide the supported platforms.

== Background

http://redmine.ruby-lang.org/projects/ruby-19/wiki/SupportedPlatforms

== Process

If you want to support a platform, please declare.
But when a platform dependent bug is reported, it will be assigned to you.

== Current Maintainer

mswin32, mswin64 (Microsoft Windows):
  NAKAMURA Usaku (usa)
mingw32 (Minimalist GNU for Windows):
  Nobuyoshi Nakada (nobu)
IA-64 (Debian GNU/Linux):
  TAKANO Mitsuhiro (takano32)
Symbian OS:
  Alexander Zavorine (azov)
AIX:
  Yutaka Kanemoto (kanemoto)
FreeBSD:
  Akinori MUSHA (knu)
Solaris:
  Naohisa Goto
RHEL, CentOS
  KOSAKI Motohiro

Platforms which doesn't have a maintainer are following:
* Debian
* Ubuntu
* Mac OS X (LLVM related issues)
* cygwin (don't work)
* NetBSD (works)
* OpenBSD (it may not work)
* DragonFlyBSD (don't work)


-- 
http://redmine.ruby-lang.org