(2010/03/30 6:19), Aaron Patterson wrote:
> On Tue, Mar 30, 2010 at 06:04:59AM +0900, Michael Graff wrote:
>> Bug #3051: psych is too osx-specifc
>> http://redmine.ruby-lang.org/issues/show/3051
>>
>> Author: Michael Graff
>> Status: Open, Priority: Normal
>> ruby -v: ruby 1.9.2dev (2010-03-26 trunk 27055) [i386-netbsdelf5.0.]
>>
>> ext/psych/extconf.rb only looks in Macports' directories for libyaml, and will not look in places other OSs may use (such as /usr/pkg for NetBSD.)
> 
> I can't make the extconf look in every directory for every system.  If
> it can't be found under /opt/local, it will look under system paths.  Do
> you have a suggestion for a fix?

You can give additional search path

  ./configure --with-opt-dir=/usr/pkg

This also applied to /opt/local for macports.

So following patch seems correct for bundled psych:

diff --git a/ext/psych/extconf.rb b/ext/psych/extconf.rb
index 673b950..cb74776 100644
--- a/ext/psych/extconf.rb
+++ b/ext/psych/extconf.rb
@@ -2,16 +2,10 @@ require 'mkmf'

 # :stopdoc:

-RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
-
-INCLUDEDIR = Config::CONFIG['includedir']
-LIBDIR     = Config::CONFIG['libdir']
-LIB_DIRS   = ['/opt/local/lib', '/usr/local/lib', LIBDIR, '/usr/lib']
-libyaml    = dir_config 'libyaml', '/opt/local/include', '/opt/local/lib'
+dir_config('libyaml')

 def asplode missing
-  abort "#{missing} is missing. Try 'port install libyaml +universal' " +
-        "or 'yum install libyaml-devel'"
+  abort "#{missing} is missing. libyaml required."
 end

 asplode('yaml.h')  unless find_header  'yaml.h'


>> Additionally, the message displayed is very OSX specific.
> 
> The error message displays installation instructions to use macports or
> yum.  Again, I don't know every packaging system for every operating
> system.  Should I make the message more generic, and in my opinion less
> helpful?

Other bundled libraries doesn't show such specific message.
So psych should follow them.

Note that this cannot apply to psych gem; Ruby is usually installed
through packages and its dependency is manged.

Users who install Ruby from source should know how to install
the dependency until the name of the library is given.

-- 
NARUSE, Yui  <naruse / airemix.jp>