[bitbake-devel] [PATCH] s3.py: Add support for fetching source mirrors/minor cleanup

Beth 'pidge' Flanagan pidge at toganlabs.com
Tue Mar 28 13:05:34 UTC 2017


On Tue, 2017-03-28 at 13:56 +0100, Richard Purdie wrote:
> On Tue, 2017-03-28 at 13:39 +0200, Elizabeth 'pidge' Flanagan wrote:
> > 
> > This commits main purpose is to add support for fetching source
> > mirrors. In the current incarnation:
> > 
> > SOURCE_MIRROR_URL ?= "s3://mybucket/downloads"
> > 
> > will fail for two reasons. First, download doesn't support it,
> > but second, without aws included in HOSTTOOLS you'll end up
> > with aws not being found by bitbake (for either source mirrors or
> > sstate mirrors).
> > 
> > Part of this is fixed with this commit. However, this will still
> > fail if HOSTTOOLS doesn't include 'aws' in bitbake.conf. I've
> > another
> > commit or two to fix that as well.
> > 
> > I've also DRYed up some of the error handling, removed the
> > hardcoded
> > aws and added some logging.
> > 
> > Signed-off-by: Elizabeth 'pidge' Flanagan <pidge at toganlabs.com>
> > ---
> >  lib/bb/fetch2/s3.py | 20 ++++++++++++++------
> >  1 file changed, 14 insertions(+), 6 deletions(-)
> > 
> > diff --git a/lib/bb/fetch2/s3.py b/lib/bb/fetch2/s3.py
> > index 27993aa..dbd86f4 100644
> > --- a/lib/bb/fetch2/s3.py
> > +++ b/lib/bb/fetch2/s3.py
> > @@ -34,6 +34,7 @@ import urllib.request, urllib.parse, urllib.error
> >  from bb.fetch2 import FetchMethod
> >  from bb.fetch2 import FetchError
> >  from bb.fetch2 import runfetchcmd
> > +from bb.fetch2 import logger
> >  
> >  class S3(FetchMethod):
> >      """Class to fetch urls via 'aws s3'"""
> > @@ -60,8 +61,13 @@ class S3(FetchMethod):
> >          Fetch urls
> >          Assumes localpath was called first
> >          """
> > -
> > -        cmd = 'aws s3 cp s3://%s%s %s' % (ud.host, ud.path,
> > ud.localpath)
> > +        if 'downloadfilename' in ud.parm:
> > +            dldir = d.getVar("DL_DIR", True)
> > +            bb.utils.mkdirhier(os.path.dirname(dldir + os.sep +
> > ud.localfile))
> > +            cmd = '%s cp s3://%s%s %s%s%s' %
> > (d.getVar("FETCHCMD_s3"), ud.host, ud.path, dldir, os.sep,
> > ud.localpath)
> > +        else:
> > +            cmd = '%s cp s3://%s%s %s' % (d.getVar("FETCHCMD_s3"),
> > ud.host, ud.path, ud.localpath)
> > +        logger.debug(2, "Fetching %s using command '%s'" %
> > (ud.url,
> > cmd))
> Do you actually need/use FETCHCMD_s3 ?
> 

I use it so I can rip out aws-cli and use s3cmd.

-b

> I'd prefer not to add this unless we really do need it.
> 
> Cheers,
> 
> Richard




More information about the bitbake-devel mailing list