Issue #7871 has been updated by jonforums (Jon Forums).


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 exec_prefix 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
----------------------------------------
Bug #7871: exec_prefix regression breaks mingw
https://bugs.ruby-lang.org/issues/7871#change-36488

Author: jonforums (Jon Forums)
Status: Assigned
Priority: High
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.0.0
ruby -v: 2.0.0dev (2013-02-17 trunk 39287) [i386-mingw32]


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/ruby19_mingw/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/ruby19_mingw/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:
       - :update_sources => true
       - :verbose => true
       - :backtrace => false
       - :bulk_threshold => 1000
       - :sources => ["http://rubygems.org"]
       - "gem" => "--no-ri --no-rdoc"
    - REMOTE SOURCES:
       - http://rubygems.org


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