wxRuby 1.9.9 released

Hello

I’m happy to announce that wxRuby version 1.9.9 is now available for
download and gem installation:

http://rubyforge.org/frs/?group_id=35&release_id=27842
gem install wxruby

On Linux, the default binary gem is now dynamically linked to wxWidgets.
This means you’ll need to install wxWidgets from your package manager.
See below for more info.

== CHANGES ==

This recommended upgrade includes a substantial number of new GUI
features, as well as fixing a number of bugs:

  • Added the RichText framework, providing word-processor like editing of
    styled/formatted text and inline images
  • Added a number of other useful GUI classes, such as VScrolledWindow,
    VListBox and HtmlListBox
  • Added the StandardPaths and NavigationKeyEvent classes
  • Fixed a number of bugs and warnings
  • Binary builds for Windows and OS X are based on the latest stable
    wxWidgets, 2.8.9, so benefitting from upstream fixes

It had been planned that 1.9.8 was the last release before 2.0. 1.9.9 is
a chance to give some new classes some testing time and get some fixes
out there whilst finishing up the last few 2.0 blocker bugs (eg
Clipboard probs on GTK, ScrolledWindow X errors).

== LINUX BINARY GEMS ==

Previous binary builds for Linux were, like those for Windows and OS X,
statically linked - meaning the wxRuby library included all the relevant
wxWidgets code. With this release I’ve switched to offering a Linux gem
that is dynamically linked - meaning it makes use of the wxWidgets
library on your system - which should be easily installable from your
package manager - eg apt-get install wxwidgets

The reasoning here:

  • Because Linux systems vary a lot in what’s installed by default, using
    the static build generally still required messing around installing new
    packages
  • Package managers make it trivially easy to install a recent version of
    wxWidgets on major distros
  • The shared builds are substantially smaller and may perform better

I’m open to discussion on this based on experiences on different distros
(I’ve only tested on Ubuntu).

== ACKNOWLEDGEMENTS ==

Thanks to all those who contributed bug reports and feature requests to
this release, as well as those who keep the project ticking over in
other ways such as keeping the wiki up to date and taking part on the
mailing list.

cheers
alex

Great work, Alex!
By the way, the Windows version now seems to be much more verbose on
errors.
This is very helpful, thanks a lot.

Kirill.

2008/11/1 Alex F. [email protected]

Кирилл Лиходедов wrote:

Great work, Alex!

:slight_smile:

By the way, the Windows version now seems to be much more verbose on
errors.

That’s useful to know, thanks for following this up.

I think the difference is that I compiled the new version of wxWidgets
for wxRuby 1.9.9 with wxUSE_EXCEPTIONS set 0 instead of 1. I’m guessing
what was happening was that C++ exceptions were leaking through to Ruby,
which is a bad thing and caused the uninformative crashes you reported.

I’ll make this part of the official build instructions from now on.

alex

Hello together,

I tried to install wxruby 1.9.9 () on a SLES10 Linux server.

  • First I installed the wxWidgets rpm.
  • then the wxruby gem

When trying to start an example I get the following error:
/usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so:
libwx_gtk2u_gl-2.8.so.0: cannot open shared object file: No such
file or directory -
/usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib
/wxruby2.so (LoadError)
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require' from /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wx.rb:12 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require’
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require’
from grid.rb:8

I made the following check:

ldd wxruby2.so

./wxruby2.so: /usr/lib/libwx_gtk2u_stc-2.8.so.0: no version information
available (required by ./wxruby2.so)
linux-gate.so.1 => (0xffffe000)
libwx_gtk2u_stc-2.8.so.0 => /usr/lib/libwx_gtk2u_stc-2.8.so.0
(0xb761c000)
libwx_gtk2u_gl-2.8.so.0 => not found
libwx_gtk2u_media-2.8.so.0 => not found
libwx_gtk2u_richtext-2.8.so.0 => not found
libwx_gtk2u_aui-2.8.so.0 => not found
libwx_gtk2u_xrc-2.8.so.0 => not found
libwx_gtk2u_qa-2.8.so.0 => not found
libwx_gtk2u_html-2.8.so.0 => not found
libwx_gtk2u_adv-2.8.so.0 => not found
libwx_gtk2u_core-2.8.so.0 => not found
libwx_baseu_xml-2.8.so.0 => not found
libwx_baseu_net-2.8.so.0 => not found
libwx_baseu-2.8.so.0 => not found
libdl.so.2 => /lib/libdl.so.2 (0xb7616000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xb75e2000)
libgtk-x11-2.0.so.0 => /opt/gnome/lib/libgtk-x11-2.0.so.0
(0xb72ee000)
… then next are available

