I have a problem starting the GUI on ROOT 5.14/00 on Ubuntu 6.06 Linux (Dapper Drake). I compiled it from sources.
% root -l
root [0] TBrowser()
Error in <TGVScrollBar>: arrow_*.xpm not found
*** Break *** segmentation violation
This is not a problem with locating files. This is my only ROOT installation, I have no ~/.rootrc, and etc/system.rootrc has
% grep Gui.IconPath etc/system.rootrc
Gui.IconPath: $(HOME)/icons:$(ROOTSYS)/icons:.
% root -l
root [0] gEnv->GetValue("Gui.IconPath", "hey")
(const char* 0x8320588)"/home/dapper/icons:/home/software/physics/root/icons:."
I encounter the same error whether I build with
./configure --prefix=/home/software/physics --etcdir=/home/software/physics/etc
make install
or with
export ROOTSYS=/home/software/physics/root
./configure
make install
I investigated the problem by looking at TGScrollBar.cxx and following the program flow. As you can see, ROOT finds the arrow_down.xpm file. I think it fails when it opens the TImage, because the pixmap handle probably shouldn’t be zero. Given the null handle, it can’t make a TGPicture.
root [0] char *picnam = gSystem->Which(gClient->GetPicturePool()->GetPath(), "arrow_down.xpm")
root [1] picnam
(char* 0x8a750a0)"/home/software/physics/root/icons/arrow_down.xpm"
root [2] char *pname = "arrow_down.xpm"
root [3] TImage *img = TImage::Open(picnam)
root [4] img->GetPixmap()
(unsigned long)0
root [5] img->GetMask()
(unsigned long)23068803
root [6] TGPicture* pic = TGPicture(pname, img->GetPixmap(), img->GetMask())
Error: Symbol null is not defined in current scope :0:
*** Interpreter error recovered ***
What about privileges? I own the file and can read and write.
% lsl /home/software/physics/root/icons/arrow_down.*
-rw-r--r-- 1 dapper dapper 79 2007-01-10 14:46 /home/software/physics/root/icons/arrow_down.gif
-rw-r--r-- 1 dapper dapper 185 2002-02-07 04:27 /home/software/physics/root/icons/arrow_down.xpm
I also made a GIF copy of the image and tried to read that, instead. Same problem.
I do, in fact, have an XPM library, and ROOT is using it.
% ldd `which root` | grep libXpm
libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7f65000)
Thanks!
– Jim