iriscouch / build-couchdb

Batteries-included CouchDB build system
227 stars 36 forks source link

/bin/ed #2

Closed cdybedahl closed 13 years ago

cdybedahl commented 13 years ago

The list of packages that need to be installed on Ubuntu 10.04LTS should also include 'ed', since /bin/ed is needed to compile Erlang/OTP and it's apparently not included in a default system.

benatkin commented 13 years ago

I ran into this issue as well.

jhs commented 13 years ago

I did not realize anything is calling ed. (The Solaris builds use it to tweak a generated autotools file but not Ubuntu.)

Do you have a log of the error? (Builds usually leave a rake.log file in the top-level.)

I suspect that one of the sub-project build procedures is calling ed. If I can confirm that, I can more confidently state it is an OS dependency. I've wanted to rework dependencies for a long time. I do not like how half of them are in the README and the other half are automatically installed.

benatkin commented 13 years ago

Here's something from my rake.log on a successful build (i. e. after installing ed) on Ubuntu:

STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_types.erl
STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_watchdog.erl
STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_watchdog_sup.erl
STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_gen_base_rfc3588.erl
STDOUT ../../bin/diameterc -i ../../ebin -o . diameter_gen_base_accounting.dia
STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_gen_base_accounting.erl
STDOUT ../../bin/diameterc -i ../../ebin -o . diameter_gen_relay.dia
STDOUT erlc -W  +debug_info -pa /home/couchdb/build-couchdb/dependencies/otp/lib/diameter/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"diameter-0.9"}'  -I../../include -o../../ebin diameter_gen_relay.erl
STDOUT sed -e 's;%VSN%;0.9;' diameter.app.src > ../../ebin/diameter.app
STDOUT M=`echo diameter diameter_app diameter_callback diameter_capx diameter_config diameter_dbg diameter_codec diameter_dict diameter_exprecs diameter_info diameter_lib diameter_misc_sup diameter_peer diameter_peer_fsm diameter_peer_fsm_sup diameter_reg diameter_service diameter_service_sup diameter_session diameter_stats diameter_sup diameter_sync diameter_types diameter_watchdog diameter_watchdog_sup diameter_gen_base_rfc3588 diameter_gen_base_accounting diameter_gen_relay | sed -e 's/^ *//' -e 's/ *$//' -e 'y/ /,/'`; \
STDOUT  echo "/%APP_MODULES%/s//$M/;w;q" | tr ';' '\n' \
STDOUT  | ed -s ../../ebin/diameter.app
STDOUT make -C ../compiler  ../../ebin/diameter.app APP_TARGET=../../ebin/diameter.app
STDOUT make[5]: Entering directory `/home/couchdb/build-couchdb/dependencies/otp/lib/diameter/src/compiler'
STDOUT M=`echo diameter_codegen diameter_spec_scan diameter_spec_util | sed -e 's/^ *//' -e 's/ *$//' -e 'y/ /,/'`; \
STDOUT  echo "/%COMPILER_MODULES%/s//$M/;w;q" | tr ';' '\n' \
STDOUT  | ed -s ../../ebin/diameter.app
STDOUT make[5]: Leaving directory `/home/couchdb/build-couchdb/dependencies/otp/lib/diameter/src/compiler'
STDOUT make -C ../transport ../../ebin/diameter.app APP_TARGET=../../ebin/diameter.app
STDOUT make[5]: Entering directory `/home/couchdb/build-couchdb/dependencies/otp/lib/diameter/src/transport'
STDOUT for f in diameter_etcp diameter_etcp_sup diameter_tcp diameter_tcp_sup diameter_sctp diameter_sctp_sup diameter_transport_sup; do \
STDOUT      sed -f ../app/depend.sed $f.erl | sed "s@/@/$f@"; \
STDOUT  done \
STDOUT  > depend.mk
STDOUT make[5]: Leaving directory `/home/couchdb/build-couchdb/dependencies/otp/lib/diameter/src/transport'
STDOUT make[5]: Entering directory `/home/couchdb/build-couchdb/dependencies/otp/lib/diameter/src/transport'
STDOUT M=`echo diameter_etcp diameter_etcp_sup diameter_tcp diameter_tcp_sup diameter_sctp diameter_sctp_sup diameter_transport_sup | sed -e 's/^ *//' -e 's/ *$//' -e 'y/ /,/'`; \
STDOUT  echo "/%TRANSPORT_MODULES%/s//$M/;w;q" | tr ';' '\n' \

ed is in there a couple of times. So at least the otp repo seems to be using it.

Here is an occurrence of it in the otp repository.

jhs commented 13 years ago

Thanks. Fixed and pushed.

reihu commented 13 years ago

I'm having the same issue on Debian stable (squeeze). After running: apt-get install ed the issue seems to be fixed.

So please add "ed" to the debian dependendies too.

jhs commented 13 years ago

@reihu Thanks for confirming on Debian. I assumed as much but tried to be conservative on the patch to avoid outsource testing it.

Committed and pushed.