Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Daniel Campbell <zlg@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [QA] Official support for migrating ebuilds out of games.eclass
Date: Thu, 30 Jun 2016 12:56:29
Message-Id: 20160630145540.563ed9af.mgorny@gentoo.org
In Reply to: Re: [gentoo-dev] [QA] Official support for migrating ebuilds out of games.eclass by Daniel Campbell
1 On Wed, 29 Jun 2016 22:37:27 -0700
2 Daniel Campbell <zlg@g.o> wrote:
3
4 > On 06/29/2016 10:11 PM, Michał Górny wrote:
5 > > On Wed, 29 Jun 2016 15:47:43 -0700
6 > > Daniel Campbell <zlg@g.o> wrote:
7 > >
8 > >> On 06/29/2016 10:11 AM, Michał Górny wrote:
9 > >>> Hello, everyone.
10 > >>>
11 > >>> Over half a year has passed since Council decided upon the fate of
12 > >>> games in Gentoo. Over that period, the games team has neither showed
13 > >>> any will to respect the Council decisions, nor officially appealed to
14 > >>> them.
15 > >>>
16 > >>> For this reason, the QA team would like to officially start supporting
17 > >>> the migration of ebuilds out of games.eclass. Any developer wishing to
18 > >>> help is more than welcome to take any games.eclass ebuild, bump its
19 > >>> revision and remove the games.eclass-specific bits from it. Updating to
20 > >>> EAPI 6 would also be welcome. A short update guide is provided at
21 > >>> the end of mail.
22 > >>>
23 > >>> Please note that since this is considered a matter of QA action with
24 > >>> a long waiting period, no explicit approval from games team is
25 > >>> necessary to commit the conversion, nor games team is allowed to reject
26 > >>> or revert such commits as long as they are valid.
27 > >>>
28 > >>> If you need any help doing that and the games team refuses to provide
29 > >>> it, please do not hesitate to contact me or ask in #gentoo-qa. If you
30 > >>> are interested in helping out with games, feel free to join games team
31 > >>> since it still lacks new members.
32 > >>>
33 > >>> Thank you for all the help.
34 > >>>
35 > >>>
36 > >>> Migration notes
37 > >>> ---------------
38 > >>>
39 > >>> TL;DR: nothing special required, remove games.eclass and all
40 > >>> unnecessary games.eclass customization, and follow upstream. Make sure
41 > >>> not to break stuff.
42 > >>>
43 > >>>
44 > >>> The Council decisions can be summarized the following way:
45 > >>>
46 > >>> 1. The 'games' group, formerly used to control access to games, must
47 > >>> not be used. Games should be executable for all users like any other
48 > >>> program [1].
49 > >>>
50 > >>> 1a. For score files and similar writable shared data, the 'gamestat'
51 > >>> group (enewgroup gamestat 36) can be used. The old 'games' group is not
52 > >>> appropriate since sysadmins were expected to add users to it which
53 > >>> defeated its purpose.
54 > >>>
55 > >>> 2. Gentoo path customization for games must be removed and regular
56 > >>> install locations (without explicit control via GAMES_* variables)
57 > >>> should be used [2]:
58 > >>>
59 > >>> 2a. /usr/games and /etc/games directories are forbidden,
60 > >>>
61 > >>> 2b. /usr/share/games can be used for data if that directory is used
62 > >>> upstream,
63 > >>>
64 > >>> 2c. /var/games can be used for shared writable data.
65 > >>>
66 > >>>
67 > >>> This is mostly achieved through removing games.eclass inherit,
68 > >>> customization specific to it and replacing the helpers with generic PMS
69 > >>> helpers (e.g. egamesconf -> econf, dogamesbin -> dobin).
70 > >>> The 'gamesowners', 'gamesperms', 'prepgamesdirs' calls should be
71 > >>> removed altogether.
72 > >>>
73 > >>> In some cases it will also be beneficial to remove patching added to
74 > >>> support non-standard locations.
75 > >>>
76 > >>> Please remember to always rev-bump and not edit in place, to ensure
77 > >>> proper upgrade. When dealing with dependencies, please make sure to
78 > >>> check if the package does not rely on dependency installing data in
79 > >>> a specific location. If that is the case, then you need to use
80 > >>> appropriate >= deps to ensure clean upgrade.
81 > >>>
82 > >>> If you would like to report bugs requesting games.eclass removal,
83 > >>> please make them block the tracker [3].
84 > >>>
85 > >>>
86 > >>> [1]:https://projects.gentoo.org/council/meeting-logs/20151011-summary.txt
87 > >>> [2]:https://projects.gentoo.org/council/meeting-logs/20151213-summary.txt
88 > >>> [3]:https://bugs.gentoo.org/show_bug.cgi?id=574082
89 > >>>
90 > >> I'm glad to see some reach-out here and taking responsibility for
91 > >> decisions. However, what does the QA team have to say about systems that
92 > >> want games on other media (such as an SSD or separate HDD), or wish to
93 > >> restrict the use of games on their system to certain accounts?
94 > >>
95 > >> Bumping EAPI won't magically allow those to happen, and removing the
96 > >> eclass *will* break those use cases. What's the "blessed" way to do those?
97 > >
98 > > If you want to do custom stuff, you're on your own. There are tricks to
99 > > do that (package.env, bashrc). Don't expect developers to patch packages
100 > > to satisfy your corner case.
101 > >
102 >
103 > Why not document those tricks in the same section of the wiki that
104 > indicates games.eclass's deprecation? A heads-up with a link?
105
106 Wiki is public. You are free to provide useful information if you like.
107 I don't feel like working on unsupported hacks that won't work reliably
108 and don't give much benefit to anyone. Just please keep that on
109 a separate page so that people don't think it's officially supported.
110
111 > _Something_. This isn't my use case, but we owe it to users to give them
112 > ways forward when we break things, even if they aren't what we
113 > personally use.
114
115 So why are you mentioning it? It looks like you jump out of the blue
116 like your life suddenly stopped to make sense, and go accusing random
117 people of being part of a process that started a few years back.
118
119 The games.eclass design supported many corner cases. They were weighed,
120 and it was decided that we prefer to go for uniformity, standards
121 compliance and simplicity, rather than working on support for a few
122 corner cases on non-clearly selected packages.
123
124 > If another developer (or team of developers) rendered
125 > your use case(s) unsupported or flippantly wrote it off as a corner case
126 > (with no documentation on restoring your previous use case), what would
127 > you do?
128
129 I either agree or disagree. If I disagree, I enter the discussion or
130 start it as necessary, etc. It's all in the procedures.
131
132 > Other breakages have been handled much better, such as the separate /usr
133 > switch. Mentions of that were almost always followed up with "If you
134 > wish to keep this, use an initramfs". That is an example of breakage
135 > handled correctly: the change is explained, use cases that would break
136 > were identified, and a way was given to users of that use case to move
137 > forward and remain current.
138
139 You are comparing two completely different changes. We are not
140 *breaking* user's systems. Systems will still boot, games will still
141 work.
142
143 > Your handling of this eclass deprecation is little more than a heads-up,
144 > "We're breaking your use case and we don't consider it worth writing a
145 > paragraph's worth of documentation to guide you after the switch." Is
146 > that what you find acceptable? Would you support a developer doing that
147 > to another part of the tree?
148 >
149 > Other changes in Gentoo have come along that were handled better *and*
150 > were more impactful. This situation deserves no less consideration.
151
152 Are you talking about user or developer documentation? Because I'm
153 really lost in your argumentation.
154
155 --
156 Best regards,
157 Michał Górny
158 <http://dev.gentoo.org/~mgorny/>