diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-02-10 15:14:49 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-02-10 15:24:31 +0000 |
| commit | 59a08262aba2d2b9b8b299a2818fb4cfe13b9909 (patch) | |
| tree | f0bbb476887e74ce2aade34bc0f62cff130ed250 /bitbake/lib/bb/fetch2/git.py | |
| parent | 5cac57179144e761eec6ccd8ffa43d5d9876fa04 (diff) | |
| download | poky-59a08262aba2d2b9b8b299a2818fb4cfe13b9909.tar.gz | |
bitbake/fetch2/git: Write mirror tarballs if enabled and they don't exist, also set a default value for mirror tarball generation
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
| -rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 4cb6693505..6d99406777 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
| @@ -67,6 +67,7 @@ class Git(FetchMethod): | |||
| 67 | 67 | ||
| 68 | gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.')) | 68 | gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.')) |
| 69 | ud.mirrortarball = 'git2_%s.tar.gz' % (gitsrcname) | 69 | ud.mirrortarball = 'git2_%s.tar.gz' % (gitsrcname) |
| 70 | ud.fullmirror = os.path.join(data.getVar("DL_DIR", d, True), ud.mirrortarball) | ||
| 70 | ud.clonedir = os.path.join(data.expand('${GITDIR}', d), gitsrcname) | 71 | ud.clonedir = os.path.join(data.expand('${GITDIR}', d), gitsrcname) |
| 71 | 72 | ||
| 72 | ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git" | 73 | ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git" |
| @@ -76,6 +77,8 @@ class Git(FetchMethod): | |||
| 76 | if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): | 77 | if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): |
| 77 | ud.revisions[name] = self.latest_revision(ud.url, ud, d, name) | 78 | ud.revisions[name] = self.latest_revision(ud.url, ud, d, name) |
| 78 | 79 | ||
| 80 | ud.write_tarballs = (data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0" | ||
| 81 | |||
| 79 | ud.localfile = ud.clonedir | 82 | ud.localfile = ud.clonedir |
| 80 | 83 | ||
| 81 | def localpath(self, url, ud, d): | 84 | def localpath(self, url, ud, d): |
| @@ -88,6 +91,8 @@ class Git(FetchMethod): | |||
| 88 | for name in ud.names: | 91 | for name in ud.names: |
| 89 | if not self._contains_ref(ud.revisions[name], d): | 92 | if not self._contains_ref(ud.revisions[name], d): |
| 90 | return True | 93 | return True |
| 94 | if ud.write_tarballs and not os.path.exists(ud.fullmirror): | ||
| 95 | return True | ||
| 91 | return False | 96 | return False |
| 92 | 97 | ||
| 93 | def try_premirror(self, u, ud, d): | 98 | def try_premirror(self, u, ud, d): |
| @@ -107,15 +112,13 @@ class Git(FetchMethod): | |||
| 107 | else: | 112 | else: |
| 108 | username = "" | 113 | username = "" |
| 109 | 114 | ||
| 110 | repofile = os.path.join(data.getVar("DL_DIR", d, True), ud.mirrortarball) | 115 | ud.repochanged = not os.path.exists(ud.fullmirror) |
| 111 | |||
| 112 | ud.repochanged = not os.path.exists(repofile) | ||
| 113 | 116 | ||
| 114 | # If the checkout doesn't exist and the mirror tarball does, extract it | 117 | # If the checkout doesn't exist and the mirror tarball does, extract it |
| 115 | if not os.path.exists(ud.clonedir) and os.path.exists(repofile): | 118 | if not os.path.exists(ud.clonedir) and os.path.exists(ud.fullmirror): |
| 116 | bb.mkdirhier(ud.clonedir) | 119 | bb.mkdirhier(ud.clonedir) |
| 117 | os.chdir(ud.clonedir) | 120 | os.chdir(ud.clonedir) |
| 118 | runfetchcmd("tar -xzf %s" % (repofile), d) | 121 | runfetchcmd("tar -xzf %s" % (ud.fullmirror), d) |
| 119 | 122 | ||
| 120 | # If the repo still doesn't exist, fallback to cloning it | 123 | # If the repo still doesn't exist, fallback to cloning it |
| 121 | if not os.path.exists(ud.clonedir): | 124 | if not os.path.exists(ud.clonedir): |
| @@ -144,13 +147,10 @@ class Git(FetchMethod): | |||
| 144 | 147 | ||
| 145 | def build_mirror_data(self, url, ud, d): | 148 | def build_mirror_data(self, url, ud, d): |
| 146 | # Generate a mirror tarball if needed | 149 | # Generate a mirror tarball if needed |
| 147 | repofile = os.path.join(data.getVar("DL_DIR", d, True), ud.mirrortarball) | 150 | if ud.write_tarballs and (ud.repochanged or not os.path.exists(ud.fullmirror)): |
| 148 | 151 | os.chdir(ud.clonedir) | |
| 149 | os.chdir(ud.clonedir) | ||
| 150 | mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) | ||
| 151 | if mirror_tarballs != "0" and ud.repochanged: | ||
| 152 | logger.info("Creating tarball of git repository") | 152 | logger.info("Creating tarball of git repository") |
| 153 | runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".") ), d) | 153 | runfetchcmd("tar -czf %s %s" % (ud.fullmirror, os.path.join(".") ), d) |
| 154 | 154 | ||
| 155 | def unpack(self, ud, destdir, d): | 155 | def unpack(self, ud, destdir, d): |
| 156 | """ unpack the downloaded src to destdir""" | 156 | """ unpack the downloaded src to destdir""" |
