Getting wxRuby to work on Ubuntu 11.10

I’ve just subscribed to this list and now see another went through a
similar process about the same time. I made a page on the wxRuby wiki
with some notes about the eventual success but I am not satisfied so
will be working on a better process.
http://wxruby.rubyforge.org/wiki/wiki.pl?Building_WxRuby_2.0.1

That page is not meant to be a formal how-to but more so information
on some of the pitfalls that occured to help others get wxRuby
working. I certainly appreciate the efforts by all who have worked on
this project. Have you looked at the support code for this ? I look
and see not man hours of work but years.

I started off wanting the latest stable ruby (1.9.3) working on my
x86_64 Ubuntu 11.10 distribution with the latest wxWidgets (2.9.3).
There were some set backs.

The wxRuby archive is 2009, set up for wxWidgets 2.6-8.x and ruby 1.9
was freshly supported. Linux kernel was 2.4.x. So, there have been
changes since then :slight_smile:

I thought, ok this is great to get my code skills back in shape and I
was really tired of recompile cycles so wanted to use ruby to be my
main logic engine for my next projects. I’m not a complete newb but
haven’t coded in Linux for around two years so am very rusty.

I want current systems so started by with a fresh isntall of Ubuntu
11.10 Desktop x86_64. I installed the wxWidget package - saw it was
only 2.8.11 so uninstalled and dl’ed wx 2.9.3, compiled and
exverything looked good aside the response time for wxAUI. I then
recompiled Ubuntu to enable 1000 Hz; much smoother desktop response now.

I went through a lengthy process of getting 1.9.3 to work with my IDE
development tools. I wanted the latest and greatest but it took effort
of compiling and getting ruby-debug to work with my IDE (used NetBeans
in the past but the latest does not support ruby so went with
RubyMine). I eventually worked out .rvm and the various paths. So I
now have a working ruby 1.9.3 p21, in a nice IDE with debug support. I
then started with wxRuby, which didn’t work.

I spent about a week gettig wxRuby to work. I was scouring the
internet for clues and leanred a lot about what has happened in the
past few years of ruby, linux and wx development. The end result is
what I put in the wiki notes. It came down to not having time to make
an initial demo of a working ruby wx development system.

I wound up using Ubuntu’s wxWidgets 2.8.11 package which had all the
libraries separated, including the the contributed ones (which is
contrayry to the build notes on the wiki about haveing a monolithic wx
build - as I understood it at the time). I located SWIG 1.3.38 and it
seemed fine.

I had to edit some rake build files due to the more modern gcc being
stricter and treating warnings as errors. As my skill comes back, I
will probably remember what I should really do with that issue. Part
of the trouble is string handling which is changed in wx 2.9.3 anyway
so there will be a lot of focus in that area eventually.

In the end I now have an initial dev environment I can sneak out demo
code while working on what i really want which is a fully modern
ruby/wx dev environment. This means at least ruby 1.9.3 and wx 2.9.3
working together on a 64 bit linux machine with modern kernel glibc 3
etc.

That is the short story. The long story involved a lot of back
tracking, compiling various things, dealing with incompatible
ruby-debug support gems. One example is, “Why not just use the x86_64
gem from the repository ?” I did but the lib was linked against glibc
2.14 and Ubuntu is 2.13 Future Ubuntu 12.x is still using 2.14, btw.

I’m going to make a post in the development list about wanting to help
modernize the work. wx will be changing quite a bit, ruby already has
with ruby 2.0 in the development head. We need to update the project.

TK

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 09.02.2012 19:53, schrieb [email protected]:

I’m going to make a post in the development list about wanting to
help modernize the work. wx will be changing quite a bit, ruby
already has with ruby 2.0 in the development head. We need to
update the project.

