Bug #1924

マルチバイト文字を含んだパス内で ruby をビルドすると make install で失敗する

Added by Kenta Murata over 5 years ago. Updated almost 4 years ago.

[ruby-dev:39066]
Status:Closed
Priority:Normal
Assignee:-
ruby -v:ruby 1.9.2dev (2009-08-11 trunk 24495) [i686-linux] Backport:

Description

=begin
マルチバイト文字を含んだパス内で ruby をビルドすると make install で失敗します。

$ make install
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc"
/home/muraken/src/るびぃ/ruby.git/lib/tempfile.rb:7:in require': /home/muraken/src/るびぃ/ruby.git/lib/delegate.rb:140: invalid multibyte character: /\A\/home\/muraken\/src\/るびぃ\/ruby.git\/lib\/delegate.rb:\d+:inmethod_missing'\z/ (SyntaxError)
from /home/muraken/src/るびぃ/ruby.git/lib/tempfile.rb:7:in <top (required)>'
from ./tool/rbinstall.rb:15:in
require'
from ./tool/rbinstall.rb:15:in `'
make: *** [do-install-nodoc] エラー 1
$ pwd
/home/muraken/src/るびぃ/ruby.git

マルチバイト文字を含んだパスにインストールされた ruby でも同じ現象が発生します。

$ ~/る/bin/ruby -v -rdelegate -e ''
ruby 1.9.2dev (2009-08-11 trunk 24495) [i686-linux]
-e:0:in require': /home/muraken/る/lib/ruby/1.9.1/delegate.rb:140: invalid multibyte character: /\A\/home\/muraken\/る\/lib\/ruby\/1.9.1\/delegate.rb:\d+:inmethod_missing'\z/ (SyntaxError)

以下の変更で治ります。

diff --git a/lib/delegate.rb b/lib/delegate.rb
index 5fc0caf..d0b732a 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -137,7 +137,7 @@ class Delegator
target.send(m, *args, &block)
end
rescue Exception
- $@.delete_if{|s| %r"\A#{FILE}:\d+:in method_missing'\z"o =~ s}
+ $@.delete_if{|s| %r"\A#{Regexp.quote(__FILE__)}:\d+:in
method_missing'\z"o =~ s}
::Kernel::raise
end
end
=end

History

#1 Updated by Yukihiro Matsumoto over 5 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
Applied in changeset r24531.
=end

Also available in: Atom PDF