[FreeNX-kNX] Re: libXcompext.so.3 missing due to libpng12.so.0 issue

cognitive.libertarian+ml at gmail.com cognitive.libertarian+ml at gmail.com
Wed Apr 27 18:21:17 UTC 2011


* chris at ccburton.com <chris at ccburton.com> [2011-04-23 13:47]:

> >   $ cat > /usr/X11R6/bin/nxagent-wrapper.sh <<EOF
> > #!/bin/bash
> > 
> > export LD_LIBRARY_PATH="/usr/local/nx/nxcomp:
> > /usr/local/nx/nxcompext:/usr/local/nx/nxcompshad:/usr/NX/lib"
> 
> OK,
> but
> you aren't adding it to your library path, you are overwriting . . 

One of the guides said it should be overwritten for some reason.
LD_LIBRARY_PATH is empty anyway, so it should not make a difference.  

> >   $ ldd /usr/X11R6/bin/nxagent
> 
> This is without changing your
>         LD_LIBRARY_PATH
> for ldd

I tested it both ways.  That output is the same with or without the
LD_LIBRARY_PATH (perhaps because I also added these to the cache using
ldconfig).

>  . . . . . . . . . . it finds one elsewhere,  (src)
> cos
> LD_LIBRARY_PATH hasn't been overwritten for ldd

That's a typo.  Sorry for the confusion.  All these packages are in
/usr/local/src/nx on my system.  I removed the "src" from the example
on how I got around one of the problems, figuring that it would be
more consistent with what others would use.

> > so.3 (0xb7cd8000)
> >         libXcompshad.so.3 => 
> > /usr/local/src/nx/nxcompshad/libXcompshad.so.3 (0xb7ccb000)
> >         ...
> >         libpng12.so.0 => /usr/NX/lib/libpng12.so.0 (0xb7b10000)
> >         ...
> > 
> > Notice the 3 libXcomp* libs are now found according to ldd,
> 
> . . . . . .  without the new LD_LIBRARY_PATH . . . . . 
> 
> > but
> > nxagent reports "No such file or directory" for libXcompext.so.3.
> 
> . . . with the NEW LD_LIBRARY_PATH which doesn't look in 
>         /usr/local/src/nx/nxcomp

Everything matches up.  This is why I'm at a loss for how to fix
this.  LD_LIBRARY_PATH includes /usr/local/src/nx/nxcompext, and
/usr/local/src/nx/nxcompext contains libXcompext.so.3.  

> > There appears to be a library conflict with libpng12.so.0.  Would
> > that cause libXcompext.so.3 to go missing?
> 
> I can't see a conflict ???

This is at the top of the output from ldd:

  $ ldd /usr/X11R6/bin/nxagent
  /usr/X11R6/bin/nxagent: /usr/NX/lib/libpng12.so.0: no version information available (required by /usr/local/src/nx/nxcomp/libXcomp.so.3)
  /usr/X11R6/bin/nxagent: /usr/NX/lib/libpng12.so.0: no version information available (required by /usr/local/src/nx/nxcompext/libXcompext.so.3)

When running "ldconfig -p | grep png":

        libpng12.so.0 (libc6) => /usr/NX/lib/libpng12.so.0
        libpng12.so.0 (libc6) => /usr/lib/libpng12.so.0
        libpng12.so   (libc6) => /usr/NX/lib/libpng12.so
        libpng12.so   (libc6) => /usr/lib/libpng12.so

So there are two versions in play.  I'm not sure how to go about
resolving this.

> Compile/install all the SERVER stuff, don't use the client libraries.

The guides out there are a bit tangled.  They don't name the server
and client packages.  Is nxagent a server or client?

> #!/bin/sh
> 
> NXCOMMAND=$(basename $0)
> 
> export LD_LIBRARY_PATH=/usr/lib/NX/lib${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
> exec /usr/lib/NX/$NXCOMMAND ${1+"$@"}
> 
> 
> Should fix it.
> 
> I do hope you are enjoying all this . . . ;)

Thanks for the help.  However, that wrapper only makes slight changes,
and it does not turn out to make a difference.  I still get:

/usr/X11R6/bin/nxagent: error while loading shared libraries: libXcompext.so.3: cannot open shared object file: No such file or directory

Even though LD_LIBRARY_PATH includes /usr/local/src/nx/nxcompext/.
The only other explanation would be if nxagent ignores
LD_LIBRARY_PATH, and also ignores the cache, and just looks in a fixed
location.  

In the madness of trying fix this extremely frustrating problem, I've
copied/linked libXcompext.so.3 to three areas:

  /usr/NX/lib/libXcompext.so.3
  /usr/NX/lib/libXcompext.so.3.4.0
  /usr/lib/libXcompext.so.3
  /usr/lib/libXcompext.so.3.4.0
  /usr/local/src/nx/nxcompext/libXcompext.so.3
  /usr/local/src/nx/nxcompext/libXcompext.so.3.4.0

I've made sure all three locations are in the cache:

  $ ldconfig -p | grep pext
        libXcompext.so.3 (libc6) => /usr/local/src/nx/nxcompext/libXcompext.so.3
        libXcompext.so.3 (libc6) => /usr/NX/lib/libXcompext.so.3
        libXcompext.so.3 (libc6) => /usr/lib/libXcompext.so.3
        libXcompext.so 	 (libc6) => /usr/local/src/nx/nxcompext/libXcompext.so
        libXcompext.so 	 (libc6) => /usr/NX/lib/libXcompext.so
        libXcompext.so 	 (libc6) => /usr/lib/libXcompext.so

I've gone as far as to add all three locations to LD_LIBRARY_PATH:

  export LD_LIBRARY_PATH="/usr/local/src/nx/nxcomp:/usr/local/src/nx/nxcompext:/usr/local/src/nx/nxcompshad:/usr/NX/lib:/usr/lib/"

I'm at a wall.

Any other ideas?



More information about the FreeNX-kNX mailing list