I've tried to play Not Tetris 2 ( http://stabyourself.net/nottetris2/ ) and installed the latest Löve 2d framework (0.8.0). That game didn't run with this version, so I tried 0.7.2, wich worked. Other Löve games do work with 0.8.0 but don't with 0.7.2. As I see, version 0.8.0 brought major changes, esp. in the physics module of the framework which cause breakage. I'm not so familiar with Lua, but I think the incompatibilities can't be fixed very easy. I could fix include errors simply by creating some directories and moving some files in the sources, but when it comes to the broken physics code, I'm outty! So I propose to create slots for the 0.7 version and the 0.8 version so one can use both, like with Python (calling "love-0.7" and "love-0.8", etc.)
Here's the release announcement confirming the new version breaks all kind of stuff: https://love2d.org/forums/viewtopic.php?f=3&t=8750
Patches welcome. Not Tetris 2 problem is known to developers already. http://forum.stabyourself.net/viewtopic.php?f=10&t=1451
Anyway, I think slotting would be meaningful (at least for now), as the 0.8.0 breakage problem does not only affect Not Tetris 2, but all Löve 2d games using the physics module, doesn't it?
--- games-engines/love/love-0.7.2.ebuild +++ games-engines/love/love-0.7.2-r1.ebuild @@ -4,14 +4,14 @@ EAPI=3 -inherit games +inherit base games DESCRIPTION="A framework for 2D games in Lua" HOMEPAGE="http://love2d.org/" SRC_URI="mirror://bitbucket/rude/${PN}/downloads/${P}-linux-src.tar.gz" LICENSE="ZLIB" -SLOT="0" +SLOT="7.2" KEYWORDS="~amd64 ~x86" IUSE="" @@ -32,3 +32,11 @@ S=${WORKDIR}/${PN}-HEAD DOCS=( "readme.txt" "changes.txt" ) + +src_install() { + base_src_install + if [[ "${SLOT}" != "0" ]]; then + mv "${D}${GAMES_BINDIR}"/love \ + "${D}${GAMES_BINDIR}"/love-${SLOT} || die + fi +} I don't know if it would make sense to add an eselect module. Probably overkill.
That's it! The src_install routine does the job for both the 0.7.2 and the 0.8.0 ebuild. But if this goes into the tree, I would propose to name the slots "0.7" and "0.8", as 0.7.2 seems not to break 0.7.2, so probably, 0.8.1 won't break 0.8.1 and so on.
A slightly modified version was committed, incorporating the suggestion from comment 5. At this time only a 0.7 slot was added. If/when love breaks backwards compatibility again, this can be revisited.
Of course, I meant "as 0.7.2 seems not to break 0.7.1, so probably, 0.8.1 won't break 0.8.0 and so on." Thanks for the very fast fixing :-)