I also installed all the available gtk libraries on the server.

Thanks for any help!
Franz

Hi Alex,

thanks for the rapid answer!

wx-config --libs
-L/usr/local/lib -pthread -L/usr/X11R6/lib -lwx_gtk2_richtext-2.8
-lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8
-lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8
-lwx_base-2.8

  1. this is my first try to run wxruby on linux. Until now I used it only
    on Windows.

cheers,
Franz

Hi Franz

Irlweg, Franz (ZNT) wrote:

file or directory -

libwx_gtk2u_richtext-2.8.so.0 => not found
… etc

Thanks for the report. I think the problem is that the Ubuntu wxWidgets
that the gem was built against was compiled in ‘multilib’ form - ie with
each group of features in a separate .so. It looks like the .rpm you
have was built ‘monolithic’ - ie with everything stuffed into a single
.so. Could you see what “wx-config --libs” returns please?

I’m not sure how we get around this if different distros build in
different ways. How did you get on previously with the statically-linked
gems?

cheers
alex

Irlweg, Franz (ZNT) wrote:

wx-config --libs
-L/usr/local/lib -pthread -L/usr/X11R6/lib -lwx_gtk2_richtext-2.8
-lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8
-lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8
-lwx_base-2.8

Thanks. I think the problem is that the rpm version you have is a
non-unicode build of wxWidgets, whereas I’ve built it against a unicode
version. See that the libs it’s looking for have a u in the name, eg
libwx_gtk2u_aui, whereas the ones on your system don’t.

I would suggest having a look in your repository to see if a “unicode”
build of wxWidgets 2.8 is available, and installing that. wxRuby hasn’t
ever supported ascii-only builds of wxWidgets, and probably won’t.
wxWidgets 3.0 will make this easier by having a single utf8 build only.

cheers
alex

Hi Alex,

couldn’t find a unicode build of wxwidgets.

After installing

  • wxWidgets-2.8.9 rpm
  • wxWidgets-gl-2.8.9 rpm
  • wxGTK-2.8.9 with ( config --enable-unicode) , make, make installthe

the libraries can be found, but some version information is wrong:

ldd wxruby2.so
./wxruby2.so: /usr/lib/libwx_gtk2u_gl-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_html-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_aui-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_aui-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_media-2.8.so.0: no version
information available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_stc-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_baseu-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_adv-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_adv-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_xrc-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_richtext-2.8.so.0: no version
information available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_core-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_core-2.8.so.0: no version information
available (required by ./wxruby2.so)
./wxruby2.so: /usr/lib/libwx_gtk2u_core-2.8.so.0: no version information
available (required by ./wxruby2.so)

  • executing a example …
    ruby /data/install/grid.rb
    /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so:
    /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so:
    symbol _ZTI6wxGCDC, version WXU_2.8 not defined in file
    libwx_gtk2u_core-2.8.so.0 with link time reference -
    /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so
    (LoadError)
    from
    /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
    require' from /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wx.rb:12 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require’
    from
    /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
    `require’
    from /data/install/grid.rb:8

Hello everybody,

if has somebody has running a wxruby on a SLES10 system please let me
know.

Thanks for any help,
Franz Irlweg

Hi Alex,
not yet done the install …

After compiling and installing wxruby1.9.9

  • ldd wxruby2.so is ok !!!
    but:

require ‘wx’
LoadError: /usr/local/lib/ruby/site_ruby/1.8/i686-linux/wxruby2.so:
undefined symbol: mspack_destroy_chm_decompressor -
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/wxruby2.so
from /usr/local/lib/ruby/site_ruby/1.8/i686-linux/wxruby2.so
from /usr/local/lib/ruby/site_ruby/1.8/wx.rb:12
from (irb):4:in `require’
from (irb):4
from :0

Best regards,
Franz

Hi Franz

Irlweg, Franz (ZNT) wrote:

couldn’t find a unicode build of wxwidgets.

I don’t know about compatibility between SLES and OpenSuse or whether
you’re able to install 3rd party rpms, but:
http://software.opensuse.org/search?baseproject=openSUSE%3A10.3&p=1&q=wxWidgets

After installing

  • wxWidgets-2.8.9 rpm
  • wxWidgets-gl-2.8.9 rpm

I don’t think you need these packages if you’re compiling and installing
wxWidgets yourself. wxGTK should have everything you need in it.

  • wxGTK-2.8.9 with ( config --enable-unicode) , make, make installthe

the libraries can be found, but some version information is wrong:

ldd wxruby2.so
./wxruby2.so: /usr/lib/libwx_gtk2u_gl-2.8.so.0: no version information
available (required by ./wxruby2.so)

