From rhurlin at gwdg.de  Fri Oct 22 22:10:56 2010
From: rhurlin at gwdg.de (Rainer Hurling)
Date: Fri, 22 Oct 2010 22:10:56 +0200
Subject: [Rd] [R] R-2.12.0 hangs while loading RGtk2 on FreeBSD
In-Reply-To: <4CC19D4B.6070605@gwdg.de>
References: <4CC03E47.2010800@gwdg.de>	<alpine.LFD.2.00.1010211508350.5999@toucan.stats.ox.ac.uk>	<4CC052D6.3030106@gwdg.de>	<alpine.LFD.2.00.1010211704340.7969@toucan.stats.ox.ac.uk>	<4CC06D6A.8040609@gwdg.de>	<AANLkTimAmo0ro2Tiw_rWAJ732R+ATRgNdS0SvuO6hYq+@mail.gmail.com>
	<4CC19D4B.6070605@gwdg.de>
Message-ID: <4CC1EFD0.40400@gwdg.de>

On 22.10.2010 16:18 (UTC+2), Rainer Hurling wrote:
> On 22.10.2010 14:57 (UTC+1), Michael Lawrence wrote:
>>
>>
>> On Thu, Oct 21, 2010 at 9:42 AM, Rainer Hurling <rhurlin at gwdg.de
>> <mailto:rhurlin at gwdg.de>> wrote:
>>
>> [moved from R-help]
>>
>> On 21.10.2010 18:09 (UTC+1), Prof Brian Ripley wrote:
>>
>> If you do R CMD INSTALL --no-test-load this will skip the part
>> that is
>> hanging and you can try loading in stages (e.g. dyn.load on the
>> RGtk2.so).
>>
>>
>> With '--no-test-load' it installs and ends normal. Loading per
>> dyn.load("RGtk2.so") works, just as dyn.load("RGtk2.so",F) and
>> dyn.load("RGtk2.so",,F). Unloading works, too.
>>
>> Normal loading over library(RGtk2) within R does not work. R than is
>> hanging.
>>
>> It seems the problem is not with the library itself?
>>
>>
>> It looks like something is happening when initializing GTK+ and the
>> event loop. This happens in the function R_gtkInit in Rgtk.c. If you
>> could run R -d gdb and break on that function, perhaps you could step
>> through until it hangs.
>
> Michael, thank you for answering. As I wrote earlier (on R-help@),
> unfortunately I have no experience with debugging (I am not a
> programmer). So I would need some more assistence.
>
> Is there a difference between 'library(RGtk2)' and 'dyn.load(RGtk2)' in
> initializing GTK+? I am able to dyn.load, but library does not work.
>
> After starting with 'R -d gdb' is the following right?
>
> (gdb) break R_gtkInit
> Function "R_gtkInit" not defined.
> Make breakpoint pending on future shared library load? (y or [n]) y
> Breakpoint 1 (R_gtkInit) pending.
>
> When I try to proceed, it gives me the following message
>
> (gdb) run
> Starting program: /usr/local/lib/R/bin/exec/R
> /libexec/ld-elf.so.1: Shared object "libRblas.so" not found,
> required by "R"
> Program exited with code 01.

Ok, I am one step further now:


(gdb) run
Starting program: /usr/local/lib/R/bin/exec/R
[..SNIP..]
 > library(RGtk2)
[New LWP 100174]
Breakpoint 2 at 0x318bd490: file Rgtk.c, line 104.
Pending breakpoint "R_gtkInit" resolved
[New Thread 2f408b00 (LWP 100174)]
[Switching to Thread 2f408b00 (LWP 100174)]

Breakpoint 2, R_gtkInit (rargc=0x30b11d10, rargv=0x30a98458, 
success=0x30afbad0) at Rgtk.c:104
104     Rgtk.c: No such file or directory.
         in Rgtk.c
(gdb)


What do you suggest I should do next?


