Ogre 1.8.1 libs not in the right directory

Bug #1244592 reported by Bret Curtis on 2013-10-25
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
ogre-1.8 (Ubuntu)
Low
Luke Faraone

Bug Description

The Ogre3D 1.8.1 plugins are in the wrong directory. They should either be in OGRE-1.8 or OGRE-1.8.1 but not in OGRE-1.8.0, this causes problems when compiling freeOrion and OpenMW. The workaround at this moment is to "sudo ln -sf OGRE-1.8.0 OGRE-1.8.1" and rebuild or add kludge code their respective CMake files.

find /usr/lib/x86_64-linux-gnu | grep -i OGRE

/usr/lib/x86_64-linux-gnu/libOgreProperty.so
/usr/lib/x86_64-linux-gnu/libOgrePaging.so.1.8.1
/usr/lib/x86_64-linux-gnu/libOgreTerrain.so
/usr/lib/x86_64-linux-gnu/libOgreTerrain.so.1.8.1
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE-Paging.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE-Terrain.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE-RTShaderSystem.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE-PCZ.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/OGRE-Property.pc
/usr/lib/x86_64-linux-gnu/libOgreRTShaderSystem.so
/usr/lib/x86_64-linux-gnu/libOgreRTShaderSystem.so.1.8.1
/usr/lib/x86_64-linux-gnu/libOgreMain.so
/usr/lib/x86_64-linux-gnu/libOgrePaging.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_BSPSceneManager.so.1.8.1
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_ParticleFX.so.1.8.1
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_PCZSceneManager.so.1.8.1
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_ParticleFX.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_OctreeZone.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_PCZSceneManager.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_BSPSceneManager.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_OctreeSceneManager.so
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_OctreeSceneManager.so.1.8.1
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so.1.8.1
/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_OctreeZone.so.1.8.1
/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1
/usr/lib/x86_64-linux-gnu/libOgreProperty.so.1.8.1

Bret Curtis (psi29a) wrote :

Upstream (Debian) is still using 1.8.0 and has a file list that reflects this:
http://packages.debian.org/sid/amd64/libogre-1.8.0/filelist

This problem is caused by Ubuntu's bump to 1.8.1

Scott Howard (showard314) wrote :

Thanks for the report, there looks like a typo in both saucy and trusty:
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/ogre-1.8/saucy/view/head:/debian/rules
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/ogre-1.8/trusty/view/head:/debian/rules

line 25:
OGRE_VERSION=1.8.0

I'll set up a saucy PPA for testing. This is causing packages to FTBFS, is a minimal fix - so a possible SRU.

to test:

First make sure it is finished building (https://launchpad.net/~showard314/+archive/ppa)

sudo add-apt-repository ppa:showard314/ppa
sudo apt-get update
sudo apt-get upgrade

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ogre-1.8 (Ubuntu):
status: New → Confirmed
Bret Curtis (psi29a) wrote :

Unfortunately, that doesn't solve the problem. The directory name is still /usr/lib/xxx/OGRE-1.8.0
There is likely something else going on.

Scott Howard (showard314) wrote :

ogre's pc files are correct, the problem is with packages that use cmake and find_package(OGRE). cmake comes with their own scripts and are looking in OGRE-{VERSION}, while .pc files tell autotools to look in OGRE-1.8.0.

The least invasive fix is to symlink OGRE-1.8.0 and OGRE-1.8.1. The other option is for depending libraries to not use cmake's find_package but instead use pkgconfig. I'll try another build with a simple symlink

Changed in ogre-1.8 (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → Low
assignee: nobody → Scott Howard (showard314)
Scott Howard (showard314) wrote :

Build is complete, could you please try testing the package?

When Ubuntu imported version 1.8.1 on top of Debian's 1.8.0, Ubuntu never bumped the installation directories in order to maintain backwards compatibility with existing binaries.

CMake, however, knows where plugins should be regardless of pkgconfig. It can't find it since Ubuntu didn't install plugins to the correct location.

To maintain backwards compatibility with libraries, prevent regressions and lots of FTBFS, this fix for trusty will symlink the correct name to the incorrect one. Syncing back with Debian when 1.8.1 comes out will fix everything.

Also, ogre-1.9 is in unstable and trusty and probably will supersede this soon enough.

Set to low priority since a work around exists:
sudo ln -sf OGRE-1.8.0 OGRE-1.8.1

Scott Howard (showard314) wrote :

Sponsors: attached is the debdiff for this bug, it simply adds a link and preservers the build so it remains compatible with all depending packages.

Changed in ogre-1.8 (Ubuntu):
assignee: Scott Howard (showard314) → nobody
Bret Curtis (psi29a) wrote :

The new PPA packages works for us. Thanks Scott!

Luke Faraone (lfaraone) on 2013-11-11
Changed in ogre-1.8 (Ubuntu):
assignee: nobody → Luke Faraone (lfaraone)
status: Triaged → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ogre-1.8 - 1.8.1+dfsg-0ubuntu3

---------------
ogre-1.8 (1.8.1+dfsg-0ubuntu3) trusty; urgency=low

  * Added override_dh_links to debian/rules to create symlink for plugins from
    OGRE-1.8.1 to OGRE-1.8.0 (LP: #1244592)
 -- Scott Howard <email address hidden> Fri, 25 Oct 2013 20:09:06 -0400

Changed in ogre-1.8 (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers