[openbox] obconf installation issue

Dana Jansens dana at orodu.net
Wed Feb 3 10:04:05 EST 2010

Hi Erik,

On 2 February 2010 17:55, Erik Iverson <eriki at ccbr.umn.edu> wrote:
> Hello,
> I hope this is the correct list to send this request.
> At work, I am running 64-bit Linux.  I want to run openbox as my window
> manager, but I am not root on my machine.  Today, I installed openbox
> (Openbox 3.4.10), but I had to use the --prefix argument to configure to put
> it in my $HOME (/my/home) directory.  I start openbox from my .xinitrc, and
> everything is great.
> Next, I wanted to install obconf (2.0.3).  Per the instructions on the wiki,
> I set PKG_CONFIG_PATH to the correct place (/my/home/lib/pkgconfig) to find
> obrender and obparser.
> I then ./configure with my $HOME (/my/home) prefix for obconf, make, and
> make install.  All goes fine.  Except when I try to launch obconf, I get:
> "obconf: error while loading shared libraries: libobrender.so.21: cannot
> open shared object file: No such file or directory".
> According to config.log and the resulting Makefile for obconf, all looks
> well with the -L flag found in OPENBOX_LIBS (i.e., -L/my/home/lib is
> included), so pkg-config seems to be doing its job.
> The gcc command line that is ultimately run is:
> gcc  -g -O2  -Wl,-export-dynamic -o src/obconf  src/src_obconf-about.o
> src/src_obconf-archive.o src/src_obconf-windows.o
> src/src_obconf-moveresize.o src/src_obconf-margins.o src/src_obconf-mouse.o
> src/src_obconf-desktops.o src/src_obconf-dock.o src/src_obconf-main.o
> src/src_obconf-appearance.o src/src_obconf-preview.o
> src/src_obconf-preview_update.o src/src_obconf-theme.o src/src_obconf-tree.o
> -L/my/home/lib -lobrender -lSM -lICE -lXft -lpangoxft-1.0 -lXrender
> -lfontconfig -lfreetype -lX11 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0
> -lgmodule-2.0 -lobparser -lxml2 -lglib-2.0   -lstartup-notification-1
> -L/my/home/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0
> -lpng12 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0
> -lglib-2.0   -lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0
> -lgdk_pixbuf-2.0 -lpng12 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo
> -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -L/my/home/lib -lgdk_pixbuf-2.0
> -lpng12 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
> The files libobrender.so, libobrender.so.21, and libobrender.so.21.0.6 all
> exist in /my/home/lib, as do their libobparser* counterparts.
> If I do ldd ~/bin/obconf, I get everything looking fine, except:
>        libobrender.so.21 => not found
>        libobparser.so.21 => not found
> If I set LD_LIBRARY_PATH to /my/home/lib, all is well, so maybe this isn't
> an openbox issue so much as one of my understanding of how this is supposed
> to work.  But why would openbox work without LD_LIBRARY_PATH being set, but
> not obconf? I'd really rather not set this if at all possible!

You did find the answer, Linux looks for dynamicly-linked shared
libraries via the LD_LIBRARY_PATH.  So you do need to set it to run
obconf.  Openbox doesn't need it because of some libtool magic during
the compile process, that lets it find them at runtime.  Just think of
it as like your PATH variable, which you need to set to be able to run
obconf without specifying the full path.

There may be tricks obconf could use to make libtool fix where the
libraries are located, but i suspect that because it is compiled as a
separate package it's something you just need to do.  And since it
does work, with the right things set, there's not much incentive to
spend a lot of effort trying to make it continue to work another way.

> Thanks so much, I'm really excited to begin using this WM!

Hope it treats you well :)


More information about the openbox mailing list