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

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

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

Revision 1.2 Revision 1.6
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.0: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 9 -- Gentoo Package Update System</title> 8 <title>GLEP 9 -- Gentoo Package Update System</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"
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="http://www.gentoo.org/proj/en/glep/glep-0009.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0009.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">9</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">9</td>
33</tr> 28</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Package Update System</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Package Update System</td>
35</tr> 30</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td>
37</tr> 32</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-0009.txt?cvsroot=gentoo">2003/07/25 22:32:20</a></td> 33<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-0009.txt?cvsroot=gentoo">2004/01/13 20:47:35</a></td>
39</tr> 34</tr>
40<tr class="field"><th class="field-name">Author:</th><td class="field-body">John J. Whitney &lt;jjw&#32;&#97;t&#32;linuxmail.org&gt;</td> 35<tr class="field"><th class="field-name">Author:</th><td class="field-body">John J. Whitney &lt;jjw&#32;&#97;t&#32;linuxmail.org&gt;</td>
41</tr> 36</tr>
42<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> 37<tr class="field"><th class="field-name">Status:</th><td class="field-body">deferred</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-0002.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>
50<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">25-Jul-2003</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">25-Jul-2003</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"><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="id3" name="id3">Abstract</a></li> 53<li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
59<li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li> 54<li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
60<li><a class="reference" href="#server-implementation" id="id5" name="id5">Server Implementation</a></li> 55<li><a class="reference" href="#server-implementation" id="id5" name="id5">Server Implementation</a></li>
61<li><a class="reference" href="#client-implementation" id="id6" name="id6">Client Implementation</a></li> 56<li><a class="reference" href="#client-implementation" id="id6" name="id6">Client Implementation</a></li>
64<li><a class="reference" href="#conclusion" id="id9" name="id9">Conclusion</a></li> 59<li><a class="reference" href="#conclusion" id="id9" name="id9">Conclusion</a></li>
65<li><a class="reference" href="#references" id="id10" name="id10">References</a></li> 60<li><a class="reference" href="#references" id="id10" name="id10">References</a></li>
66<li><a class="reference" href="#copyright" id="id11" name="id11">Copyright</a></li> 61<li><a class="reference" href="#copyright" id="id11" name="id11">Copyright</a></li>
67</ul> 62</ul>
68</div> 63</div>
69<div class="section" id="abstract"> 64<div class="section">
70<h1><a class="toc-backref" href="#id3" name="abstract">Abstract</a></h1> 65<h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
71<p>This document proposes an official package updating system for Gentoo Linux. 66<p>This document proposes an official package updating system for Gentoo Linux.
72The Deltup project has been developed for this purpose. <a class="footnote-reference" href="#deltup" id="id1" name="id1">[1]</a></p> 67The Deltup project has been developed for this purpose. <a class="footnote-reference" href="#deltup" id="id1" name="id1">[1]</a></p>
73<p>As packages grow larger the amount of redundant data keeps increasing. Updating 68<p>As packages grow larger the amount of redundant data keeps increasing. Updating
74existing tarballs by patching is the natural way to handle source updates.</p> 69existing tarballs by patching is the natural way to handle source updates.</p>
75</div> 70</div>
76<div class="section" id="motivation"> 71<div class="section">
77<h1><a class="toc-backref" href="#id4" name="motivation">Motivation</a></h1> 72<h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
78<p>This system will reduce mirror loads (potentially mirror size as well) and 73<p>This system will reduce mirror loads (potentially mirror size as well) and
79significantly speed up downloads, making Gentoo much more attractive for users 74significantly speed up downloads, making Gentoo much more attractive for users
80with low-bandwidth connections.</p> 75with low-bandwidth connections.</p>
81</div> 76</div>
82<div class="section" id="server-implementation"> 77<div class="section">
83<h1><a class="toc-backref" href="#id5" name="server-implementation">Server Implementation</a></h1> 78<h1><a class="toc-backref" href="#id5" id="server-implementation" name="server-implementation">Server Implementation</a></h1>
84<p>I propose that the patches be put onto the Gentoo Mirrors and stored in a new 79<p>I propose that the patches be put onto the Gentoo Mirrors and stored in a new
85directory called &quot;patchfiles&quot; which could be placed beside &quot;distfiles&quot;.</p> 80directory called &quot;patchfiles&quot; which could be placed beside &quot;distfiles&quot;.</p>
86<p>It would be advantageous to have a list of available patches within the portage 81<p>It would be advantageous to have a list of available patches within the portage
87tree so that it can be updated during &quot;emerge sync&quot;. A file named &quot;dtu.list&quot; 82tree so that it can be updated during &quot;emerge sync&quot;. A file named &quot;dtu.list&quot;
88can be created and placed in $PORTDIR/profiles.</p> 83can be created and placed in $PORTDIR/profiles.</p>
89<p>If a machine can be set up to generate patches it should contain a local mirror 84<p>If a machine can be set up to generate patches it should contain a local mirror
90of distfiles which it can monitor for added packages. When a package is added 85of distfiles which it can monitor for added packages. When a package is added
91to distfiles the machine can try to determine the previous tarball so a patch 86to distfiles the machine can try to determine the previous tarball so a patch
92can be made and placed in the patchfiles dir. In addition, special-case patches 87can be made and placed in the patchfiles dir. In addition, special-case patches
93can be added manually.</p> 88can be added manually.</p>
94<p>The dtu.list file will be maintained by a special script. Whenever patches 89<p>The dtu.list file will be maintained by a special script. Whenever patches
95are added or removed to the patchfiles dir, the script will make necessary 90are added or removed to the patchfiles dir, the script will make necessary
96additions/removals in dtu.list. This will be done with minimal changes in the 91additions/removals in dtu.list. This will be done with minimal changes in the
97file so it can be synchronized efficiently.</p> 92file so it can be synchronized efficiently.</p>
98</div> 93</div>
99<div class="section" id="client-implementation"> 94<div class="section">
100<h1><a class="toc-backref" href="#id6" name="client-implementation">Client Implementation</a></h1> 95<h1><a class="toc-backref" href="#id6" id="client-implementation" name="client-implementation">Client Implementation</a></h1>
101<p>The system will be optional for users and can be enabled by making portage 96<p>The system will be optional for users and can be enabled by making portage
102invoke efetch through the FETCHCOMMAND environment variable <a class="footnote-reference" href="#tinyhowto" id="id2" name="id2">[3]</a>.</p> 97invoke efetch through the FETCHCOMMAND environment variable <a class="footnote-reference" href="#tinyhowto" id="id2" name="id2">[3]</a>.</p>
103<p>When a package fetch is requested, the efetch/fetchcommand scripts (part of 98<p>When a package fetch is requested, the efetch/fetchcommand scripts (part of
104Deltup) will scan the dtu.list file for updates and try downloading and applying 99Deltup) will scan the dtu.list file for updates and try downloading and applying
105them if they exist, or fall back to a full package download if they don't or if 100them if they exist, or fall back to a full package download if they don't or if
106the patching process fails.</p> 101the patching process fails.</p>
107</div> 102</div>
108<div class="section" id="rationale"> 103<div class="section">
109<h1><a class="toc-backref" href="#id7" name="rationale">Rationale</a></h1> 104<h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
110<p>The most controversial feature has been the addition of dtu.list to the portage 105<p>The most controversial feature has been the addition of dtu.list to the portage
111tree, so in this section I will list the reasons I support it.</p> 106tree, so in this section I will list the reasons I support it.</p>
112<ul class="simple"> 107<ul class="simple">
113<li>Flexibility. Without it, there must be a standard naming scheme which we 108<li>Flexibility. Without it, there must be a standard naming scheme which we
114would be stuck with once the system is in place. Changing the system would 109would be stuck with once the system is in place. Changing the system would
115require serious compatibility breaks. With the dtu.list file we can change 110require serious compatibility breaks. With the dtu.list file we can change
116the naming scheme easily without problems, or even have several different 111the naming scheme easily without problems, or even have several different
117naming schemes.</li> 112naming schemes.</li>
118<li>Features. Without patch information detecting different upgrade paths would 113<li>Features. Without patch information detecting different upgrade paths would
119be impossible. Split package patching would also be impossible. If the info 114be impossible. Split package patching would also be impossible. If the info
120is available we can use it to find the quickest upgrade path, like jumping 115is available we can use it to find the quickest upgrade path, like jumping
121from a .0 release, or even disable certain patches if there are problems with 116from a .0 release, or even disable certain patches if there are problems with
122them.</li> 117them.</li>
123<li>It would be impossible to know which packages to upgrade from in some cases, 118<li>It would be impossible to know which packages to upgrade from in some cases,
124including renamed packages.</li> 119including renamed packages.</li>
125<li>Knowing which patches are available will eliminate the overhead of attempting 120<li>Knowing which patches are available will eliminate the overhead of attempting
126to download patches which don't exist.</li> 121to download patches which don't exist.</li>
128<p>The dtu.list file will contain several hundred kilobytes of data. That has 123<p>The dtu.list file will contain several hundred kilobytes of data. That has
129caused some concern over how efficiently it can be rsynced. To address these 124caused some concern over how efficiently it can be rsynced. To address these
130concerns the file's format will be plaintext and care has been taken to 125concerns the file's format will be plaintext and care has been taken to
131minimize the number of changes as removals/additions are made.</p> 126minimize the number of changes as removals/additions are made.</p>
132</div> 127</div>
133<div class="section" id="backwards-compatibility"> 128<div class="section">
134<h1><a class="toc-backref" href="#id8" name="backwards-compatibility">Backwards Compatibility</a></h1> 129<h1><a class="toc-backref" href="#id8" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
135<p>There are no backwards compatibility issues since Deltup can generate correct 130<p>There are no backwards compatibility issues since Deltup can generate correct
136package MD5sums.</p> 131package MD5sums.</p>
137</div> 132</div>
138<div class="section" id="conclusion"> 133<div class="section">
139<h1><a class="toc-backref" href="#id9" name="conclusion">Conclusion</a></h1> 134<h1><a class="toc-backref" href="#id9" id="conclusion" name="conclusion">Conclusion</a></h1>
140<p>I suggest we start with a scaled-down implementation and provide more as the 135<p>I suggest we start with a scaled-down implementation and provide more as the
141demand increases. All of the necesary code is already written and working in 136demand increases. All of the necesary code is already written and working in
142non-official tests.</p> 137non-official tests.</p>
143</div> 138</div>
144<div class="section" id="references"> 139<div class="section">
145<h1><a class="toc-backref" href="#id10" name="references">References</a></h1> 140<h1><a class="toc-backref" href="#id10" id="references" name="references">References</a></h1>
146<table class="footnote" frame="void" id="deltup" rules="none"> 141<table class="docutils footnote" frame="void" id="deltup" rules="none">
147<colgroup><col class="label" /><col /></colgroup> 142<colgroup><col class="label" /><col /></colgroup>
148<tbody valign="top"> 143<tbody valign="top">
149<tr><td class="label"><a class="fn-backref" href="#id1" name="deltup">[1]</a></td><td><a class="reference" href="http://sourceforge.net/projects/deltup">http://sourceforge.net/projects/deltup</a></td></tr> 144<tr><td class="label"><a class="fn-backref" href="#id1" name="deltup">[1]</a></td><td><a class="reference" href="http://sourceforge.net/projects/deltup">http://sourceforge.net/projects/deltup</a></td></tr>
150</tbody> 145</tbody>
151</table> 146</table>
152<table class="footnote" frame="void" id="patches" rules="none"> 147<table class="docutils footnote" frame="void" id="patches" rules="none">
153<colgroup><col class="label" /><col /></colgroup> 148<colgroup><col class="label" /><col /></colgroup>
154<tbody valign="top"> 149<tbody valign="top">
155<tr><td class="label"><a name="patches">[2]</a></td><td><a class="reference" href="ftp://sunsite.dk/projects/deltup/patchfiles">ftp://sunsite.dk/projects/deltup/patchfiles</a></td></tr> 150<tr><td class="label"><a name="patches">[2]</a></td><td><a class="reference" href="ftp://sunsite.dk/projects/deltup/patchfiles">ftp://sunsite.dk/projects/deltup/patchfiles</a></td></tr>
156</tbody> 151</tbody>
157</table> 152</table>
158<table class="footnote" frame="void" id="tinyhowto" rules="none"> 153<table class="docutils footnote" frame="void" id="tinyhowto" rules="none">
159<colgroup><col class="label" /><col /></colgroup> 154<colgroup><col class="label" /><col /></colgroup>
160<tbody valign="top"> 155<tbody valign="top">
161<tr><td class="label"><a class="fn-backref" href="#id2" name="tinyhowto">[3]</a></td><td>Tiny Deltup HOWTO 156<tr><td class="label"><a class="fn-backref" href="#id2" name="tinyhowto">[3]</a></td><td>Tiny Deltup HOWTO
162(<a class="reference" href="http://www.thedoh.com/linux/HOWTO/deltup">http://www.thedoh.com/linux/HOWTO/deltup</a>)</td></tr> 157(<a class="reference" href="http://www.thedoh.com/linux/HOWTO/deltup">http://www.thedoh.com/linux/HOWTO/deltup</a>)</td></tr>
163</tbody> 158</tbody>
164</table> 159</table>
165</div> 160</div>
166<div class="section" id="copyright"> 161<div class="section">
167<h1><a class="toc-backref" href="#id11" name="copyright">Copyright</a></h1> 162<h1><a class="toc-backref" href="#id11" id="copyright" name="copyright">Copyright</a></h1>
168<p>This document has been placed in the public domain.</p> 163<p>This document has been placed in the public domain.</p>
169</div> 164</div>
165
170</div> 166</div>
167<div class="footer">
168<hr class="footer" />
169<a class="reference" href="glep-0009.txt">View document source</a>.
170Generated on: 2007-10-13 13:39 UTC.
171Generated 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.
171 172
172<hr class="footer"/>
173<div class="footer">
174<a class="reference" href="glep-0009.txt">View document source</a>.
175Generated on: 2003-07-29 00:12 UTC.
176Generated 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.
177</div> 173</div>
178</body> 174</body>
179</html> 175</html>
180 176

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.20