Skip to content

Problems with packages that require Gtk2

6 messages · John Maindonald, Simon Urbanek, Michael Lawrence

#
Has anyone been able to get packages that rely on Gtk2 to run under  
Leopard?

I have experimented with the playwith package, as depending on a small  
number of packages additional to Gtk2.   I can pretty consistently  
generate a bus error by attaching playwith, then printing a lattice  
object.  Note that I have not run any functions from the playwith  
package.

The same may happen if I attach all the packages on which playwith  
depends (but not playwith itself), but the bus error does not appear  
with the same consistency.

Here is a transcript on a session:

[Previously saved workspace restored]

 > options(STERM='iESS', editor='emacsclient')
 > library(lattice)
 > library(playwith)
Loading required package: latticeExtra
Loading required package: RColorBrewer
Loading required package: grid
Loading required package: gWidgets
Loading required package: gWidgetsRGtk2
Loading required package: RGtk2
Loading required package: cairoDevice
 > sessionInfo()
R version 2.7.2 (2008-08-25)
i386-apple-darwin8.11.1

locale:
C

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods
[8] base

other attached packages:
[1] playwith_0.9-11      cairoDevice_2.8      gWidgetsRGtk2_0.0-36
[4] RGtk2_2.12.5-3       gWidgets_0.0-28      latticeExtra_0.5-1
[7] RColorBrewer_1.0-2   lattice_0.17-13

loaded via a namespace (and not attached):
[1] gridBase_0.4-3 tools_2.7.2
Warning message:
'DESCRIPTION' file has 'Encoding' field and re-encoding is not possible
 > gph <- xyplot(weight ~ height, data=women)
 > print(gph)

  *** caught bus error ***
address 0xa8, cause 'non-existent physical address'

Traceback:
  1: .Call(L_newpage)
  2: grid.newpage()
  3: printFunction(x, ...)
  4: print.trellis(gph)
  5: print(gph)

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 1
aborting ...

Process R bus error at Tue Sep 23 14:01:23 2008

John Maindonald             email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.
#
On Sep 23, 2008, at 0:20 , John Maindonald wrote:

            
Yes, I see no problem with Gtk2.
The problem appears to be in Michael's carioDevice, it crashes because  
its cairo context is NULL. I suspect it may not have a good error  
handling. I'm not sure what causes the problem, you may try to contact  
Michael. Neither the built-in R cairo device nor the Cairo package  
have any problems, so I don't think it's a problem on the cairo side...

Cheers,
Simon
#
I've had a brief exchange of emails, to which Simon is privy, with  
Michael Lawrence.

"From what I've heard, people who compile the entire toolchain, i.e.  
do not use Simon's GTK+, cairo, etc binaries, do not have a problem  
with cairoDevice on the Mac. ... In the past, the seg faults were  
occuring in the font handling code, whenever rotated text was drawn.  
Of course, this is probably just a sign of memory corruption  
elsewhere, but my guess is that's related to the Pango/Cairo  
interaction."

Has anyone had success going this route (compiling the entire  
toolchain)?  If one does go this route, how should it be done?   
Install MacPorts and follow the instructions on the MacPorts web  
page?  I found detailed instructions on a web page that is designed to  
make it possible to reproduce a problem with fonts:
http://trac.macports.org/ticket/15626


John Maindonald             email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.
On 23/09/2008, at 11:32 PM, Simon Urbanek wrote:

            
#
On Sep 24, 2008, at 7:12 , John Maindonald wrote:

            
I have script that can build RGtk2 quite nicely in a separate  
framework. I plan to make this the default binary for R 2.8, but for  
compatibility's sake we cannot switch for 2.7. I can make the binary  
and/or the script available for those interested. (It started as way  
to test the bleeding edge of the native Gtk for OS X, but tests on  
ggobi show that it's not quite there yet - but that's another story).

Cheers,
Simon

PS: I don't quite agree with Michael's analysis since cairoDevices  
blows up even before any drawing is done, it has nothing to do with  
rotated text:

#0  _cairo_surface_show_page (surface=0x0) at ../../../cairo-1.4.14/ 
src/cairo-surface.c:1541
#1  0x0116c66a in cairo_show_page (cr=0xe02800) at ../../../ 
cairo-1.4.14/src/cairo.c:2139
#2  0x011694bf in initDevice (dd=0x668c20) at cairoDevice.c:114
#3  0x0116960f in Cairo_NewPage (gc=0xbfffeb1c, dd=0x61f860) at  
cairoDevice.c:660
#4  0x0038e16a in Rf_GNewPlot (recording=TRUE) at ../../../../R-2.7- 
branch/src/main/graphics.c:1809

(gdb) p cd
$2 = (CairoDesc *) 0x61cc70
(gdb) p *cd
$3 = {
   window = 0x32ac020,
   drawing = 0x17fb050,
   pixmap = 0x32af080,
   cr = 0xe02800,
   surface = 0x0,
   filename = 0x0,
   width = 525,
   height = 525,
   event = 0x0,
   locator = 0x0
}
#
Thanks, Michael and Simon.  My main concern was to discover
where we are at.  It will be great if this can be resolved for 2.8
Cheers
John.

John Maindonald             email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.
On 25/09/2008, at 12:13 AM, Michael Lawrence wrote: