[bitbake-devel] bitbake/fetch2: Improve stamp creation in mirror code
Submitted by Richard Purdie on May 13, 2012, 11:43 a.m.
|
Patch ID: 27527
Details
Commit Message
@@ -476,7 +476,6 @@ def try_mirrors(d, origud, mirrors, check = False):
if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
ud.method.download(newuri, ud, ld)
- open(ud.donestamp, 'w').close()
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(newuri, ud, ld)
@@ -490,6 +489,7 @@ def try_mirrors(d, origud, mirrors, check = False):
# If that tarball is a local file:// we need to provide a symlink to it
dldir = ld.getVar("DL_DIR", True)
if os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
+ open(ud.donestamp, 'w').close()
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
@@ -497,6 +497,7 @@ def try_mirrors(d, origud, mirrors, check = False):
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
os.symlink(ud.localpath, origud.localpath)
+ update_stamp(newuri, origud, ld)
return ud.localpath
except bb.fetch2.NetworkAccess:
Under certain conditions such as local file:// mirrors of all files, bitbake might not check checksums. This is not desirable and we should always check the checksum where possible. This only exception to this is the git mirror tarball case where the checksum is unknown but we need to create the .done stamp for other reasons. This patch preserves thta functionality but in a more specific section of code where this doesn't interfere in normal checksums. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>