[yocto] how to set up PREMIRRORS_prepend to avoid constant git clones?

Robert P. J. Day rpjday at crashcourse.ca
Sat Mar 10 07:46:21 PST 2012


On Sat, 10 Mar 2012, Gary Thomas wrote:

> On 2012-03-10 08:29, Robert P. J. Day wrote:
> > On Sat, 10 Mar 2012, Gary Thomas wrote:
> >
> > > On 2012-03-10 06:39, Robert P. J. Day wrote:
> >
> > ... snip ...
> >
> > > >     $ bitbake -c fetchall core-image-minimal
> > > >
> > > > and got something unexpected:
> > > >
> > > > NOTE: package bash-4.2-r1: task do_fetch: Started
> > > > ERROR: Function failed: Network access disabled through BB_NO_NETWORK
> > > > but access rquested with command /usr/bin/env wget -t 5 -nv
> > > > --passive-ftp --no-check-certificate -P
> > > > /home/rpjday/yocto/builds/beag2/downloads
> > > > 'ftp://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-001' (for url
> > > > None)
> > > > ERROR: Logfile of failure stored in:
> > > > /home/rpjday/yocto/builds/beag2/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/bash-4.2-r1/temp/log.do_fetch.32479
> > > > Log data follows:
> > > > | DEBUG: Trying PREMIRRORS
> > > > ... snip ...
> > > >
> > > >     i can clearly see the problem -- while i have the bash tarball
> > > > itself in my own mirror, i don't have the patches to go with it, as
> > > > defined in the recipes file:
> > > >
> > > > SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
> > > >
> > > > ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-001;apply=yes;striplevel=0;name=patch001
> > > > \
> > > > ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-002;apply=yes;striplevel=0;name=patch002
> > > > \
> > > > ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-003;apply=yes;striplevel=0;name=patch003
> > > > \
> > > > ... etc etc ...
> > > >
> > > >     when i went looking for actual downloads in step 1, i just searched
> > > > for sizable tarballs or zip files, it never occurred to me to check
> > > > for patch files.  so i guess i just have to be more observant and
> > > > check for patch files as well (or anything else a recipe might want to
> > > > download).
> > > >
> > > >     so far, so good?
> > >
> > > I didn't check but this is often the recipe's fault.  It must specify
> > > an exact git SRCREV, not a tag, for the NO_NETWORK to be successful.
> >
> >    i'm not sure what you're saying here.  the patches are simple files,
> > nothing to do with git.  the bash source itself is properly being
> > fetched from my mirror -- it's the numerous patch files i was unaware
> > of that still require network access; that is, until i manually copied
> > them over to my mirror directory, and that solved the problem.
> >
> >    i just had to notice that the bash recipe downloaded a number of
> > patch files, then add them to my local mirror.
>
> Sorry, I misread.  Yes, you do need those patch files in your local mirror.
> In fact, if you look at ${BUILD}/downloads, every _file_ (not symlink) that's
> at the top level needs to be copied.  I manage this by running a script
> like this:
>   (cd downloads;find . -type f -maxdepth 1 | tar -cT - | tar -x -C ${DL_DIR})

  but doesn't that pick up all the ".done" files as well?  doesn't
hurt, but certainly unnecessary.

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the yocto mailing list