Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 83306

Summary: new version of ogre (1.0.1)
Product: Gentoo Linux Reporter: Matthew Gates <matthewg42>
Component: New packagesAssignee: Gentoo Games <games>
Status: RESOLVED FIXED    
Severity: enhancement CC: crusaderky, dillavou, gandalf, guaje1985, paul
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 83603, 85971    
Bug Blocks:    
Attachments: Provisional ebuild for the new version of dev-games/ogre (1.0.0)
Crazy Eds Gui ebuild (version 0.2.0)
patch for libpng (only amd64 version needs this patch!)
patch for amd64 only to link against patch libpng
ogre-1.0.0.ebuild
ogre-1.0.0.ebuild
ogre-1.0.0.ebuild

Description Matthew Gates 2005-02-25 07:35:21 UTC
Ogre has reached version 1.0.0.  Compiled cleanly on my system once the dependencies were satisfied (zziplib required - new dependency?).

Reproducible: Always
Steps to Reproduce:





I'm reading up on how to make an ebuild, but I've not done one before, so it
might be quicker for someone else to do it!
Comment 1 Matthew Gates 2005-02-25 13:49:45 UTC
Created attachment 52154 [details]
Provisional ebuild for the new version of dev-games/ogre (1.0.0)

This is the first ebuild I have submitted, so beware!  Compiles and installs
against stable versions of dependencies (specifically libglademm-2.0.1 was used
by adding "dev-games/ogre ~x86" to /etc/portage/portage.keywords).  Provisional
tests (compiling my ogre test project against the ebuilt libs) worked OK, but
it's really a trivial example, so YMMV.
Comment 2 Mark <Line72> Dillavou 2005-02-27 12:53:14 UTC
The gui system in ogre has changed and it no longer provides its own.  It now uses Crazy Eds Gui (CEGui) from ( http://www.cegui.org.uk ).  I've attached a cegui ebuild.

Also, there are several issues for getting this to work under amd64.  I have included a patch for libpng-1.2.8.  I have also included a patch for DevIL-1.6.7.  The biggest issue here, is after libpng is re-installed with this patch, everything that is built using libpng MUST be recompiled (gtk+, etc, etc) or the programs will crash!  A lot of this issue has been discussed here:

http://www.ogre3d.org/phpBB2/viewtopic.php?t=6624&start=50&postdays=0&postorder=asc&highlight=&sid=36f88eef6934a85e0c7d84cae84c1e7a

I also had trouble building ogre-1.0 with gtk+ support.  For some reason I would get a segfault everytime I ran an ogre demo.  It does work fine without gtk+ (just uses sdl).  The above ebuild doesn't currently check for that.

Also, the current nvidia-cg-toolkit ebuild does not work for amd64.  There is now an amd64 version of cg available on nvidia's website ( http://developer.nvidia.com/object/cg_toolkit.html ).  The cg ebuild should download and install the correct version.
Comment 3 Mark <Line72> Dillavou 2005-02-27 12:54:34 UTC
Created attachment 52259 [details]
Crazy Eds Gui ebuild (version 0.2.0)
Comment 4 Mark <Line72> Dillavou 2005-02-27 12:55:15 UTC
Created attachment 52260 [details]
patch for libpng (only amd64 version needs this patch!)
Comment 5 Mark <Line72> Dillavou 2005-02-27 12:55:43 UTC
Created attachment 52261 [details]
patch for amd64 only to link against patch libpng
Comment 6 Mr. Bones. (RETIRED) gentoo-dev 2005-02-27 14:00:41 UTC
file individual bugs for libpng and cegui and mark this bug as depending on them please.
Comment 7 Mark <Line72> Dillavou 2005-02-28 13:43:55 UTC
I've filed indiviual bug reports for libpng: bug 83602 and devil: bug 83603
Comment 8 Pablo Trabajos 2005-03-06 08:55:10 UTC
Mark: you put the errors as blockers, not as dependendants.

Also I want to know how can i guess what packages depend upon libpng.

And if that patch might affect in a negative way any other package.
Comment 9 Mark <Line72> Dillavou 2005-03-06 10:29:37 UTC
The only programs I've recompiled are:
gtk+
imlib

That fixed more gtk+ programs
I've also had to recompile gimp.

The only program I'm having trouble with is galeon.  For some reason, it won't show all .png files.  It's possible that I haven't rebuilt everything it depends on.  I don't have qt or any qt based programs installed, so I don't know what need to be rebuilt for them.
Comment 10 Pablo Trabajos 2005-03-06 15:18:48 UTC
Ok, it has "nvidia-cg-toolkit" as a dependency (marked ~amd64). So i emerge it but then ogre outputs this error:
checking for cgCreateProgram in -lCg... no
configure: error:
        ****************************************************************
        * You do not have the nVidia Cg libraries installed.           *
        * Go to http://developer.nvidia.com/object/cg_toolkit.html     *
        * (Click on Cg_Linux.tar.gz).                                  *
        * You can disable the building of Cg support by providing      *
        * --disable-cg to this configure script but this is highly     *
        * discouraged as this breaks many of the examples.             *
        ****************************************************************

!!! Please attach the config.log to your bug report:
!!! /var/tmp/portage/ogre-1.0.0/work/ogrenew/config.log

!!! ERROR: dev-games/ogre-1.0.0 failed.
!!! Function econf, Line 485, Exitcode 0
!!! econf failed
!!! If you need support, post the topmost build error, NOT this status message.
Comment 11 Mark <Line72> Dillavou 2005-03-06 16:10:30 UTC
The nvidia-cg-toolkit in portage doesn't work correctly on amd64.  It downloads the 32-bit binaries instead of the 64-bit ones which are now available on the website.  When building ogre in 64-bits, you can't link against the 32-bit cg library.

You can get the 64-bit version of cg from here (ftp://download.nvidia.com/developer/cg/Cg_1.3/Linux64/Cg-1.3.0501-0700.x86_64.tar.gz ) and manually install it.
Comment 12 Pablo Trabajos 2005-03-07 00:52:31 UTC
I made a ebuild for cg (just take an older one and corrected the SRC_URI and the dolib path).
Compiled fine but only three executables are created:
   usr/bin/OgreXMLConverter
   usr/bin/OgreMeshUpgrade
   usr/bin/OgreMaterialUpgrade

Is it normal? Sorry, but i'm very new to ogre and espected a main executable.
Comment 13 Mark <Line72> Dillavou 2005-03-07 04:27:03 UTC
yes, Ogre is a game library.  It should create those 3 executables, these libraries:
/usr/lib/libOgreMain.so.5.0.0
/usr/lib/libOgreMain.so.5 -> libOgreMain.so.5.0.0 1109537410
/usr/lib/libOgreMain.so -> libOgreMain.so.5.0.0 1109537410
/usr/lib/libOgreMain.la
/usr/lib/libOgrePlatform.so
/usr/lib/libOgrePlatform.la
/usr/lib/OGRE
/usr/lib/OGRE/Plugin_BSPSceneManager.so
/usr/lib/OGRE/Plugin_BSPSceneManager.la
/usr/lib/OGRE/Plugin_ParticleFX.so
/usr/lib/OGRE/Plugin_ParticleFX.la
/usr/lib/OGRE/Plugin_OctreeSceneManager.so
/usr/lib/OGRE/Plugin_OctreeSceneManager.la
/usr/lib/OGRE/Plugin_CgProgramManager.so
/usr/lib/OGRE/Plugin_CgProgramManager.la
/usr/lib/OGRE/RenderSystem_GL.so
/usr/lib/OGRE/RenderSystem_GL.la
/usr/lib/libCEGUIOgreRenderer.so.0.0.0
/usr/lib/libCEGUIOgreRenderer.so.0 -> libCEGUIOgreRenderer.so.0.0.0 1109537410
/usr/lib/libCEGUIOgreRenderer.so -> libCEGUIOgreRenderer.so.0.0.0 1109537410
/usr/lib/libCEGUIOgreRenderer.la

and a lot of c++ header files.
Comment 14 Pablo Trabajos 2005-03-07 05:39:05 UTC
Ok, i somewhat misunderstood the concept of ogre and though it was something like blender or maya (i mean editors + render + ... with pretty gui)

In the meantime I'd submitted a new ebuild for nvidia-cg (bug #75792).
Comment 15 Matt Anderson 2005-03-12 09:17:50 UTC
This ebuild does not produce libOgrePlatform.[so|la] for me.  The previous < 1.0.0 builds in portage do however work fine.  I looked through this ebuild compared to the builds in portage and dont see any reason why this would be.  Output durring merge to file system is

prepallstrip:
strip: strip --strip-unneeded
strip: strip --strip-unneeded
   usr/bin/OgreMaterialUpgrade
   usr/bin/OgreMeshUpgrade
   usr/bin/OgreXMLConverter
   usr/lib/libOgreMain.so.5.0.0
   usr/lib/libCEGUIOgreRenderer.so.0.0.0
making executable: /usr/lib/libCEGUIOgreRenderer.so.0.0.0
making executable: /usr/lib/libOgreMain.so.5.0.0
>>> Completed installing ogre-1.0.0 into /var/tmp/portage/ogre-1.0.0/image/

 ...done!
>>> emerge (1 of 1) dev-games/ogre-1.0.0 to /
>>> md5 src_uri ;-) ogre-linux_osx-v1-0-0.tar.bz2
>>> Merging dev-games/ogre-1.0.0 to /
--- /usr/
--- /usr/bin/
>>> /usr/bin/OgreMaterialUpgrade
>>> /usr/bin/OgreMeshUpgrade
>>> /usr/bin/OgreXMLConverter
--- /usr/include/
>>> /usr/include/OGRE/
--snip, bunch of headers
--- /usr/lib/
>>> /usr/lib/OGRE/
>>> /usr/lib/libCEGUIOgreRenderer.la
>>> /usr/lib/libOgreMain.la
--- /usr/lib/pkgconfig/
>>> /usr/lib/pkgconfig/OGRE.pc
>>> /usr/lib/libOgreMain.so.5.0.0
>>> /usr/lib/libCEGUIOgreRenderer.so.0.0.0
>>> /usr/lib/libOgreMain.so.5 -> libOgreMain.so.5.0.0
--- /usr/share/
>>> /usr/share/OGRE/
>>> /usr/share/OGRE/Media/
--- /usr/share/doc/
>>> /usr/share/doc/ogre-1.0.0/
>>> /usr/share/doc/ogre-1.0.0/AUTHORS.gz
>>> /usr/share/doc/ogre-1.0.0/BUGS.gz
>>> /usr/share/doc/ogre-1.0.0/LINUX.DEV.gz
>>> /usr/share/doc/ogre-1.0.0/README.gz
>>> /usr/share/doc/ogre-1.0.0/README.linux.gz
>>> /usr/share/doc/ogre-1.0.0/html/
>>> /usr/share/doc/ogre-1.0.0/html/ChangeLog.html
>>> /usr/share/doc/ogre-1.0.0/html/FAQ.html
>>> /usr/share/doc/ogre-1.0.0/html/License.html
>>> /usr/share/doc/ogre-1.0.0/html/ReadMe.html
>>> /usr/share/doc/ogre-1.0.0/html/ContributorLicenseAgreement.html
>>> /usr/lib/libCEGUIOgreRenderer.so -> libCEGUIOgreRenderer.so.0.0.0
>>> /usr/lib/libOgreMain.so -> libOgreMain.so.5.0.0
>>> /usr/lib/libCEGUIOgreRenderer.so.0 -> libCEGUIOgreRenderer.so.0.0.0
>>> dev-games/ogre-1.0.0 merged.
>>> Recording dev-games/ogre in "world" favorites file...

so of cource OGRE samples give since libOgrePlatform.so is missing:

Creating resource group General
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
Loading library libOgrePlatform.so
An exception has occured: An exception has been thrown!

-----------------------------------
Details:
-----------------------------------
Error #: 9
Function: DynLib::load
Description: Could not load dynamic library libOgrePlatform.so.  System Error: libOgrePlatform.so: cannot open shared object file: No such file or directory.
File: OgreDynLib.cpp
Line: 82


I have tried unmerging and remerging, ensure all previous versions are unmerged before using this ebuild.  If I compile from source by hand it works out fine.  I would really like to see this verson in portage though
Comment 16 Mark <Line72> Dillavou 2005-03-14 06:51:55 UTC
What happens if you emerge ogre-1.0 twice in a row?  Does it build libOgrePlatform the second time ?
Comment 17 Michael Kedzierski 2005-03-19 20:00:16 UTC
I have updated the cegui ebuild and filed it under a new bug #85971
Comment 18 Michael Kedzierski 2005-03-19 20:03:18 UTC
Created attachment 53911 [details]
ogre-1.0.0.ebuild

I've updated the ogre 1.0.0 ebuild.
Additionally, I've tested it on both amd64 (my libpng is patched) and x86 and
it seems to work.

I seem to be unable to obsolete the previous ebuild...
Comment 19 Michael Kedzierski 2005-03-20 20:22:08 UTC
Created attachment 54018 [details]
ogre-1.0.0.ebuild

I've fixed the bug where libOgrePlatform.so doesn't get built.

It seems that Ogre uses an old version of libtool, which has issues when you
try to run a "make install" with DESTDIR as gentoo does. Running a "libtoolize
--force" over Ogre installs the new version and fixes the problem.

This seems to be a really common problem, I've seen it occur over many
packages, and it was surprisingly difficult to find out information as to what
was causing it.
Comment 20 Michael Kedzierski 2005-03-21 22:57:27 UTC
Created attachment 54131 [details]
ogre-1.0.0.ebuild

Heh, I've just discovered the existence of the libtool eclass, and elibtoolize.


Fixed.
Comment 21 Paul Sprakes 2005-03-31 12:11:26 UTC
The cegui ebuild wouldn't compile for me. Configure complained about libILU not being present (I had devil 1.6.6-r2 installed). Unmasking and upgrading to 1.6.7 sorted it so maybe it should depend on this version?
Comment 22 Michael Kedzierski 2005-04-02 05:18:25 UTC
It works fine for me on devil-1.6.6, were you using the ebuild in this bug or the ebuild in bug #85971? (in the case of the latter you should have commented there, not here)
Comment 23 Paul Sprakes 2005-04-02 06:56:22 UTC
I used the cegui ebuild included with this report (I didn't notice bug 85971 earlier). The problem was that the original devil install didn't seem to have created the ILU symlinks but the masked 1.6.7 did. Maybe it was just a one off or something.

When I get time I'll start over with the correct cegui ebuild stable devil.
Comment 24 crusaderky 2005-04-25 14:59:52 UTC
I've tried to apply your ebuild to version 1.0.1, but compilation fails against openexr-1.0.7:

In file included from O_IStream.cpp:25:
O_IStream.h:29:22: ImfInt64.h: No such file or directory
O_IStream.h:30:19: ImfIO.h: No such file or directory

Upgrading to openexr-1.2.2 fixes the problem.
Comment 25 crusaderky 2005-04-25 15:00:53 UTC
Also with ogre-1.0.1, I can't compile it against GTK:

 i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../../../OgreMain/include -I../../../../RenderSystems/GL/include -I../../../../OgreMain/include -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtkglextmm-1.0 -I/usr/lib/gtkglextmm-1.0/include -I/usr/include/gtkglext-1.0 -I/usr/include/gtkmm-2.0 -I/usr/lib/gtkmm-2.0/include -I/usr/lib/gtkglext-1.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 -I/usr/include/atk-1.0 -I../../../../PlatformManagers/gtk/include -I../../../../RenderSystems/GL/include/gtk -I../../../../RenderSystems/GL/src/gtk -O3 -pipe -march=athlon-xp -fforce-addr -fomit-frame-pointer -falign-functions=4 -mfpmath=sse -MT OgreGTKWindow.lo -MD -MP -MF .deps/OgreGTKWindow.Tpo -c OgreGTKWindow.cpp  -fPIC -o .libs/OgreGTKWindow.o
OgreGTKGLSupport.cpp: In member function `virtual Ogre::RenderWindow*
   Ogre::GTKGLSupport::createWindow(bool, Ogre::GLRenderSystem*, const
   Ogre::String&)':
OgreGTKGLSupport.cpp:112: error: no matching function for call to `
   Ogre::GLRenderSystem::createRenderWindow(const std::basic_string<char,
   std::char_traits<char>, std::allocator<char> >&, unsigned int&, unsigned
   int&, int, bool&)'
../../../../RenderSystems/GL/include/OgreGLRenderSystem.h:185: error: candidates
   are: virtual Ogre::RenderWindow*
   Ogre::GLRenderSystem::createRenderWindow(const Ogre::String&, unsigned int,
   unsigned int, bool, const Ogre::NameValuePairList*)
OgreGTKGLSupport.cpp: In member function `Ogre::RenderWindow*
   Ogre::GTKGLSupport::newWindow(const Ogre::String&, unsigned int, unsigned
   int, unsigned int, bool, int, int, bool, Ogre::RenderWindow*, bool)':
OgreGTKGLSupport.cpp:125: error: cannot allocate an object of type `
   Ogre::GTKWindow'
OgreGTKGLSupport.cpp:125: error:   because the following virtual functions are
   abstract:
../../../../OgreMain/include/OgreRenderWindow.h:87: error:      virtual void
   Ogre::RenderWindow::create(const Ogre::String&, unsigned int, unsigned int,
   bool, const Ogre::NameValuePairList*)
make[4]: *** [OgreGTKGLSupport.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory `/var/tmp/portage/ogre-1.0.1/work/ogrenew/RenderSystems/GL/src/gtk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/ogre-1.0.1/work/ogrenew/RenderSystems/GL/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/ogre-1.0.1/work/ogrenew/RenderSystems/GL'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/ogre-1.0.1/work/ogrenew/RenderSystems'
make: *** [all-recursive] Error 1
Comment 26 crusaderky 2005-04-26 11:02:08 UTC
The GLX renderer is broken, too: everything compiles fine, but when I launch a test application I just get a black screen, with no particular errors. 

The SDL renderer does work.
Comment 27 SpanKY gentoo-dev 2005-05-03 15:19:37 UTC
ive cleaned up the ebuild and the autotools stuff (i'll be sending the fixes upstream)

please sync up and check out the ebuild that's in portage now
Comment 28 SpanKY gentoo-dev 2005-05-21 18:11:34 UTC
1.0.1 is in portage