That’s interesting. I’m currently looking into writing C++ extensions
for Ruby and was thinking about rewriting a new wxWidgets binding from
scratch and just got up and running with the (very, very) basic
things… wxRuby is great, yes, but the development has stalled over
the last months/years and I fully agree with you that something must
be done about it. I’ve been a long-time wxRuby user but as I more and
more tend to look at Rubinius and it’s concurrent threads and their C
API compatibility, I’d like to use wxRuby from there. The most
annoying thing I’ve experienced with wxRuby is its inability to deal
with threading and I doubt it is easily possible to make the old
codebase conforming to that schema, especially regarding the true
concurrency Rubinius provides. So I came to the conclusion to just try
writing a new wxWidgets binding, also cleaning up the API wxRuby
provides. Even if it may not prove useful in any way, it will be some
kind of learning experience; and if not even that, it might just have
been a fun project.

I started off wanting the latest stable ruby (1.9.3) working on my
x86_64 Ubuntu 11.10 distribution with the latest wxWidgets (2.9.3).
There were some set backs.

If you want to be on the cutting edge, why do you use Ubuntu then?
Canonical is known to not always provide the newest technologies,
instead they focus on stability. You should look into a
rolling-release Linux distribution like Arch Linux or Gentoo. Aside
from just being more recent, they also have the benefit of not having
all the packages split up into microparts the Debian world seems to
like so much.

I’m interested in how you proceed with your wxRuby upgrade. Maybe I
will look on it as well, but for now SWIG scares me a bit too much; I
don’t like code generated for me.

TK

Vale,
Marvin

PS: I think I’m going to subscribe to the wxRuby development ML as
well. Just to see what’s going on there.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPNEbzAAoJELh1XLHFkqha5rQH/iaX1AQErzLf9jAMY2H4hOHr
Nkvo5GwtPeMhtaR3CfK1dyBwzUocRjDGrmI23mySid/IX6OT3vmX9YKQEVvNV+xK
ON3cJ0lDSxB7Y3r8+wrF/5nIesduSK6gU1WzlpgsfWU8qV9yOxMfgiK0mXB4h44Z
4Mz6FIxsajHQBSGOCkiSfJjhXFwANR1CxLEjdSQMyeb5xXv6d3d0nGSbQPLjmyty
R56T8H6uGK/xYLtzAZ/Lh5LMAWZsfRXM4y9z0sfHPNvv+0yuUD4AUkESBdbqrBRT
ngNexD+gevQdoANE7aYbVHQTlYQF7bNoQZN79e4fSQ/iCltFRJUsM1Fv6DIF+ss=
=nvEF
-----END PGP SIGNATURE-----

Ubuntu is the compromise of stability and yet edgier than Debian. My
projects have end users with skill sets more attuned with the Ubuntu
distribution.

I spent a weak learning FFI in a project where I made a system monitor
for my Logitech G15 LCD display. I’m close to saying screw it and just
go GTK which is a C lib FFI can help support whereas wxWidgets is
C++…nothing is ever easy :slight_smile:

I think wxWidgets is worth the extra effort. The projects I’ve done in
the past with wxWidgets were C++ a bit of a pain to debug (app logic
not so much wx) but the pay off was supporting three OS’s out of the
box that had the native look and feel which was a big sell.

I can make an interface C lib to wx and use FFI buuuuut really wx is a
huge lib and the wxRuby project has already crossed that hurdle. I
will probably dig out the property grid control code for 2.8.x and see
how to add just that to wxRuby as a learning experience. Hopefully
after that I will have a enough feel of wxRuby to plan an upgrade.

As a side note, it looks from reading the dev portion of the wiki, my
thoughts are in line with what the devs were planning but then it is
like they fell from the face of the planet. I sincerely hope they are
doing well. Hard to know in this day and age of remote content. I had
a game guild mate vanish and someone found out a year later he had
died. Another went to war and died there. Nothing but an email so who
knew but was strange.

TK

Quoting Q. [email protected]:

I can make an interface C lib to wx and use FFI buuuuut really wx is a
huge lib
and the wxRuby project has already crossed that hurdle. I will probably
dig
out the property grid control code for 2.8.x and see how to add just that
to
wxRuby as a learning experience. Hopefully after that I will have a enough
feel of wxRuby to plan an upgrade.

