Created attachment 906907 [details] ebuild Attached is an ebuild for following the master version of openscenegraph-openmw, as when using openmw-9999 it's recommended to be following the upstream 3.6 branch of openscenegraph-openmw. There's also a patch in comparison to the openscenegraph-openmw-3.6_p20221115-r1.ebuild One thing of note is that the patch files are not used, as I was told by some devs that the patches were seemingly unnecessary. I can conclude this having used this along with my local ebuild of games-engines/openmw-9999. I can make a patch file of the whole directory of changes if needed.
Created attachment 906908 [details, diff] patch file
Created attachment 906912 [details, diff] patch allowing different lua versions Allow to use different Lua versions.
Why all these changes? OpenMW doesn't even care which Lua is used in OSG. See the discussion in the openmw bug
(In reply to Alexey from comment #3) > Why all these changes? I was told the patches where unnecessary by the devs. As for the CMake arguments: https://wiki.openmw.org/index.php/Development_Environment_Setup#OSG_plugins I was also told to specifically follow the 3.6 branch if you're following the upstream. b02abe2_tag is the most recent release tag. https://github.com/OpenMW/osg/tags > OpenMW doesn't even care which Lua is used in OSG. > > See the discussion in the openmw bug Can/should OSG be build with any version of Lua, or just 5.1? If just 5.1, then I understand the reason to not make changes.
> I was told the patches where unnecessary by the devs. OpenMW devs only care about OpenMW, which is understandable. However, since forked OSG is not coinstallable with upstream OSG, we can't just tell users who need OSG as dependency for other apps to stop using these other apps. These other apps may need OSG plugins, which you're here removing. > Can/should OSG be build with any version of Lua, or just 5.1? For OpenMW, it doesn't matter at all. OpenMW doesn't use OSG's Lua support, it has its own. For non-OpenMW, if upstream OSG only supports Lua 5.1, apps which use this feature might be surprised to encounter Luajit there instead. Hence I asked to keep this ebuild close to upstream OSG ebuild.
(In reply to Alexey from comment #5) > These other apps may need OSG plugins, which you're here > removing. If we have -DBUILD_OSG_PLUGINS_BY_DEFAULT=0 Then all plugins won't be built by default, and only the ones specified after with corresponding USE flags will be. In the wiki page I linked earlier: > When using the OSG git master (to be 3.6), **or** the OpenMW OSG fork, you can use the following cmake arguments to avoid **unneeded** plugins from being built: > > -DBUILD_OSG_PLUGINS_BY_DEFAULT=0 -DBUILD_OSG_PLUGIN_OSG=1 -DBUILD_OSG_PLUGIN_DAE=1 -DBUILD_OSG_PLUGIN_DDS=1 -DBUILD_OSG_PLUGIN_TGA=1 -DBUILD_OSG_PLUGIN_BMP=1 -DBUILD_OSG_PLUGIN_JPEG=1 -DBUILD_OSG_PLUGIN_PNG=1 -DBUILD_OSG_PLUGIN_FREETYPE=1 -DBUILD_OSG_DEPRECATED_SERIALIZERS=0 In their example the osgdb_osg, osgdb_serializers_osg, osgdb_dae, osgdb_dds, osgdb_tga, osgdb_bmp, osgdb_jpeg, osgdb_png, and osgdb_freetype will all be built and not any others. If the user for the openscenegraph or openscenegraph-openmw has the - collada - curl - jpeg - png - gif - lua - sdl2 - svg - truetype - zlib USE flags enabled and we have -DBUILD_OSG_PLUGINS_BY_DEFAULT=0 in the CMake arguments, then all of those corresponding plugins will be built and not the plugins for LIBLAS, GDAL, GStreamer, Poppler, Inventor, VNC, etc. So even in upstream non-OpenMW OSG, if we're going the Gentoo way, we shouldn't necessarily enable building all OSG plugins by default, except for the sensible ones that require the user to go out of their way to not build. I'm aware that some people might use the openscenegraph-openmw for things other than OpenMW, but that doesn't necessarily mean they'll want all of the plugins to be built. They might, but they might want all of the plugins but one, or even just the ones that OpenMW requires, or the ones OpenMW requires plus one or two more. USE flag usage allows this. If the current ebuild allows users to not have to built all of the plugins they don't want already, then yes, let's not change anything. > For OpenMW, it doesn't matter at all. OpenMW doesn't use OSG's Lua support, > it has its own. For non-OpenMW, if upstream OSG only supports Lua 5.1, apps > which use this feature might be surprised to encounter Luajit there instead. Okay, that's fine.
> So even in upstream non-OpenMW OSG, if we're going the Gentoo way, we shouldn't necessarily enable building all OSG plugins by default Could you update that ebuild as well then? Just to keep these ebiulds as similar as possible
(In reply to Alexey from comment #7) > > So even in upstream non-OpenMW OSG, if we're going the Gentoo way, we shouldn't necessarily enable building all OSG plugins by default > > Could you update that ebuild as well then? Just to keep these ebiulds as > similar as possible Apologies, let me get on this now.
Created attachment 918317 [details] updated ~amd64 openscenegraph-openmw-3.6_p20230203 ebuild Good Lord, so sorry. Life gets in the way of a lot of stuff sometimes. Here's the ebuild for ~amd64, I'll upload the one for unstable/** in a sec.
Created attachment 918318 [details] unstable/** openscenegraph-openmw ebuild Here's the unstable/** ebuild. Both only support lua 5.1 and have the other changes mentioned earlier in this issue.