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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.2 - (show annotations) (download) (as text)
Tue Jul 29 00:14:28 2003 UTC (15 years, 6 months ago) by g2boojum
Branch: MAIN
Changes since 1.1: +2 -2 lines
File MIME type: text/html
Fixed cvs links.

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
8 -->
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.0: http://docutils.sourceforge.net/" />
12 <title>GLEP 9 -- Gentoo Package Update System</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14 </head>
15 <body bgcolor="white">
16 <table class="navigation" cellpadding="0" cellspacing="0"
17 width="100%" border="0">
18 <tr><td class="navicon" width="150" height="35">
19 <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20 <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td>
22 <td class="textlinks" align="left">
23 [<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>]
25 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0009.txt">GLEP Source</a></b>]
26 </td></tr></table>
27 <div class="document">
28 <table class="rfc2822 field-list" frame="void" rules="none">
29 <col class="field-name" />
30 <col class="field-body" />
31 <tbody valign="top">
32 <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">9</td>
33 </tr>
34 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Gentoo Package Update System</td>
35 </tr>
36 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
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-0009.txt?cvsroot=gentoo">2003/07/25 22:32:20</a></td>
39 </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>
41 </tr>
42 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
43 </tr>
44 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
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>
47 </tr>
48 <tr class="field"><th class="field-name">Created:</th><td class="field-body">19-Jul-2003</td>
49 </tr>
50 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">25-Jul-2003</td>
51 </tr>
52 </tbody>
53 </table>
54 <hr />
55 <div class="contents topic" id="contents">
56 <p class="topic-title"><a name="contents">Contents</a></p>
57 <ul class="simple">
58 <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>
60 <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>
62 <li><a class="reference" href="#rationale" id="id7" name="id7">Rationale</a></li>
63 <li><a class="reference" href="#backwards-compatibility" id="id8" name="id8">Backwards Compatibility</a></li>
64 <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>
66 <li><a class="reference" href="#copyright" id="id11" name="id11">Copyright</a></li>
67 </ul>
68 </div>
69 <div class="section" id="abstract">
70 <h1><a class="toc-backref" href="#id3" name="abstract">Abstract</a></h1>
71 <p>This document proposes an official package updating system for Gentoo Linux.
72 The 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
74 existing tarballs by patching is the natural way to handle source updates.</p>
75 </div>
76 <div class="section" id="motivation">
77 <h1><a class="toc-backref" href="#id4" name="motivation">Motivation</a></h1>
78 <p>This system will reduce mirror loads (potentially mirror size as well) and
79 significantly speed up downloads, making Gentoo much more attractive for users
80 with low-bandwidth connections.</p>
81 </div>
82 <div class="section" id="server-implementation">
83 <h1><a class="toc-backref" href="#id5" 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
85 directory 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
87 tree so that it can be updated during &quot;emerge sync&quot;. A file named &quot;dtu.list&quot;
88 can 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
90 of distfiles which it can monitor for added packages. When a package is added
91 to distfiles the machine can try to determine the previous tarball so a patch
92 can be made and placed in the patchfiles dir. In addition, special-case patches
93 can be added manually.</p>
94 <p>The dtu.list file will be maintained by a special script. Whenever patches
95 are added or removed to the patchfiles dir, the script will make necessary
96 additions/removals in dtu.list. This will be done with minimal changes in the
97 file so it can be synchronized efficiently.</p>
98 </div>
99 <div class="section" id="client-implementation">
100 <h1><a class="toc-backref" href="#id6" name="client-implementation">Client Implementation</a></h1>
101 <p>The system will be optional for users and can be enabled by making portage
102 invoke 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
104 Deltup) will scan the dtu.list file for updates and try downloading and applying
105 them if they exist, or fall back to a full package download if they don't or if
106 the patching process fails.</p>
107 </div>
108 <div class="section" id="rationale">
109 <h1><a class="toc-backref" href="#id7" name="rationale">Rationale</a></h1>
110 <p>The most controversial feature has been the addition of dtu.list to the portage
111 tree, so in this section I will list the reasons I support it.</p>
112 <ul class="simple">
113 <li>Flexibility. Without it, there must be a standard naming scheme which we
114 would be stuck with once the system is in place. Changing the system would
115 require serious compatibility breaks. With the dtu.list file we can change
116 the naming scheme easily without problems, or even have several different
117 naming schemes.</li>
118 <li>Features. Without patch information detecting different upgrade paths would
119 be impossible. Split package patching would also be impossible. If the info
120 is available we can use it to find the quickest upgrade path, like jumping
121 from a .0 release, or even disable certain patches if there are problems with
122 them.</li>
123 <li>It would be impossible to know which packages to upgrade from in some cases,
124 including renamed packages.</li>
125 <li>Knowing which patches are available will eliminate the overhead of attempting
126 to download patches which don't exist.</li>
127 </ul>
128 <p>The dtu.list file will contain several hundred kilobytes of data. That has
129 caused some concern over how efficiently it can be rsynced. To address these
130 concerns the file's format will be plaintext and care has been taken to
131 minimize the number of changes as removals/additions are made.</p>
132 </div>
133 <div class="section" id="backwards-compatibility">
134 <h1><a class="toc-backref" href="#id8" name="backwards-compatibility">Backwards Compatibility</a></h1>
135 <p>There are no backwards compatibility issues since Deltup can generate correct
136 package MD5sums.</p>
137 </div>
138 <div class="section" id="conclusion">
139 <h1><a class="toc-backref" href="#id9" name="conclusion">Conclusion</a></h1>
140 <p>I suggest we start with a scaled-down implementation and provide more as the
141 demand increases. All of the necesary code is already written and working in
142 non-official tests.</p>
143 </div>
144 <div class="section" id="references">
145 <h1><a class="toc-backref" href="#id10" name="references">References</a></h1>
146 <table class="footnote" frame="void" id="deltup" rules="none">
147 <colgroup><col class="label" /><col /></colgroup>
148 <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>
150 </tbody>
151 </table>
152 <table class="footnote" frame="void" id="patches" rules="none">
153 <colgroup><col class="label" /><col /></colgroup>
154 <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>
156 </tbody>
157 </table>
158 <table class="footnote" frame="void" id="tinyhowto" rules="none">
159 <colgroup><col class="label" /><col /></colgroup>
160 <tbody valign="top">
161 <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>
163 </tbody>
164 </table>
165 </div>
166 <div class="section" id="copyright">
167 <h1><a class="toc-backref" href="#id11" name="copyright">Copyright</a></h1>
168 <p>This document has been placed in the public domain.</p>
169 </div>
170 </div>
172 <hr class="footer"/>
173 <div class="footer">
174 <a class="reference" href="glep-0009.txt">View document source</a>.
175 Generated on: 2003-07-29 00:12 UTC.
176 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.
177 </div>
178 </body>
179 </html>

  ViewVC Help
Powered by ViewVC 1.1.20