Bug #7871

exec_prefix regression breaks mingw

Added by Jon Forums about 1 year ago. Updated about 1 year ago.

[ruby-core:52308]
Status:Closed
Priority:High
Assignee:Nobuyoshi Nakada
Category:build
Target version:2.0.0
ruby -v:2.0.0dev (2013-02-17 trunk 39287) [i386-mingw32] Backport:

Description

Recent exec_prefix mods cause problems with the rubyinstaller build recipes as the new value points to the temporary build install path. Rubyinstaller build recipes build in a sandbox dir, and install in a different sandbox dir. Both sandbox dirs are different than the final install dir.

This behavior doesn't occur on my Arch or Ubuntu systems, but I do a simple, one-step default /usr/local install.

I haven't reviewed the exec_prefix patches to discover whether the problem appears to be with ruby, or with the rubyinstaller build tooling not understanding the new behavior.

Difference between 1.9.3 (installed to c:\ruby193) and 2.0.0dev (installed to c:\rubytrunk):

C:>pik ruby -rrbconfig -ve "puts RbConfig::CONFIG['exec_prefix']"

ruby 1.9.3p386 (2013-02-13 revision 39218) [i386-mingw32]
C:/ruby193

ruby 2.0.0dev (2013-02-17 trunk 39287) [i386-mingw32]
C:/projects/rubyinstaller-git/sandbox/ruby19_mingw

It affects rubygems and will impact other scenarios:

C:>ls \rubytrunk\lib\ruby\gems\2.0.0\specifications | head -5
addressable-2.3.2.gemspec
adsf-1.1.1.gemspec
bigdecimal-1.1.0.gemspec
bond-0.4.3.gemspec
bundler-1.2.4.gemspec

# disappearing gems...never build ruby while in roswell.
C:>gem list

*** LOCAL GEMS ***

# oh, we changed their world view
C:>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.0
- RUBY VERSION: 2.0.0 (2013-02-17 patchlevel -1) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/projects/rubyinstaller-git/sandbox/ruby19mingw/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: C:/projects/rubyinstaller-git/sandbox/ruby19
mingw/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/projects/rubyinstaller-git/sandbox/ruby19mingw/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- C:/projects/rubyinstaller-git/sandbox/ruby19
mingw/lib/ruby/gems/2.0.0
- C:/Users/Jon/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :updatesources => true
- :verbose => true
- :backtrace => false
- :bulk
threshold => 1000
- :sources => ["http://rubygems.org"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://rubygems.org


Related issues

Related to ruby-trunk - Bug #7860: Passing --libdir to ./configure causes Gem.ruby to point ... Closed 02/16/2013

History

#1 Updated by Koichi Sasada about 1 year ago

  • Assignee set to Yusuke Endoh

#2 Updated by Yusuke Endoh about 1 year ago

  • Status changed from Open to Assigned
  • Assignee changed from Yusuke Endoh to Luis Lavena

Luis, do you know anything?

Yusuke Endoh mame@tsg.ne.jp

#3 Updated by Luis Lavena about 1 year ago

mame (Yusuke Endoh) wrote:

Luis, do you know anything?

Issue got introduced in r39107 by Nobu and appears to be solved in trunk by r39267 and r39284 (nobu and naruse commits).

Trunk is building right now, going to confirm if this is correct.

Please hold.

#4 Updated by Jon Forums about 1 year ago

my build failed with r39287 so r39284 doesn't fix it. I suspect tweaks from r39267 and/or r39273.

#5 Updated by Yui NARUSE about 1 year ago

  • Assignee changed from Luis Lavena to Nobuyoshi Nakada

#6 Updated by Jon Forums about 1 year ago

As of r39298 test and test-all are 100% pass, and these quick tests look Ok.

Hm, DESTDIR looks strange...I thought it should be empty.

C:>ruby -rrbconfig -ve "puts %Q(TOPDIR -> #{RbConfig::TOPDIR}); %w(DESTDIR prefix execprefix bindir libdir).each {|i| puts %Q(#{i} -> #{RbConfig::CONFIG[i]})}"
ruby 2.0.0dev (2013-02-18 trunk 39298) [i386-mingw32]
TOPDIR -> C:/rubytrunk
DESTDIR -> C:
prefix -> C:/rubytrunk
exec
prefix -> C:/rubytrunk
bindir -> C:/rubytrunk/bin
libdir -> C:/rubytrunk/lib

C:>gem li | head -5
addressable (2.3.2)
adsf (1.1.1)
bigdecimal (1.1.0)
bond (0.4.3)
bundler (1.2.4)

C:>gem i oj
Fetching: oj-2.0.5.gem (100%)
Building native extensions. This could take a while...
Successfully installed oj-2.0.5
Done installing documentation for oj (0 sec).
1 gem installed

C:>ruby -roj -ve "puts Oj::VERSION"
ruby 2.0.0dev (2013-02-18 trunk 39298) [i386-mingw32]
2.0.5

#7 Updated by Nobuyoshi Nakada about 1 year ago

  • Status changed from Assigned to Closed

Also available in: Atom PDF