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

Gary Thomas gary at mlbassoc.com
Sat Mar 10 07:51:19 PST 2012


On 2012-03-10 08:46, Robert P. J. Day wrote:
> 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.

I said "something like" - add in "| grep -v .done" if you want to skip those.
I actually use a more complex script as there are some things I simply never
want to copy...

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



More information about the yocto mailing list