I was bored, so I tried... the ready to use ruby doesn't have either a mkfile or a Makefile, so 1) I downloaded the latest ruby realease run /n/sources/contrib/fgb/rc/config and sent the output to rc; I got my config.h and Makefile, then % echo make | ape/psh but it didn't end there, ruby building process is broken it expects to find files in the current dir which they aren't. thinking that this might had been solved in the cvs I 2) downloaded the latest stable cvs snapshot, same problem, this time I just edited the Makefile by hand, the thing is that to make the extensions a miniruby creates the other Makefile's, which end up broken too! so, I fixed every Makefile by haand and started to compile it
what were the changes? 1) APE doesn't have fchown() 2) lot's of casts (char *) != (unsigned char *) 3) the bignum extension divides by 0, it has something like "One()/Zero()"! here the fn() that initializes the extensions, just for you to know which ones are in my ruby void Init_ext _((void)) { init(Init_bigdecimal, "bigdecimal.so"); init(Init_curses, "curses.so"); init(Init_digest, "digest.so"); init(Init_bubblebabble, "digest/bubblebabble.so"); init(Init_md5, "digest/md5.so"); init(Init_rmd160, "digest/rmd160.so"); init(Init_sha1, "digest/sha1.so"); init(Init_sha2, "digest/sha2.so"); init(Init_enumerator, "enumerator.so"); init(Init_etc, "etc.so"); init(Init_fcntl, "fcntl.so"); init(Init_wait, "io/wait.so"); init(Init_nkf, "nkf.so"); init(Init_openssl, "openssl.so"); init(Init_pty, "pty.so"); init(Init_cparse, "racc/cparse.so"); init(Init_sdbm, "sdbm.so"); init(Init_stringio, "stringio.so"); init(Init_strscan, "strscan.so"); init(Init_syck, "syck.so"); init(Init_thread, "thread.so"); init(Init_zlib, "zlib.so"); } I'll clean it up, create some nice mkfiles and put it in my contrib oh, btw, I won't send a diff to the author saying "dude, char * isn't the same as unsigned char *!" Federico G. Benavento PS: yes, I know it's confusing --- /bin/fortune: The problem is not getting ksh to execute any particular command, the problem is recognizing that there might be a problem.