diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2019-03-14 17:28:17 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-03-24 17:01:34 +0000 |
commit | db91c23871054370c6921c6adccf870a946b2b9d (patch) | |
tree | 7cd7aa8e45a2b1e06ec26a32e62e70baa2767f63 /bitbake | |
parent | 4b2b3339dfdc3719cce93d43e3198edd9a332d16 (diff) | |
download | poky-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.py | 14 |
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 |