You’ll probably get here from a google search on trying to figure out how to get sup running on your arch box that was recently upgraded to ruby 1.9. sure it hurts, but it’s progress! Pick a different distro if you don’t wanna play!
Getting sup running, quick and dirty and highly time dependent:
installing the ferret gem
gem install sup
will fail miserably, first you’ll find that “ferret”
isn’t installing. This problem has been
solved, sure
would be nice to get this accepted up stream :/
installing ncurses
try again, now ncurses ain’t installing!
here’s some steps that should work:
$ gem fetch ncurses $ gem unpack ncurses-0.9.1.gem $ ruby extconf.rb $ patch -p1 < ~/ncurses_ruby_1.9.patch $ make $ sudo make install
Here’s the contents of ncurses_ruby_1.9.patch:
--- ncurses-0.9.1.orig/form_wrap.c 2009-09-24 10:53:41.000000000 -0600 +++ ncurses-0.9.1/form_wrap.c 2009-09-24 10:52:02.000000000 -0600 @@ -392,7 +392,7 @@ */ static VALUE rbncurs_m_new_form(VALUE dummy, VALUE rb_field_array) { - long n = RARRAY(rb_field_array)->len; + long n = RARRAY_LEN(rb_field_array); /* Will ncurses free this array? If not, must do it after calling free_form(). */ FIELD** fields = ALLOC_N(FIELD*, (n+1)); long i; @@ -616,7 +616,7 @@ rb_raise(rb_eArgError, "TYPE_ENUM requires three additional arguments"); } else { - int n = RARRAY(arg3)->len; + int n = RARRAY_LEN(arg3); /* Will ncurses free this array of strings in free_field()? */ char** list = ALLOC_N(char*, n+1); int i; @@ -775,7 +775,7 @@ * form_field */ static VALUE rbncurs_c_set_form_fields(VALUE rb_form, VALUE rb_field_array) { - long n = RARRAY(rb_field_array)->len; + long n = RARRAY_LEN(rb_field_array); /* If ncurses does not free memory used by the previous array of strings, */ /* we will have to do it now. */ FIELD** fields = ALLOC_N(FIELD*, (n+1)); @@ -1123,7 +1123,7 @@ VALUE argc = rb_funcall(proc, rb_intern("arity"),0); VALUE args = get_proc(field, FIELDTYPE_ARGS); if (args != Qnil) { - if (NUM2INT(argc)-1 != RARRAY(args)->len) { + if (NUM2INT(argc)-1 != RARRAY_LEN(args)) { char msg[500]; snprintf(msg, 500, "The validation functions for this field type need %d additional arguments.",NUM2INT(argc)-1); msg[499]=0;
the rest…
First, clone yourself a copy of sup from the gitorius hosted repo:
git clone git://gitorious.org/sup/mainline.git
And follow the instructions:
- install all gems referenced in the rakefile
- as the author suggests
ruby -I lib bin/sup
Behold! It starts! Now is it actually usable is another question…