Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 617908 - games-fps/doomsday-2.0.3: version bump
Summary: games-fps/doomsday-2.0.3: version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: games.eclass
  Show dependency tree
 
Reported: 2017-05-09 00:41 UTC by Rafał Mużyło
Modified: 2018-04-29 17:05 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
games-fps/doomsday-2.1.0_pre2368.ebuild (doomsday-2.1.0_pre2368.ebuild,6.57 KB, text/plain)
2017-06-29 04:32 UTC, Patrick McMunn
Details
doomsday-2.0.3.ebuild (doomsday-2.0.3.ebuild,2.00 KB, text/plain)
2018-04-03 10:58 UTC, Wojciech Myrda
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rafał Mużyło 2017-05-09 00:41:39 UTC
Well, this version bump might be a problematic one...

In part due to build system switch to cmake, but that's not the most annoying part.

It's media-libs/assimp.
doomsday uses a slightly modified copy, where someone put a convenience function for md5 models into the lib, instead of keeping that in doomsday. The change (diff against assimp 2.2 isn't all that big - ca. 164k overall, but the relevant parts seem to be in MD5Loader.{cpp,h} (about a fifth of that)) is made to tie one model with a list of animations, instead of just one (as the format spec says).

IMHO, it's just messy (and if I understood the spec correctly, upstream of assimp won't take it).


PS: snowberry is gone, so that's one thing that got simplified.
Comment 1 Patrick McMunn 2017-06-17 22:54:59 UTC
If I can find some free time, maybe I can look into doing an updated ebuild since this doesn't seem to have a maintainer. If Doomsday requires a modified libassimp that isn't bundled with Doomsday, would that require a new ebuild for this modified libassimp to be added to the Portage tree? As far as Cmake, that ought to make things simpler, IMO. Doomsday's old build system was kind of complicated.
Comment 2 Patrick McMunn 2017-06-21 13:07:56 UTC
I've made some progress toward getting a working ebuild, but now I see the issue that needs to be solved somehow. Bundled libs typically are tolerated in Gentoo if they are customized, and the program won't work with system libs. But most of the time, such modified libs are installed in a custom location different from the unmodified version. But when Doomsday 2's installer runs, it installs to the same location as the unmodified version. So maybe the Doomsday 2 libassimp can be installed elsewhere and the source patched so it will look for the modified version elsewhere so that both versions can coexist, or I can explain the problem to upstream and they may be willing to find a workable solution on their end.

Below is the output about file collisions I got during my test installation.

 * package games-fps/doomsday-2.0.1 NOT merged
 * 
 * Detected file collision(s):
 * 
 *      /usr/include/assimp/types.h
 *      /usr/include/assimp/ProgressHandler.hpp
 *      /usr/include/assimp/anim.h
 *      /usr/include/assimp/Exporter.hpp
 *      /usr/include/assimp/cfileio.h
 *      /usr/include/assimp/quaternion.h
 *      /usr/include/assimp/light.h
 *      /usr/include/assimp/postprocess.h
 *      /usr/include/assimp/material.inl
 *      /usr/include/assimp/vector2.h
 *      /usr/include/assimp/color4.h
 *      /usr/include/assimp/defs.h
 *      /usr/include/assimp/matrix3x3.h
 *      /usr/include/assimp/camera.h
 *      /usr/include/assimp/matrix3x3.inl
 *      /usr/include/assimp/color4.inl
 *      /usr/include/assimp/DefaultLogger.hpp
 *      /usr/include/assimp/material.h
 *      /usr/include/assimp/importerdesc.h
 *      /usr/include/assimp/cexport.h
 *      /usr/include/assimp/version.h
 *      /usr/include/assimp/vector3.h
 *      /usr/include/assimp/matrix4x4.h
 *      /usr/include/assimp/Importer.hpp
 *      /usr/include/assimp/IOStream.hpp
 *      /usr/include/assimp/matrix4x4.inl
 *      /usr/include/assimp/LogStream.hpp
 *      /usr/include/assimp/scene.h
 *      /usr/include/assimp/mesh.h
 *      /usr/include/assimp/texture.h
 *      /usr/include/assimp/cimport.h
 *      /usr/include/assimp/quaternion.inl
 *      /usr/include/assimp/metadata.h
 *      /usr/include/assimp/IOSystem.hpp
 *      /usr/include/assimp/vector3.inl
 *      /usr/include/assimp/vector2.inl
 *      /usr/include/assimp/NullLogger.hpp
 *      /usr/include/assimp/config.h
 *      /usr/include/assimp/Logger.hpp
 *      /usr/include/assimp/ai_assert.h
 *      /usr/include/assimp/Compiler/pstdint.h
 *      /usr/include/assimp/Compiler/poppack1.h
 *      /usr/include/assimp/Compiler/pushpack1.h
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * media-libs/assimp-3.3.1:0::gentoo
 *      /usr/include/assimp/DefaultLogger.hpp
 *      /usr/include/assimp/Exporter.hpp
 *      /usr/include/assimp/ProgressHandler.hpp
 *      /usr/include/assimp/anim.h
 *      /usr/include/assimp/camera.h
 *      /usr/include/assimp/cexport.h
 *      /usr/include/assimp/cfileio.h
 *      /usr/include/assimp/color4.h
 *      /usr/include/assimp/color4.inl
 *      /usr/include/assimp/defs.h
 *      /usr/include/assimp/importerdesc.h
 *      /usr/include/assimp/light.h
 *      /usr/include/assimp/material.h
 *      /usr/include/assimp/material.inl
 *      /usr/include/assimp/matrix3x3.h
 *      /usr/include/assimp/matrix3x3.inl
 *      /usr/include/assimp/postprocess.h
 *      /usr/include/assimp/quaternion.h
 *      /usr/include/assimp/types.h
 *      /usr/include/assimp/vector2.h
