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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (7 years, 9 months ago) by g2boojum
Branch: MAIN
Changes since 1.3: +287 -44 lines
File MIME type: text/html
regenerate all .html files

1 g2boojum 1.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">
3     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4     <!--
5     This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6     PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7     to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8     -->
9     <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 g2boojum 1.4 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 9 -- Gentoo Package Update System</title>
13 g2boojum 1.4 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18     :date: $Date: 2003/06/02 17:03:08 $
19     :version: $Revision: 1.1 $
20     :copyright: This stylesheet has been placed in the public domain.
21    
22     Default cascading style sheet for the PEP HTML output of Docutils.
23     */
24    
25     .first {
26     margin-top: 0 }
27    
28     .last {
29     margin-bottom: 0 }
30    
31     .navigation {
32     width: 100% ;
33     background: #cc99ff ;
34     margin-top: 0px ;
35     margin-bottom: 0px }
36    
37     .navigation .navicon {
38     width: 150px ;
39     height: 35px }
40    
41     .navigation .textlinks {
42     padding-left: 1em ;
43     text-align: left }
44    
45     .navigation td, .navigation th {
46     padding-left: 0em ;
47     padding-right: 0em ;
48     vertical-align: middle }
49    
50     .rfc2822 {
51     margin-top: 0.5em ;
52     margin-left: 0.5em ;
53     margin-right: 0.5em ;
54     margin-bottom: 0em }
55    
56     .rfc2822 td {
57     text-align: left }
58    
59     .rfc2822 th.field-name {
60     text-align: right ;
61     font-family: sans-serif ;
62     padding-right: 0.5em ;
63     font-weight: bold ;
64     margin-bottom: 0em }
65    
66     a.toc-backref {
67     text-decoration: none ;
68     color: black }
69    
70     body {
71     margin: 0px ;
72     margin-bottom: 1em ;
73     padding: 0px }
74    
75     dd {
76     margin-bottom: 0.5em }
77    
78     div.section {
79     margin-left: 1em ;
80     margin-right: 1em ;
81     margin-bottom: 1.5em }
82    
83     div.section div.section {
84     margin-left: 0em ;
85     margin-right: 0em ;
86     margin-top: 1.5em }
87    
88     div.abstract {
89     margin: 2em 5em }
90    
91     div.abstract p.topic-title {
92     font-weight: bold ;
93     text-align: center }
94    
95     div.attention, div.caution, div.danger, div.error, div.hint,
96     div.important, div.note, div.tip, div.warning {
97     margin: 2em ;
98     border: medium outset ;
99     padding: 1em }
100    
101     div.attention p.admonition-title, div.caution p.admonition-title,
102     div.danger p.admonition-title, div.error p.admonition-title,
103     div.warning p.admonition-title {
104     color: red ;
105     font-weight: bold ;
106     font-family: sans-serif }
107    
108     div.hint p.admonition-title, div.important p.admonition-title,
109     div.note p.admonition-title, div.tip p.admonition-title {
110     font-weight: bold ;
111     font-family: sans-serif }
112    
113     div.figure {
114     margin-left: 2em }
115    
116     div.footer, div.header {
117     font-size: smaller }
118    
119     div.footer {
120     margin-left: 1em ;
121     margin-right: 1em }
122    
123     div.system-messages {
124     margin: 5em }
125    
126     div.system-messages h1 {
127     color: red }
128    
129     div.system-message {
130     border: medium outset ;
131     padding: 1em }
132    
133     div.system-message p.system-message-title {
134     color: red ;
135     font-weight: bold }
136    
137     div.topic {
138     margin: 2em }
139    
140     h1 {
141     font-family: sans-serif ;
142     font-size: large }
143    
144     h2 {
145     font-family: sans-serif ;
146     font-size: medium }
147    
148     h3 {
149     font-family: sans-serif ;
150     font-size: small }
151    
152     h4 {
153     font-family: sans-serif ;
154     font-style: italic ;
155     font-size: small }
156    
157     h5 {
158     font-family: sans-serif;
159     font-size: x-small }
160    
161     h6 {
162     font-family: sans-serif;
163     font-style: italic ;
164     font-size: x-small }
165    
166     .section hr {
167     width: 75% }
168    
169     ol.simple, ul.simple {
170     margin-bottom: 1em }
171    
172     ol.arabic {
173     list-style: decimal }
174    
175     ol.loweralpha {
176     list-style: lower-alpha }
177    
178     ol.upperalpha {
179     list-style: upper-alpha }
180    
181     ol.lowerroman {
182     list-style: lower-roman }
183    
184     ol.upperroman {
185     list-style: upper-roman }
186    
187     p.caption {
188     font-style: italic }
189    
190     p.credits {
191     font-style: italic ;
192     font-size: smaller }
193    
194     p.label {
195     white-space: nowrap }
196    
197     p.topic-title {
198     font-family: sans-serif ;
199     font-weight: bold }
200    
201     pre.line-block {
202     font-family: serif ;
203     font-size: 100% }
204    
205     pre.literal-block, pre.doctest-block {
206     margin-left: 2em ;
207     margin-right: 2em ;
208     background-color: #eeeeee }
209    
210     span.classifier {
211     font-family: sans-serif ;
212     font-style: oblique }
213    
214     span.classifier-delimiter {
215     font-family: sans-serif ;
216     font-weight: bold }
217    
218     span.interpreted {
219     font-family: sans-serif }
220    
221     span.option-argument {
222     font-style: italic }
223    
224     span.pre {
225     white-space: pre }
226    
227     span.problematic {
228     color: red }
229    
230     table {
231     margin-top: 0.5em ;
232     margin-bottom: 0.5em }
233    
234     td, th {
235     padding-left: 0.5em ;
236     padding-right: 0.5em ;
237     vertical-align: top }
238    
239     td.num {
240     text-align: right }
241    
242     th.field-name {
243     font-weight: bold ;
244     text-align: left ;
245     white-space: nowrap }
246    
247     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248     font-size: 100% }
249    
250     tt {
251     background-color: #eeeeee }
252    
253     ul.auto-toc {
254     list-style-type: none }
255    
256     </style>
257 g2boojum 1.1 </head>
258     <body bgcolor="white">
259     <table class="navigation" cellpadding="0" cellspacing="0"
260     width="100%" border="0">
261     <tr><td class="navicon" width="150" height="35">
262     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264     border="0" width="150" height="35" /></a></td>
265     <td class="textlinks" align="left">
266     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 g2boojum 1.4 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268 g2boojum 1.1 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0009.txt">GLEP Source</a></b>]
269     </td></tr></table>
270 g2boojum 1.4 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 g2boojum 1.1 <col class="field-name" />
272     <col class="field-body" />
273     <tbody valign="top">
274     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">9</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Package Update System</td>
277     </tr>
278 g2boojum 1.4 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td>
279 g2boojum 1.1 </tr>
280 g2boojum 1.4 <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>
281 g2boojum 1.1 </tr>
282     <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>
283     </tr>
284 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">deferred</td>
285 g2boojum 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288     <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>
289     </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">19-Jul-2003</td>
291     </tr>
292     <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">25-Jul-2003</td>
293     </tr>
294     </tbody>
295     </table>
296     <hr />
297 g2boojum 1.4 <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 g2boojum 1.1 <ul class="simple">
300     <li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
301     <li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
302     <li><a class="reference" href="#server-implementation" id="id5" name="id5">Server Implementation</a></li>
303     <li><a class="reference" href="#client-implementation" id="id6" name="id6">Client Implementation</a></li>
304     <li><a class="reference" href="#rationale" id="id7" name="id7">Rationale</a></li>
305     <li><a class="reference" href="#backwards-compatibility" id="id8" name="id8">Backwards Compatibility</a></li>
306     <li><a class="reference" href="#conclusion" id="id9" name="id9">Conclusion</a></li>
307     <li><a class="reference" href="#references" id="id10" name="id10">References</a></li>
308     <li><a class="reference" href="#copyright" id="id11" name="id11">Copyright</a></li>
309     </ul>
310     </div>
311 g2boojum 1.4 <div class="section">
312     <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
313 g2boojum 1.1 <p>This document proposes an official package updating system for Gentoo Linux.
314     The Deltup project has been developed for this purpose. <a class="footnote-reference" href="#deltup" id="id1" name="id1">[1]</a></p>
315     <p>As packages grow larger the amount of redundant data keeps increasing. Updating
316     existing tarballs by patching is the natural way to handle source updates.</p>
317     </div>
318 g2boojum 1.4 <div class="section">
319     <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
320 g2boojum 1.1 <p>This system will reduce mirror loads (potentially mirror size as well) and
321 g2boojum 1.4 significantly speed up downloads, making Gentoo much more attractive for users
322 g2boojum 1.1 with low-bandwidth connections.</p>
323     </div>
324 g2boojum 1.4 <div class="section">
325     <h1><a class="toc-backref" href="#id5" id="server-implementation" name="server-implementation">Server Implementation</a></h1>
326     <p>I propose that the patches be put onto the Gentoo Mirrors and stored in a new
327 g2boojum 1.1 directory called &quot;patchfiles&quot; which could be placed beside &quot;distfiles&quot;.</p>
328     <p>It would be advantageous to have a list of available patches within the portage
329 g2boojum 1.4 tree so that it can be updated during &quot;emerge sync&quot;. A file named &quot;dtu.list&quot;
330 g2boojum 1.1 can be created and placed in $PORTDIR/profiles.</p>
331     <p>If a machine can be set up to generate patches it should contain a local mirror
332     of distfiles which it can monitor for added packages. When a package is added
333     to distfiles the machine can try to determine the previous tarball so a patch
334     can be made and placed in the patchfiles dir. In addition, special-case patches
335     can be added manually.</p>
336 g2boojum 1.4 <p>The dtu.list file will be maintained by a special script. Whenever patches
337     are added or removed to the patchfiles dir, the script will make necessary
338 g2boojum 1.1 additions/removals in dtu.list. This will be done with minimal changes in the
339     file so it can be synchronized efficiently.</p>
340     </div>
341 g2boojum 1.4 <div class="section">
342     <h1><a class="toc-backref" href="#id6" id="client-implementation" name="client-implementation">Client Implementation</a></h1>
343 g2boojum 1.1 <p>The system will be optional for users and can be enabled by making portage
344     invoke efetch through the FETCHCOMMAND environment variable <a class="footnote-reference" href="#tinyhowto" id="id2" name="id2">[3]</a>.</p>
345 g2boojum 1.4 <p>When a package fetch is requested, the efetch/fetchcommand scripts (part of
346 g2boojum 1.1 Deltup) will scan the dtu.list file for updates and try downloading and applying
347     them if they exist, or fall back to a full package download if they don't or if
348     the patching process fails.</p>
349     </div>
350 g2boojum 1.4 <div class="section">
351     <h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
352 g2boojum 1.1 <p>The most controversial feature has been the addition of dtu.list to the portage
353     tree, so in this section I will list the reasons I support it.</p>
354     <ul class="simple">
355     <li>Flexibility. Without it, there must be a standard naming scheme which we
356 g2boojum 1.4 would be stuck with once the system is in place. Changing the system would
357 g2boojum 1.1 require serious compatibility breaks. With the dtu.list file we can change
358     the naming scheme easily without problems, or even have several different
359     naming schemes.</li>
360 g2boojum 1.4 <li>Features. Without patch information detecting different upgrade paths would
361 g2boojum 1.1 be impossible. Split package patching would also be impossible. If the info
362 g2boojum 1.4 is available we can use it to find the quickest upgrade path, like jumping
363     from a .0 release, or even disable certain patches if there are problems with
364 g2boojum 1.1 them.</li>
365     <li>It would be impossible to know which packages to upgrade from in some cases,
366     including renamed packages.</li>
367     <li>Knowing which patches are available will eliminate the overhead of attempting
368     to download patches which don't exist.</li>
369     </ul>
370     <p>The dtu.list file will contain several hundred kilobytes of data. That has
371     caused some concern over how efficiently it can be rsynced. To address these
372     concerns the file's format will be plaintext and care has been taken to
373     minimize the number of changes as removals/additions are made.</p>
374     </div>
375 g2boojum 1.4 <div class="section">
376     <h1><a class="toc-backref" href="#id8" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
377     <p>There are no backwards compatibility issues since Deltup can generate correct
378 g2boojum 1.1 package MD5sums.</p>
379     </div>
380 g2boojum 1.4 <div class="section">
381     <h1><a class="toc-backref" href="#id9" id="conclusion" name="conclusion">Conclusion</a></h1>
382 g2boojum 1.1 <p>I suggest we start with a scaled-down implementation and provide more as the
383     demand increases. All of the necesary code is already written and working in
384     non-official tests.</p>
385     </div>
386 g2boojum 1.4 <div class="section">
387     <h1><a class="toc-backref" href="#id10" id="references" name="references">References</a></h1>
388     <table class="docutils footnote" frame="void" id="deltup" rules="none">
389 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
390     <tbody valign="top">
391     <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>
392     </tbody>
393     </table>
394 g2boojum 1.4 <table class="docutils footnote" frame="void" id="patches" rules="none">
395 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
396     <tbody valign="top">
397     <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>
398     </tbody>
399     </table>
400 g2boojum 1.4 <table class="docutils footnote" frame="void" id="tinyhowto" rules="none">
401 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
402     <tbody valign="top">
403     <tr><td class="label"><a class="fn-backref" href="#id2" name="tinyhowto">[3]</a></td><td>Tiny Deltup HOWTO
404     (<a class="reference" href="http://www.thedoh.com/linux/HOWTO/deltup">http://www.thedoh.com/linux/HOWTO/deltup</a>)</td></tr>
405     </tbody>
406     </table>
407     </div>
408 g2boojum 1.4 <div class="section">
409     <h1><a class="toc-backref" href="#id11" id="copyright" name="copyright">Copyright</a></h1>
410 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
411     </div>
412 g2boojum 1.4
413 g2boojum 1.1 </div>
414     <div class="footer">
415 g2boojum 1.4 <hr class="footer" />
416 g2boojum 1.1 <a class="reference" href="glep-0009.txt">View document source</a>.
417 g2boojum 1.4 Generated on: 2006-10-10 20:23 UTC.
418 g2boojum 1.1 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.
419 g2boojum 1.4
420 g2boojum 1.1 </div>
421     </body>
422     </html>

  ViewVC Help
Powered by ViewVC 1.1.20