It very likely easier not to start from scratch. There are a lot of
helper
functions and SWIG macros already in the wxRuby project to solve
problems.
But it takes time to figure it out, and SWIG is idiosyncratic,
especially
for ‘deeper’ stuff (e.g. memory management). Also the classes left may
sometimes be the ‘harder’ ones. Have a go, and feel free to ask
questions
(the wxRuby-dev list is more appropriate and tho no traffic, I think
everyone who is likely to know the answer to is subscribed to that).

As a side note, it looks from reading the dev portion of the wiki, my
thoughts
are in line with what the devs were planning but then it is like they fell
from
the face of the planet. I sincerely hope they are doing well

I’m very well, no need to worry - but I’m engaged in things not to do
with
wxRuby, or programming full stop. It’s probably 18 months since I wrote
a
line of Ruby.

Others have generously taken on keeping this mailing list responsive. I
don’t want my absence to be an impediment, so always happy to talk to
anyone
who wants some large or small role in development and maintenance.

alex

I’ll also agree with Alex here about SWIG. My feeling is that time will
always be better spent on modifying or adding SWIG interface files, or
even
submitting patches to SWIG itself if you come up against a totally
intractable problem, which you may on the memory side. This will also
have
the benefit of helping future projects that use SWIG. Any work on your
own
bindings is just going to be re-implementing what SWIG has already done.

For context, I’m not a wx dev, I’m just some guy! I do use SWIG for
several
of my own native interfaces to ruby and have always had a great
experience
with it. I think its worth persisting with. If you want to send SWIG
questions here, I can share my knowledge.

I’m likely to be around because I use wxruby for my personal project.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 10.02.2012 00:37, schrieb [email protected]:

Ubuntu is the compromise of stability and yet edgier than Debian.
My projects have end users with skill sets more attuned with the
Ubuntu distribution.

Ah I see. :slight_smile:

I spent a weak learning FFI in a project where I made a system
monitor for my Logitech G15 LCD display. I’m close to saying screw
it and just go GTK which is a C lib FFI can help support whereas
wxWidgets is C++…nothing is ever easy :slight_smile:

While it is not possible to wrap C++ libs with FFI, there’s the rb++
RubyGem that allows to do this AFAIK. However, I never used that one.

I can make an interface C lib to wx and use FFI buuuuut really wx
is a huge lib and the wxRuby project has already crossed that
hurdle. I will probably dig out the property grid control code for
2.8.x and see how to add just that to wxRuby as a learning
experience. Hopefully after that I will have a enough feel of
wxRuby to plan an upgrade.

I wish you good luck. Maybe wxRuby will come to live again.

As a side note, it looks from reading the dev portion of the wiki,
my thoughts are in line with what the devs were planning but then
it is like they fell from the face of the planet. I sincerely hope
they are doing well.

I can confirm that they were so half a year ago as I then chatted with
some them through this list and IRC (wxruby on Freenode). Hopefully
this hasn’t changed yet!

TK

Vale,
Marvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPNPH6AAoJELh1XLHFkqhayxkH/2Sr9mQKe/kJTwnQKi75S6nm
YFD+/FkZqNR+aMDg7V8G92TVTrQrVY+Veazetom8XWlJp5iFJ8UvmpE4MfZ/Rhss
5OaznBt8UH8bDaU5qCF9bSUfT/IXWS85cnN975BgePSv7RlvbWC7rbgBb+s/gja+
isCigk7nNhfMEVKAQmL07z+BNRvpaHj6zuE1rzSWKhWCVNa68kW65o+Szl4Z3dj6
y/n3u0PB6iSl/kEgNQ4Aqs/klU5WkI1QKzgw278/ExWBBrlrePINsb/yma4E4Dxw
OzE/GQgc5EOI2xqwtKiJpfoCVusx/Gev6IUhkfNjs7F89QxroEqDXT/W6ITN1P0=
=EZR5
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 10.02.2012 22:48, schrieb David B.:

great experience with it. I think its worth persisting with. If you
want to send SWIG questions here, I can share my knowledge.

I think I will have to look into SWIG then. You’re absolutely right in
saying that many problems have already been solved using it and
there’s absolutely no need to reiterate everything.

