Bug #5073

Ruby 1.9.2 may fail to build ri data when an RDoc plugin is installed

Added by Rajinder Yadav almost 3 years ago. Updated over 1 year ago.

[ruby-core:38378]
Status:Closed
Priority:Low
Assignee:Eric Hodel
Category:build
Target version:2.0.0
ruby -v:1.9.2p136 Backport:

Description

I get the following build error on my Linux box while trying to build
ruby-1.9.2-p290, how to fix? it look like a issues with RDoc

make[1]: Entering directory /opt/ruby-1.9.2-p290'
gcc -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses
-Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers
-Wno-long-long -L. -rdynamic -Wl,-export-dynamic main.o -Wl,-R
-Wl,/usr/local/lib -L/usr/local/lib -lruby-static -lpthread -lrt -ldl
-lcrypt -lm -o ruby
make[1]: Leaving directory
/opt/ruby-1.9.2-p290'
Generating RDoc documentation
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb
./tool/runruby.rb --extout=.ext -- "./bin/rdoc" --no-force-update
--all --ri --op ".ext/rdoc" "."
/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/rdoc.rb:79:
warning: already initialized constant GENERATORS
uh-oh! RDoc had a problem:
undefined method `coverage_report' for #RDoc::Options:0x00000001966e68

run with --debug for full backtrace
make: *** [rdoc] Error 1

On Wed, Jul 20, 2011 at 11:04 PM, Eric Hodel drbrain@segment7.net wrote:

On Jul 20, 2011, at 6:28 PM, Dev Guy wrote:

On Wed, Jul 20, 2011 at 9:08 PM, Eric Hodel drbrain@segment7.net wrote:

On Jul 20, 2011, at 8:29 AM, Dev Guy wrote:

I get the following build error on my Linux box while trying to build
ruby-1.9.2-p290, how to fix? it look like a issues with RDoc

Can you run just this from the build directory:

./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb
./tool/runruby.rb --extout=.ext -- "./bin/rdoc" --no-force-update
--all --ri --op ".ext/rdoc" "." --debug

It should print out a backtrace

i assume that's all in one line?

Yup.

here is what I got

/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/rdoc.rb:79:
warning: already initialized constant GENERATORS
undefined method coverage_report' for #<RDoc::Options:0x000000027cd678>
/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/rdoc.rb:428:in
document'
./bin/rdoc:15:in `'

I tried to reproduce your issue with the following steps:

Download 1.9.2-p136 and -p290

Install p136 into ~/tmp/ruby/136

export PATH=~/tmp/ruby/136/bin

Install RDoc 3.8

in p290: ./configure --prefix=/Users/drbrain/tmp/ruby/290; make

It did not reproduce.

Do you have RUBYOPT set?

Do you have any rdoc plugins installed? gem list rdoc should list them

Can you run this command:

$ ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/runruby.rb --extout=.ext -- -e 'require "rdoc/rdoc"; p $".grep(/generator/)'

I get:

["/Users/drbrain/tmp/ruby/ruby-1.9.2-p290/lib/rdoc/generator.rb", "/Users/drbrain/tmp/ruby/ruby-1.9.2-p290/lib/rdoc/generator/markup.rb", "/Users/drbrain/tmp/ruby/ruby-1.9.2-p290/lib/rdoc/generator/darkfish.rb", "/Users/drbrain/tmp/ruby/ruby-1.9.2-p290/lib/rdoc/generator/ri.rb"]

You should see something similar.

my output is (not sure why I got 1.9.1 in there???)

["/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/markup.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/darkfish.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/ri.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/horo-1.0.3/lib/rdoc/generator/horo.rb"]

