[ruby-dev:47852] [ruby-trunk - Bug #9160] configureに--with-rubylibprefixを指定するとrbconfigのprefixが空文字になる

From: "kimuraw (Wataru Kimura)" <kimuraw@...>
Date: 2013-12-14 05:32:48 UTC
List: ruby-dev #47852
Issue #9160 has been updated by kimuraw (Wataru Kimura).

File configure.in.diff added

configure.inへのパッチを作りました。
libdirと同じようにexec_prefixで置き換えを行うようにします。

----------------------------------------
Bug #9160: configureに--with-rubylibprefixを指定するとrbconfigのprefixが空文字になる
https://bugs.ruby-lang.org/issues/9160#change-43665

Author: kimuraw (Wataru Kimura)
Status: Open
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 
ruby -v: ruby 2.1.0dev (2013-11-26 trunk 40765) [x86_64-darwin13.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


=begin
== 現象

configureに--with-rubylibprefixを指定したとき、
RbConfig::CONFIG['prefix']および関連するbindirなどのprefixが空文字になってしまいます。

    % ruby -rrbconfig -e 'p RbConfig::CONFIG["prefix"]'
    ""
    % ruby -rrbconfig -e 'p RbConfig::CONFIG["bindir"]'
    "/bin"
    % ruby -rrbconfig -e 'p RbConfig.ruby'   
    "/bin/ruby"

2.1.0-preview2とtrunk r43859で発生することを確認しています。
2.0.0-p353と1.9.3-p484では起きていません。

rbconfig.rbのはじめのほうでTOPDIRを定義しているところで

    TOPDIR = File.dirname(__FILE__).chomp!("/usr/local/lib/ruby21/2.1.0/x86_64-darwin13.0")

のようにprefix付きになってしまうことが原因のようです。
configureで--with-rubylibprefxを指定しなかった場合は、
chomp!("/lib/ruby/...")のようにprefixを除いた文字列になっています。

== 再現手順

    % ./configure --with-rubylibprefix=/usr/local/lib/ruby21
    % make ruby
    % grep -n TOPDIR ./rbconfig.rb
    9:  TOPDIR = File.dirname(__FILE__).chomp!("/usr/local/lib/ruby21/2.1.0/x86_64-darwin13.0")
    19:  CONFIG["prefix"] = (TOPDIR || DESTDIR + "/usr/local")
    % 

=end


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

In This Thread