はじめまして、古川といいます。

現実逃避にデバックしてみました。

>これを当てても、surface.rb で、「NURBS error 100254 decreasing knot
>sequence knot」と、怒られて、なんにもでません。でも、気力がつきたので、
>追っていません‥。だれか直したら、patchください(他力本願 mode

Mesa の環境だと free() の位置によって、この問題が起こるみたいです。
glu_NurbsSurface() 内の

    free(sknot);
    free(tknot);
    free(ctlarray);

を削ったら動くようになりました。
free() するときは gluEndSurface() の後ならいいみたいです。

SGI の環境では問題なく動くみたいなので、Mesa ではポインタの指す先が
gluEndSurface() が実行されるまでまで残っていることを期待した
実装になっているのではないでしょうか。
ソースを見てないので詳しいことは分からないですけど。

--------
古川大介