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!
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.
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.
Created attachment 52259 [details] Crazy Eds Gui ebuild (version 0.2.0)
Created attachment 52260 [details] patch for libpng (only amd64 version needs this patch!)
Created attachment 52261 [details] patch for amd64 only to link against patch libpng
file individual bugs for libpng and cegui and mark this bug as depending on them please.
I've filed indiviual bug reports for libpng: bug 83602 and devil: bug 83603
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.
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.
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.
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.
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.
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.
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).
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
What happens if you emerge ogre-1.0 twice in a row? Does it build libOgrePlatform the second time ?
I have updated the cegui ebuild and filed it under a new bug #85971
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...
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.
Created attachment 54131 [details] ogre-1.0.0.ebuild Heh, I've just discovered the existence of the libtool eclass, and elibtoolize. Fixed.
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?
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)
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.
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.
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
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.
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
1.0.1 is in portage