/[gentoo]/xml/htdocs/proj/en/glep/glep-0031.html
Gentoo

Diff of /xml/htdocs/proj/en/glep/glep-0031.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.3 Revision 1.8
1<?xml version="1.0" encoding="utf-8" ?> 1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<!-- 4
5This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8-->
9<head> 5<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.3: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 31 -- Character Sets for Portage Tree Items</title> 8 <title>GLEP 31 -- Character Sets for Portage Tree Items</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14</head> 10</head>
15<body bgcolor="white"> 11<body bgcolor="white">
16<table class="navigation" cellpadding="0" cellspacing="0" 12<table class="navigation" cellpadding="0" cellspacing="0"
20<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]" 16<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td> 17 border="0" width="150" height="35" /></a></td>
22<td class="textlinks" align="left"> 18<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 19[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>] 20[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25[<b><a href="./glep-0031.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0031.txt">GLEP Source</a></b>]
26</td></tr></table> 22</td></tr></table>
27<div class="document">
28<table class="rfc2822 field-list" frame="void" rules="none"> 23<table class="rfc2822 docutils field-list" frame="void" rules="none">
29<col class="field-name" /> 24<col class="field-name" />
30<col class="field-body" /> 25<col class="field-body" />
31<tbody valign="top"> 26<tbody valign="top">
32<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">31</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">31</td>
33</tr> 28</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">Character Sets for Portage Tree Items</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Character Sets for Portage Tree Items</td>
35</tr> 30</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
37</tr> 32</tr>
38<tr class="field"><th class="field-name">Author:</th><td class="field-body">Ciaran McCreesh &lt;ciaranm&#32;&#97;t&#32;gentoo.org&gt;</td> 33<tr class="field"><th class="field-name">Author:</th><td class="field-body">Ciaran McCreesh &lt;ciaranm&#32;&#97;t&#32;gentoo.org&gt;</td>
39</tr> 34</tr>
40<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/xml/htdocs/proj/en/glep/glep-0031.txt?cvsroot=gentoo">2004/11/11 21:38:05</a></td> 35<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-0031.txt?cvsroot=gentoo">2007/04/21 03:03:05</a></td>
41</tr> 36</tr>
42<tr class="field"><th class="field-name">Status:</th><td class="field-body">Approved</td> 37<tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
43</tr> 38</tr>
44<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 39<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45</tr> 40</tr>
46<tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0012.html">text/x-rst</a></td> 41<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> 42</tr>
48<tr class="field"><th class="field-name">Created:</th><td class="field-body">27-October-2004</td> 43<tr class="field"><th class="field-name">Created:</th><td class="field-body">27-Oct-2004</td>
49</tr> 44</tr>
50<tr class="field"><th class="field-name">Post-Date:</th><td class="field-body">28-October-2004, 1-November-2004, 11-November-2004</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">28-Oct-2004, 1-Nov-2004, 11-Nov-2004</td>
51</tr> 46</tr>
52</tbody> 47</tbody>
53</table> 48</table>
54<hr /> 49<hr />
55<div class="contents topic" id="contents"> 50<div class="contents topic">
56<p class="topic-title first"><a name="contents">Contents</a></p> 51<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
57<ul class="simple"> 52<ul class="simple">
58<li><a class="reference" href="#abstract" id="id9" name="id9">Abstract</a></li> 53<li><a class="reference" href="#abstract" id="id9" name="id9">Abstract</a></li>
59<li><a class="reference" href="#status" id="id10" name="id10">Status</a></li> 54<li><a class="reference" href="#status" id="id10" name="id10">Status</a></li>
60<li><a class="reference" href="#motivation" id="id11" name="id11">Motivation</a></li> 55<li><a class="reference" href="#motivation" id="id11" name="id11">Motivation</a></li>
61<li><a class="reference" href="#specification" id="id12" name="id12">Specification</a><ul> 56<li><a class="reference" href="#specification" id="id12" name="id12">Specification</a><ul>
68<li><a class="reference" href="#backwards-compatibility" id="id17" name="id17">Backwards Compatibility</a></li> 63<li><a class="reference" href="#backwards-compatibility" id="id17" name="id17">Backwards Compatibility</a></li>
69<li><a class="reference" href="#references" id="id18" name="id18">References</a></li> 64<li><a class="reference" href="#references" id="id18" name="id18">References</a></li>
70<li><a class="reference" href="#copyright" id="id19" name="id19">Copyright</a></li> 65<li><a class="reference" href="#copyright" id="id19" name="id19">Copyright</a></li>
71</ul> 66</ul>
72</div> 67</div>
73<div class="section" id="abstract"> 68<div class="section">
74<h1><a class="toc-backref" href="#id9" name="abstract">Abstract</a></h1> 69<h1><a class="toc-backref" href="#id9" id="abstract" name="abstract">Abstract</a></h1>
75<p>A set of guidelines regarding what characters are permissible in the 70<p>A set of guidelines regarding what characters are permissible in the
76portage tree and how they should be encoded is required.</p> 71portage tree and how they should be encoded is required.</p>
77</div> 72</div>
78<div class="section" id="status"> 73<div class="section">
79<h1><a class="toc-backref" href="#id10" name="status">Status</a></h1> 74<h1><a class="toc-backref" href="#id10" id="status" name="status">Status</a></h1>
80<p>Approved on 8-Nov-2004 assuming that implementation will include 75<p>Approved on 8-Nov-2004 assuming that implementation will include
81documentation for correctly encoding files within nano.</p> 76documentation for correctly encoding files within nano.</p>
82</div> 77</div>
83<div class="section" id="motivation"> 78<div class="section">
84<h1><a class="toc-backref" href="#id11" name="motivation">Motivation</a></h1> 79<h1><a class="toc-backref" href="#id11" id="motivation" name="motivation">Motivation</a></h1>
85<p>At present we have several developers and many more users whose names 80<p>At present we have several developers and many more users whose names
86require characters (for example, accents) which are not part of the 81require characters (for example, accents) which are not part of the
87standard 'safe' 0..127 ASCII range. There is no current standard on how 82standard 'safe' 0..127 ASCII range. There is no current standard on how
88these should be represented, leading to inconsistency across the tree.</p> 83these should be represented, leading to inconsistency across the tree.</p>
89<p>Although the issues involved have been discussed informally many times, no 84<p>Although the issues involved have been discussed informally many times, no
90official decision has been made.</p> 85official decision has been made.</p>
91</div> 86</div>
92<div class="section" id="specification"> 87<div class="section">
93<h1><a class="toc-backref" href="#id12" name="specification">Specification</a></h1> 88<h1><a class="toc-backref" href="#id12" id="specification" name="specification">Specification</a></h1>
94<div class="section" id="changelog-and-metadata-character-sets"> 89<div class="section">
95<h2><a class="toc-backref" href="#id13" name="changelog-and-metadata-character-sets">ChangeLog and Metadata Character Sets</a></h2> 90<h2><a class="toc-backref" href="#id13" id="changelog-and-metadata-character-sets" name="changelog-and-metadata-character-sets">ChangeLog and Metadata Character Sets</a></h2>
96<p>It is proposed that UTF-8 (<a class="footnote-reference" href="#id5" id="id1" name="id1">[1]</a>) is used for encoding ChangeLog and 91<p>It is proposed that UTF-8 (<a class="footnote-reference" href="#id5" id="id1" name="id1">[1]</a>) is used for encoding ChangeLog and
97metadata.xml files inside the portage tree.</p> 92metadata.xml files inside the portage tree.</p>
98<p>UTF-8 allows the full range of Unicode (<a class="footnote-reference" href="#id6" id="id2" name="id2">[2]</a>) characters to be expressed, 93<p>UTF-8 allows the full range of Unicode (<a class="footnote-reference" href="#id6" id="id2" name="id2">[2]</a>) characters to be expressed,
99which is necessary given the diversity of the Gentoo developer- and 94which is necessary given the diversity of the Gentoo developer- and
100user-base. It is character-compatible with ASCII for the 0..127 95user-base. It is character-compatible with ASCII for the 0..127
102for files which consist mainly of American English characters. It is 97for files which consist mainly of American English characters. It is
103widely supported, widely used and an official standard.</p> 98widely supported, widely used and an official standard.</p>
104<p>The ISO-8859-* character sets (<a class="footnote-reference" href="#id7" id="id3" name="id3">[3]</a>) would <em>not</em> be appropriate since they 99<p>The ISO-8859-* character sets (<a class="footnote-reference" href="#id7" id="id3" name="id3">[3]</a>) would <em>not</em> be appropriate since they
105cannot express the full range of required characters.</p> 100cannot express the full range of required characters.</p>
106</div> 101</div>
107<div class="section" id="ebuild-and-eclass-character-sets"> 102<div class="section">
108<h2><a class="toc-backref" href="#id14" name="ebuild-and-eclass-character-sets">Ebuild and Eclass Character Sets</a></h2> 103<h2><a class="toc-backref" href="#id14" id="ebuild-and-eclass-character-sets" name="ebuild-and-eclass-character-sets">Ebuild and Eclass Character Sets</a></h2>
109<p>For the same reasons as previously, it is proposed that UTF-8 is used as 104<p>For the same reasons as previously, it is proposed that UTF-8 is used as
110the official encoding for ebuild and eclass files.</p> 105the official encoding for ebuild and eclass files.</p>
111<p>However, developers should be warned that any code which is parsed by bash 106<p>However, developers should be warned that any code which is parsed by bash
112(in other words, non-comments), and any output which is echoed to the 107(in other words, non-comments), and any output which is echoed to the
113screen (for example, einfo messages) or given to portage (for example any 108screen (for example, einfo messages) or given to portage (for example any
114of the standard global variables) must not use anything outside the 109of the standard global variables) must not use anything outside the
115regular ASCII 0..127 range for compatibility purposes.</p> 110regular ASCII 0..127 range for compatibility purposes.</p>
116</div> 111</div>
117<div class="section" id="files-entries-character-sets"> 112<div class="section">
118<h2><a class="toc-backref" href="#id15" name="files-entries-character-sets">files/ Entries Character Sets</a></h2> 113<h2><a class="toc-backref" href="#id15" id="files-entries-character-sets" name="files-entries-character-sets">files/ Entries Character Sets</a></h2>
119<p>Patches must clearly be in the same character set as the file they are 114<p>Patches must clearly be in the same character set as the file they are
120patching. For other files/ entries (for example, GNOME desktop files), 115patching. For other files/ entries (for example, GNOME desktop files),
121consistency with the upstream-recommended character set is most sensible.</p> 116consistency with the upstream-recommended character set is most sensible.</p>
122</div> 117</div>
123<div class="section" id="suitable-characters-for-file-and-directory-names"> 118<div class="section">
124<h2><a class="toc-backref" href="#id16" name="suitable-characters-for-file-and-directory-names">Suitable Characters for File and Directory Names</a></h2> 119<h2><a class="toc-backref" href="#id16" id="suitable-characters-for-file-and-directory-names" name="suitable-characters-for-file-and-directory-names">Suitable Characters for File and Directory Names</a></h2>
125<p>Characters outside the ASCII 0..127 range cannot safely be used for file 120<p>Characters outside the ASCII 0..127 range cannot safely be used for file
126or directory names. (Of course, not all characters inside the ASCII 0..127 121or directory names. (Of course, not all characters inside the ASCII 0..127
127range can be used safely either.)</p> 122range can be used safely either.)</p>
128</div> 123</div>
129</div> 124</div>
130<div class="section" id="backwards-compatibility"> 125<div class="section">
131<h1><a class="toc-backref" href="#id17" name="backwards-compatibility">Backwards Compatibility</a></h1> 126<h1><a class="toc-backref" href="#id17" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
132<p>The existing tree uses a mixture of encodings. It would be straightforward 127<p>The existing tree uses a mixture of encodings. It would be straightforward
133to fix existing ChangeLogs and metadata files to use UTF-8.</p> 128to fix existing ChangeLogs and metadata files to use UTF-8.</p>
134<p>The <tt class="literal"><span class="pre">echangelog</span></tt> tool is character-set agnostic. In order to properly 129<p>The <tt class="docutils literal"><span class="pre">echangelog</span></tt> tool is character-set agnostic. In order to properly
135enter UTF-8, developers would have to switch to a UTF-8 shell session. 130enter UTF-8, developers would have to switch to a UTF-8 shell session.
136This only applies if the developer is entering new text which uses 'fancy' 131This only applies if the developer is entering new text which uses 'fancy'
137characters -- existing characters are not mangled.</p> 132characters -- existing characters are not mangled.</p>
138<p>Certain text editors are incapable of handling UTF-8 cleanly. However, 133<p>Certain text editors are incapable of handling UTF-8 cleanly. However,
139since the <tt class="literal"><span class="pre">echangelog</span></tt> tool is generally the correct way to generate 134since the <tt class="docutils literal"><span class="pre">echangelog</span></tt> tool is generally the correct way to generate
140ChangeLog entries, this should not be a major problem. Generating 135ChangeLog entries, this should not be a major problem. Generating
141metadata.xml files correctly in these editors could become problematic. 136metadata.xml files correctly in these editors could become problematic.
142The <tt class="literal"><span class="pre">vim</span></tt> and <tt class="literal"><span class="pre">emacs</span></tt> editors, which appear to be most widely used, 137The <tt class="docutils literal"><span class="pre">vim</span></tt> and <tt class="docutils literal"><span class="pre">emacs</span></tt> editors, which appear to be most widely used,
143are both capable of handling UTF-8 cleanly -- for vim, this could be 138are both capable of handling UTF-8 cleanly -- for vim, this could be
144configured automatically via the <tt class="literal"><span class="pre">gentoo-syntax</span></tt> (<a class="footnote-reference" href="#id8" id="id4" name="id4">[4]</a>) package.</p> 139configured automatically via the <tt class="docutils literal"><span class="pre">gentoo-syntax</span></tt> (<a class="footnote-reference" href="#id8" id="id4" name="id4">[4]</a>) package.</p>
145</div> 140</div>
146<div class="section" id="references"> 141<div class="section">
147<h1><a class="toc-backref" href="#id18" name="references">References</a></h1> 142<h1><a class="toc-backref" href="#id18" id="references" name="references">References</a></h1>
148<table class="footnote" frame="void" id="id5" rules="none"> 143<table class="docutils footnote" frame="void" id="id5" rules="none">
149<colgroup><col class="label" /><col /></colgroup> 144<colgroup><col class="label" /><col /></colgroup>
150<tbody valign="top"> 145<tbody valign="top">
151<tr><td class="label"><a class="fn-backref" href="#id1" name="id5">[1]</a></td><td><a class="reference" href="http://www.faqs.org/rfcs/rfc3629.html">RFC 3629</a>: UTF-8, a transformation format of ISO 10646 146<tr><td class="label"><a class="fn-backref" href="#id1" name="id5">[1]</a></td><td><a class="reference" href="http://www.faqs.org/rfcs/rfc3629.html">RFC 3629</a>: UTF-8, a transformation format of ISO 10646
152<a class="reference" href="http://www.ietf.org/rfc/rfc3629.txt">http://www.ietf.org/rfc/rfc3629.txt</a></td></tr> 147<a class="reference" href="http://www.ietf.org/rfc/rfc3629.txt">http://www.ietf.org/rfc/rfc3629.txt</a></td></tr>
153</tbody> 148</tbody>
154</table> 149</table>
155<table class="footnote" frame="void" id="id6" rules="none"> 150<table class="docutils footnote" frame="void" id="id6" rules="none">
156<colgroup><col class="label" /><col /></colgroup> 151<colgroup><col class="label" /><col /></colgroup>
157<tbody valign="top"> 152<tbody valign="top">
158<tr><td class="label"><a class="fn-backref" href="#id2" name="id6">[2]</a></td><td>ISO/IEC 10646 (Universal Multiple-Octet Coded Character Set)</td></tr> 153<tr><td class="label"><a class="fn-backref" href="#id2" name="id6">[2]</a></td><td>ISO/IEC 10646 (Universal Multiple-Octet Coded Character Set)</td></tr>
159</tbody> 154</tbody>
160</table> 155</table>
161<table class="footnote" frame="void" id="id7" rules="none"> 156<table class="docutils footnote" frame="void" id="id7" rules="none">
162<colgroup><col class="label" /><col /></colgroup> 157<colgroup><col class="label" /><col /></colgroup>
163<tbody valign="top"> 158<tbody valign="top">
164<tr><td class="label"><a class="fn-backref" href="#id3" name="id7">[3]</a></td><td>ISO/IEC 8859 (8-bit single-byte coded graphic character sets)</td></tr> 159<tr><td class="label"><a class="fn-backref" href="#id3" name="id7">[3]</a></td><td>ISO/IEC 8859 (8-bit single-byte coded graphic character sets)</td></tr>
165</tbody> 160</tbody>
166</table> 161</table>
167<table class="footnote" frame="void" id="id8" rules="none"> 162<table class="docutils footnote" frame="void" id="id8" rules="none">
168<colgroup><col class="label" /><col /></colgroup> 163<colgroup><col class="label" /><col /></colgroup>
169<tbody valign="top"> 164<tbody valign="top">
170<tr><td class="label"><a class="fn-backref" href="#id4" name="id8">[4]</a></td><td>The app-vim/gentoo-syntax package, 165<tr><td class="label"><a class="fn-backref" href="#id4" name="id8">[4]</a></td><td>The app-vim/gentoo-syntax package,
171<a class="reference" href="https://developer.berlios.de/projects/gentoo-syntax/">https://developer.berlios.de/projects/gentoo-syntax/</a></td></tr> 166<a class="reference" href="https://developer.berlios.de/projects/gentoo-syntax/">https://developer.berlios.de/projects/gentoo-syntax/</a></td></tr>
172</tbody> 167</tbody>
173</table> 168</table>
174</div> 169</div>
175<div class="section" id="copyright"> 170<div class="section">
176<h1><a class="toc-backref" href="#id19" name="copyright">Copyright</a></h1> 171<h1><a class="toc-backref" href="#id19" id="copyright" name="copyright">Copyright</a></h1>
177<p>This document has been placed in the public domain.</p> 172<p>This document has been placed in the public domain.</p>
178<blockquote>
179vim: set tw=74 fileencoding=utf-8 :</blockquote> 173<!-- vim: set tw=74 fileencoding=utf-8 : -->
180</div>
181</div> 174</div>
182 175
176</div>
177<div class="footer">
183<hr class="footer" /> 178<hr class="footer" />
184<div class="footer">
185<a class="reference" href="glep-0031.txt">View document source</a>. 179<a class="reference" href="glep-0031.txt">View document source</a>.
186Generated on: 2004-11-11 21:31 UTC. 180Generated on: 2007-10-13 13:39 UTC.
187Generated 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. 181Generated 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.
182
188</div> 183</div>
189</body> 184</body>
190</html> 185</html>
191 186

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.20