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

Bug 395837

Summary: games-util/desura - a digital distribution service for gamers
Product: Gentoo Linux Reporter: Peter Asplund <peterasplund>
Component: New packagesAssignee: Julian Ospald <hasufell>
Status: RESOLVED OBSOLETE    
Severity: normal CC: alexander, ansla80, Dagobertstaler, darkbasic, devurandom, florian.berger, games, khagebrand, kingjon3377, kripton, matija, mursoft, nicklaskarlsson81, O01eg, openhs, scarabeus
Priority: Normal Keywords: EBUILD
Version: unspecified   
Hardware: All   
OS: Linux   
URL: http://www.desura.com/
See Also: https://github.com/lindenlab/desura-app/issues/825
Whiteboard: [hasufell-overlay]
Package list:
Runtime testing required: ---
Bug Depends on: 446998    
Bug Blocks:    
Attachments: games-util/desurium/desurium-9999.ebuild
newest ebuild from github
desurium-9999.tar.gz
desurium.tar
desurium.tar
desurium build log

Description Peter Asplund 2011-12-23 20:07:39 UTC
http://www.desura.com/

The source will most likely be open-source within a foreseeable future (according to post http://www.desura.com/groups/desura/forum/thread/open-sourcing-desura).

It would be great to see a binary ebuild before that though.
Comment 1 Peter Asplund 2012-01-23 12:02:30 UTC
The Desura client is now FOSS:
http://www.phoronix.com/scan.php?page=news_item&px=MTA0NjI

source can be found at:
https://github.com/lodle/Desurium

I hope that I can find the time to do an ebuild for it this week!
Comment 2 Tomáš Chvátal (RETIRED) gentoo-dev 2012-02-19 12:54:07 UTC
WRT desurum its build system is "interesting" at minimal, so first  it will need something written for upstream in that direction.

Possibly cmake would make them happy as it works for both lin/win.
Comment 3 Peter Asplund 2012-02-20 16:17:37 UTC
I agree... It's quite weird. Plus, they've decided to develop everything with direct dependencies towards unstable, beta, releases of WxWidgets (the 2.9 branch) which isn't backwards compatible with 2.8. They also get boost (and perhaps other dependencies) directly from svn.

Desura would be awesome to have (it's really a big leap forward for GNU/Linux gaming), so I hope this is something we are able to get up and running eventually.
Comment 4 Peter Asplund 2012-02-29 12:04:55 UTC
BTW, WRT build system, they do have a dependency towards Scons. I don't know to what extent they actually use it, but it's a start I guess. It would be interesting to have a discussion with the devs and see in which direction they plan to take the project in.
It's a shame they are using cutting-edge versions of everything, this makes it a lot harder to create an ebuild for it.
Comment 5 Peter Asplund 2012-02-29 12:11:48 UTC
http://gpo.zugaina.org/games-util/desurium

There's the ebuild on my overlay BTW. It's in very early alpha, but at least it's a start and I've added the necessary dependencies listed on their GitHub page.
Comment 6 Karol Herbst 2012-03-15 20:54:04 UTC
currently I'm working to port the whole build system to cmake. And when it's done, it will be pushed into the official tree.

git://github.com/karolherbst/Desurium.git

there is also an ebuild (with cmake things will get very easy)

But for now desurium stores all the game data in ../data (relative to desurium binary), so an installation via portage won't work (see https://github.com/lodle/Desurium/issues/80).
Comment 7 Karol Herbst 2012-03-27 17:24:47 UTC
As of today my fork is merged upstream, which provides a cmake based build system.
Because I use gentoo I wrote an ebuild to ensure that all the required libraries will be installed for desurium on my system. Therefore I can imagine myself maintaining the ebuild.

Before it is possible to install desurium system wide, the following bug must be fixed:
https://github.com/lodle/Desurium/issues/80
Comment 8 Tomáš Chvátal (RETIRED) gentoo-dev 2012-04-30 10:03:10 UTC
Created attachment 310485 [details]
games-util/desurium/desurium-9999.ebuild

I wrote basic ebuild for it.

Note that it has runtime issues AND it violates so much policies still it wont get to main tree soon.

If you read up the comments in the ebuild you can try to fix upstream build system to cope with us more.

Also be prepared to download huge amount of data during the compile phase now.
Comment 9 Karol Herbst 2012-05-11 20:03:37 UTC
here is the ebuild I wrote for desurium:
https://github.com/lodle/Desurium/blob/master/distro/gentoo/portage/games-util/desurium/desurium-9999.ebuild

currently there are some things to do in this ebuild:
 * add a meta packages for game dependencies

things that Tomáš Chvátal  mentioned:

"Do not build CEF": we have to build it, because it is highly patched, there is no other way. We fixed many errors related to CEF. If there are more, feel free to submit a bug report.

"downloads subversion repositories that are patched":
see https://github.com/lodle/Desurium/issues/115

"Also be prepared to download huge amount of data during the compile phase now."
We don't checkout chromium via gclient anymore.

"completely hosed install, everything is put into prefix -> /usr/desurium ... :/"
in cmake there is a nice way to handle this:
-DCMAKE_INSTALL_PREFIX=/destination/

"With stl tinyxml fails to link properly as desurium includes it wrongly."
no, see:
https://bugs.gentoo.org/show_bug.cgi?id=407825
Comment 10 Tomáš Chvátal (RETIRED) gentoo-dev 2012-05-11 20:17:27 UTC
(In reply to comment #9)

> in cmake there is a nice way to handle this:
> -DCMAKE_INSTALL_PREFIX=/destination/
> 

Yes I know, I am author of the cmake approach (eclasses) we use in getoo :)

Problem is that you guys put everything into that prefix, no libdir no bindir no datadir. They are different items and diferent content is supposed to end in them. You can't just throw everyting into datadir and then do nice symlink.

Take a look on for example tuxanci ebuild i wrote (even the git repo where i wrote the cmake files should be still up for you to inspire :-)).

> We don't checkout chromium via gclient anymore.

That is one part, but you still svn checkout the other stuff. Better would be to just look if the dir exist, and we should just adapt the ebuild to use ESVN_REPO_URI="somegit" so user do not start fresh checkouts everytime, as it is wasting a lot bandwidth if done this way. Also in long term they should move awway from the git repos and try to cope with at least bundled released versions. Trust me it is at least a bit better (We do this approach in libreoffice now, but we offer system switches for almost everything now [the internals are needed for mac/win builds]).

CEF:
Well i dunno but I never managed to compile it with it enabled. If you could ping me on IRC to check it on monday when I am at my desktop I can give you more details :-)
Comment 11 J66291 2012-05-30 23:03:13 UTC
I'm the guy who separated the directory structure, and while it's possible to put libraries in /usr/lib and data in /usr/share, I don't think it's appropriate given that the libraries aren't reusable in any way, shape or form, without eachother, or the executable. If I had the choice I'd statically link them, but the code doesn't allow for it at this point in time. As for moving the executable from the libraries, it wouldn't really help anything besides avoiding a symlink.
Comment 12 Sergio Perez 2012-07-04 03:13:52 UTC
Created attachment 317087 [details]
newest ebuild from github

