jhs / build-couchdb

Batteries-included CouchDB build system
68 stars 17 forks source link

Building CouchDB 1.6.x branch with OTP-17.1 Error #24

Closed dalgibbard closed 6 years ago

dalgibbard commented 10 years ago

Hey all, Just a quick one; whilst attempting to build out CouchDB 1.6.x branch with Erlang OTP-17.1 branch (explicitly) on CentOS6.5 x86_64- using the following:

rake erl_checkout="OTP-17.1" \
git="https://github.com/apache/couchdb.git 1.6.x" \
install=${INSTPRE}

I get the following error (slimmed down!):

Errno::ENOENT: No such file or directory - /home/vagrant/build-couchdb/dependencies/otp/lib/appmon/SKIP

Fairly sure this error also gets generated for 'dependancies/otp/lib/toolbars/SKIP' too.

zpetr commented 10 years ago

Hello,

I fixed it in my otp-fix branch. So you can clone it and use:

git clone -b otp-fix git://github.com/zpetr/build-couchdb.git
cd build-couchdb
git submodule init
git submodule update

I just check if libraries exists before any parsing so now it works fine. Pull request was created.

dalgibbard commented 10 years ago

Dir.exists? seems to cause an error on my base CentOS 6.5 x86_64 build with ruby 1.8.7 (2011-06-30 patchlevel 352):

rake aborted!
NoMethodError: undefined method `exists?' for Dir:Class
/usr/local/src/build-couchdb/tasks/erlang.rake:98
/usr/local/src/build-couchdb/tasks/erlang.rake:97:in `each'
/usr/local/src/build-couchdb/tasks/erlang.rake:97
/usr/local/src/build-couchdb/tasks/lib.rb:275:in `with_autoconf'
/usr/local/src/build-couchdb/tasks/erlang.rake:36
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:240:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:179:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:201:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:178:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:201:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:178:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:201:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:178:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:201:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:199:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:178:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:106:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:106:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:78:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-10.3.2/bin/rake:33
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

Which ruby/rake version did you validate against? I'll update ruby now anyway, and retest.

zpetr commented 10 years ago

Ah, I use ruby 1.9.3 and Dir.exists is not defined in Ruby 1.8.* I will replace Dir.exists with File.directory for Ruby compatibility

dalgibbard commented 10 years ago

Cool; i'll wait for that and test once it's available :) thanks for your help!

zpetr commented 10 years ago

You can test it!

git clone -b otp-fix git://github.com/zpetr/build-couchdb.git
cd build-couchdb
git submodule init
git submodule update
rake erl_checkout="OTP-17.1"
zpetr commented 10 years ago

I'm sorry, OTP-17.1 is not a branch name but a tag name. So use:

rake erl_checkout="tags/OTP-17.1"
dalgibbard commented 10 years ago

Really? I used:

export INSTPRE=/opt/couchdb
sudo mkdir $INSTPRE
####
sudo rake erl_checkout="OTP-17.1" \
git="https://github.com/apache/couchdb.git 1.6.x" \
install=${INSTPRE}

... and it built fine :) Yay!

@jhs - This should be merged :+1:

zpetr commented 10 years ago

Just for information: if you interested you can use my puppet-couchdb module (sources here). This module is based on jhs/build-couchdb build. I'll create new version of module with this fix.

dalgibbard commented 10 years ago

29