summaryrefslogtreecommitdiff
blob: 2a93fd3d949dfd2da248b93096f5346739eb6929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
# Copyright 1999-2016 Gentoo Foundation
# This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
# https://creativecommons.org/licenses/by-sa/3.0/
Ebuild development quiz
Revision 1.16 - 01 December 2016


Answer in whatever length necessary for completeness. Support your answers
with documentation links. Consult your mentor if you're unable to locate
answers.


*** Organizational structure questions

1. When is it appropriate to post to the following mailing lists: gentoo-core,
   gentoo-dev, gentoo-dev-announce, gentoo-project? Provide examples of topics
   that are appropriate for each one of them.

docs: gentoo.org

2. Who should be contacted with complaints about specific developers or
   projects? Shortly explain the procedure including all levels of appeal.

docs: comrel policy

3. What is the proper method for suggesting a wide-ranging feature or
   enhancement to Gentoo? Describe the process for getting this feature
   approved and implemented.

docs: GLEPs

4. What is the purpose of the Gentoo Council?

docs: GLEPs

5. What is the Gentoo Foundation? How does one apply for membership and
   who are eligible?

docs: gentoo.org

6. What are projects? Who can start a new Gentoo project and how is it done?
   What is the rationale behind this structure?

docs: devmanual, GLEPs

7. What is the devaway system? When should it be used and how to use it?

docs: wiki


*** Ebuild technical/policy questions

1. You change a package's ebuild to install an init script. Previously,
   the package had no init script at all.
   Is a revision bump necessary? Why? What about when adding a patch?
   What about when adding a dependency?

docs: devmanual

2. A user submits a "live" VCS (git, svn ...) ebuild in order to obtain
   a bugfix that has not been released yet. What would be a preferable
   alternative to such an ebuild? What if there are numerous changes
   involved?

docs: devmanual

3. (a) What is repoman? When should it be used? How would you check for QA
   problems with repoman?

docs: devmanual, wiki

   (b) A user submits a brand-new ebuild for a new package. What are
   the proper steps (including repoman commands) to take to add
   this ebuild to ::gentoo? What should be in the commit message?

docs: devmanual, wiki

4. A user submits an ebuild that has numerous technical problems and
   violates policy. How would you handle that situation?

docs: devmanual

5. You have a set of new ebuilds that could potentially benefit
   from a global USE flag. What steps should be taken before
   a new USE flag is implemented? What should be done if the
   USE flag only applies to a single package?

docs: devmanual

6. What steps are needed to remove a use flag from IUSE in an ebuild?

docs:

7. You're creating an ebuild. Unfortunately, the default 'emake
   DESTDIR="${D}" install' call causes numerous access violations.
   What are the best long-term and short-term solutions?

docs: devmanual

8. You're creating an ebuild that needs a patch. The patch is
   nontrivially large - bigger than 20 KiB. Where should
   the patch be kept?

docs: devmanual

9. You're creating an ebuild for a package whose license does not match
   any of the licenses in the 'licenses' directory. What is the proper
   course of action?

docs: GLEPs, devmanual

10. (a) You wish to have an ebuild marked "stable," taking it out of
    ~ARCH KEYWORDS. It's a library. What steps should be taken to do so?

docs: devmanual

    (b) You wish to mark an ebuild "testing," putting it into ~ARCH
    KEYWORDS. It was previously hard-masked in package.mask.
    What should be done prior to doing so?

docs: devmanual

    (c) You wish to have an ebuild marked "stable." It is a popular
    application, but no other ebuilds depend on it.
    How would you handle it?

docs: devmanual

11. What is the difference between different dependency classes (DEPEND and
    RDEPEND)? When should each of them be used? Provide examples.

docs: devmanual

12. You wish to make a change to an ebuild, but you checked the commit
    messages and metadata.xml and it appears to be maintained by someone
    else. How should you proceed?

docs: devmanual

14. You find a situation in which an eclass may be useful. What should
    you do before implementing such an eclass?

docs: devmanual

15. How can you verify an ebuild has correct run time dependencies
    (RDEPEND) for all installed binaries? Provide an example tool calls.

docs:

16. How do you deal with a situation in which an ebuild tries to
    install a file that is already installed by another package?

docs: devmanual

17. Most configure scripts attempt to automatically determine
    settings based on the host system. When should the ebuild
    specifically override settings?

docs: devmanual

18. What is the EAPI version? How does it affect ebuilds and eclasses?

docs: devmanual, PMS

19. What is the procedure for removing packages from the tree?

docs: devmanual

20. How do keywording policies for less often used arches like ia64 or
    mips differ from the more common ones like amd64?

docs: devmanual

21. You are adding a new major version to the tree that requires users to
    follow an upgrade guide. How will you communicate this to the users?

docs: GLEPs


*** Please also submit the following information:

* Please make sure your OpenPGP public keyblock is available on the keyserver network 
  hkp://pool.sks-keyservers.net and provide the fingerprint of it below
  You should sign your quizzes with your key
  https://wiki.gentoo.org/wiki/Project:Gentoo-keys/Generating_GLEP_63_based_OpenPGP_keys
  https://wiki.gentoo.org/wiki/GnuPG

* SSH public key (if you do not have one, please create one)
  https://wiki.gentoo.org/wiki/Project:Infrastructure/SSH_Key_Guide
  If you don't paste your key inline, make sure it's signed by your
  gpg key.

* Date of birth

* Where do you live (Town/City, Country)

* What are your programming/scripting skills, if applicable?

* What other areas are you experienced in?

* What other projects have you contributed to, if any?

* Tell us about yourself. This doesn't need to be strictly
  computer-relevant; things like where you're from,
  hobbies, job, family, interests... This information will be used
  for your public new developer announcement so please mention if
  something should not be part of that.