I and karolherbst been working on getting rid of the need to download a whole bunch of stuff.
Now we only checkout breakpad and cef from subversion repositories. We are working on getting this into portage too.
Comment 13 Julian Ospald 2012-07-04 13:27:09 UTC
Yeah, fetching stuff during build time is not acceptable.
Comment 14 Tomáš Chvátal (RETIRED) gentoo-dev 2012-07-04 13:32:07 UTC
Good that now you use the src_uri to download.

But still are those patched versions?

Ie we could use chromium from system itself and same goes for wxwidgets, from what I see at least on wx we provide the version you desire, it is only masked now, which is no problem for testing.
Comment 15 Julian Ospald 2012-07-04 17:10:24 UTC
issues summed up:
- don't fetch breakpad and cef during build time. Create seperate packages
- handling of 3rd party apps is still very ugly imo. I agree with scarabeus here.
- games.eclass now supports EAPI=4, I suggest you use it (otherwise you are missing "|| die" after your helper functions). If you do this you will also have to adjust check-reqs: just remove pkg_setup completely.
- you overwrite games_pkg_setup. Never do that :o (or remove pkg_setup as mentioned in the previous point)
- use "mirror://github.com" if you make use of the download section
- if you use "https" in SRC_URI you have to depend on net-misc/wget[ssl]
- "DESURA_ARC="${Desura-${PV}.tar.bz2}"" <- shouldn't that be "DESURA_ARC="Desura-${PV}.tar.bz2""?
- KEYWORDS are not allowed for 9999 packages, yet you don't handle them differently if it's a live ebuild (I myself don't do that chaos in one ebuild although some devs like it... I would just split them)
- "games-deps" is currently an invalid useflag, cause it just pulls in dependencies. There is a GLEP from mgorny that might enable us to use this in the future, until then the default is "elog" in pkg_postinst (not sure if I have a strong opinion on that... in fact the "cdinstall" useflag used in some games ebuilds also violates this in many cases)
- quotes are missing in line DCMAKE_INSTALL_PREFIX
- use "doicon -s 256 "${FILESDIR}/${PN}.png"" which will install into /usr/share/icons/hicolor/256x256x/apps and enables us to use icon cache. Then we need to update icon cache via gnome2-utils eclass. Will look like this:

pkg_preinst() {
	games_pkg_preinst
	gnome2_icon_savelist
}

pkg_postinst() {
	games_pkg_postinst
	gnome2_icon_cache_update
}

pkg_postrm() {
	gnome2_icon_cache_update
}

- src/tools/mcf_extract/mcf_extract fails due to underlinking in "libmcfcore.so", add "-ldl" to that linker line
- net-print/cups is missing from (build-time?) dependencies. cups_config_helper.py from chromium seems to need "cups-config" file

some QA warnings:
- breakpad breaks strict-aliasing rules
- and desura:
 * QA Notice: Package triggers severe warnings which indicate that it
 *            may exhibit random runtime failures.
 * /var/tmp/portage/games-misc/desura-9999/work/desura-9999/src/static/util/code/UtilLinux.cpp:776:1: warning: converting to non-pointer type ‘char’ from NULL
Comment 16 Sergio Perez 2012-07-10 20:20:14 UTC
Created attachment 317856 [details]
desurium-9999.tar.gz

We presumibly fixed a lot of stuff you guys did not like.
all dependencys we build on gentoo are patched and therefore can currently not be done as system lib. We are working on porting to a system wxwidgets. Also I had Long discussions with Karol Herbst about the games-deps use-flag; It would ease administration but if you dislike it we can do something about it but a first proposal would be to leave it. And dependencies download should now be handled by portage I belive. Any Feedback would be greatly appreceated.
Comment 17 Julian Ospald 2012-07-11 14:53:03 UTC
(In reply to comment #16)
> Created attachment 317856 [details]
> desurium-9999.tar.gz
> 
> We presumibly fixed a lot of stuff you guys did not like.
> all dependencys we build on gentoo are patched and therefore can currently
> not be done as system lib. We are working on porting to a system wxwidgets.

That would be a requirement to support it in gentoo IMO. At least for me, dunno if another dev would be willing to pick it up like that.

> Also I had Long discussions with Karol Herbst about the games-deps use-flag;
> It would ease administration but if you dislike it we can do something about
> it but a first proposal would be to leave it. 

Yeah, as I said... my opinion on that is not very strong, also because I expect IUSE_RUNTIME from mgornys GLEP to be implemented in the near future (hopefully).
If you do that, you should do a note in the ebuild maybe that this useflag is not a real one. The problem with those useflags is, that they trigger recompilation although they do nothing at build-time.
Comment 18 Sergio Perez 2012-09-15 18:20:49 UTC
Created attachment 323918 [details]
desurium.tar

Hi;
we made a lot of changes recently. We should be FHS compliant. We use a system-provided wxGTK (although we depend on 2.9.3). We still bundle breakpad and a CEF (Chromium Embedded Framework). The CEF has been split because it is changed almost never and takes ages to build, this is the new desurium-cef.ebuild.
Comment 19 Julian Ospald 2012-09-16 11:19:51 UTC
(In reply to comment #18)
> Created attachment 323918 [details]
> desurium-cef.ebuild.

why do I need cups? I don't have a printer.
Comment 20 Julian Ospald 2012-09-16 12:04:22 UTC
what bothers me a bit is that both ebuilds use the same repository

this way users will not know WHEN recompiling desurium-cef is really needed. E.g. app-portage/smart-live-rebuild checks for new commits in all live-ebuild repositories and triggers re-emerge of those packages. It will _always_ pick up both, not just games-util/desurium

Given that it does not make much sense to split it. Or you split the repositories... but that may be unnecessary work.
Comment 21 Peter Asplund 2012-09-25 08:24:36 UTC
Just curious: how much is left on stabilizing this ebuild to get it into portage? It's soon been a year :)
(I'm not criticizing, I just don't have enough insight into the build system or interdependencies to assess it myself)
Comment 22 Julian Ospald 2012-09-25 10:26:38 UTC
desurium cef does not respect cflags properly (the chromium compilation). I'v had a look at that issue, but the build system is quite complex so it would take a deeper look to figure that out.

also, desurium does not compile here and has it's flags a bit messed up too (linking flags in non-linking commands)

I will open bugs about that soon, but haven't had the time until now.
Comment 23 Julian Ospald 2012-09-25 12:14:48 UTC
also, the current wxGTK restriction is at least "problematic"
Comment 24 Dennis Schridde 2012-12-30 21:46:03 UTC
I wonder what will be the first to come to Gentoo: Steam (bug #442176) or Desura?
Comment 25 Sergio Perez 2012-12-30 22:26:30 UTC
Created attachment 333804 [details]
desurium.tar

Here are the latest desurium ebuilds.
As far as I understand the remaining issues should be:
"desurium cef does not respect cflags properly" and
"wxGTK restriction"
please respond if anything new comes up.
Comment 26 Julian Ospald 2012-12-30 22:37:37 UTC
- bash-4 only features are not allowed (must be bash-3.2 compatible)
- compilations of media-libs/desurium-cef-9999 fails: https://gist.github.com/90def98e22ffb59b6aa4
Comment 27 Sergio Perez 2012-12-30 23:11:53 UTC
(In reply to comment #26)
> - compilations of media-libs/desurium-cef-9999 fails:
> https://gist.github.com/90def98e22ffb59b6aa4

just to be sure; media-libs/desurium-cef-1 compiles?
Comment 28 Julian Ospald 2012-12-30 23:15:47 UTC
(In reply to comment #27)
> (In reply to comment #26)
> > - compilations of media-libs/desurium-cef-9999 fails:
> > https://gist.github.com/90def98e22ffb59b6aa4
> 
> just to be sure; media-libs/desurium-cef-1 compiles?

no
Comment 29 Julian Ospald 2013-01-02 13:10:32 UTC
tried today again and it does not fail at that point anymore

not sure why, could be a parallel make issue. Python implementations are untouched.
Comment 30 Julian Ospald 2013-01-02 13:42:51 UTC
no, it just dies on a later point https://gist.github.com/bafa97b231c64a259fb0
Comment 31 Karol Herbst 2013-01-03 12:06:49 UTC
it seems, that a "import os" declaration is missing somewhere in the gyp{i} files.

I've opened an issue for that: https://github.com/lodle/Desurium/issues/387

But I will need some information of the system maybe I am able to reproduce this compile error. Posts on the issue would be nice.

Thanks
Comment 32 Karol Herbst 2013-01-03 12:14:06 UTC
I've opened two more bugs for the CFLAGS and the bash-4 thing:
https://github.com/lodle/Desurium/issues/388 (bash-4)
https://github.com/lodle/Desurium/issues/389 (cef CFLAGS)
Comment 33 Karol Herbst 2013-03-18 14:26:04 UTC
I've fixed all mentioned issues in this thread. Newest ebuilds can be found here: https://github.com/lodle/Desurium/tree/master/distro/gentoo/portage
Comment 35 Roc Vallès 2013-06-06 21:44:41 UTC
What's holding this bug?
Comment 36 Michael Palimaka (kensington) gentoo-dev 2013-06-07 13:19:43 UTC
(In reply to Roc Vallès from comment #35)
> What's holding this bug?

Simply because no developer has decided to pick up this package, presumably due to the QA issues mentioned in some of the comments.
Comment 37 Julian Ospald 2013-06-07 13:55:48 UTC
I have picked it up, but the wxGTK situation is still a bit suboptimal, so we decided to wait.

Also, it crashes frequently for me. So it's still a bit experimental, hence it's only available in my overlay for now.
Comment 38 Peter Asplund 2013-12-09 21:10:11 UTC
Hi guys, time to revisit this old thaaang :)

Has the wxGTK situation improved now that wxWidgets 3.0 has been officially released? Or doesn't than affect it at all?
Comment 39 Sergio Perez 2013-12-09 23:28:43 UTC
(In reply to Peter Asplund from comment #38)
> Hi guys, time to revisit this old thaaang :)
> 
> Has the wxGTK situation improved now that wxWidgets 3.0 has been officially
> released? Or doesn't than affect it at all?

wxGTK situation is here: https://github.com/desura/Desurium/pull/653

the ebuild from hasufell-overlay requires dev-lang/v8 which is masked
Comment 40 Sergio Perez 2014-01-16 22:35:06 UTC
The Desurium situation updated:
The license changed (and there is a CLA now) to LGPLv2.
The repository changed; it is now here: https://github.com/lindenlab/desura-app
wxgtk-3 stuff has been merged
v8 bundling bug is open: https://github.com/lindenlab/desura-app/issues/725
Comment 41 Julian Ospald 2014-01-29 12:55:17 UTC
*** Bug 455704 has been marked as a duplicate of this bug. ***
Comment 42 Peter Asplund 2014-02-28 08:57:10 UTC
The v8 bundling bug is now closed.
Comment 43 Julian Ospald 2014-03-09 00:17:39 UTC
yeah, and it is now compatible with wxGTK:3.0... so the next release might very well hit the tree
Comment 44 darkbasic 2014-09-09 11:35:46 UTC
Created attachment 384454 [details]
desurium build log

Can't build games-util/desurium-9999::hasufell anymore.
Also I can't find any way to report bugs on hasufell's github anymore.
Attached full build log.
Comment 45 Julian Ospald 2014-09-09 15:52:25 UTC
(In reply to darkbasic from comment #44)
> Created attachment 384454 [details]
> desurium build log
> 
> Can't build games-util/desurium-9999::hasufell anymore.
> Also I can't find any way to report bugs on hasufell's github anymore.
> Attached full build log.

third_party/WebKit/Source/WebCore/css/CSSParser.cpp: At global scope:
third_party/WebKit/Source/WebCore/css/CSSParser.cpp:7497:1: error: expected declaration before ‘}’ token
 }

looks like a programming error, report to upstream
Comment 46 Pacho Ramos gentoo-dev 2016-05-22 19:36:19 UTC
Now that hasufell is retiring this is probably obsolete (or, it could be reported to the github account of the repo maybe if he wants to keep the overlay active :/)