Package: libogre-dev
Version: libogre-1.12-dev
Severity: normal

Dear Maintainer,

libogre-1.12-dev installs Ogre plugins to /usr/lib/x86_64-linux-gnu/OGRE -
however, by default, Ogre is not searching in this directory when loading
plugins at run time.

matthew@matthew-laptop:~$ ls 
/usr/lib/x86_64-linux-gnu/OGRE/RenderSystem_GL.so.1.12.10
/usr/lib/x86_64-linux-gnu/OGRE/RenderSystem_GL.so.1.12.10

When I try and load RenderSystem_GL using:

root.getRenderSystemByName("OpenGL Rendering Subsystem");

I see that Ogre searches the following locations:

Loading library RenderSystem_GL.so.1.12.10
      8615:     find library=RenderSystem_GL.so.1.12.10 [0]; searching
      8615:      search cache=/etc/ld.so.cache
      8615:      search 
path=/lib/x86_64-linux-gnu/tls/haswell/x86_64:/lib/x86_64-linux-gnu/tls/haswell:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-gnu/haswell/x86_64:/lib/x86_64-linux-gnu/haswell:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/haswell/x86_64:/usr/lib/x86_64-linux-gnu/tls/haswell:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls:/usr/lib/x86_64-linux-gnu/haswell/x86_64:/usr/lib/x86_64-linux-gnu/haswell:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu:/lib/tls/haswell/x86_64:/lib/tls/haswell:/lib/tls/x86_64:/lib/tls:/lib/haswell/x86_64:/lib/haswell:/lib/x86_64:/lib:/usr/lib/tls/haswell/x86_64:/usr/lib/tls/haswell:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/haswell/x86_64:/usr/lib/haswell:/usr/lib/x86_64:/usr/lib
            (system search path)
      8615:       trying 
file=/lib/x86_64-linux-gnu/tls/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/tls/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/tls/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/tls/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/lib/x86_64-linux-gnu/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/x86_64-linux-gnu/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/tls/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/tls/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/tls/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/tls/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/x86_64-linux-gnu/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/tls/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/tls/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/tls/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/tls/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/lib/RenderSystem_GL.so.1.12.10
      8615:       trying 
file=/usr/lib/tls/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/tls/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/tls/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/tls/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/haswell/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/haswell/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/x86_64/RenderSystem_GL.so.1.12.10
      8615:       trying file=/usr/lib/RenderSystem_GL.so.1.12.10
      8615:     

But cannot find the library in any of these paths, and throws the following
exception:

C++ exception with description "InternalErrorException: Could not load dynamic
library RenderSystem_GL.  System Error: RenderSystem_GL.so.1.12.10: cannot open
shared object file: No such file or directory in DynLib::load at
./OgreMain/src/OgreDynLib.cpp (line 113)" thrown in the test body.

I can work around this by adding:

PluginFolder=/usr/lib/x86_64-linux-gnu/OGRE

to the top of my plugins.cfg file. But, I was wondering if it would be possible
for the package to allow Ogre to derive the correct search path automatically -
perhaps using rpath?

Thanks for maintaining this package.
Matthew


-- System Information:
Debian Release: 11.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'stable'), (100, 'bullseye-fasttrack'), (100, 'bullseye-backports-staging')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-21-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Reply via email to