Sorry, this error isn’t familiar to me. But I was a bit surprised that
your self-built version looks to be in /usr/lib - I would have expected
it to be in /usr/local/lib or /opt/lib. Might be worth checking again
what wx-config --libs returns, and that the wxRuby build is pointing to
the right libs.

Perhaps you might post the first few lines returned when running ‘rake’
to build wxRuby, summarising the kind of build to be done and the
classes that will be excluded (eg PrinterDC is always skipped on Linux).

  • executing a example …
    ruby /data/install/grid.rb
    /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so:
    /usr/local/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-linux/lib/wxruby2.so:
    symbol _ZTI6wxGCDC, version WXU_2.8 not defined in file

I can find a few references to this error message on the web with
wxWidgets and various other packages and software, but no decisive
solution.

The fact that the error is occurring with GCDC makes me wonder if the
problem is specific to that class. Did you build wxWidgets with
–enable-graphics_ctx? If you didn’t, you might try this - especially if
rake is not reporting that support for GCDC, GraphicsContext etc is
going to be skipped.

See also the recommended Linux options at
http://wxruby.rubyforge.org/wiki/wiki.pl?HowToBuildWxWidgets

cheers
alex

Irlweg, Franz (ZNT) wrote:

require ‘wx’
LoadError: /usr/local/lib/ruby/site_ruby/1.8/i686-linux/wxruby2.so:
undefined symbol: mspack_destroy_chm_decompressor -
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/wxruby2.so

Seems this symbol comes from libmspack, which wxWidgets uses to support
reading CHM help files. I don’t know why this problem is occurring, but
you could perhaps try excluding the feature.

Could you have a look at your setup.h file (somewhere like
/usr/local/lib/wx/include/gtk-unicode-release-2.8/wx/setup.h )

and see if it has a line wxUSE_LIBMSPACK.

If the value of this is 1, you could try compiling wxWidgets again
(sorry) configured with the additional option

–without-libmspack

a

Hello,

after installing wxruby-1.9.9-x86-mswin32-60.gem
i tried the grid.rb sample:

after changing the value in the checkbox and clicking on another row,
the following error is raised:

C:/Programme/ruby/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-mswin32-60/sam
ples/grid/grid.rb:81:in initialize': undefined method 'get_row' for #<Wx::Rect: (62503016, 0) (112487351 from C:/Programme/ruby/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-mswin32-60/sam ples/grid/grid.rb:198:incall’
from
C:/Programme/ruby/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-mswin32-60/sam
ples/grid/grid.rb:198:in process_event' from C:/Programme/ruby/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-mswin32-60/sam ples/grid/grid.rb:198:inmain_loop’
from
C:/Programme/ruby/lib/ruby/gems/1.8/gems/wxruby-1.9.9-x86-mswin32-60/sam
ples/grid/grid.rb:198

So i can not integrate this version in my production environment. My
actual version is wxruby-1.9.5

Franz

If you are not the intended recipient, you are hereby notified that any
use, dissemination, or copying of this communication is strictly
prohibited.
If you have received this communication in error, please notify us at
once so This communication and any files or attachments transmitted with
it may contain information that is copyrighted or confidential and
exempt from disclosure under applicable law. It is intended solely for
the use of the individual or the entity to which it is addressed.
that we may take the appropriate action and avoid troubling you further.
Thank you for your cooperation. Please contact your local IT staff or
email [email protected] if you need assistance.

Siltronic AG, Sitz Muenchen, Hanns-Seidel-Platz 4, 81737 Muenchen,
Germany. Amtsgericht Muenchen HRB 150884
Vorstand: Wilhelm Sittenthaler (Vorsitz), Gerhard Brehm, Paul Lindblad,
Joachim Manke, Michael Peterat. Vorsitzender des Aufsichtsrats: Rudolf
Staudigl

libwx_gtk2u_gl-2.8.so.0: cannot open shared object file: No such
file or directory
=======fix the bug,just do=========
sudo aptitude install libwxgtk2.8-dev
============In ubuntu==============

Hi Franz

Irlweg, Franz (ZNT) wrote:

ples/grid/grid.rb:81:in `initialize’: undefined method ‘get_row’ for
#<Wx::Rect: (62503016, 0) (112487351

Thanks for the report. I think this must be the same bug as this:

http://rubyforge.org/tracker/index.php?func=detail&aid=21985&group_id=35&atid=218

I have a fix in the works but it will need recompilation.

So i can not integrate this version in my production environment. My
actual version is wxruby-1.9.5

If there is something critical you need from teh current release, you
should be able to work around this by checking the class of the object
coming into the event handler.

return unless event.kind_of?(Wx::GridEvent)

a