ruby-opengl gem uses ruby1.9, even from gem1.8

D

David Masover

This is on an Ubuntu Hardy system, on x86_64. Both Ruby 1.8 and 1.9 are=20
installed.

I was tracking down the lack of ruby.h, which surprised me, as ruby1.8-dev =
is=20
installed. Scrolling up even further, though, and something just seems wron=
g=20
about these three lines:

rake RUBYARCHDIR=3D/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib=20
RUBYLIBDIR=3D/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib extension
/usr/bin/ruby1.9 mkrf_conf.rb
(in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0)

Why is ruby1.9 being used to run mkrf_conf.rb? I am using a 1.8 gem -- as y=
ou=20
can see, it's trying to install in a 1.8 path, and:

$ head -1 `which gem`
#! /usr/bin/ruby1.8
$ head -1 `which gem1.9`
#!/usr/bin/ruby1.9

I am sure I was using 'gem', and not 'gem1.9'.

=46ull log from /var/lib/gems/1.8/gems/ruby-opengl-0.60.0/gem_make.out:

rake RUBYARCHDIR=3D/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib=20
RUBYLIBDIR=3D/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib extension
/usr/bin/ruby1.9 mkrf_conf.rb
(in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0)
rake
cc -fPIC -fno-strict-aliasing -g -fPIC -Wall -DRUBY_VERSION=3D190 -I/=
usr/include/ruby-1.9.0 -I/usr/include/ruby-1.9.0/x86_64-linux -I/usr/lib/ru=
by/1.9.0/x86_64-linux -I/usr/local/lib/site_ruby/1.9.0 -I. -c=20
gl.c
(in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0/ext/gl)
In file included from gl.c:18:
=2E./common/common.h:25:18: error: ruby.h: No such file or directory
In file included from ../common/common.h:51,
from gl.c:18:
=2E./common/gl-error.h:16: warning: parameter names (without types) in func=
tion=20
declaration
=2E./common/gl-error.h:18: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98=
,=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99=20
or =E2=80=98__attribute__=E2=80=99 before =E2=80=98error_checking=E2=80=99
=2E./common/gl-error.h:19: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98=
,=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99=20
or =E2=80=98__attribute__=E2=80=99 before =E2=80=98inside_begin_end=E2=80=99
In file included from ../common/common.h:54,
from gl.c:18:
=2E./common/conv.h: In function =E2=80=98num2double=E2=80=99:
=2E./common/conv.h:55: error: expected declaration specifiers before =E2=80=
=98VALUE=E2=80=99
=2E./common/conv.h:55: warning: implicit declaration of function =E2=80=98F=
IXNUM_P=E2=80=99
=2E./common/conv.h:55: warning: implicit declaration of function =E2=80=98F=
IX2LONG=E2=80=99
=2E./common/conv.h:55: warning: implicit declaration of function =E2=80=98T=
YPE=E2=80=99
=2E./common/conv.h:55: error: =E2=80=98T_FLOAT=E2=80=99 undeclared (first u=
se in this function)
=2E./common/conv.h:55: error: (Each undeclared identifier is reported only =
once
=2E./common/conv.h:55: error: for each function it appears in.)
=2E./common/conv.h:55: warning: implicit declaration of function =E2=80=98R=
=46LOAT=E2=80=99
=2E./common/conv.h:55: error: invalid type argument of =E2=80=98->=E2=80=99
=2E./common/conv.h:55: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use=
in this function)
=2E./common/conv.h:55: error: =E2=80=98Qfalse=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:55: error: =E2=80=98Qnil=E2=80=99 undeclared (first use =
in this function)
=2E./common/conv.h:55: warning: implicit declaration of function =E2=80=98r=
b_num2dbl=E2=80=99
=2E./common/conv.h: In function =E2=80=98num2int=E2=80=99:
=2E./common/conv.h:62: error: expected declaration specifiers before =E2=80=
=98VALUE=E2=80=99
=2E./common/conv.h:62: error: =E2=80=98T_FLOAT=E2=80=99 undeclared (first u=
se in this function)
=2E./common/conv.h:62: error: invalid type argument of =E2=80=98->=E2=80=99
=2E./common/conv.h:62: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use=
in this function)
=2E./common/conv.h:62: error: =E2=80=98Qfalse=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:62: error: =E2=80=98Qnil=E2=80=99 undeclared (first use =
in this function)
=2E./common/conv.h:62: warning: implicit declaration of function =E2=80=98N=
UM2LONG=E2=80=99
=2E./common/conv.h: In function =E2=80=98num2uint=E2=80=99:
=2E./common/conv.h:63: error: expected declaration specifiers before =E2=80=
=98VALUE=E2=80=99
=2E./common/conv.h:63: warning: implicit declaration of function =E2=80=98F=
IX2ULONG=E2=80=99
=2E./common/conv.h:63: error: =E2=80=98T_FLOAT=E2=80=99 undeclared (first u=
se in this function)
=2E./common/conv.h:63: error: invalid type argument of =E2=80=98->=E2=80=99
=2E./common/conv.h:63: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use=
in this function)
=2E./common/conv.h:63: error: =E2=80=98Qfalse=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:63: error: =E2=80=98Qnil=E2=80=99 undeclared (first use =
in this function)
=2E./common/conv.h:63: warning: implicit declaration of function =E2=80=98N=
UM2ULONG=E2=80=99
=2E./common/conv.h: At top level:
=2E./common/conv.h:114: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY=E2=80=99
=2E./common/conv.h:115: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY_U=E2=80=99
=2E./common/conv.h:116: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY_LL=E2=80=99
=2E./common/conv.h:117: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY_ULL=E2=80=99
=2E./common/conv.h:118: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY_F=E2=80=99
=2E./common/conv.h:119: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cond_GLBOOL2RUBY_D=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cint=E2=80=99:
=2E./common/conv.h:142: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:142: warning: implicit declaration of function =E2=80=98=
RARRAY=E2=80=99
=2E./common/conv.h:142: warning: implicit declaration of function =E2=80=98=
rb_Array=E2=80=99
=2E./common/conv.h:142: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:142: error: dereferencing pointer to incomplete type
=2E./common/conv.h:142: error: dereferencing pointer to incomplete type
=2E./common/conv.h:142: error: dereferencing pointer to incomplete type
=2E./common/conv.h:142: warning: implicit declaration of function =E2=80=98=
rb_ary_entry=E2=80=99
=2E./common/conv.h:142: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:142: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cuint=E2=80=99:
=2E./common/conv.h:143: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:143: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:143: error: dereferencing pointer to incomplete type
=2E./common/conv.h:143: error: dereferencing pointer to incomplete type
=2E./common/conv.h:143: error: dereferencing pointer to incomplete type
=2E./common/conv.h:143: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:143: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cbyte=E2=80=99:
=2E./common/conv.h:144: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:144: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:144: error: dereferencing pointer to incomplete type
=2E./common/conv.h:144: error: dereferencing pointer to incomplete type
=2E./common/conv.h:144: error: dereferencing pointer to incomplete type
=2E./common/conv.h:144: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:144: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cubyte=E2=80=99:
=2E./common/conv.h:145: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:145: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:145: error: dereferencing pointer to incomplete type
=2E./common/conv.h:145: error: dereferencing pointer to incomplete type
=2E./common/conv.h:145: error: dereferencing pointer to incomplete type
=2E./common/conv.h:145: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:145: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cshort=E2=80=99:
=2E./common/conv.h:146: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:146: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:146: error: dereferencing pointer to incomplete type
=2E./common/conv.h:146: error: dereferencing pointer to incomplete type
=2E./common/conv.h:146: error: dereferencing pointer to incomplete type
=2E./common/conv.h:146: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:146: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cushort=E2=80=99:
=2E./common/conv.h:147: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:147: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:147: error: dereferencing pointer to incomplete type
=2E./common/conv.h:147: error: dereferencing pointer to incomplete type
=2E./common/conv.h:147: error: dereferencing pointer to incomplete type
=2E./common/conv.h:147: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:147: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cboolean=E2=80=99:
=2E./common/conv.h:148: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:148: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:148: error: dereferencing pointer to incomplete type
=2E./common/conv.h:148: error: dereferencing pointer to incomplete type
=2E./common/conv.h:148: error: dereferencing pointer to incomplete type
=2E./common/conv.h:148: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:148: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cfloat=E2=80=99:
=2E./common/conv.h:149: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:149: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:149: error: dereferencing pointer to incomplete type
=2E./common/conv.h:149: error: dereferencing pointer to incomplete type
=2E./common/conv.h:149: error: dereferencing pointer to incomplete type
=2E./common/conv.h:149: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:149: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cdouble=E2=80=99:
=2E./common/conv.h:150: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:150: warning: assignment makes pointer from integer with=
out a=20
cast
=2E./common/conv.h:150: error: dereferencing pointer to incomplete type
=2E./common/conv.h:150: error: dereferencing pointer to incomplete type
=2E./common/conv.h:150: error: dereferencing pointer to incomplete type
=2E./common/conv.h:150: error: =E2=80=98VALUE=E2=80=99 undeclared (first us=
e in this function)
=2E./common/conv.h:150: error: expected =E2=80=98)=E2=80=99 before =E2=80=
=98ary=E2=80=99
=2E./common/conv.h: In function =E2=80=98ary2cmatdouble=E2=80=99:
=2E./common/conv.h:176: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:176: warning: implicit declaration of function =E2=80=98=
rb_funcall=E2=80=99
=2E./common/conv.h:176: warning: implicit declaration of function =E2=80=98=
rb_intern=E2=80=99
=2E./common/conv.h:176: error: invalid type argument of =E2=80=98->=E2=80=99
=2E./common/conv.h:176: warning: implicit declaration of function =E2=80=98=
rb_raise=E2=80=99
=2E./common/conv.h:176: error: =E2=80=98rb_eArgError=E2=80=99 undeclared (f=
irst use in this=20
function)
=2E./common/conv.h: In function =E2=80=98ary2cmatfloat=E2=80=99:
=2E./common/conv.h:177: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:177: error: invalid type argument of =E2=80=98->=E2=80=99
=2E./common/conv.h:177: error: =E2=80=98rb_eArgError=E2=80=99 undeclared (f=
irst use in this=20
function)
=2E./common/conv.h: In function =E2=80=98ary2cmatdoublecount=E2=80=99:
=2E./common/conv.h:200: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:200: warning: implicit declaration of function =E2=80=98=
RARRAY_LEN=E2=80=99
=2E./common/conv.h:200: warning: implicit declaration of function =E2=80=98=
xfree=E2=80=99
=2E./common/conv.h:200: error: =E2=80=98rb_eArgError=E2=80=99 undeclared (f=
irst use in this=20
function)
=2E./common/conv.h: In function =E2=80=98ary2cmatfloatcount=E2=80=99:
=2E./common/conv.h:201: error: expected declaration specifiers before =E2=
=80=98VALUE=E2=80=99
=2E./common/conv.h:201: error: =E2=80=98rb_eArgError=E2=80=99 undeclared (f=
irst use in this=20
function)
In file included from gl.c:18:
=2E./common/common.h: At top level:
=2E./common/common.h:81: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribu=
te__=E2=80=99=20
before =E2=80=98cProc=E2=80=99
=2E./common/common.h: In function =E2=80=98glformat_size=E2=80=99:
=2E./common/common.h:173: error: =E2=80=98rb_eArgError=E2=80=99 undeclared =
(first use in this=20
function)
=2E./common/common.h: In function =E2=80=98gltype_glformat_unit_size=E2=80=
=99:
=2E./common/common.h:231: error: =E2=80=98rb_eArgError=E2=80=99 undeclared =
(first use in this=20
function)
=2E./common/common.h: In function =E2=80=98get_uniform_size=E2=80=99:
=2E./common/common.h:316: error: =E2=80=98rb_eTypeError=E2=80=99 undeclared=
(first use in this=20
function)
=2E./common/common.h: At top level:
=2E./common/common.h:338: error: expected declaration specifiers or =E2=80=
=98...=E2=80=99=20
before =E2=80=98VALUE=E2=80=99
=2E./common/common.h: In function =E2=80=98CheckDataSize=E2=80=99:
=2E./common/common.h:344: warning: implicit declaration of=20
function =E2=80=98RSTRING_LEN=E2=80=99
=2E./common/common.h:344: error: =E2=80=98data=E2=80=99 undeclared (first u=
se in this function)
=2E./common/common.h:345: error: =E2=80=98rb_eArgError=E2=80=99 undeclared =
(first use in this=20
function)
=2E./common/common.h: At top level:
=2E./common/common.h:349: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99=20
or =E2=80=98__attribute__=E2=80=99 before =E2=80=98allocate_buffer_with_str=
ing=E2=80=99
=2E./common/common.h: In function =E2=80=98load_gl_function=E2=80=99:
=2E./common/common.h:390: error: =E2=80=98rb_eNotImpError=E2=80=99 undeclar=
ed (first use in this=20
function)
=2E./common/common.h: At top level:
=2E./common/common.h:395: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=
=E2=80=99, =E2=80=98;=E2=80=99, =E2=80=98asm=E2=80=99=20
or =E2=80=98__attribute__=E2=80=99 before =E2=80=98pack_array_or_pass_strin=
g=E2=80=99
gl.c:20: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=E2=80=99, =E2=80=
=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribute__=E2=80=99=20
before =E2=80=98module=E2=80=99
gl.c:22: warning: parameter names (without types) in function declaration
gl.c:23: warning: parameter names (without types) in function declaration
gl.c:24: warning: parameter names (without types) in function declaration
gl.c:25: warning: parameter names (without types) in function declaration
gl.c:26: warning: parameter names (without types) in function declaration
gl.c:27: warning: parameter names (without types) in function declaration
gl.c:28: warning: parameter names (without types) in function declaration
gl.c:29: warning: parameter names (without types) in function declaration
gl.c:30: warning: parameter names (without types) in function declaration
gl.c:31: warning: parameter names (without types) in function declaration
gl.c:32: warning: parameter names (without types) in function declaration
gl.c:33: warning: parameter names (without types) in function declaration
gl.c:34: warning: parameter names (without types) in function declaration
gl.c:35: warning: parameter names (without types) in function declaration
gl.c: In function =E2=80=98GetOpenglVersion=E2=80=99:
gl.c:49: error: =E2=80=98error_checking=E2=80=99 undeclared (first use in t=
his function)
gl.c:49: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use in this funct=
ion)
gl.c:49: error: =E2=80=98inside_begin_end=E2=80=99 undeclared (first use in=
this function)
gl.c:49: error: =E2=80=98Qfalse=E2=80=99 undeclared (first use in this func=
tion)
gl.c:51: warning: implicit declaration of function =E2=80=98sscanf=E2=80=99
gl.c:51: warning: incompatible implicit declaration of built-in=20
function =E2=80=98sscanf=E2=80=99
gl.c: In function =E2=80=98GetOpenglExtensions=E2=80=99:
gl.c:79: error: =E2=80=98error_checking=E2=80=99 undeclared (first use in t=
his function)
gl.c:79: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use in this funct=
ion)
gl.c:79: error: =E2=80=98inside_begin_end=E2=80=99 undeclared (first use in=
this function)
gl.c:79: error: =E2=80=98Qfalse=E2=80=99 undeclared (first use in this func=
tion)
gl.c:81: warning: implicit declaration of function =E2=80=98strlen=E2=80=99
gl.c:81: warning: incompatible implicit declaration of built-in=20
function =E2=80=98strlen=E2=80=99
gl.c:82: warning: implicit declaration of function =E2=80=98ALLOC_N=E2=80=99
gl.c:82: error: expected expression before =E2=80=98GLchar=E2=80=99
gl.c:82: warning: assignment makes pointer from integer without a cast
gl.c:83: warning: implicit declaration of function =E2=80=98strcpy=E2=80=99
gl.c:83: warning: incompatible implicit declaration of built-in=20
function =E2=80=98strcpy=E2=80=99
gl.c: In function =E2=80=98CheckExtension=E2=80=99:
gl.c:106: warning: incompatible implicit declaration of built-in=20
function =E2=80=98strlen=E2=80=99
gl.c:107: error: expected expression before =E2=80=98GLchar=E2=80=99
gl.c:107: warning: assignment makes pointer from integer without a cast
gl.c:108: warning: incompatible implicit declaration of built-in=20
function =E2=80=98strcpy=E2=80=99
gl.c:112: warning: implicit declaration of function =E2=80=98strstr=E2=80=99
gl.c:112: warning: incompatible implicit declaration of built-in=20
function =E2=80=98strstr=E2=80=99
gl.c: In function =E2=80=98CheckVersionExtension=E2=80=99:
gl.c:128: warning: incompatible implicit declaration of built-in=20
function =E2=80=98sscanf=E2=80=99
gl.c: At top level:
gl.c:140: error: expected =E2=80=98=3D=E2=80=99, =E2=80=98,=E2=80=99, =E2=
=80=98;=E2=80=99, =E2=80=98asm=E2=80=99 or =E2=80=98__attribute__=E2=80=99=
=20
before =E2=80=98IsAvailable=E2=80=99
gl.c:142: error: expected identifier or =E2=80=98(=E2=80=99 before =E2=80=
=98{=E2=80=99 token
gl.c: In function =E2=80=98CheckBufferBinding=E2=80=99:
gl.c:175: error: =E2=80=98rb_eRuntimeError=E2=80=99 undeclared (first use i=
n this function)
gl.c:179: error: =E2=80=98error_checking=E2=80=99 undeclared (first use in =
this function)
gl.c:179: error: =E2=80=98Qtrue=E2=80=99 undeclared (first use in this func=
tion)
gl.c:179: error: =E2=80=98inside_begin_end=E2=80=99 undeclared (first use i=
n this function)
gl.c:179: error: =E2=80=98Qfalse=E2=80=99 undeclared (first use in this fun=
ction)
gl.c: In function =E2=80=98Init_gl=E2=80=99:
gl.c:185: error: =E2=80=98VALUE=E2=80=99 undeclared (first use in this func=
tion)
gl.c:185: error: expected =E2=80=98;=E2=80=99 before =E2=80=98VERSION=E2=80=
=99
gl.c:187: error: =E2=80=98module=E2=80=99 undeclared (first use in this fun=
ction)
gl.c:187: warning: implicit declaration of function =E2=80=98rb_define_modu=
le=E2=80=99
gl.c:189: warning: implicit declaration of function =E2=80=98rb_define_cons=
t=E2=80=99
gl.c:189: error: =E2=80=98VERSION=E2=80=99 undeclared (first use in this fu=
nction)
gl.c:208: warning: implicit declaration of=20
function =E2=80=98rb_define_module_function=E2=80=99
gl.c:208: error: =E2=80=98IsAvailable=E2=80=99 undeclared (first use in thi=
s function)
rake aborted!
Command failed with status (1):=20
[cc -fPIC -fno-strict-aliasing -g -fPIC ...]
/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/ext/gl/Rakefile:29:in `block in <=
top=20
(required)>'
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [rake...]

(See full trace by running task with --trace)
 
E

Eric Hodel

This is on an Ubuntu Hardy system, on x86_64. Both Ruby 1.8 and 1.9
are
installed.

I was tracking down the lack of ruby.h, which surprised me, as
ruby1.8-dev is
installed. Scrolling up even further, though, and something just
seems wrong
about these three lines:

rake RUBYARCHDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib
RUBYLIBDIR=/var/lib/gems/1.8/gems/ruby-opengl-0.60.0/lib extension
/usr/bin/ruby1.9 mkrf_conf.rb
(in /var/lib/gems/1.8/gems/ruby-opengl-0.60.0)

Why is ruby1.9 being used to run mkrf_conf.rb? I am using a 1.8 gem
-- as you
can see, it's trying to install in a 1.8 path, and:

$ head -1 `which gem`
#! /usr/bin/ruby1.8
$ head -1 `which gem1.9`
#!/usr/bin/ruby1.9

head -1 `which rake`
 
D

David Masover

head -1 `which rake`

Ah. Thanks:

$ head -1 `which rake`
#!/usr/bin/ruby1.9

After installing rake via gem1.8, I still get the same on rake and rake1.9 --
but they are not the same file:

$ diff /usr/bin/rake /usr/bin/rake1.9
1a2,4
#--
# Copyright (c) 2003, 2004, 2005, 2006, 2007 Jim Weirich
3c6,11
< # This file was generated by RubyGems.
---
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
5,6c13,14
< # The application 'rake' is installed as part of a gem, and
< # this file is here to facilitate running it.
---
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software. 7a16,23
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#++
9,15c25,29
< require 'rubygems'
<
< version = ">= 0"
<
< if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
< version = $1
< ARGV.shift
---
begin
require 'rake'
rescue LoadError
require 'rubygems'
require 'rake'
17,19c31
<
< gem 'rake', version
< load 'rake'
---
 
E

Eric Hodel

Ah. Thanks:

$ head -1 `which rake`
#!/usr/bin/ruby1.9

After installing rake via gem1.8, I still get the same on rake and
rake1.9 --
but they are not the same file:

$ diff /usr/bin/rake /usr/bin/rake1.9
1a2,4

They should have a different shebang line. Re-run `gem install rake`
again to make plain `rake` be the 1.8 one.

You may want to add "install: --format-executable" to your ~/.gemrc to
make gem add 1.8 or 1.9 to gem executable names so that they don't
step on each others' toes.
 
D

David Masover

They should have a different shebang line. Re-run `gem install rake`
again to make plain `rake` be the 1.8 one.

I just did, and it has a 1.9 shebang. I'm pretty sure I tried this before.
You may want to add "install: --format-executable" to your ~/.gemrc to
make gem add 1.8 or 1.9 to gem executable names so that they don't
step on each others' toes.

Ok, guessing that will be in root's homedir if I install gems via sudo?

And would there still be a default 'rake' command? If so, which would it use?
(Configurable?)
 
E

Eric Hodel

I just did, and it has a 1.9 shebang. I'm pretty sure I tried this
before.

Then does `gem env` report 1.9 as the ruby version?
Ok, guessing that will be in root's homedir if I install gems via
sudo?

In `sudo ruby -e 'p ENV["HOME"]'`, which is the my homedir for me.
And would there still be a default 'rake' command? If so, which
would it use?
(Configurable?)

No, you would have to make a symlink to whichever you wanted to be the
default.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top