summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2019-03-14 17:28:17 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-03-24 17:01:34 +0000
commitdb91c23871054370c6921c6adccf870a946b2b9d (patch)
tree7cd7aa8e45a2b1e06ec26a32e62e70baa2767f63 /bitbake
parent4b2b3339dfdc3719cce93d43e3198edd9a332d16 (diff)
downloadpoky-db91c23871054370c6921c6adccf870a946b2b9d.tar.gz
bitbake: fetch2/git: Fix clean to remove clonedir
The localpath is a symlink to clonedir when it is cloned from a mirror, for example: $ bitbake systemtap-native -cfetch $ ls downloads/git2 sourceware.org.git.systemtap.git -> /path/to/downloads/git2/mirror.path.git.sourceware.org.git.systemtap.git mirror.path.git.sourceware.org.git.systemtap.git There are both sourceware.org.git.systemtap.git and mirror.path.git.sourceware.org.git.systemtap.git in DL_DIR/git2, the symlink sourceware.org.git.systemtap.git is created by try_mirror_url(), but do_cleanall" only removed the symlink, didn't remove the real dir mirror.path.git.sourceware.org.git.systemtap.git, this may cause confusions, for example, I assumed that do_cleanall removed everything, but it didn't, and it would the re-used next time when do_fetch. This patch fixes the problem. (Bitbake rev: 452e2200ad2c29dec3753f5f7a8cbc9183ec7dd8) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/git.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 1a8ebe3da8..cf8bee7382 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -522,9 +522,17 @@ class Git(FetchMethod):
522 def clean(self, ud, d): 522 def clean(self, ud, d):
523 """ clean the git directory """ 523 """ clean the git directory """
524 524
525 bb.utils.remove(ud.localpath, True) 525 to_remove = [ud.localpath, ud.fullmirror, ud.fullmirror + ".done"]
526 bb.utils.remove(ud.fullmirror) 526 # The localpath is a symlink to clonedir when it is cloned from a
527 bb.utils.remove(ud.fullmirror + ".done") 527 # mirror, so remove both of them.
528 if os.path.islink(ud.localpath):
529 clonedir = os.path.realpath(ud.localpath)
530 to_remove.append(clonedir)
531
532 for r in to_remove:
533 if os.path.exists(r):
534 bb.note('Removing %s' % r)
535 bb.utils.remove(r, True)
528 536
529 def supports_srcrev(self): 537 def supports_srcrev(self):
530 return True 538 return True