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----- |