以下のように、openssl には環状の require があり、警告が出ます。

% ./ruby -v -ropenssl -e ''
ruby 1.9.2dev (2009-02-15 trunk 22317) [i686-linux]
/home/ruby/ancdata/lib/ruby/1.9.1/i686-linux/openssl.so: warning: loading in progress, circular require considered harmful - /home/ruby/ancdata/lib/ruby/1.9.1/openssl.rb
/home/ruby/ancdata/lib/ruby/1.9.1/openssl/ssl.rb:17: warning: loading in progress, circular require considered harmful - /home/ruby/ancdata/lib/ruby/1.9.1/openssl.rb
/home/ruby/ancdata/lib/ruby/1.9.1/openssl/x509.rb:17: warning: loading in progress, circular require considered harmful - /home/ruby/ancdata/lib/ruby/1.9.1/openssl.rb

これを消したいのですが、どうするのがいいでしょうか。

require するときは require 'openssl' としなさい、ということ
にしてしまうのであれば、下につけたパッチで可能です。

ただ、これだと require "openssl/ssl" などとしているところは
ぜんぶ書き換える必要があります。添付されている中には
lib/net/pop.rb と lib/net/imap.rb がありました。

require するところを書き換えなくてもいいようにするのも *.rb
なファイルを倍に増やせば可能ではありますが、どうするのがいい
ですかねぇ。

Index: ext/openssl/ossl_digest.c
===================================================================
--- ext/openssl/ossl_digest.c	(revision 22326)
+++ ext/openssl/ossl_digest.c	(working copy)
@@ -233,7 +233,6 @@ ossl_digest_block_length(VALUE self)
 void
 Init_ossl_digest()
 {
-    rb_require("openssl");
     rb_require("digest");
 
 #if 0 /* let rdoc know about mOSSL */
Index: ext/openssl/lib/openssl/ssl.rb
===================================================================
--- ext/openssl/lib/openssl/ssl.rb	(revision 22326)
+++ ext/openssl/lib/openssl/ssl.rb	(working copy)
@@ -14,7 +14,6 @@
   $Id$
 =end
 
-require "openssl"
 require "openssl/buffering"
 require "fcntl"
 
Index: ext/openssl/lib/openssl/x509.rb
===================================================================
--- ext/openssl/lib/openssl/x509.rb	(revision 22326)
+++ ext/openssl/lib/openssl/x509.rb	(working copy)
@@ -14,8 +14,6 @@
   $Id$
 =end
 
-require "openssl"
-
 module OpenSSL
   module X509
     class ExtensionFactory
Index: lib/net/pop.rb
===================================================================
--- lib/net/pop.rb	(revision 22326)
+++ lib/net/pop.rb	(working copy)
@@ -25,7 +25,7 @@ require 'digest/md5'
 require 'timeout'
 
 begin
-  require "openssl/ssl"
+  require "openssl"
 rescue LoadError
 end
 
Index: lib/net/imap.rb
===================================================================
--- lib/net/imap.rb	(revision 22326)
+++ lib/net/imap.rb	(working copy)
@@ -18,7 +18,7 @@ require "monitor"
 require "digest/md5"
 require "strscan"
 begin
-  require "openssl/ssl"
+  require "openssl"
 rescue LoadError
 end
 
-- 
[田中 哲][たなか あきら][Tanaka Akira]