Valete,
Marvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPNizyAAoJELh1XLHFkqhaYikH/R8GNguW3noenrSFutQeqaQs
tZuP+dcjNce1cDuGIcAPsp7TEHp5nqb/lclTHOhOu5I1ZlV5j4fmc+IxyaRQnIZ7
w6u1GQhOcNbdoUC+W6y2Vwv2PhT1xy7YrSlICgZNjQN9VSmKK5xIFNY89E1vGcPT
5+ol78aWCsEzuBkRiLhItxvjRm068zh4M4IyuJRR1JhN/YJNGTnoaPrxhMZXSqJk
TqR72EBs0zmnAGbk1xdEY/dWX+inYmPFm3UujdFy/0x40g3VaVc7BgPSqR+y73PO
bwZj/QcoludxwsZHPTToSznnwneire2bn3Wshj0QJ7fTxbzSsX4NTKUz6oQLSA4=
=zetM
-----END PGP SIGNATURE-----

i dont know if the thread owner is still aktive but i have commited my
first works for my rwx binding GitHub - Hanmac/rwx: wxWidgets binding for ruby

I am coming at this from C/C++ and have fallen in love with Ruby. After
much reading of this forum and asking on IRC, I think it would be a real
shame to have wxRuby slide into oblivion.

I have a lot of time on my hands at the moment (unless my current
project takes off quicker than expected). I have never committed
anything to Open Source, but I am going to start here if I can.

To the guy posting above as guest - if you access this via
ruby-forum.com you can set up a username easily and it means we know who
the knew committer is! (By persona at any rate - which is helpful)

Just how much of this is a SWIG problem and how much is down to wxRuby
just not being worked on? Even a ballpark percentage split would be
helpful to know from one of the previous developers. If it’s really just
a SWIG problem then maybe our time is indeed better spent there for the
moment?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 08.04.2012 01:11, schrieb Kevin McCaughey:

I am coming at this from C/C++ and have fallen in love with Ruby.
After much reading of this forum and asking on IRC, I think it
would be a real shame to have wxRuby slide into oblivion.

I agree. So you already had contact with the wxRuby devs in wxruby on
Freenode?

I have a lot of time on my hands at the moment (unless my current
project takes off quicker than expected). I have never committed
anything to Open Source, but I am going to start here if I can.

Commiting to OpenSource software is always a good way to develop things.

To the guy posting above as guest - if you access this via
ruby-forum.com you can set up a username easily and it means we
know who the knew committer is! (By persona at any rate - which is
helpful)

