… | |
… | |
37 | </tr> |
37 | </tr> |
38 | <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0022.txt?cvsroot=gentoo">2004/03/07 02:20:32</a></td> |
38 | <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0022.txt?cvsroot=gentoo">2004/03/07 02:20:32</a></td> |
39 | </tr> |
39 | </tr> |
40 | <tr class="field"><th class="field-name">Author:</th><td class="field-body">Grant Goodyear <g2boojum at gentoo.org></td> |
40 | <tr class="field"><th class="field-name">Author:</th><td class="field-body">Grant Goodyear <g2boojum at gentoo.org></td> |
41 | </tr> |
41 | </tr> |
42 | <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> |
42 | <tr class="field"><th class="field-name">Status:</th><td class="field-body">Withdrawn</td> |
43 | </tr> |
43 | </tr> |
44 | <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> |
44 | <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> |
45 | </tr> |
45 | </tr> |
46 | <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td> |
46 | <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td> |
47 | </tr> |
47 | </tr> |
… | |
… | |
53 | </table> |
53 | </table> |
54 | <hr /> |
54 | <hr /> |
55 | <div class="contents topic" id="contents"> |
55 | <div class="contents topic" id="contents"> |
56 | <p class="topic-title"><a name="contents">Contents</a></p> |
56 | <p class="topic-title"><a name="contents">Contents</a></p> |
57 | <ul class="simple"> |
57 | <ul class="simple"> |
|
|
58 | <li><a class="reference" href="#status" id="id14" name="id14">Status</a></li> |
58 | <li><a class="reference" href="#credits" id="id14" name="id14">Credits</a></li> |
59 | <li><a class="reference" href="#credits" id="id15" name="id15">Credits</a></li> |
59 | <li><a class="reference" href="#abstract" id="id15" name="id15">Abstract</a></li> |
60 | <li><a class="reference" href="#abstract" id="id16" name="id16">Abstract</a></li> |
60 | <li><a class="reference" href="#motivation" id="id16" name="id16">Motivation</a></li> |
61 | <li><a class="reference" href="#motivation" id="id17" name="id17">Motivation</a></li> |
61 | <li><a class="reference" href="#specification" id="id17" name="id17">Specification</a><ul> |
62 | <li><a class="reference" href="#specification" id="id18" name="id18">Specification</a><ul> |
62 | <li><a class="reference" href="#new-variables" id="id18" name="id18">New Variables</a></li> |
63 | <li><a class="reference" href="#new-variables" id="id19" name="id19">New Variables</a></li> |
63 | <li><a class="reference" href="#reasonable-defaults" id="id19" name="id19">Reasonable Defaults</a></li> |
64 | <li><a class="reference" href="#reasonable-defaults" id="id20" name="id20">Reasonable Defaults</a></li> |
64 | <li><a class="reference" href="#profiles" id="id20" name="id20">Profiles</a></li> |
65 | <li><a class="reference" href="#profiles" id="id21" name="id21">Profiles</a></li> |
65 | </ul> |
66 | </ul> |
66 | </li> |
67 | </li> |
67 | <li><a class="reference" href="#rationale" id="id21" name="id21">Rationale</a></li> |
68 | <li><a class="reference" href="#rationale" id="id22" name="id22">Rationale</a></li> |
68 | <li><a class="reference" href="#implementation" id="id22" name="id22">Implementation</a></li> |
69 | <li><a class="reference" href="#implementation" id="id23" name="id23">Implementation</a></li> |
69 | <li><a class="reference" href="#backwards-compatibility" id="id23" name="id23">Backwards Compatibility</a></li> |
70 | <li><a class="reference" href="#backwards-compatibility" id="id24" name="id24">Backwards Compatibility</a></li> |
70 | <li><a class="reference" href="#id1" id="id24" name="id24">References</a></li> |
71 | <li><a class="reference" href="#id1" id="id25" name="id25">References</a></li> |
71 | <li><a class="reference" href="#copyright" id="id25" name="id25">Copyright</a></li> |
72 | <li><a class="reference" href="#copyright" id="id26" name="id26">Copyright</a></li> |
72 | </ul> |
73 | </ul> |
73 | </div> |
74 | </div> |
|
|
75 | <div class="section" id="status"> |
|
|
76 | <h1><a class="toc-backref" href="#id14" name="status">Status</a></h1> |
|
|
77 | <p>I'm withdrawing this GLEP. It is clear from the discussions on |
|
|
78 | gentoo-dev that although breaking they keywords into four components |
|
|
79 | is probably a good idea, the four components are <em>not</em> independent. |
|
|
80 | Thus, the "keyword explosion" that this GLEP tries to prevent is |
|
|
81 | inevitable. The real issue, then, is how to make the keyword |
|
|
82 | explosion reasonably manageable, but that's a topic for another |
|
|
83 | GLEP.</p> |
|
|
84 | </div> |
74 | <div class="section" id="credits"> |
85 | <div class="section" id="credits"> |
75 | <h1><a class="toc-backref" href="#id14" name="credits">Credits</a></h1> |
86 | <h1><a class="toc-backref" href="#id15" name="credits">Credits</a></h1> |
76 | <p>This GLEP originated from the concerns that Daniel Robbins had with |
87 | <p>This GLEP originated from the concerns that Daniel Robbins had with |
77 | the <em>x86obsd</em> keyword, and his desire to make the KEYWORDS variable more |
88 | the <em>x86obsd</em> keyword, and his desire to make the KEYWORDS variable more |
78 | "feature-rich". Drobbins' original idea was that we should |
89 | "feature-rich". Drobbins' original idea was that we should |
79 | allow compound |
90 | allow compound |
80 | keywords such as gnu/x86, gnu/ppc, and macos/ppc (which would be explicit |
91 | keywords such as gnu/x86, gnu/ppc, and macos/ppc (which would be explicit |
… | |
… | |
82 | that userland/arch failed to capture the full range of possibilities (what |
93 | that userland/arch failed to capture the full range of possibilities (what |
83 | about a GNU userland on a BSD kernel+libc?), and |
94 | about a GNU userland on a BSD kernel+libc?), and |
84 | the issue has languished due to a lack of reasonable solutions.</p> |
95 | the issue has languished due to a lack of reasonable solutions.</p> |
85 | </div> |
96 | </div> |
86 | <div class="section" id="abstract"> |
97 | <div class="section" id="abstract"> |
87 | <h1><a class="toc-backref" href="#id15" name="abstract">Abstract</a></h1> |
98 | <h1><a class="toc-backref" href="#id16" name="abstract">Abstract</a></h1> |
88 | <p>As Gentoo branches out to support non-Linux and non-GNU systems (such |
99 | <p>As Gentoo branches out to support non-Linux and non-GNU systems (such |
89 | as Hurd or the *BSDs), the potential for an "explosion" of possible |
100 | as Hurd or the *BSDs), the potential for an "explosion" of possible |
90 | keywords becomes rather large, since each |
101 | keywords becomes rather large, since each |
91 | new userland/kernel/arch/whatever |
102 | new userland/kernel/arch/whatever |
92 | combination would require a new keyword. |
103 | combination would require a new keyword. |
93 | This GLEP proposes replacing the current |
104 | This GLEP proposes replacing the current |
94 | KEYWORDS variable with four variables, ARCH, USERNAME, KERNEL, and LIBC, |
105 | KEYWORDS variable with four variables, ARCH, USERLAND, KERNEL, and LIBC, |
95 | along with sensible defaults to keep the new system manageable.</p> |
106 | along with sensible defaults to keep the new system manageable.</p> |
96 | </div> |
107 | </div> |
97 | <div class="section" id="motivation"> |
108 | <div class="section" id="motivation"> |
98 | <h1><a class="toc-backref" href="#id16" name="motivation">Motivation</a></h1> |
109 | <h1><a class="toc-backref" href="#id17" name="motivation">Motivation</a></h1> |
99 | <p>Since the beginning, Gentoo Linux has been conceived as a "metadistribution" |
110 | <p>Since the beginning, Gentoo Linux has been conceived as a "metadistribution" |
100 | that combines remarkable flexibility with sensible defaults and exceptional |
111 | that combines remarkable flexibility with sensible defaults and exceptional |
101 | maintainablilty. The goal of the <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/index.xml">Gentoo-Alt</a> <a class="footnote-reference" href="#id2" id="id3" name="id3">[1]</a> project has been to extend that |
112 | maintainablilty. The goal of the <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/index.xml">Gentoo-Alt</a> <a class="footnote-reference" href="#id2" id="id3" name="id3">[1]</a> project has been to extend that |
102 | flexibility to include systems other than GNU/Linux. For example, the author |
113 | flexibility to include systems other than GNU/Linux. For example, the author |
103 | of this GLEP has been working to create a <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/bsd/index.xml">version</a> <a class="footnote-reference" href="#id8" id="id9" name="id9">[3]</a> of Gentoo that uses |
114 | of this GLEP has been working to create a <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/bsd/index.xml">version</a> <a class="footnote-reference" href="#id8" id="id9" name="id9">[3]</a> of Gentoo that uses |
… | |
… | |
112 | BSD userland with a GNU userland.) The net result is that we would need |
123 | BSD userland with a GNU userland.) The net result is that we would need |
113 | keywords that specified all possible permutations of arch, userland, kernel |
124 | keywords that specified all possible permutations of arch, userland, kernel |
114 | and libc. Not fun.</p> |
125 | and libc. Not fun.</p> |
115 | </div> |
126 | </div> |
116 | <div class="section" id="specification"> |
127 | <div class="section" id="specification"> |
117 | <h1><a class="toc-backref" href="#id17" name="specification">Specification</a></h1> |
128 | <h1><a class="toc-backref" href="#id18" name="specification">Specification</a></h1> |
118 | <div class="section" id="new-variables"> |
129 | <div class="section" id="new-variables"> |
119 | <h2><a class="toc-backref" href="#id18" name="new-variables">New Variables</a></h2> |
130 | <h2><a class="toc-backref" href="#id19" name="new-variables">New Variables</a></h2> |
120 | <p>I suggest that we replace the single KEYWORDS variable in ebuilds |
131 | <p>I suggest that we replace the single KEYWORDS variable in ebuilds |
121 | with four separate variables: ARCH, USERLAND, LIBC, and KERNEL.</p> |
132 | with four separate variables: ARCH, USERLAND, LIBC, and KERNEL.</p> |
122 | <blockquote> |
133 | <blockquote> |
123 | <dl> |
134 | <dl> |
124 | <dt>ARCH: </dt> |
135 | <dt>ARCH: </dt> |
… | |
… | |
136 | For each variable the standard "-,-*,~" prefixes would be allowed. |
147 | For each variable the standard "-,-*,~" prefixes would be allowed. |
137 | Similarly, <cite>/etc/make.conf</cite> would have ACCEPT_ARCH, ACCEPT_USERLAND, |
148 | Similarly, <cite>/etc/make.conf</cite> would have ACCEPT_ARCH, ACCEPT_USERLAND, |
138 | ACCEPT_LIBC, and ACCEPT_KERNEL variables.</p> |
149 | ACCEPT_LIBC, and ACCEPT_KERNEL variables.</p> |
139 | </div> |
150 | </div> |
140 | <div class="section" id="reasonable-defaults"> |
151 | <div class="section" id="reasonable-defaults"> |
141 | <h2><a class="toc-backref" href="#id19" name="reasonable-defaults">Reasonable Defaults</a></h2> |
152 | <h2><a class="toc-backref" href="#id20" name="reasonable-defaults">Reasonable Defaults</a></h2> |
142 | <p>To keep this system manageable, we need sensible defaults. An ebuild |
153 | <p>To keep this system manageable, we need sensible defaults. An ebuild |
143 | that has missing USERLAND, KERNEL, or LIBC variables is provided |
154 | that has missing USERLAND, KERNEL, or LIBC variables is provided |
144 | with implicit USERLAND="gnu", KERNEL="linux", and/or LIBC="glibc" |
155 | with implicit USERLAND="gnu", KERNEL="linux", and/or LIBC="glibc" |
145 | variables. However, once a variable is explicitly added (such as |
156 | variables. However, once a variable is explicitly added (such as |
146 | KERNEL="openbsd"), the default is no longer assumed. That is, |
157 | KERNEL="openbsd"), the default is no longer assumed. That is, |
… | |
… | |
151 | add the ebuild's KEYWORD entries to ARCH. Thus, all current ebuilds |
162 | add the ebuild's KEYWORD entries to ARCH. Thus, all current ebuilds |
152 | would still work without changes, allowing for a gradual transition |
163 | would still work without changes, allowing for a gradual transition |
153 | to the new system as the new variables are needed.</p> |
164 | to the new system as the new variables are needed.</p> |
154 | </div> |
165 | </div> |
155 | <div class="section" id="profiles"> |
166 | <div class="section" id="profiles"> |
156 | <h2><a class="toc-backref" href="#id20" name="profiles">Profiles</a></h2> |
167 | <h2><a class="toc-backref" href="#id21" name="profiles">Profiles</a></h2> |
157 | <p>Along with an explosion of keywords comes a concomitant explosion |
168 | <p>Along with an explosion of keywords comes a concomitant explosion |
158 | of potential profiles. The good news is that profiles show up only |
169 | of potential profiles. The good news is that profiles show up only |
159 | in a single directory, so an explosion there is easier to contain. |
170 | in a single directory, so an explosion there is easier to contain. |
160 | I suggest an arch-kernel-userland-libc-version naming scheme, with |
171 | I suggest an arch-kernel-userland-libc-version naming scheme, with |
161 | the kernel-userland-libc terms defaulting to linux-gnu-glibc if |
172 | the kernel-userland-libc terms defaulting to linux-gnu-glibc if |
… | |
… | |
168 | matters is the idea of stackable, or cascading, profiles, so that |
179 | matters is the idea of stackable, or cascading, profiles, so that |
169 | only differences between profiles would have to be maintained.</p> |
180 | only differences between profiles would have to be maintained.</p> |
170 | </div> |
181 | </div> |
171 | </div> |
182 | </div> |
172 | <div class="section" id="rationale"> |
183 | <div class="section" id="rationale"> |
173 | <h1><a class="toc-backref" href="#id21" name="rationale">Rationale</a></h1> |
184 | <h1><a class="toc-backref" href="#id22" name="rationale">Rationale</a></h1> |
174 | <p>The proposed new "keywording" system is far from elegant, which is |
185 | <p>The proposed new "keywording" system is far from elegant, which is |
175 | a substantial drawback. On the other hand, it is simple, it requires |
186 | a substantial drawback. On the other hand, it is simple, it requires |
176 | relatively minor changes (albeit ones that eventually would impact |
187 | relatively minor changes (albeit ones that eventually would impact |
177 | every ebuild in the portage tree), and the changes can be implemented |
188 | every ebuild in the portage tree), and the changes can be implemented |
178 | gradually over time.</p> |
189 | gradually over time.</p> |
179 | </div> |
190 | </div> |
180 | <div class="section" id="implementation"> |
191 | <div class="section" id="implementation"> |
181 | <h1><a class="toc-backref" href="#id22" name="implementation">Implementation</a></h1> |
192 | <h1><a class="toc-backref" href="#id23" name="implementation">Implementation</a></h1> |
182 | <p>Implementation of this GLEP would divide into adding |
193 | <p>Implementation of this GLEP would divide into adding |
183 | Portage functionality to support the new system and |
194 | Portage functionality to support the new system and |
184 | modifying ebuilds to |
195 | modifying ebuilds to |
185 | comply with the new system. |
196 | comply with the new system. |
186 | The Portage support involves hacking Portage |
197 | The Portage support involves hacking Portage |
… | |
… | |
191 | on the other hand, is a massive undertaking. Fortunately, it is |
202 | on the other hand, is a massive undertaking. Fortunately, it is |
192 | also a process that can be done over whatever length of time is |
203 | also a process that can be done over whatever length of time is |
193 | required, since "legacy" ebuilds should work with no changes.</p> |
204 | required, since "legacy" ebuilds should work with no changes.</p> |
194 | </div> |
205 | </div> |
195 | <div class="section" id="backwards-compatibility"> |
206 | <div class="section" id="backwards-compatibility"> |
196 | <h1><a class="toc-backref" href="#id23" name="backwards-compatibility">Backwards Compatibility</a></h1> |
207 | <h1><a class="toc-backref" href="#id24" name="backwards-compatibility">Backwards Compatibility</a></h1> |
197 | <p>Backwards compatibility has already been addressed in some detail, |
208 | <p>Backwards compatibility has already been addressed in some detail, |
198 | with the stated goal being a system that would leave all current |
209 | with the stated goal being a system that would leave all current |
199 | ebuilds in a still-functioning state after the portage modifications |
210 | ebuilds in a still-functioning state after the portage modifications |
200 | have been made. However, we are already using an ARCH variable for |
211 | have been made. However, we are already using an ARCH variable for |
201 | some arcane purpose in Portage, and that issue would still need to |
212 | some arcane purpose in Portage, and that issue would still need to |
202 | be resolved.</p> |
213 | be resolved.</p> |
203 | </div> |
214 | </div> |
204 | <div class="section" id="id1"> |
215 | <div class="section" id="id1"> |
205 | <h1><a class="toc-backref" href="#id24" name="id1">References</a></h1> |
216 | <h1><a class="toc-backref" href="#id25" name="id1">References</a></h1> |
206 | <table class="footnote" frame="void" id="id2" rules="none"> |
217 | <table class="footnote" frame="void" id="id2" rules="none"> |
207 | <colgroup><col class="label" /><col /></colgroup> |
218 | <colgroup><col class="label" /><col /></colgroup> |
208 | <tbody valign="top"> |
219 | <tbody valign="top"> |
209 | <tr><td class="label"><a name="id2">[1]</a></td><td><em>(<a class="fn-backref" href="#id3">1</a>, <a class="fn-backref" href="#id4">2</a>)</em> <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/index.xml">http://www.gentoo.org/proj/en/gentoo-alt/index.xml</a></td></tr> |
220 | <tr><td class="label"><a name="id2">[1]</a></td><td><em>(<a class="fn-backref" href="#id3">1</a>, <a class="fn-backref" href="#id4">2</a>)</em> <a class="reference" href="http://www.gentoo.org/proj/en/gentoo-alt/index.xml">http://www.gentoo.org/proj/en/gentoo-alt/index.xml</a></td></tr> |
210 | </tbody> |
221 | </tbody> |
… | |
… | |
233 | <tr><td class="label"><a class="fn-backref" href="#id13" name="id12">[5]</a></td><td><a class="reference" href="http://www.debian.org/ports/netbsd/">http://www.debian.org/ports/netbsd/</a></td></tr> |
244 | <tr><td class="label"><a class="fn-backref" href="#id13" name="id12">[5]</a></td><td><a class="reference" href="http://www.debian.org/ports/netbsd/">http://www.debian.org/ports/netbsd/</a></td></tr> |
234 | </tbody> |
245 | </tbody> |
235 | </table> |
246 | </table> |
236 | </div> |
247 | </div> |
237 | <div class="section" id="copyright"> |
248 | <div class="section" id="copyright"> |
238 | <h1><a class="toc-backref" href="#id25" name="copyright">Copyright</a></h1> |
249 | <h1><a class="toc-backref" href="#id26" name="copyright">Copyright</a></h1> |
239 | <p>This document is licensed under the Creative Commons - Attribution / Share |
250 | <p>This document is licensed under the Creative Commons - Attribution / Share |
240 | Alike license. (<a class="reference" href="http://creativecommons.org/licenses/by-sa/1.0">http://creativecommons.org/licenses/by-sa/1.0</a>)</p> |
251 | Alike license. (<a class="reference" href="http://creativecommons.org/licenses/by-sa/1.0">http://creativecommons.org/licenses/by-sa/1.0</a>)</p> |
241 | </div> |
252 | </div> |
242 | </div> |
253 | </div> |
243 | |
254 | |
244 | <hr class="footer"/> |
255 | <hr class="footer"/> |
245 | <div class="footer"> |
256 | <div class="footer"> |
246 | <a class="reference" href="glep-0022.txt">View document source</a>. |
257 | <a class="reference" href="glep-0022.txt">View document source</a>. |
247 | Generated on: 2004-03-07 02:20 UTC. |
258 | Generated on: 2004-05-02 20:52 UTC. |
248 | Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. |
259 | Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. |
249 | </div> |
260 | </div> |
250 | </body> |
261 | </body> |
251 | </html> |
262 | </html> |
252 | |
263 | |