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

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

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

Revision 1.1 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 25 -- Distfile Patching Support</title> 8 <title>GLEP 25 -- Distfile Patching Support</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-0025.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0025.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">25</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">25</td>
33</tr> 28</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">Distfile Patching Support</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Distfile Patching Support</td>
35</tr> 30</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.0</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-0025.txt?cvsroot=gentoo">2004/04/01 01:07:40</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-0025.txt?cvsroot=gentoo">2005/04/01 01:32:19</a></td>
39</tr> 34</tr>
40<tr class="field"><th class="field-name">Author:</th><td class="field-body">Brian Harring &lt;ferringb&#32;&#97;t&#32;gentoo.org&gt;</td> 35<tr class="field"><th class="field-name">Author:</th><td class="field-body">Brian Harring &lt;ferringb&#32;&#97;t&#32;gentoo.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>
48<tr class="field"><th class="field-name">Created:</th><td class="field-body">6-Mar-2004</td> 43<tr class="field"><th class="field-name">Created:</th><td class="field-body">6-Mar-2004</td>
49</tr> 44</tr>
50<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">4-Apr-2004</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">4-Apr-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"><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="id7" name="id7">Abstract</a></li> 53<li><a class="reference" href="#abstract" id="id7" name="id7">Abstract</a></li>
54<li><a class="reference" href="#status" id="id8" name="id8">Status</a></li>
59<li><a class="reference" href="#motivation" id="id8" name="id8">Motivation</a></li> 55<li><a class="reference" href="#motivation" id="id9" name="id9">Motivation</a></li>
60<li><a class="reference" href="#binary-patches-vs-gnudiff-patches" id="id9" name="id9">Binary patches vs GNUDiff patches</a></li> 56<li><a class="reference" href="#binary-patches-vs-gnudiff-patches" id="id10" name="id10">Binary patches vs GNUDiff patches</a></li>
61<li><a class="reference" href="#rationale" id="id10" name="id10">Rationale</a></li> 57<li><a class="reference" href="#rationale" id="id11" name="id11">Rationale</a></li>
62<li><a class="reference" href="#specification" id="id11" name="id11">Specification</a><ul> 58<li><a class="reference" href="#specification" id="id12" name="id12">Specification</a><ul>
63<li><a class="reference" href="#additions-to-the-tree" id="id12" name="id12">Additions to the tree</a></li> 59<li><a class="reference" href="#additions-to-the-tree" id="id13" name="id13">Additions to the tree</a></li>
64<li><a class="reference" href="#portage-implementation" id="id13" name="id13">Portage Implementation</a><ul> 60<li><a class="reference" href="#portage-implementation" id="id14" name="id14">Portage Implementation</a><ul>
65<li><a class="reference" href="#fetching" id="id14" name="id14">Fetching</a></li> 61<li><a class="reference" href="#fetching" id="id15" name="id15">Fetching</a></li>
66<li><a class="reference" href="#reconstruction" id="id15" name="id15">Reconstruction</a></li> 62<li><a class="reference" href="#reconstruction" id="id16" name="id16">Reconstruction</a></li>
67<li><a class="reference" href="#compressed-md5sums" id="id16" name="id16">Compressed MD5sums:</a><ul> 63<li><a class="reference" href="#compressed-md5sums" id="id17" name="id17">Compressed MD5sums:</a><ul>
68<li><a class="reference" href="#the-problem-in-detail" id="id17" name="id17">The Problem in Detail</a></li> 64<li><a class="reference" href="#the-problem-in-detail" id="id18" name="id18">The Problem in Detail</a></li>
69<li><a class="reference" href="#the-proposed-solution" id="id18" name="id18">The Proposed Solution</a></li> 65<li><a class="reference" href="#the-proposed-solution" id="id19" name="id19">The Proposed Solution</a></li>
70</ul> 66</ul>
71</li> 67</li>
72</ul> 68</ul>
73</li> 69</li>
74<li><a class="reference" href="#distfile-mirror-additions" id="id19" name="id19">Distfile Mirror Additions</a></li> 70<li><a class="reference" href="#distfile-mirror-additions" id="id20" name="id20">Distfile Mirror Additions</a></li>
75<li><a class="reference" href="#patch-creation" id="id20" name="id20">Patch Creation</a></li> 71<li><a class="reference" href="#patch-creation" id="id21" name="id21">Patch Creation</a></li>
76</ul> 72</ul>
77</li> 73</li>
78<li><a class="reference" href="#backwards-compatability" id="id21" name="id21">Backwards Compatability</a></li> 74<li><a class="reference" href="#backwards-compatibility" id="id22" name="id22">Backwards Compatibility</a></li>
79<li><a class="reference" href="#reference-implementation" id="id22" name="id22">Reference Implementation</a></li> 75<li><a class="reference" href="#reference-implementation" id="id23" name="id23">Reference Implementation</a></li>
80<li><a class="reference" href="#references" id="id23" name="id23">References</a></li> 76<li><a class="reference" href="#references" id="id24" name="id24">References</a></li>
81<li><a class="reference" href="#copyright" id="id24" name="id24">Copyright</a></li> 77<li><a class="reference" href="#copyright" id="id25" name="id25">Copyright</a></li>
82</ul> 78</ul>
83</div> 79</div>
84<div class="section" id="abstract"> 80<div class="section">
85<h1><a class="toc-backref" href="#id7" name="abstract">Abstract</a></h1> 81<h1><a class="toc-backref" href="#id7" id="abstract" name="abstract">Abstract</a></h1>
86<p>The intention of this GLEP is to propose the creation of patching support for 82<p>The intention of this GLEP is to propose the creation of patching support for
87portage, and iron out the implementation details.</p> 83portage, and iron out the implementation details.</p>
88</div> 84</div>
89<div class="section" id="motivation"> 85<div class="section">
86<h1><a class="toc-backref" href="#id8" id="status" name="status">Status</a></h1>
87<p>Timed out</p>
88</div>
89<div class="section">
90<h1><a class="toc-backref" href="#id8" name="motivation">Motivation</a></h1> 90<h1><a class="toc-backref" href="#id9" id="motivation" name="motivation">Motivation</a></h1>
91<p>Reduce the bandwidth load placed on our mirrors by decreasing the amount of 91<p>Reduce the bandwidth load placed on our mirrors by decreasing the amount of
92bytes transferred when upgrading between versions. Side benefit of this is to 92bytes transferred when upgrading between versions. Side benefit of this is to
93significantly decrease the download requirements for users lacking broadband.</p> 93significantly decrease the download requirements for users lacking broadband.</p>
94</div> 94</div>
95<div class="section" id="binary-patches-vs-gnudiff-patches"> 95<div class="section">
96<h1><a class="toc-backref" href="#id9" name="binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a></h1> 96<h1><a class="toc-backref" href="#id10" id="binary-patches-vs-gnudiff-patches" name="binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a></h1>
97<p>Most people are familiar with diff patches (unified diff for example)- this 97<p>Most people are familiar with diff patches (unified diff for example)- this
98glep is specifically proposing the use of an actual binary differencer. The 98glep is specifically proposing the use of an actual binary differencer. The
99reason for this is that diff patches are line based- you change a single 99reason for this is that diff patches are line based- you change a single
100character in a line, and the whole line must be included in the patch. Binary 100character in a line, and the whole line must be included in the patch. Binary
101differencers work at the byte level- it encodes just that byte. In that 101differencers work at the byte level- it encodes just that byte. In that
112md5 <a class="footnote-reference" href="#id4" id="id1" name="id1">[1]</a>.</p> 112md5 <a class="footnote-reference" href="#id4" id="id1" name="id1">[1]</a>.</p>
113<p>Currently, this glep is proposing only the usage of binary patches- that's not 113<p>Currently, this glep is proposing only the usage of binary patches- that's not
114to say (with a fair amount of work) it couldn't be extended to support 114to say (with a fair amount of work) it couldn't be extended to support
115standard diffs.</p> 115standard diffs.</p>
116</div> 116</div>
117<div class="section" id="rationale"> 117<div class="section">
118<h1><a class="toc-backref" href="#id10" name="rationale">Rationale</a></h1> 118<h1><a class="toc-backref" href="#id11" id="rationale" name="rationale">Rationale</a></h1>
119<p>The difference between source releases typically isn't very large, especially 119<p>The difference between source releases typically isn't very large, especially
120for minor releases. As an example, kdelibs-3.1.4.tar.bz2 is 10.53 MB, and 120for minor releases. As an example, kdelibs-3.1.4.tar.bz2 is 10.53 MB, and
121kdelibs-3.1.5.tar.bz2 is 10.54 MB. A bzip2'ed patch between those versions is 121kdelibs-3.1.5.tar.bz2 is 10.54 MB. A bzip2'ed patch between those versions is
12275.6 kb <a class="footnote-reference" href="#id5" id="id2" name="id2">[2]</a>, less then 1% the size of 3.1.5's tbz2.</p> 12275.6 kb <a class="footnote-reference" href="#id5" id="id2" name="id2">[2]</a>, less then 1% the size of 3.1.5's tbz2.</p>
123</div> 123</div>
124<div class="section" id="specification"> 124<div class="section">
125<h1><a class="toc-backref" href="#id11" name="specification">Specification</a></h1> 125<h1><a class="toc-backref" href="#id12" id="specification" name="specification">Specification</a></h1>
126<p>Quite a few sections of gentoo are affected- mirroring, the portage tree, and 126<p>Quite a few sections of gentoo are affected- mirroring, the portage tree, and
127portage itself.</p> 127portage itself.</p>
128<div class="section" id="additions-to-the-tree"> 128<div class="section">
129<h2><a class="toc-backref" href="#id12" name="additions-to-the-tree">Additions to the tree</a></h2> 129<h2><a class="toc-backref" href="#id13" id="additions-to-the-tree" name="additions-to-the-tree">Additions to the tree</a></h2>
130<p>For adding patch info into the tree, this glep proposes a global patch list 130<p>For adding patch info into the tree, this glep proposes a global patch list
131(stored in profiles as patches.global), and individual patch lists stored in 131(stored in profiles as patches.global), and individual patch lists stored in
132relevant package directories (named patches). Using the kernel packages as an 132relevant package directories (named patches). Using the kernel packages as an
133example, a global list of patches enables us to create a patch once, add an 133example, a global list of patches enables us to create a patch once, add an
134entry, and have all kernel packages benefit from that single entry. Both 134entry, and have all kernel packages benefit from that single entry. Both
152will reside on one of our mirrors, the patch filename would be sufficient.</p> 152will reside on one of our mirrors, the patch filename would be sufficient.</p>
153<p>Finally, note that this is a unidirectional patch- using the above example, 153<p>Finally, note that this is a unidirectional patch- using the above example,
154kdelibs-3.1.4-3.1.5 can <strong>only</strong> be used to upgrade from 3.1.4 to 3.1.5, not 154kdelibs-3.1.4-3.1.5 can <strong>only</strong> be used to upgrade from 3.1.4 to 3.1.5, not
155in reverse (originally explained in <a class="reference" href="#binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a>).</p> 155in reverse (originally explained in <a class="reference" href="#binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a>).</p>
156</div> 156</div>
157<div class="section" id="portage-implementation"> 157<div class="section">
158<h2><a class="toc-backref" href="#id13" name="portage-implementation">Portage Implementation</a></h2> 158<h2><a class="toc-backref" href="#id14" id="portage-implementation" name="portage-implementation">Portage Implementation</a></h2>
159<p>This glep proposes the patching support should be (at this stage) optional- 159<p>This glep proposes the patching support should be (at this stage) optional-
160specifically, enabled via FEATURES=&quot;patching&quot;.</p> 160specifically, enabled via FEATURES=&quot;patching&quot;.</p>
161<div class="section" id="fetching"> 161<div class="section">
162<h3><a class="toc-backref" href="#id14" name="fetching">Fetching</a></h3> 162<h3><a class="toc-backref" href="#id15" id="fetching" name="fetching">Fetching</a></h3>
163<p>When patching is enabled, the global patch list is read, and the packages 163<p>When patching is enabled, the global patch list is read, and the packages
164patch list is read. From there, portage determines what files could be used 164patch list is read. From there, portage determines what files could be used
165as a base for patching to the desired file- further, determining if it's 165as a base for patching to the desired file- further, determining if it's
166actually worth patching (case where it wouldn't be is when the target file is 166actually worth patching (case where it wouldn't be is when the target file is
167less then the sum of the patches needed). Any patches to be used are fetched, 167less then the sum of the patches needed). Any patches to be used are fetched,
168and md5 verified.</p> 168and md5 verified.</p>
169</div> 169</div>
170<div class="section" id="reconstruction"> 170<div class="section">
171<h3><a class="toc-backref" href="#id15" name="reconstruction">Reconstruction</a></h3> 171<h3><a class="toc-backref" href="#id16" id="reconstruction" name="reconstruction">Reconstruction</a></h3>
172<p>Upon fetching and md5 verification of patch(es), the desired file is 172<p>Upon fetching and md5 verification of patch(es), the desired file is
173reconstructed. Assuming reconstruction didn't return any errors, the target 173reconstructed. Assuming reconstruction didn't return any errors, the target
174file has its uncompressed md5sum calculated and verified, then is recompressed 174file has its uncompressed md5sum calculated and verified, then is recompressed
175and the compressed md5sum calculated. At this point, if the compressed md5 175and the compressed md5sum calculated. At this point, if the compressed md5
176matches the md5 stored in the tree, then portage transfers the file into 176matches the md5 stored in the tree, then portage transfers the file into
177distfiles, and continues on it's merry way.</p> 177distfiles, and continues on it's merry way.</p>
178<p>If the compressed md5 is different from the tree's value, then the (proposed) 178<p>If the compressed md5 is different from the tree's value, then the (proposed)
179md5 database is updated with new compressed md5. Details of this database 179md5 database is updated with new compressed md5. Details of this database
180(and the issue it addresses) follow.</p> 180(and the issue it addresses) follow.</p>
181</div> 181</div>
182<div class="section" id="compressed-md5sums"> 182<div class="section">
183<h3><a class="toc-backref" href="#id16" name="compressed-md5sums">Compressed MD5sums:</a></h3> 183<h3><a class="toc-backref" href="#id17" id="compressed-md5sums" name="compressed-md5sums">Compressed MD5sums:</a></h3>
184<p>There will be instances where a file is reconstructed perfectly, recompressed, 184<p>There will be instances where a file is reconstructed perfectly, recompressed,
185and the recompressed md5sum differs from what is stored in the tree- the 185and the recompressed md5sum differs from what is stored in the tree- the
186problem is that the md5sum of a compressed file is inherently tied to the 186problem is that the md5sum of a compressed file is inherently tied to the
187compressor version/options used to compress the original source.</p> 187compressor version/options used to compress the original source.</p>
188<div class="section" id="the-problem-in-detail"> 188<div class="section">
189<h4><a class="toc-backref" href="#id17" name="the-problem-in-detail">The Problem in Detail</a></h4> 189<h4><a class="toc-backref" href="#id18" id="the-problem-in-detail" name="the-problem-in-detail">The Problem in Detail</a></h4>
190<p>A good example of this problem is related to bzip2 versions used for 190<p>A good example of this problem is related to bzip2 versions used for
191compression. Between bzip2 0.9x and bzip2 1.x, there was a subtle change in 191compression. Between bzip2 0.9x and bzip2 1.x, there was a subtle change in
192the compressor resulting in a slightly better compression result- end result 192the compressor resulting in a slightly better compression result- end result
193being a different file, eg a different md5sum. Assuming compressor versions 193being a different file, eg a different md5sum. Assuming compressor versions
194are the same, there also is the issue of what compression level the target 194are the same, there also is the issue of what compression level the target
201valid option- assuming all options were accounted for, clients would still be 201valid option- assuming all options were accounted for, clients would still be
202required to have multiple versions of the same compressor installed just for 202required to have multiple versions of the same compressor installed just for
203the sake of recreating a compressed md5sum <em>even though</em> the uncompressed 203the sake of recreating a compressed md5sum <em>even though</em> the uncompressed
204source's md5 has already been verified.</p> 204source's md5 has already been verified.</p>
205</div> 205</div>
206<div class="section" id="the-proposed-solution"> 206<div class="section">
207<h4><a class="toc-backref" href="#id18" name="the-proposed-solution">The Proposed Solution</a></h4> 207<h4><a class="toc-backref" href="#id19" id="the-proposed-solution" name="the-proposed-solution">The Proposed Solution</a></h4>
208<p>The creation of a clientside flatfile/db of valid alternate md5/size pairs 208<p>The creation of a clientside flatfile/db of valid alternate md5/size pairs
209would enable portage to handle perfectly reconstructed files, that have a 209would enable portage to handle perfectly reconstructed files, that have a
210different md5sum due to compression differences. The proposed format is thus:</p> 210different md5sum due to compression differences. The proposed format is thus:</p>
211<pre class="literal-block"> 211<pre class="literal-block">
212MD5 md5sum orig-file size MD5 md5sum [ optional new-name ] size 212MD5 md5sum orig-file size MD5 md5sum [ optional new-name ] size
232distfiles directory is shared out to multiple systems, this db must be shared 232distfiles directory is shared out to multiple systems, this db must be shared
233also.</p> 233also.</p>
234</div> 234</div>
235</div> 235</div>
236</div> 236</div>
237<div class="section" id="distfile-mirror-additions"> 237<div class="section">
238<h2><a class="toc-backref" href="#id19" name="distfile-mirror-additions">Distfile Mirror Additions</a></h2> 238<h2><a class="toc-backref" href="#id20" id="distfile-mirror-additions" name="distfile-mirror-additions">Distfile Mirror Additions</a></h2>
239<p>One issue of contention is where these files will actually be stored. As of 239<p>One issue of contention is where these files will actually be stored. As of
240the writing of this glep, a full distfiles mirror is roughly around 40 gb- a 240the writing of this glep, a full distfiles mirror is roughly around 40 gb- a
241rough estimate by the author places the space requirements for patches for 241rough estimate by the author places the space requirements for patches for
242each version at a total of around 4gb. Note this isn't even remotely a hard 242each version at a total of around 4gb. Note this isn't even remotely a hard
243figure yet, and a better figure is being checked into currently.</p> 243figure yet, and a better figure is being checked into currently.</p>
268<a class="reference" href="#binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a>)..</p> 268<a class="reference" href="#binary-patches-vs-gnudiff-patches">Binary patches vs GNUDiff patches</a>)..</p>
269<p>Of the options listed above, the first is the easiest, although the second 269<p>Of the options listed above, the first is the easiest, although the second
270could be made to work. Feedback and any possible alternatives would be 270could be made to work. Feedback and any possible alternatives would be
271greatly appreciated.</p> 271greatly appreciated.</p>
272</div> 272</div>
273<div class="section" id="patch-creation"> 273<div class="section">
274<h2><a class="toc-backref" href="#id20" name="patch-creation">Patch Creation</a></h2> 274<h2><a class="toc-backref" href="#id21" id="patch-creation" name="patch-creation">Patch Creation</a></h2>
275<p>Maintenance of patch lists, and the actual patch creation ought to be managed 275<p>Maintenance of patch lists, and the actual patch creation ought to be managed
276by a high level script- essentally a dev says &quot;I want a patch between this 276by a high level script- essentally a dev says &quot;I want a patch between this
277version, and that version: make it so&quot;, the script churns away 277version, and that version: make it so&quot;, the script churns away
278creating/updating the patch list, and generating the patch locally. The 278creating/updating the patch list, and generating the patch locally. The
279utility next uploads the new patch to /space/distfiles-local on dev.gentoo.org 279utility next uploads the new patch to /space/distfiles-local on dev.gentoo.org
285for new ebuilds.</p> 285for new ebuilds.</p>
286<p>The initial bulk of patches to get will be generated by the author, to ease 286<p>The initial bulk of patches to get will be generated by the author, to ease
287the transition and offer patches for people to test out.</p> 287the transition and offer patches for people to test out.</p>
288</div> 288</div>
289</div> 289</div>
290<div class="section" id="backwards-compatability"> 290<div class="section">
291<h1><a class="toc-backref" href="#id21" name="backwards-compatability">Backwards Compatability</a></h1> 291<h1><a class="toc-backref" href="#id22" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
292<p>As noted in <a class="reference" href="#the-proposed-solution">The Proposed Solution</a>, a system using patching and sharing out 292<p>As noted in <a class="reference" href="#the-proposed-solution">The Proposed Solution</a>, a system using patching and sharing out
293it's distfiles must share out it's alternate md5 db. Any system that uses the 293it's distfiles must share out it's alternate md5 db. Any system that uses the
294distfiles share must support the alternate md5 db also. If this is considered 294distfiles share must support the alternate md5 db also. If this is considered
295enough of an issue, it is conceivable to place reconstructed sources with an 295enough of an issue, it is conceivable to place reconstructed sources with an
296alternate md5 into a subdirectory of distdir- portage only looks within 296alternate md5 into a subdirectory of distdir- portage only looks within
297distdir, unwilling to descend into subdirectories.</p> 297distdir, unwilling to descend into subdirectories.</p>
298<p>Also note that <a class="reference" href="#distfile-mirror-additions">Distfile Mirror Additions</a> may add additional backwards 298<p>Also note that <a class="reference" href="#distfile-mirror-additions">Distfile Mirror Additions</a> may add additional backwards
299compatability issues, depending on what solution is accepted.</p> 299compatibility issues, depending on what solution is accepted.</p>
300</div> 300</div>
301<div class="section" id="reference-implementation"> 301<div class="section">
302<h1><a class="toc-backref" href="#id22" name="reference-implementation">Reference Implementation</a></h1> 302<h1><a class="toc-backref" href="#id23" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
303<p>TODO</p> 303<p>TODO</p>
304</div> 304</div>
305<div class="section" id="references"> 305<div class="section">
306<h1><a class="toc-backref" href="#id23" name="references">References</a></h1> 306<h1><a class="toc-backref" href="#id24" id="references" name="references">References</a></h1>
307<table class="footnote" frame="void" id="id4" rules="none"> 307<table class="docutils footnote" frame="void" id="id4" rules="none">
308<colgroup><col class="label" /><col /></colgroup> 308<colgroup><col class="label" /><col /></colgroup>
309<tbody valign="top"> 309<tbody valign="top">
310<tr><td class="label"><a class="fn-backref" href="#id1" name="id4">[1]</a></td><td><a class="reference" href="http://dev.gentoo.org/~ferringb/patches/kdelibs-3.1.4-3.1.5">http://dev.gentoo.org/~ferringb/patches/kdelibs-3.1.4-3.1.5</a>.{patch,diff}.bz2.</td></tr> 310<tr><td class="label"><a class="fn-backref" href="#id1" name="id4">[1]</a></td><td><a class="reference" href="http://dev.gentoo.org/~ferringb/patches/kdelibs-3.1.4-3.1.5">http://dev.gentoo.org/~ferringb/patches/kdelibs-3.1.4-3.1.5</a>.{patch,diff}.bz2.</td></tr>
311</tbody> 311</tbody>
312</table> 312</table>
313<table class="footnote" frame="void" id="id5" rules="none"> 313<table class="docutils footnote" frame="void" id="id5" rules="none">
314<colgroup><col class="label" /><col /></colgroup> 314<colgroup><col class="label" /><col /></colgroup>
315<tbody valign="top"> 315<tbody valign="top">
316<tr><td class="label"><a name="id5">[2]</a></td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id3">2</a>)</em> kdelibs-3.1.4-3.1.5.patch.bz2, switching format patch, created via diffball-0.4_pre4 (diffball is available at <a class="reference" href="http://sourceforge.net/projects/diffball">http://sourceforge.net/projects/diffball</a>) 316<tr><td class="label"><a name="id5">[2]</a></td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id3">2</a>)</em> kdelibs-3.1.4-3.1.5.patch.bz2, switching format patch, created via diffball-0.4_pre4 (diffball is available at <a class="reference" href="http://sourceforge.net/projects/diffball">http://sourceforge.net/projects/diffball</a>)
317Bzip2 -9 compressed, the patch is 75,687 bytes, uncompressed it is 337,649 bytes. The patch is available at <a class="reference" href="http://dev.gentoo.org/~ferringb/kdelibs-3.1.4-3.1.5.patch.bz2">http://dev.gentoo.org/~ferringb/kdelibs-3.1.4-3.1.5.patch.bz2</a> for those curious.</td></tr> 317Bzip2 -9 compressed, the patch is 75,687 bytes, uncompressed it is 337,649 bytes. The patch is available at <a class="reference" href="http://dev.gentoo.org/~ferringb/kdelibs-3.1.4-3.1.5.patch.bz2">http://dev.gentoo.org/~ferringb/kdelibs-3.1.4-3.1.5.patch.bz2</a> for those curious.</td></tr>
318</tbody> 318</tbody>
319</table> 319</table>
320<table class="footnote" frame="void" id="id6" rules="none"> 320<table class="docutils footnote" frame="void" id="id6" rules="none">
321<colgroup><col class="label" /><col /></colgroup> 321<colgroup><col class="label" /><col /></colgroup>
322<tbody valign="top"> 322<tbody valign="top">
323<tr><td class="label"><a name="id6">[3]</a></td><td>Glep9, 'Gentoo Package Update System' 323<tr><td class="label"><a name="id6">[3]</a></td><td>Glep9, 'Gentoo Package Update System'
324(<a class="reference" href="http://glep.gentoo.org/glep-0009.html">http://glep.gentoo.org/glep-0009.html</a>)</td></tr> 324(<a class="reference" href="http://glep.gentoo.org/glep-0009.html">http://glep.gentoo.org/glep-0009.html</a>)</td></tr>
325</tbody> 325</tbody>
326</table> 326</table>
327</div> 327</div>
328<div class="section" id="copyright"> 328<div class="section">
329<h1><a class="toc-backref" href="#id24" name="copyright">Copyright</a></h1> 329<h1><a class="toc-backref" href="#id25" id="copyright" name="copyright">Copyright</a></h1>
330<p>This document has been placed in the public domain.</p> 330<p>This document has been placed in the public domain.</p>
331</div> 331</div>
332</div>
333 332
334<hr class="footer"/> 333</div>
335<div class="footer"> 334<div class="footer">
335<hr class="footer" />
336<a class="reference" href="glep-0025.txt">View document source</a>. 336<a class="reference" href="glep-0025.txt">View document source</a>.
337Generated on: 2004-04-04 22:55 UTC. 337Generated on: 2007-10-13 13:39 UTC.
338Generated 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. 338Generated 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.
339
339</div> 340</div>
340</body> 341</body>
341</html> 342</html>
342 343

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

  ViewVC Help
Powered by ViewVC 1.1.20