# Enlightenment libs + ruby

**URL:** <https://www.ruby-forum.com/t/enlightenment-libs-ruby/165710>\
**Category:** Ruby\
**Created:** [April 16, 2009, 5:10pm UTC](https://www.ruby-forum.com/t/enlightenment-libs-ruby/165710 "2009-04-16T17:10:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Siemen\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7bcc69/32.png) [@Siemen\_B](https://www.ruby-forum.com/u/Siemen_B)\
**Post date:** [April 16, 2009, 5:10pm UTC](https://www.ruby-forum.com/t/enlightenment-libs-ruby/165710/1 "2009-04-16T17:10:26Z")

</div>

Hi List,

Is there anyone who has experience with enlightenment and ruby?

I would like to use ruby for a project that uses e17 libs for the gui.  
I found Tilman S.'s ruby-efl bindings and redact at  
[code-monkey.de](http://code-monkey.de), but the download link for redact is dead and I have  
been unable to compile some of the ruby-efl-bindings - they are from  
2007 and I think they have come ‘out of sync’ by now. If anyone here  
is able to give some advice, the details are below.

So – if any of you has a dusty, old copy of redact lying around, I’d  
be grateful if I could have a copy of it. Also, any advice for getting  
the ruby-efl bindings to work would be greatly appreciated!

cheers,  
Siemen

Ruby-efl details:

I tried to compile the ruby-efl bindings against my current  
efl-checkout (39893 from [http://svn.enlightenment.org/svn/e/trunk/](http://svn.enlightenment.org/svn/e/trunk/).

Ruby-edje and ruby-evas build fine. Ruby-ecore fails to compile  
because some symbols in the header files cannot be resolved. I have  
grep’ed in the e17 include dir (/opt/e17/include in my case) and they  
are indeed not there. However, similar looking symbols exist. It looks  
like they have been renamed / refactored.

Ruby-esmart does not build either for two reasons. First, the rakefile  
somehow does not pass the -cflags and -libs that it got from  
pkg-config to cc. I got around that by compiling manually. Secondly,  
the referred include file ‘Esmart/Esmart\_File\_Dialog.h’ does not  
exist.

Build errors for ruby-ecore:

$ rake1.8  
cc -fno-strict-aliasing -g -g -O2 -fPIC -I/opt/e17/include  
-I/opt/e17/include/eina-0 -I/opt/e17/include/eina-0/eina  
-D\_FILE\_OFFSET\_BITS=64 -I/usr/lib/ruby/1.8/i486-linux  
-I/usr/local/lib/site\_ruby/1.8/i486-linux -c -o  
src/ecore\_x/rb\_ecore\_x.o src/ecore\_x/rb\_ecore\_x.c  
src/ecore\_x/rb\_ecore\_x.c: In function ‘c\_ev\_key\_down\_init’:  
src/ecore\_x/rb\_ecore\_x.c:51: error: ‘Ecore\_X\_Event\_Key\_Down’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:51: error: (Each undeclared identifier is  
reported only once  
src/ecore\_x/rb\_ecore\_x.c:51: error: for each function it appears in.)  
src/ecore\_x/rb\_ecore\_x.c:51: error: ‘e’ undeclared (first use in this  
function)  
src/ecore\_x/rb\_ecore\_x.c: In function ‘c\_ev\_mouse\_button\_down\_init’:  
src/ecore\_x/rb\_ecore\_x.c:79: error: ‘Ecore\_X\_Event\_Mouse\_Button\_Down’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:79: error: ‘e’ undeclared (first use in this  
function)  
src/ecore\_x/rb\_ecore\_x.c: In function ‘c\_ev\_mouse\_button\_up\_init’:  
src/ecore\_x/rb\_ecore\_x.c:113: error: ‘Ecore\_X\_Event\_Mouse\_Button\_Up’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:113: error: ‘e’ undeclared (first use in this  
function)  
src/ecore\_x/rb\_ecore\_x.c: In function ‘c\_ev\_mouse\_move\_init’:  
src/ecore\_x/rb\_ecore\_x.c:141: error: ‘Ecore\_X\_Event\_Mouse\_Move’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:141: error: ‘e’ undeclared (first use in this  
function)  
src/ecore\_x/rb\_ecore\_x.c: In function ‘Init\_ecore\_x’:  
src/ecore\_x/rb\_ecore\_x.c:460: error: ‘ECORE\_X\_MODIFIER\_SHIFT’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:461: error: ‘ECORE\_X\_MODIFIER\_CTRL’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:462: error: ‘ECORE\_X\_MODIFIER\_ALT’ undeclared  
(first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:463: error: ‘ECORE\_X\_MODIFIER\_WIN’ undeclared  
(first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:466: error: ‘ECORE\_X\_EVENT\_KEY\_DOWN’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:470: error: ‘ECORE\_X\_EVENT\_KEY\_UP’ undeclared  
(first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:474: error: ‘ECORE\_X\_EVENT\_MOUSE\_BUTTON\_DOWN’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:479: error: ‘ECORE\_X\_EVENT\_MOUSE\_BUTTON\_UP’  
undeclared (first use in this function)  
src/ecore\_x/rb\_ecore\_x.c:484: error: ‘ECORE\_X\_EVENT\_MOUSE\_MOVE’  
undeclared (first use in this function)  
rake aborted!  
Command failed with status (1): [cc -fno-strict-aliasing -g -g -O2 -fPIC  
-I…]

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

===============

Errors for Esmart:

$ cc -fno-strict-aliasing -g -g -O2 -fPIC -D\_FILE\_OFFSET\_BITS=64  
-I/usr/lib/ruby/1.8/i486-linux  
-I/usr/local/lib/site\_ruby/1.8/i486-linux -c -I/opt/e17/include  
-I/opt/e17/include/eina-0 -I/opt/e17/include/eina-0/eina  
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2  
-I/usr/include/libpng12 -L/opt/e17/lib -lesmart\_container  
-lesmart\_draggies -lesmart\_trans\_x11 -lecore\_evas -lImlib2 -lepsilon  
-ledje -lcairo -lecore\_x -lembryo -lecore\_job -leet -lssl -lcrypto  
-lecore\_input -levas -lecore -leina -o  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.o  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:21:39: error:  
Esmart/Esmart\_File\_Dialog.h: No such file or directory  
In file included from src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:22:  
/usr/local/lib/site\_ruby/1.8/i486-linux/evas/rb\_evas.h:23: error:  
expected specifier-qualifier-list before ‘Evas’  
/usr/local/lib/site\_ruby/1.8/i486-linux/evas/rb\_evas.h:28: error:  
expected declaration specifiers or ‘…’ before ‘Evas’  
In file included from src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:23:  
/usr/local/lib/site\_ruby/1.8/i486-linux/evas/rb\_evas\_object.h:27:  
error: expected specifier-qualifier-list before ‘Evas\_Object’  
/usr/local/lib/site\_ruby/1.8/i486-linux/evas/rb\_evas\_object.h:35:  
error: expected ‘)’ before ‘\*’ token  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:33: error: expected  
declaration specifiers or ‘…’ before ‘Evas\_Object’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:34: error: expected  
declaration specifiers or ‘…’ before ‘Esmart\_File\_Dialog\_Op’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: In function ‘c\_init’:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:74: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:74: error: ‘RbEvas’ has  
no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:77: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:85: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: At top level:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:91: error: expected  
declaration specifiers or ‘…’ before ‘Evas\_Object’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:92: error: expected  
declaration specifiers or ‘…’ before ‘Esmart\_File\_Dialog\_Op’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: In function ‘on\_action’:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:96: error: ‘op’  
undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:96: error: (Each  
undeclared identifier is reported only once  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:96: error: for each  
function it appears in.)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:97: error:  
‘ESMART\_FILE\_DIALOG\_NEW’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:100: error:  
‘ESMART\_FILE\_DIALOG\_RENAME’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:103: error:  
‘ESMART\_FILE\_DIALOG\_DELETE’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:106: error:  
‘ESMART\_FILE\_DIALOG\_OK’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:109: error:  
‘ESMART\_FILE\_DIALOG\_CANCEL’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:112: error:  
‘ESMART\_FILE\_DIALOG\_DIR\_CHANGED’ undeclared (first use in this  
function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: In function  
‘c\_edje\_get’:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:124: error:  
‘Evas\_Object’ undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:124: error: ‘e’  
undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:131: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:133: error: too many  
arguments to function ‘TO\_EVAS’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: In function  
‘c\_selections\_get’:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:141: error: ‘Evas\_List’  
undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:141: error: ‘list’  
undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:141: error: ‘l’  
undeclared (first use in this function)  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:148: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c: In function  
‘c\_current\_directory\_get’:  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:164: error:  
‘RbEvasObject’ has no member named ‘real’  
src/esmart\_file\_dialog/rb\_esmart\_file\_dialog.c:164: warning:  
assignment makes pointer from integer without a cast