these are all my installed gems

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.9, 3.0.4)
actionpack (3.0.9, 3.0.4)
activemodel (3.0.9, 3.0.4)
activerecord (3.0.9, 3.0.4)
activeresource (3.0.9, 3.0.4)
activesupport (3.0.9, 3.0.4)
archive-tar-minitar (0.5.2)
arel (2.1.3, 2.0.10, 2.0.9, 2.0.8)
authlogic (2.1.6)
autotest (4.4.6)
autotest-rails-pure (4.1.2)
babosa (0.2.2)
bcrypt-ruby (2.1.4)
builder (3.0.0, 2.1.2)
bundler (1.0.15, 1.0.10)
calendardateselect (1.16.2)
cancan (1.5.1)
coffee-script (2.2.0)
coffee-script-source (1.1.1)
columnize (0.3.3)
daemoncontroller (0.2.6)
devise (1.1.7)
diff-lcs (1.1.2)
erubis (2.7.0, 2.6.6)
execjs (1.2.0)
fastri (0.3.1.1)
fastthread (1.0.7)
file-tail (1.0.5)
forgery (0.3.7)
friendly
id (3.2.1)
grackle (0.1.10)
gruff (0.3.6)
hike (1.1.0)
horo (1.0.3)
i18n (0.6.0, 0.5.0)
json (1.5.3, 1.5.1)
linecache19 (0.5.12)
mail (2.3.0, 2.2.19, 2.2.15)
mechanize (1.0.0)
memcache-client (1.8.5)
mime-types (1.16)
minitest (1.6.0 ruby)
mocha (0.9.12)
multijson (1.0.3)
nifty-generators (0.4.5)
nokogiri (1.4.6, 1.4.4)
oauth (0.4.4)
paperclip (2.3.8)
passenger (3.0.2)
patron (0.4.11)
pg (0.10.1)
polyglot (0.3.1)
rack (1.3.0, 1.2.2, 1.2.1)
rack-cache (1.0.2)
rack-mount (0.8.1, 0.6.14, 0.6.13)
rack-ssl (1.3.2)
rack-test (0.6.0, 0.5.7)
rails (3.0.9, 3.0.4)
railties (3.0.9, 3.0.4)
rake (0.9.2, 0.8.7 ruby)
rdoc (3.8, 2.5.8)
RedCloth (4.2.7)
rmagick (2.13.1)
rspec (2.5.0)
rspec-core (2.5.1)
rspec-expectations (2.5.0)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)
ruby-debug-base19 (0.11.25)
ruby-debug19 (0.11.6)
ruby-prof (0.10.7)
ruby
coresource (0.1.5)
sass (3.1.3)
simple
form (1.3.1)
sprockets (2.0.0.beta.10)
spruz (0.2.5)
sqlite3 (1.3.3)
thor (0.14.6)
tilt (1.3.2)
tinymce (0.1.4)
tkri (0.9.5)
treetop (1.4.9)
tzinfo (0.3.29, 0.3.25, 0.3.24)
uglifier (1.0.0)
w3c
validators (1.1.1)
warden (1.0.3)
webrat (0.7.3)
willpaginate (2.3.15)
wxruby (2.0.0 x86
64-linux)
yajl-ruby (0.8.2)
ZenTest (4.4.2)

On 11-07-21 09:24 PM, Dev Guy wrote:

./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/runruby.rb --extout=.ext -- -e 'require "rdoc/rdoc"; p $".grep(/generator/)'

btw I am seeing the exact same issue on my other Linux box

$uname -a
Linux karma 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x8664 x8664 x86_64 GNU/Linux

$ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

$gem -v
1.3.7

$ ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/runruby.rb --extout=.ext -- -e 'require "rdoc/rdoc"; p $".grep(/generator/)'

/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/rdoc.rb:79: warning: already initialized constant GENERATORS

["/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator.rb", "/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/markup.rb", "/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/darkfish.rb", "/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/ri.rb", "/usr/local/lib/ruby/gems/1.9.1/gems/horo-1.0.3/lib/rdoc/generator/horo.rb"]

On Jul 21, 2011, at 6:25 PM, Dev Guy wrote:

my output is (not sure why I got 1.9.1 in there???)
1.9.1 is the API compatibility version. 1.9.1 is expected.

["/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/markup.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/darkfish.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/rdoc-3.8/lib/rdoc/generator/ri.rb",
"/usr/local/lib/ruby/gems/1.9.1/gems/horo-1.0.3/lib/rdoc/generator/horo.rb"]
You can work around this by uninstalling horo or RDoc 3.8 and reinstalling after completing the upgrade to 1.9.2-p290.

I'm not sure how to fix the actual issue in an easy way.

The problem is this:

RDoc 2.5.8 comes with Ruby 1.9.2

RDoc 2.5.8 will try to load plugins when rdoc/rdoc is loaded.

The plugin horo activates the RDoc gem, then requires rdoc/rdoc again redefining methods that won't work with the objects created before the plugin load.

Could you add a ticket to redmine.ruby-lang.org and assign it to me?

It should say "RDoc should not load plugins when building ri data"

History

#1 Updated by Eric Hodel almost 3 years ago

  • Priority changed from Normal to Low

#2 Updated by Eric Hodel almost 3 years ago

  • Subject changed from error building ruby p290 to Ruby 1.9.2 may fail to build ri data when an RDoc plugin is installed

#3 Updated by Shyouhei Urabe about 2 years ago

  • Status changed from Open to Assigned

#4 Updated by Eric Hodel over 1 year ago

  • Target version changed from 1.9.2 to 2.0.0

This seems fixed in latest rdoc.

#5 Updated by Eric Hodel over 1 year ago

  • Status changed from Assigned to Closed

Also available in: Atom PDF