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

Gary Thomas gary at mlbassoc.com
Sat Mar 10 07:34:42 PST 2012


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})

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list