Gentoo Archives: gentoo-dev

From: "Daniel Campbell (zlg)" <zlg@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] games.eclass
Date: Sat, 22 Aug 2015 18:01:56
Message-Id: 55D8B90A.80602@gentoo.org
In Reply to: Re: [gentoo-dev] games.eclass by hasufell
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 08/22/2015 04:10 AM, hasufell wrote:
5 > On 08/22/2015 09:33 AM, Daniel Campbell (zlg) wrote:
6 >> On 08/21/2015 02:09 PM, James Le Cuirot wrote:
7 >>> On Fri, 21 Aug 2015 12:42:07 -0700 "Daniel Campbell (zlg)"
8 >>> <zlg@g.o> wrote:
9 >>
10 >>>>> Sure, we did drop this, but I don't really see this line of
11 >>>>> argument actually accomplishing anything productive.
12 >>>>> Creating a games team that fixes these issues would be
13 >>>>> productive. Letting others fix them is also productive.
14 >>>>> Nobody is opposed to having a games project - it just seems
15 >>>>> like nobody cares enough to actually make it happen. That's
16 >>>>> ok - we can still get things done.
17 >>>>
18 >>>> What would be required to revive the games project? One of
19 >>>> the reasons I became a dev was to help out the games team,
20 >>>> and if it's defunct, I want to see what's necessary to fix
21 >>>> it. I'm still a new dev (May 2015), but I wouldn't mind doing
22 >>>> some dirty work if it means we can put squabbles like this
23 >>>> behind us and get enough devs together to give game ebuilds
24 >>>> the attention they deserve. I don't have a lot of free time,
25 >>>> but sitting here discussing stuff isn't fixing anything,
26 >>>> either... If I can spend what little Gentoo time I have on
27 >>>> fixing things, I'd be glad to.
28 >>
29 >>> At last, some positivity! As I said before, I would like to
30 >>> work on a few games too. I would certainly take up any
31 >>> Java-based ones and I have four of those in mind already. I've
32 >>> dabbled with ebuilds for many other games in the past, some
33 >>> already in the tree and some not, and some from source, some
34 >>> not. The Humble Bundle games are of particular interest to me.
35 >>> I'm obviously bogged with the more boring Java stuff for the
36 >>> foreseeable future though so as much as I'd like to, stepping
37 >>> up to be a lead would be unwise.
38 >>
39 >> I, too, have interest in Humble Bundle games since most of the
40 >> games I have and can test come from them.
41 >>
42 >>
43 >>> Do we actually need a team? Games come in all shapes and sizes
44 >>> so I think the assertion that they should be handled like any
45 >>> other application is somewhat valid. Many games are commercial
46 >>> so it's likely that certain games would only be handled by one
47 >>> or two team members anyway. The main thing I've been concerned
48 >>> about in the past is how to handle data. Should it be packaged
49 >>> separately? How do we handle the cdinstall flag these days when
50 >>> there are also multiple online sources like Humble Bundle and
51 >>> GOG? Do we just do whatever seems best for the game in
52 >>> question? I'd be happy to hold such discussions in a
53 >>> distro-wide fashion though.
54 >>
55 >> Despite games being "just another application", I think they
56 >> differ simply because they're a *different type* of application.
57 >> Fonts and icon-sets are similar to games in that they are mostly
58 >> assets, and they get the separate treatment they deserve. Games
59 >> are an odd mix of software and assets, so I think they deserve to
60 >> be considered their own type of software. They're also built in
61 >> different ways than most typical software is.
62 >>
63 >
64 > Games differ in a lot of ways and they _require_ different
65 > policies. In some cases this also means more lax policies and in
66 > some cases more strict policies.
67 >
68 > An example is unbundling libraries. While unbundling libraries is
69 > often a good idea for regular well-maintained projects, it can
70 > often cause various problems for games: * games upstreams often
71 > modify 3rd party libraries * games upstreams often use libraries in
72 > very fishy ways, so you really need a very specific version * for
73 > proprietary games breakage often happens randomly at runtime *
74 > proprietary games may also break silently when library XY is bumped
75 > in the tree
76
77 Great points. Games often do rely on their bundled libraries, and
78 that's one of the biggest exceptions to the rule that I see *needs* to
79 apply to games; if bumping a dependent library breaks it, then we at
80 least need an option to make sure the game continues to work.
81
82 > I've seen both opensource games and proprietary games that break
83 > when you unbundle libraries. One example is
84 > games-action/supertuxkart that was broken by a lot of packagers
85 > (including archlinux), because they didn't ask upstream if it was a
86 > good idea to unbundle Irrlicht. It wasn't. Another example is
87 > games-rpg/baldurs-gate-ee which has some weird graphical glitches
88 > when you unbundle libraries.
89 >
90 > The primary concern of gamers is that the game runs and that they
91 > can reasonably install it (see the games-roguelike/nethack bug
92 > which was unsolved for 8 years).
93
94 What happened with that bug? 8 years? That's insane!
95
96 > Because of that, I provide a 'bundled-libs' USE flag for almost
97 > all proprietary games I package (e.g. those from GOG). So in case
98 > something breaks, the user can still opt-out of all this.
99
100 Right, that flag is really handy in my experience. If you've worked on
101 Torchlight, Rochard, or Shatter, I'd like to thank you for your work
102 on them. 'bundled-libs' is a lifesaver with those games because they
103 *do* use modified libraries and it's the path of least pain to get
104 them to work. Sure, it's technically messy, but when the game comes
105 with libs already bundled on every other platform, it's best for us to
106 stay in line with that (if unbundling is too unstable). I liken it to
107 taking a statically linked application and dynamically linking it.
108 It's not trivial, and with many games being proprietary we don't
109 really have the means to fix things in an unbundled state. If it
110 works, great, things are a bit cleaner. But I think bundled libs are
111 here to stay for gaming.
112
113 > Similarly, when upstream starts to heavily patch a library or when
114 > the system version of the library doesn't work half of the time for
115 > this game, then I simply drop back to the bundled version (probably
116 > creating a bug report or a note for that too), so that people can
117 > still enjoy it.
118 >
119 > And this is just one example where games-specific
120 > policies/guidelines are necessary. Another topic is ebuild cleanups
121 > which have to be handled differently for various reasons.
122
123 What ebuild cleanups are we talking about, specifically?
124
125 >> Great question on the 'cdinstall' flag. Games from Humble Bundle
126 >> and GOG are basically fetch-restricted and require the user to
127 >> put the relevant distfile in /usr/portage/distfiles to install.
128 >> 'cdinstall' could be applied only for games that the user wants
129 >> to install via optical media. With it off, it could default to
130 >> the fetch restriction. However, that could result in different
131 >> checksums for the source. It may not be feasible to go the
132 >> cdinstall route forever. Honestly, I'd need a concrete example
133 >> and knowledge of the other releases to offer a better-informed
134 >> opinion.
135 >>
136 >
137 > Data ebuilds with cdinstall and optional gog sources are already
138 > available, see
139 > https://gitweb.gentoo.org/repo/gentoo.git/tree/games-fps/duke3d-data/d
140 uke3d-data-1.0-r2.ebuild
141 >
142 >
143 https://gitweb.gentoo.org/repo/gentoo.git/tree/games-rpg/arx-fatalis-dat
144 a/arx-fatalis-data-1.21-r2.ebuild
145 >
146 > There's not really a problem there.
147 >
148 > About data ebuilds... they make sense when at least some of these
149 > points are true: * data is very very big (you don't want extract
150 > 8GB just because you changed an engine USE flag) * upstream
151 > provides the engine and the data separately anyway * upstream
152 > sometimes bumps the data without bumping the engine or vice versa *
153 > we have a lot of data-specific USE flags (you don't want to
154 > recompile the whole engine just because you are trying different
155 > music-packs) * the data portion uses the cdinstall USE flag (you
156 > definitely want to decrease the number of times users have to look
157 > for their CD...)
158 >
159 > In some cases, we are forced to make data ebuilds anyway, e.g. when
160 > you have opensource engines for proprietary games.
161 >
162 > But there's no reason to split off -data ebuilds for every
163 > possible package. It's done if it makes sense and doesn't
164 > overcomplicate ebuild development and user-side
165 > configuration/installation.
166 >
167
168 Thanks for the example and clarification on when the best time to
169 split ebuilds is. I never assumed it would apply to every engine/data
170 combo, but I knew there was a case for it somewhere.
171
172 Since you have some experience working on game ebuilds and are clearly
173 invested in seeing games maintain their quality, what do you want to
174 see happen to games on Gentoo? If we can gather a list of things we
175 want to do or fix (from games maintainers, users, and other devs),
176 maybe we can settle on actionable things and find a way forward.
177
178 Thanks again for your input, I appreciate it.
179 - --
180 Daniel Campbell - Gentoo Developer
181 OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net
182 fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6
183 -----BEGIN PGP SIGNATURE-----
184 Version: GnuPG v2
185
186 iQIcBAEBCAAGBQJV2LkFAAoJEAEkDpRQOeFwfLIP/RmR4/lyQbkJ1ueHH/nxohBn
187 RKKaUVOxmY/cJiK/Yg7R59fny9Dz+nnNb+nQoVNJ9QGMqasKWFFKEU9dH8cHU6cN
188 q8SO0nDK9ppHF+AJoMsq+Oiyjta9JWV/55BgCyfXj8RAiCvPfiDneYL/T/V99U0R
189 4CxCQ8BCH38oZtM43pYi/yiSY703niGNU3e1+87kly1Mk47V8m4fwod/mXAXkJ28
190 Y0aXRNPTjSqaQCmMR4mcfuKvqoUrX7bMb9A3dNEsBER5Csm5zp0usaPz1uthDl1l
191 pnl3DCG7YOdCTqgHrJ5f945U905O97agqv30JNrZCr50psZryeRU3wVvnU0oa3Lm
192 9BEwlSxwdKOzGAY9O71SEI/lTCYNEXsGjBeWfJHtMytBNdEZaRCvebuQItGM8DVs
193 52CHvXYBfLSpreeRcnwgKJfVYlT+nJEslB1aJDCsTqb3rns6FZWDTlFbDSwU8sdi
194 wUeN0YlSPcbFI1YCYM5tIjuMACP708wvKXTaR56V4cT7JY0a9ZllZwhAFj34D84E
195 8dQ3jOlbXe4TSZ03cI4zLueLnNlO4OeUBBAQirDuYUI7mZ6uHXb4Xf0qngFDCpQ+
196 0JdX7E+qDFS0h1BUZO2yQHM1W6WqVL5aqUayu3nGzu75Qzw3Pc6A9LC+1m7u3j91
197 bQKDWmIdLSaZGF5Yk0ou
198 =o0rt
199 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-dev] games.eclass hasufell <hasufell@g.o>