Comment 3 Patrick McMunn 2017-06-29 04:32:58 UTC
Created attachment 478322 [details]
games-fps/doomsday-2.1.0_pre2368.ebuild
Comment 4 Patrick McMunn 2017-06-29 04:34:09 UTC
This ebuild is NOT 100% ready. It still needs some work, but I think it's at least in good enough shape for testing. I wrote it for a 2.1.0 prerelease instead of 2.0.1 (though it could be modified for that version with very little change) because there are some issues with 2.0.1 such as segfaulting if compiled with GCC 7.
Comment 5 Rafał Mużyło 2017-07-27 16:36:38 UTC
So, in doomsday 2.02 a build option DENG_ASSIMP_EMBEDDED was added, which (set to OFF) allows doomsday to use system assimp.

Minor unrelated catch: both doomsday and eduke32 install md2toool, so a rename is required to prevent collision (if those two are in fact the same thing, a better might be in order).

Other than that, standard cmake eclass methods work fine. Though, for IMHO no good reason doomsday appends version number to the executables (fortunately, it does create unversioned symlink on its own)...

However, like that horrible thing from comment #3 hints, while openal plugin is still optional, there seems to be no way to turn it off, if libopenal is detected.
Comment 6 Rafał Mużyło 2017-07-27 16:41:32 UTC
...of note might be that DENG_ASSIMP_EMBEDDED wrt. sources simply #ifdefs that single call relying on the custom tweak.
Comment 7 jospezial 2017-08-19 23:44:55 UTC
(In reply to Patrick McMunn from comment #3)
> Created attachment 478322 [details]
> games-fps/doomsday-2.1.0_pre2368.ebuild

ebuild works for doomsday-2.1.0_pre2399 too.

But why are you defining the version number at 3 different places?
That could be simplified.
Comment 8 Wojciech Myrda 2018-04-03 10:58:11 UTC
Created attachment 526430 [details]
doomsday-2.0.3.ebuild

There is forum thread https://forums.gentoo.org/viewtopic-t-1071638-start-0.html which has updated ebuild for this package which is more recent from the one posted here. Seems working fine.

Attached is the last one from that thread.
Comment 9 Wojciech Myrda 2018-04-03 11:00:42 UTC
unstable has also been bumped to 2.1#2586 from January 2018, but I have not tried that version.
Comment 10 Pacho Ramos gentoo-dev 2018-04-29 17:05:40 UTC
[master 655fb93d81b3] games-fps/doomsday: Version bump (#617908)
 3 files changed, 80 insertions(+)
 create mode 100644 games-fps/doomsday/doomsday-2.0.3.ebuild