All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christopher Larson <chris_larson@mentor.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 01/42] gcc: Add gcc6 recipes
Date: Thu, 2 Jun 2016 15:18:58 -0700	[thread overview]
Message-ID: <CABcZANmEPWQcfoCT2mQUJHWemPUG5V9-suomGzfT4y4JQt_+mw@mail.gmail.com> (raw)
In-Reply-To: <16461829.3PMlXGZ7eP@peggleto-mobl.ger.corp.intel.com>

[-- Attachment #1: Type: text/plain, Size: 5182 bytes --]

On Thu, Jun 2, 2016 at 12:24 PM, Paul Eggleton <
paul.eggleton@linux.intel.com> wrote:

> On Thu, 02 Jun 2016 15:19:37 Bruce Ashfield wrote:
> > On 2016-06-02 3:15 PM, Paul Eggleton wrote:
> > > On Thu, 02 Jun 2016 18:05:35 Martin Jansa wrote:
> > >> On Wed, Jun 01, 2016 at 10:23:35AM +1200, Paul Eggleton wrote:
> > >>> On Wed, 01 Jun 2016 10:20:23 Paul Eggleton wrote:
> > >>>> On Tue, 31 May 2016 11:12:21 Jussi Kukkonen wrote:
> > >>>>> On 11 May 2016 at 20:35, Khem Raj <raj.khem@gmail.com> wrote:
> > >>>>>> +#BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2"
> > >>>>>> +BASEURI ?= "git://
> > >>>>>> github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git"
> > >>>>>
> > >>>>> I guess this is where git2_github.com.gcc-mirror.gcc.tar.gz
> download
> > >>>>> comes from? It increased the size of my downloads-directory by
> >30% --
> > >>>>> and I must have quite a bit of old junk in that directory already.
> > >>>>>
> > >>>>> Is there no other solution to this than a 2.5G git copy (honest
> > >>>>> question, I don't know gcc)?
> > >>>>
> > >>>> We went down this road before and it wasn't great for users. There
> is
> > >>>> at
> > >>>> least a tarball for 6.1, we'd presumably need some patches on top of
> > >>>> that (~43 if we were to simply take what's in the gcc-6-branch
> between
> > >>>> 6.1 and bd9a826, minus the "daily bumps").
> > >>>
> > >>> Perhaps that was a little unclear - when I say "we went down this
> road
> > >>> before" I'm agreeing with Jussi - we pointed to a git branch in a
> > >>> previous release with the same resulting huge download for everyone,
> > >>> something I think we should avoid if at all possible.
> > >>
> > >> Maybe it's biggest but at least there is only one copy of it:
> > >>
> > >> top 10 in my downloads (archives and then git clones).
> > >>
> > >> 823M
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.14.git.tar.gz
> > >> 831M
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.10.git.tar.gz
> > >> 893M
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.17.git.tar.gz
> > >> 934M
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-3.19.git.tar.gz
> > >> 969M
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-4.1.git.tar.gz
> > >> 1.2G
> > >> /OE/downloads/git2_git.yoctoproject.org.linux-yocto-dev.git.tar.gz
> > >>
> > >> 2.4G    /OE/downloads/git2_github.com.gcc-mirror.gcc.tar.gz
> > >>
> > >> 854M
> /OE/downloads/git2/github.com.qtproject.qtwebengine-chromium.git
> > >>
> > >> 877M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.10.git
> > >> 900M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.14.git
> > >> 921M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.17.git
> > >> 964M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-3.19.git
> > >> 999M    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-4.1.git
> > >> 1.3G    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-dev.git
> > >> 2.3G    /OE/downloads/git2/git.yoctoproject.org.linux-yocto-4.4.git
> > >
> > > No argument from me there - it does seem a little wasteful given that
> > > there must be a huge overlap between those repos.
> >
> > In other build systems, I've simply been able to reference a common
> > repository for the majority of the blobs. That isn't an option with
> > oe/bitbake (as far as I know).
>
> It's possible we could add functionality along those lines to at least save
> download time; disk usage would probably be unaffected though.
>
> > We could also do shallow clones, but I'm also unsure of how well that
> > is supported.
>
> I know Chris looked into adding this, I don't recall how far he got.


I did work on shallow support, yes.

Shallow mirror tarball support is on the bitbake list awaiting Richard's
review and merge for 2.2, assuming there are no major objections. There is
a caveat, however. Since git's shallow clone capability is limited to
specifying the depth, we can't really do shallow *clones*, as we don't know
the distance from branch HEAD to SRCREV at the time we're going to clone.

What we can support is shallow mirror tarballs, where a mirror is populated
with shallow mirror tarballs which the user'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'd get
new shallow tarballs that'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.

We've been using it at mentor for a while now with good results, so far.
I'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 "[master][PATCH 0/3]
Implement support for shallow git mirror tarballs" on the bitbake-devel
list.
-- 
Christopher Larson
kergoth at gmail dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics

[-- Attachment #2: Type: text/html, Size: 6981 bytes --]

  parent reply	other threads:[~2016-06-02 22:19 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-11 17:35 [PATCH 00/42] GCC/GDB/Binutils Upgrades Khem Raj
2016-05-11 17:35 ` [PATCH 01/42] gcc: Add gcc6 recipes Khem Raj
2016-05-31  8:12   ` Jussi Kukkonen
2016-05-31 22:20     ` Paul Eggleton
2016-05-31 22:23       ` Paul Eggleton
2016-06-02 16:05         ` Martin Jansa
2016-06-02 19:15           ` Paul Eggleton
2016-06-02 19:19             ` Bruce Ashfield
2016-06-02 19:24               ` Paul Eggleton
2016-06-02 19:30                 ` Bruce Ashfield
2016-06-02 19:38                   ` Paul Eggleton
2016-06-02 19:43                     ` Bruce Ashfield
2016-06-02 22:18                 ` Christopher Larson [this message]
2016-05-11 17:35 ` [PATCH 02/42] glibc: Add recipes for 2.24 release Khem Raj
2016-05-12  5:50   ` Khem Raj
2016-05-11 17:35 ` [PATCH 03/42] glib-2.0: Ignore useless warning found with gcc-6 Khem Raj
2016-05-11 17:35 ` [PATCH 04/42] elfutils: Upgrade to 0.166 Khem Raj
2016-05-11 17:35 ` [PATCH 05/42] rpm: Fix build with gcc6 Khem Raj
2016-05-11 17:35 ` [PATCH 06/42] alsa-tools: " Khem Raj
2016-05-11 17:35 ` [PATCH 07/42] lzop: Fix build with gcc-6 Khem Raj
2016-05-11 17:35 ` [PATCH 08/42] webkitgtk: Upgrade to 2.12.1 Khem Raj
2016-05-11 17:35 ` [PATCH 09/42] oprofile: Fix with gcc6 Khem Raj
2016-05-11 17:35 ` [PATCH 10/42] mdadm: Fix gcc 6 warnings Khem Raj
2016-05-11 17:35 ` [PATCH 11/42] nss: Upgrade to 3.23 Khem Raj
2016-05-11 17:35 ` [PATCH 12/42] pkgconfig: Fix build with gcc-6 and upgrade to 0.29.1 Khem Raj
2016-05-11 17:35 ` [PATCH 13/42] binutils: disable werror on native build Khem Raj
2016-05-11 17:35 ` [PATCH 14/42] grub: Fix build with gcc-6 Khem Raj
2016-05-11 17:35 ` [PATCH 15/42] valgrind: Fix build with gcc6 Khem Raj
2016-05-11 17:35 ` [PATCH 16/42] busybox/mdev: Ensure /sys is mounted before using it Khem Raj
2016-05-12 12:58   ` Andreas Oberritter
2016-05-11 17:35 ` [PATCH 17/42] libc-common.bbclass: Use sed instead of grep Khem Raj
2016-05-11 17:35 ` [PATCH 18/42] conf: bump minimum kernel to 3.2.0 Khem Raj
2016-05-12 17:18   ` Ruslan Bilovol
2016-05-12 18:26     ` Khem Raj
2016-05-11 17:35 ` [PATCH 19/42] systemd: Create missing sysusers offline Khem Raj
2016-05-13 12:44   ` Richard Purdie
2016-05-11 17:35 ` [PATCH 20/42] grub_git: Upgrade to latest tip Khem Raj
2016-05-11 17:35 ` [PATCH 21/42] libunwind: Upgrade to 1.2rc1+ Khem Raj
2016-05-11 17:35 ` [PATCH 22/42] linux-yocto: Fix build on ppc with gcc-6 Khem Raj
2016-05-11 21:27   ` Bruce Ashfield
2016-05-11 21:30     ` Khem Raj
2016-05-11 21:36       ` Bruce Ashfield
2016-05-11 21:55         ` Khem Raj
2016-05-12  4:31           ` Bruce Ashfield
2016-05-12 13:28             ` Bruce Ashfield
2016-05-12 14:21               ` Khem Raj
2016-05-12 14:27                 ` Bruce Ashfield
2016-05-12 14:27                   ` Khem Raj
2016-05-12 15:52                     ` Khem Raj
2016-05-11 17:35 ` [PATCH 23/42] linux-yocto: Fix build with gcc6 on mips Khem Raj
2016-05-11 17:35 ` [PATCH 24/42] python-native: Point to expat in native sysroot Khem Raj
2016-05-12  6:26   ` Khem Raj
2016-05-11 17:35 ` [PATCH 25/42] bitbake.conf: Empty out BUILDSDK_CPPFLAGS Khem Raj
2016-05-11 17:35 ` [PATCH 26/42] strace: Remove pipe.expected Khem Raj
2016-05-11 17:42   ` Khem Raj
2016-05-11 17:35 ` [PATCH 27/42] musl: Upgrade to tip of tree Khem Raj
2016-05-11 17:35 ` [PATCH 28/42] libgcc: Ensure that gcc configure options are passed to libgcc too Khem Raj
2016-05-11 17:35 ` [PATCH 29/42] libunwind: Upgrade to 1.2rc1+ Khem Raj
2016-05-11 17:35 ` [PATCH 30/42] libgcc: Ensure that gcc configure options are passed to libgcc too Khem Raj
2016-05-11 17:35 ` [PATCH 31/42] gdb,strace: Fix builds on ppc/musl Khem Raj
2016-05-11 17:35 ` [PATCH 32/42] libunwind: Add a confgure option for tests Khem Raj
2016-05-11 17:35 ` [PATCH 33/42] gdb: Upgrade to 7.11 Khem Raj
2016-05-12  5:48   ` Khem Raj
2016-05-11 17:35 ` [PATCH 34/42] gdb: Disable binutils components Khem Raj
2016-05-11 17:35 ` [PATCH 35/42] tcmode-default: Bump gcc,glibc,gdb Khem Raj
2016-05-11 17:35 ` [PATCH 36/42] bitbake: Oldest kernel for nios2 is 3.19 Khem Raj
2016-05-11 17:35 ` [PATCH 37/42] musl: Create symlinks for stub libraries Khem Raj
2016-05-11 17:35 ` [PATCH 38/42] mdadm: Fix build with clang Khem Raj
2016-05-11 17:35 ` [PATCH 39/42] distcc: Upgrade to 3.2 Khem Raj
2016-05-11 17:35 ` [PATCH 40/42] ruby: Upgrade to 2.2.5 Khem Raj
2016-05-11 17:35 ` [PATCH 41/42] mpfr: Upgrade to 3.1.4 Khem Raj
2016-05-11 17:35 ` [PATCH 42/42] gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet for SDK use Khem Raj
2016-05-12  9:05 ` [PATCH 00/42] GCC/GDB/Binutils Upgrades Ioan-Adrian Ratiu
2016-05-12 14:19   ` akuster808
2016-05-12 14:33     ` Ioan-Adrian Ratiu
2016-05-13 12:47 ` Richard Purdie
2016-05-13 16:48   ` Khem Raj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABcZANmEPWQcfoCT2mQUJHWemPUG5V9-suomGzfT4y4JQt_+mw@mail.gmail.com \
    --to=chris_larson@mentor.com \
    --cc=bruce.ashfield@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=paul.eggleton@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.