> Thanks again,
> Rainer
>
>
>> Thanks,
>> Michael
>>
>> I think this is rather technical for R-help, so maybe move to
>> R-devel?
>>
>>
>> I moved to R-devel.
>>
>> And can you check the RGtk2 version? A recent but not current
>> version
>> (2.12.17?) did hang initializing Gtk+ on some platforms and Michael
>> Lawrence had to be involved.
>>
>>
>> I am using RGtk2_2.12.18.tar.gz for month now.
>>
>>
>> On Thu, 21 Oct 2010, Rainer Hurling wrote:
>>
>> Am 21.10.2010 16:12 (UTC+1) schrieb Prof Brian Ripley:
>>
>> On Thu, 21 Oct 2010, Rainer Hurling wrote:
>>
>> I am working with R-2.12.0 on FreeBSD 9.0-CURRENT
>> for a while now. I
>> successfully installed more than 300 packages (most
>> as dependencies of
>> others).
>>
>> There are two packages I am not able to install:
>> RGtk2 and rggobi.
>>
>> For example rggobi builds fine and after that it
>> wants to load:
>>
>> ------------------------------------------------------
>> # R CMD INSTALL rggobi_2.1.16.tar.gz
>> [..SNIP..]
>> gcc -std=gnu99 -shared -L/usr/local/lib -o rggobi.so
>> RSEval.o brush.o
>> colorSchemes.o conversion.o data.o dataset.o
>> display.o displays.o
>> edges.o ggobi.o identify.o init.o io.o keyHandlers.o
>> longitudinal.o
>> modes.o plot.o plots.o plugins.o print.o session.o
>> smooth.o ui.o
>> utils.o -pthread -L/usr/local/lib -lggobi
>> -lgtk-x11-2.0 -lxml2
>> -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0
>> -lpangocairo-1.0 -lXext
>> -lXrender -lXinerama -lXi -lXrandr -lXcursor
>> -lXcomposite -lXdamage
>> -lpangoft2-1.0 -lgio-2.0 -lXfixes -lcairo -lX11
>> -lpango-1.0 -lm
>> -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0
>> -lgthread-2.0
>> -lglib-2.0
>> installiert nach /usr/local/lib/R/library/rggobi/libs
>> ** R
>> ** data
>> ** moving datasets to lazyload DB
>> ** demo
>> ** preparing package for lazy loading
>> ------------------------------------------------------
>>
>> At this point the install process is hanging, R
>> utilises no more CPU
>> time. Same with package RGtk2.
>>
>> Is this a known error? Please let me know if I can
>> give more
>> information or try something different.
>>
>>
>> Well, those are exactly the two packages using Gtk+.
>>
>> There is no known general problem, and as you could have
>> checked from
>> the CRAN check pages, those packages install without
>> problems on several
>> platforms. (Not Solaris, where ggobi does not install
>> and RGtk2 requires
>> gcc, and not x64 Windows where both need to be patched.)
>>
>> So it does look very like there is a problem with
>> loading against the
>> Gtk+ system libraries on your system.
>>
>>
>> I think you are right. With previous versions of R (until
>> R-2.10.x) I
>> did not have this hanging when loading RGtk2 ... And I am
>> pretty sure
>> that I have no problems with gtk2 outside of R on my FreeBSD
>> system.
>>
>> In the meantime I found out that the reported loading error
>> of rggobi
>> is a loading error of RGtk2, which fails (hangs). So there
>> remains
>> only a loading error with RGtk2. (Because of that I changed
>> the subject.)
>>
>> After building/installing RGtk2, there are the following
>> messages:
>>
>> ------------------------------------------------------
>> [..SNIP..]
>> gcc -std=gnu99 -shared -L/usr/local/lib -o RGtk2.so
>> RGtkDataFrame.o
>> Rgtk.o atkAccessors.o atkClasses.o atkConversion.o atkFuncs.o
>> atkManuals.o atkUserFuncs.o cairo-enums.o cairoAccessors.o
>> cairoConversion.o cairoFuncs.o cairoManuals.o cairoUserFuncs.o
>> classes.o conversion.o eventLoop.o gdkAccessors.o gdkClasses.o
>> gdkConversion.o gdkFuncs.o gdkManuals.o gdkUserFuncs.o glib.o
>> gobject.o gtkAccessors.o gtkClasses.o gtkConversion.o gtkFuncs.o
>> gtkManuals.o gtkUserFuncs.o libgladeAccessors.o libgladeFuncs.o
>> libgladeManuals.o libgladeUserFuncs.o pangoAccessors.o
>> pangoClasses.o
>> pangoConversion.o pangoFuncs.o pangoManuals.o
>> pangoUserFuncs.o utils.o
>> zcompat.o -pthread -L/usr/local/lib -lglade-2.0
>> -lgtk-x11-2.0 -lxml2
>> -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXext
>> -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite
>> -lXdamage
>> -lpangoft2-1.0 -lgio-2.0 -lXfixes -lcairo -lX11 -lpango-1.0 -lm
>> -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0
>> -lgthread-2.0
>> -lglib-2.0 -pthread -L/usr/local/lib -lgthread-2.0 -lglib-2.0
>> installiert nach /usr/local/lib/R/library/RGtk2/libs
>> ** R
>> ** demo
>> ** inst
>> ** preparing package for lazy loading
>> ** help
>> *** installing help indices
>> ** building package indices ...
>> ** testing if installed package can be loaded [..hanging
>> from here..]
>> ------------------------------------------------------
>>
>> Is there a chance to find out what is wrong with loading
>> RGtk2 on my
>> system? Unfortunately I have almost no experience with real
>> debugging
>> methods on R. But of course I am willing to help and try out ...
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] [R] R-2.12.0 hangs while loading RGtk2 on FreeBSD
Rainer Hurling