He uses the mailing list directly and has switched to posting to the
wxRuby development ML, which is not listed on ruby-forum.com (see
http://wxruby.rubyforge.org/wiki/wiki.pl?MailingLists). However, I’ve
not seen any post by him in the last weeks.

Just how much of this is a SWIG problem and how much is down to
wxRuby just not being worked on? Even a ballpark percentage split
would be helpful to know from one of the previous developers. If
it’s really just a SWIG problem then maybe our time is indeed
better spent there for the moment?

I’ve looked into wxRuby’s sourcecode a while ago, and if I remember
correctly it’s made up of SWIG code to about 85%. I’m not sure about
the current SVN trunk, but at least for the latest stable release
2.0.1 you’re limited to SWIG version 1.3.38 and there’s no support for
wxWidgets 2.9.

Vale,
Marvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPgUUdAAoJELh1XLHFkqha/NYH/3yaCMXWA8f4O7+ln0vdIFRC
4WChevwkmiRaA2yLANmCF8w7wjHU9if66FmEB5q+jBZhbFykWANeG2/91qUDYcQ1
GS90CxkCmxG9cx5g8J2I5bTBUro7JlzDRK4Hf5YlP+B2kLYQfQ1lE/+HWD3+I4kp
htjdyvFEPMgGcr8NGOa/LZKJcix2f8zqO1BN+60KCS3PSehyzFrFF/lcO9IYRD6K
hwJMaS2wh+ONDz387iAjU04gsOI/r3t6y5RNYAEEsoE4shKazLSckKmL4c8uWLb6
sjOhTEy/TZ7nY0sNo4ssL4oUvloMgWklS5HqhWQuVe6FnDladFzPm6MpacAKsTk=
=fGjD
-----END PGP SIGNATURE-----

Hi,

Le 8 avril 2012 09:58, Quintus [email protected] a crit :

Ive looked into wxRubys sourcecode a while ago, and if I remember
correctly its made up of SWIG code to about 85%. Im not sure about
the current SVN trunk, but at least for the latest stable release
2.0.1 youre limited to SWIG version 1.3.38 and theres no support for
wxWidgets 2.9.

SWIG-2.0.x support has been added in SVN (in the
branches/wxruby_2_0_stable).
It’s not yet delivered as a release but you can get the sources from
SVN.
Like me, Alex, the lead developer, has been away from the project for a
long while.

Cheers,
Chauk-Mean

Sorry missed this as Spam Assassin snatched it due to the relay and
lack of rDNS.

Content preview: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 08.04.2012
01:11, schrieb Kevin McCaughey: > I am coming at this from C/C++ and have
fallen in love with Ruby. > After much reading of this forum and asking on
IRC, I think it > would be a real shame to have wxRuby slide into
oblivion.

I’ve been absent as I’ve been hoping job sites so haven’t made much
progress in getting the wx 2.8.11 contrib lib for property grid added
in my local dev files. My test case is from a working wx C++ project.
I have the entire interface sans that plus a custom control working in
wxRuby.

I hit a wall in my lack of experience with SWIG and getting the events
correct. I am very intrigued by the post of someone committing a patch
getting SWIG 2.x working. I really want to try and find a commit or
something I can read a diff where a dev added a control so I can see
the process.

As an aside, implementing a custom wxRuby class to “roll my own”
property grid was easy with the current control support, however that
defeated the purpose of learning. Maybe we can sweet talk a dev into
posting a diff or short tutorial on adding a lib. Seeing the walk
through of adding a small lib (maybe making a custom control with a
couple I/O and event functions) will be tremendously helpful.

If I can get through the wall, I’ll be happy to post the entire app as
a tutorial.

I’ve SWIG’d before. I have no intentions, at my current level of
understanding, to create the interfaces from scratch. The work is too
huge. It is usually easier to hack than create. Preaching to the choir
here :slight_smile:

I have begun adding the contributed wx property grid to wxRuby and
will share when complete. I’m not sure of the culture here yet for
posts so please forgive me. I will probably post something about the
modern gcc error about strings in the dev list as I think we need to
start thinking about those as eventually to modernize wxRuby we will
hit the string changes and it is a current build error on my Ubuntu
11.10 system. I’m on a M$ box at the moment and don’t have all my
notes with me.

On the culture thing I need to look at the archives and see if my
replies are being threaded as I agree with the guy who mentioned that
recently. I have the choice to reply to list or sender and wish to be
proper. I am currently replying to list.

TK

Quoting Q. [email protected]:

On 10/04/12 16:42, [email protected] wrote:

oblivion.
Thanks - I totally agree. Chauk-mean has done great work to get things
working with SWIG 2.x, and that should be maintainable now. There is a
bigger job up ahead of porting to wxWidgets 3.0, which will get the
library working again properly on OS X.

I hit a wall in my lack of experience with SWIG and getting the events
correct. I am very intrigued by the post of someone committing a patch
getting SWIG 2.x working. I really want to try and find a commit or
something I can read a diff where a dev added a control so I can see
the process.

What problem did you run into with the event binding?

Our Ohloh page has a list of SVN commits:
https://www.ohloh.net/p/wxruby/commits

You could have a browse through that - some of the older ones will
involve adding classes.

As an aside, implementing a custom wxRuby class to “roll my own”
property grid was easy with the current control support, however that
defeated the purpose of learning. Maybe we can sweet talk a dev into
posting a diff or short tutorial on adding a lib. Seeing the walk
through of adding a small lib (maybe making a custom control with a
couple I/O and event functions) will be tremendously helpful.

There’s some stuff on the wiki already on adding a class - is that what
you meant by a ‘lib’? Anyway, just posting to say that I’m around, even
if I might be a bit slow to reply…

cheers
a