Ogre 1.8.1 libs not in the right directory

Bug #1244592 reported by Bret Curtis
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
ogre-1.8 (Ubuntu)
Fix Released
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

Revision history for this message
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

Revision history for this message
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

Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in ogre-1.8 (Ubuntu):
status: New → Confirmed
Revision history for this message
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.

Revision history for this message
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)
Revision history for this message
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

Revision history for this message
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
Revision history for this message
Bret Curtis (psi29a) wrote :

The new PPA packages works for us. Thanks Scott!

Luke Faraone (lfaraone)
Changed in ogre-1.8 (Ubuntu):
assignee: nobody → Luke Faraone (lfaraone)
status: Triaged → In Progress
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.