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

Bug 448416

Summary: games-strategy/dungeon-defenders - Humble Indie Bundle 7 game
Product: Gentoo Linux Reporter: James Le Cuirot <chewi>
Component: [OLD] GamesAssignee: Gentoo Games <games>
Status: RESOLVED FIXED    
Severity: enhancement CC: admwiggin, nitro
Priority: Normal Keywords: EBUILD
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://dungeondefenders.com
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: dungeon-defenders-20121218.ebuild
dungeon-defenders-20121218.ebuild
dungeon-defenders-20121218.ebuild
dungeon-defenders-20130305.ebuild

Description James Le Cuirot gentoo-dev 2012-12-24 16:05:12 UTC
Created attachment 333216 [details]
dungeon-defenders-20121218.ebuild

One of the best-looking games on Linux? I think this Humble Bundle version is currently the only Linux edition of the game available. It includes the downloadable content.

It uses SDL 2.0, which we don't have in the tree yet, let alone in the 32-bit emulation packages, so it just installs that alongside the binary for now. I did unbundle OpenAL though.

The SDL library has a silly bug where it tries to run /usr/bin/gnome-screensaver-command and bombs with a cryptic error if it's missing. I've worked around this with sed.

I'm having strange focus issues under XFCE. I can play it with a bit of fiddling but not fullscreen. I'm not sure how it fares under other window managers but I gather fullscreen is still a bit flakey under SDL 2.0.
Comment 1 Sergio Perez 2012-12-27 00:28:56 UTC
it works; which is good but it installs into /usr but precompiled stuff should go into /opt if I am not mistaken. Maybe you could change that
Comment 2 kisak42 2012-12-27 05:16:42 UTC
If I'm reading the ebuild right, would replacing ${GAMES_BINDIR} in the dosym with ${GAMES_PREFIX_OPT} do the trick? I don't really see the point however, unless we can pull the actual executable over to /opt without breaking the package.
Comment 3 James Le Cuirot gentoo-dev 2012-12-27 10:02:23 UTC
Created attachment 333454 [details]
dungeon-defenders-20121218.ebuild

Good point, I don't know why I didn't use /opt in the first place. It's just a one line change. The symlink needs to remain in /usr/games/bin because /opt/bin is not used for games.
Comment 4 Sergio Perez 2012-12-28 00:32:42 UTC
so when I know emerge the ebuild; it checks on /usr for space with CHECKREQS_DISK_USR="5750M" but it should check on opt right? so is CHECKREQS_DISK_OPT="5750M"the right choice?
Comment 5 James Le Cuirot gentoo-dev 2012-12-28 09:19:38 UTC
Created attachment 333564 [details]
dungeon-defenders-20121218.ebuild

Oh yep, thanks. But actually there is no CHECKREQS_DISK_OPT. You could potentially do the calls manually but it would be fiddly and I don't think the eclass is supposed to be used like this. I'll just use CHECKREQS_DISK_BUILD.

I've also removed x11-misc/xdg-utils. Even though xdg-open was included in the tarball, I don't think it's really used.
Comment 6 Julian Ospald 2012-12-28 14:50:46 UTC
- provide a "system-libs" useflag or something similar to make unbundling optional. This is not opensource and in case new library versions break this game the user is left alone. Don't forget to update QA_PREBUILT then.

- it's safe to use EAPI=5

- doicon supports "--size" or "-s".. like "doicon -s 48" for 48x48 dimensions. This will install it into /usr/share/icons/hicolor/48x48/apps and that allows us to use the icon cache. You have to inherit gnome2-utils.eclass then and call the appropriate functions in pkg_preinst, pkg_postinst, pkg_postrm (don't forget to add the games_pkg_preinst and games_pkg_postinst function so you don't overwrite them), see games-arcade/mari0 for example

- drop DEPEND variable

- as per new PMS spec you can also drop IUSE if it's empty

- for unlicensed packages we assume "all-rights-reserved" but we still don't have that license. You should add a comment in the ebuild wrt bug 444424 so you don't forget to fix it when we get this new license file

- since you call "doicon" directly (and make_desktop_entry) you _must_ inherit eutils.eclass which provides these functions (yes, even if games.eclass already inherits it, we must not rely on that if we call a function from any eclass directly)

