/[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.6 - (hide annotations) (download) (as text)
Sun Oct 14 17:00:15 2007 UTC (6 years, 8 months ago) by antarus
Branch: MAIN
CVS Tags: HEAD
Changes since 1.5: +4 -251 lines
File MIME type: text/html
the canary on 53 went well, changing the rest

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

  ViewVC Help
Powered by ViewVC 1.1.20