I tried to build it from source myself and after fiddling for several
hours I finally got it working.
I'm on Fedora 27 and after a fresh install this gave me a working build:
sudo dnf install gcc git automake bison flex libtool libtool-ltdl-devel
libffi-devel libsigsegv-devel cairo-devel gtk2-devel texinfo
git clone git://git.sv.gnu.org/smalltalk.git
sudo make install
If you install the "gnu-smalltalk" package from the Fedora repository,
gst-browser has it's first fail in:
> On 9. Mar 2018, at 18:43, Andreas Rosenberg <[hidden email]> wrote:
> Digging a bit further, I found that the module "gst-gtk-3.2.92.so" is
> linked against
> "libgtk-x11-2.0.so", which is (now?) only provided by package: gtk2-devel.
"known" packaging issue. With dlopen we have some difficulties knowing
what the right version is. There should be a symlink in the package to
the right version. :(
> I don't know, who is responsible for maintaining the packages, but
> adding gtk2-devel as
> dependency should fix the problem for now.
> Anybody already tried to build against GTK3? libgtk-3.so seems to be
> available with
> standard GTK packages.
Paolo has worked on using "GIR" (the Glib introspection). This has various
benefits over the "awk" approach for bindings but the work didn't finish.
Maybe you are interested in helping out?
> On 11. Mar 2018, at 11:19, Andreas Rosenberg <[hidden email]> wrote:
> gst-gtk is a standard shared library that can be examined with ldd.
> ldd output shows all dependend shared libs and contains the link to libgtk-x11-2.0.so.
> I did not examine the makefile for gst-gtk in detail, but I saw a reference to
> gtk2 include files, so in my understanding the reference to libgtk-x11.20.so comes
> from building gst-gtk against gtk v2 devel files.
Good point. Let me try to refresh the memory about it and get back to that.
> I think the gnu-smalltalk package in the Fedora repo is broken anyway. On another
> fresh Fedora install, I installed gnu-smalltalk and gtk2-devel and now the C callout
> error is gone, but I get this one:
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7b1e5db in _gst_dictionary_add () from /lib64/libgst.so.7
> (gdb) bt
This is might be misleading. If you built gst with the generational Garbage Collector then the SIGSEGV is a "barrier" and to be expected. Paolo came up with the idea of using "mprotect" to make pages unwritable and then handling SIGSEGV to know that a write (to an object in the eden) was made.
Your error might be a different. In GDB one can type something like "handle sigsegv ignore" and the program will continue to run until it hits the real error.
> "dnf info gnu-smalltalk" reports "version 3.2.5". But I did not find this version in git.
> Seems to be a "monday release" :-/