- seems it should rather be RESTRICT=fetch with an appropriate pkg_nofetch function
Comment 7 kisak42 2012-12-28 20:14:59 UTC
This version, while promising, is riddled with show-stopper bugs. I am personally hit by https://bugzilla.icculus.org/show_bug.cgi?id=5844 and https://bugzilla.icculus.org/show_bug.cgi?id=5845 which obscures any further issues. It's not a proper solution, but I think that we can workaround 5844 by making /opt/dungeon-defenders/Engine/Config/DunDefHeroes.dun and DunDefHeroes.dun.bak group writeable, and we may need to config protect those files so they do not get wiped out by new/re-emerged ebuilds.
Comment 8 James Le Cuirot gentoo-dev 2012-12-28 22:33:26 UTC
(In reply to comment #6)
> - provide a "system-libs" useflag or something similar to make unbundling
> optional. This is not opensource and in case new library versions break this
> game the user is left alone. Don't forget to update QA_PREBUILT then.

I would argue that OpenAL has been very stable over the years, only changing major version once, but it doesn't hurt. I will make system-libs the default though because the bundled one doesn't include all the output drivers and has a statically linked libpulse, which is probably bad news.

> - it's safe to use EAPI=5

I haven't had time to digest 5 yet and I didn't want to blindly use it when I knew that 4 would work. I will use it this time though.

> - doicon supports "--size" or "-s".. like "doicon -s 48" for 48x48
> dimensions. This will install it into /usr/share/icons/hicolor/48x48/apps
> and that allows us to use the icon cache. You have to inherit
> gnome2-utils.eclass then and call the appropriate functions in pkg_preinst,
> pkg_postinst, pkg_postrm (don't forget to add the games_pkg_preinst and
> games_pkg_postinst function so you don't overwrite them), see
> games-arcade/mari0 for example

I was unaware of this cache and it sounds nice but shouldn't this be more transparent? I don't mind specifying the size but defining three stage functions just so I can cache an icon seems a little OTT. Since I'm unsure about this, I'll hold off uploading a new ebuild for the moment. What are your thoughts?

> - drop DEPEND variable
> - as per new PMS spec you can also drop IUSE if it's empty

Force of habit. :)

> - for unlicensed packages we assume "all-rights-reserved" but we still don't
> have that license. You should add a comment in the ebuild wrt bug 444424 so
> you don't forget to fix it when we get this new license file

I was going to dig up the license but it slipped my mind.

> - since you call "doicon" directly (and make_desktop_entry) you _must_
> inherit eutils.eclass which provides these functions (yes, even if
> games.eclass already inherits it, we must not rely on that if we call a
> function from any eclass directly)

I normally would, just forgot.

> - seems it should rather be RESTRICT=fetch with an appropriate pkg_nofetch
> function

Okay but because RESTRICT=fetch is not selective, I will have to include the icon in FILESDIR, which probably isn't a bad idea anyway.
Comment 9 James Le Cuirot gentoo-dev 2012-12-28 22:36:47 UTC
(In reply to comment #7)
> This version, while promising, is riddled with show-stopper bugs. I am
> personally hit by https://bugzilla.icculus.org/show_bug.cgi?id=5844 and
> https://bugzilla.icculus.org/show_bug.cgi?id=5845 which obscures any further
> issues. It's not a proper solution, but I think that we can workaround 5844
> by making /opt/dungeon-defenders/Engine/Config/DunDefHeroes.dun and
> DunDefHeroes.dun.bak group writeable, and we may need to config protect
> those files so they do not get wiped out by new/re-emerged ebuilds.

I must admit that I've only played the game briefly a couple of times and I hadn't noticed the save issue. That's obviously serious and I'm surprised given that Ryan Gordon did the port. As I mentioned above, I have seen the focus issues. Alt-tabbing didn't work for me but what did work was not pressing anything at all until the actual game intro starts.
Comment 10 James Le Cuirot gentoo-dev 2012-12-28 22:44:01 UTC
(In reply to comment #8)
> (In reply to comment #6)
> > - for unlicensed packages we assume "all-rights-reserved" but we still don't
> > have that license. You should add a comment in the ebuild wrt bug 444424 so
> > you don't forget to fix it when we get this new license file
> 
> I was going to dig up the license but it slipped my mind.

I now see that, as you said, there really is no license to speak of. I will watch that bug then.
Comment 11 Sergio Perez 2012-12-29 21:15:45 UTC
(In reply to comment #5)
> Created attachment 333564 [details]
> dungeon-defenders-20121218.ebuild
> 
> Oh yep, thanks. But actually there is no CHECKREQS_DISK_OPT. You could
> potentially do the calls manually but it would be fiddly and I don't think
> the eclass is supposed to be used like this. I'll just use
> CHECKREQS_DISK_BUILD.
> 
> I've also removed x11-misc/xdg-utils. Even though xdg-open was included in
> the tarball, I don't think it's really used.

the bundled xdg-open is used when you want to create a gamespy account for online play; though it seems hardcoded to the bundled path because it complained about it being non-existent when the bundled library is removed
Comment 12 James Le Cuirot gentoo-dev 2012-12-29 21:25:44 UTC
(In reply to comment #11)
> the bundled xdg-open is used when you want to create a gamespy account for
> online play; though it seems hardcoded to the bundled path because it
> complained about it being non-existent when the bundled library is removed

Strange, I grepped the whole thing for "xdg-open" and nothing came up. I'll add it back, together with a symlink.
Comment 13 kisak42 2013-03-07 17:43:22 UTC
Created attachment 341246 [details]
dungeon-defenders-20130305.ebuild

I took a stab at updating the humblebundle packaged version of dungeon defenders. We could also unpackage libSDL2.so.1, but the upstream version was unable to skip the intro sequence on my system. I switched the icon to the one packaged in the distfile and removed the gnome-screensaver workaround.

I was unable to properly test this version of dungeon defenders because I am affected by https://bugzilla.icculus.org/show_bug.cgi?id=5845
Comment 14 Julian Ospald 2013-03-07 17:50:19 UTC
(In reply to comment #13)
> Created attachment 341246 [details]
> dungeon-defenders-20130305.ebuild
> 
> I took a stab at updating the humblebundle packaged version of dungeon
> defenders. We could also unpackage libSDL2.so.1, but the upstream version
> was unable to skip the intro sequence on my system. I switched the icon to
> the one packaged in the distfile and removed the gnome-screensaver
> workaround.
> 
> I was unable to properly test this version of dungeon defenders because I am
> affected by https://bugzilla.icculus.org/show_bug.cgi?id=5845

you ignored #c6
Comment 15 Julian Ospald 2013-03-21 22:16:48 UTC
+*dungeon-defenders-20130305 (21 Mar 2013)
+
+  21 Mar 2013; Julian Ospald <hasufell@gentoo.org>
+  +dungeon-defenders-20130305.ebuild, +metadata.xml:
+  initial import wrt #448416