<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 2, 2016 at 12:24 PM, Paul Eggleton <span dir="ltr">&lt;<a href="mailto:paul.eggleton@linux.intel.com" target="_blank">paul.eggleton@linux.intel.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div>On Thu, 02 Jun 2016 15:19:37 Bruce Ashfield wrote:<br>
&gt; On 2016-06-02 3:15 PM, Paul Eggleton wrote:<br>
&gt; &gt; On Thu, 02 Jun 2016 18:05:35 Martin Jansa wrote:<br>
&gt; &gt;&gt; On Wed, Jun 01, 2016 at 10:23:35AM +1200, Paul Eggleton wrote:<br>
&gt; &gt;&gt;&gt; On Wed, 01 Jun 2016 10:20:23 Paul Eggleton wrote:<br>
&gt; &gt;&gt;&gt;&gt; On Tue, 31 May 2016 11:12:21 Jussi Kukkonen wrote:<br>
&gt; &gt;&gt;&gt;&gt;&gt; On 11 May 2016 at 20:35, Khem Raj &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; +#BASEURI ?= &quot;${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2&quot;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; +BASEURI ?= &quot;git://<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; <a href="http://github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git" rel="noreferrer" target="_blank">github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git</a>&quot;<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; I guess this is where git2_github.com.gcc-mirror.gcc.tar.gz download<br>
&gt; &gt;&gt;&gt;&gt;&gt; comes from? It increased the size of my downloads-directory by &gt;30% --<br>
&gt; &gt;&gt;&gt;&gt;&gt; and I must have quite a bit of old junk in that directory already.<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; Is there no other solution to this than a 2.5G git copy (honest<br>
&gt; &gt;&gt;&gt;&gt;&gt; question, I don&#39;t know gcc)?<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; We went down this road before and it wasn&#39;t great for users. There is<br>
&gt; &gt;&gt;&gt;&gt; at<br>
&gt; &gt;&gt;&gt;&gt; least a tarball for 6.1, we&#39;d presumably need some patches on top of<br>
&gt; &gt;&gt;&gt;&gt; that (~43 if we were to simply take what&#39;s in the gcc-6-branch between<br>
&gt; &gt;&gt;&gt;&gt; 6.1 and bd9a826, minus the &quot;daily bumps&quot;).<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Perhaps that was a little unclear - when I say &quot;we went down this road<br>
&gt; &gt;&gt;&gt; before&quot; I&#39;m agreeing with Jussi - we pointed to a git branch in a<br>
&gt; &gt;&gt;&gt; previous release with the same resulting huge download for everyone,<br>
&gt; &gt;&gt;&gt; something I think we should avoid if at all possible.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Maybe it&#39;s biggest but at least there is only one copy of it:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; top 10 in my downloads (archives and then git clones).<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 823M<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.14.git.tar.gz<br>
&gt; &gt;&gt; 831M<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.10.git.tar.gz<br>
&gt; &gt;&gt; 893M<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.17.git.tar.gz<br>
&gt; &gt;&gt; 934M<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.19.git.tar.gz<br>
&gt; &gt;&gt; 969M<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-4.1.git.tar.gz<br>
&gt; &gt;&gt; 1.2G<br>
&gt; &gt;&gt; /OE/downloads/git2_git.yoctoproject.org.linux-yocto-dev.git.tar.gz<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 2.4G    /OE/downloads/git2_github.com.gcc-mirror.gcc.tar.gz<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 854M    /OE/downloads/git2/github.com.qtproject.qtwebengine-chromium.git<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 877M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.10.git<br>
&gt; &gt;&gt; 900M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.14.git<br>
&gt; &gt;&gt; 921M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.17.git<br>
&gt; &gt;&gt; 964M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.19.git<br>
&gt; &gt;&gt; 999M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-4.1.git<br>
&gt; &gt;&gt; 1.3G    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-dev.git<br>
&gt; &gt;&gt; 2.3G    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-4.4.git<br>
&gt; &gt;<br>
&gt; &gt; No argument from me there - it does seem a little wasteful given that<br>
&gt; &gt; there must be a huge overlap between those repos.<br>
&gt;<br>
&gt; In other build systems, I&#39;ve simply been able to reference a common<br>
&gt; repository for the majority of the blobs. That isn&#39;t an option with<br>
&gt; oe/bitbake (as far as I know).<br>
<br>
</div></div>It&#39;s possible we could add functionality along those lines to at least save<br>
download time; disk usage would probably be unaffected though.<br>
<span><br>
&gt; We could also do shallow clones, but I&#39;m also unsure of how well that<br>
&gt; is supported.<br>
<br>
</span>I know Chris looked into adding this, I don&#39;t recall how far he got.</blockquote></div><div class="gmail_extra"><br></div>I did work on shallow support, yes.</div><div class="gmail_extra"><br>Shallow mirror tarball support is on the bitbake list awaiting Richard&#39;s review and merge for 2.2, assuming there are no major objections. There is a caveat, however. Since git&#39;s shallow clone capability is limited to specifying the depth, we can&#39;t really do shallow *clones*, as we don&#39;t know the distance from branch HEAD to SRCREV at the time we&#39;re going to clone.</div><div class="gmail_extra"><br></div><div class="gmail_extra">What we can support is shallow mirror tarballs, where a mirror is populated with shallow mirror tarballs which the user&#39;s build will fetch, if available, instead of full mirror tarballs, and this is what my patch series implements. Of course, each time the recipe SRCREVs change, we&#39;d get new shallow tarballs that&#39;d need fetching, enough of those would outweigh the benefits vs just doing a straight up front clone, but I think the benefit is clear. A shallow kernel tarball for a repo of this sort is around 100 megs instead of a gig.</div><div class="gmail_extra"><br></div><div class="gmail_extra">We&#39;ve been using it at mentor for a while now with good results, so far. I&#39;d love to see someone other than us test out the patches, though, or give some feedback on either the concept or the code :) See &quot;[master][PATCH 0/3] Implement support for shallow git mirror tarballs&quot; on the bitbake-devel list. <br>-- <br><div data-smartmail="gmail_signature"><div dir="ltr">Christopher Larson<br>kergoth at gmail dot com<br>Founder - BitBake, OpenEmbedded, OpenZaurus<br>Maintainer - Tslib<br>Senior Software Engineer, Mentor Graphics</div></div>
</div></div>