summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
authorYu Ke <ke.yu@intel.com>2011-01-19 00:58:42 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-02 17:13:30 +0000
commitaffcfe468a0c2993c0c4ace446248f85aee4315f (patch)
tree29c29bdb2f45b5208f600511f2e07bf44866e1d7 /bitbake/lib/bb
parent05048e0f9168ceb7d66f6ac79dcae42f1e696826 (diff)
downloadpoky-affcfe468a0c2993c0c4ace446248f85aee4315f.tar.gz
git.py: Remove the source tree tarball archives
Since we're now always providing the git source control files it becomes pointless to handle the tarballs of specific git revisions so drop this part of the fetcher. Signed-off-by: Yu Ke <ke.yu@intel.com>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/fetch2/git.py63
1 files changed, 5 insertions, 58 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 6e078a1f7f..07af02f061 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -70,18 +70,7 @@ class Git(Fetch):
70 if not ud.tag or ud.tag == "master": 70 if not ud.tag or ud.tag == "master":
71 ud.tag = self.latest_revision(url, ud, d) 71 ud.tag = self.latest_revision(url, ud, d)
72 72
73 subdir = ud.parm.get("subpath", "") 73 ud.localfile = ud.mirrortarball
74 if subdir != "":
75 if subdir.endswith("/"):
76 subdir = subdir[:-1]
77 subdirpath = os.path.join(ud.path, subdir);
78 else:
79 subdirpath = ud.path;
80
81 if 'fullclone' in ud.parm:
82 ud.localfile = ud.mirrortarball
83 else:
84 ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, subdirpath.replace('/', '.'), ud.tag), d)
85 74
86 if 'noclone' in ud.parm: 75 if 'noclone' in ud.parm:
87 ud.localfile = None 76 ud.localfile = None
@@ -94,8 +83,6 @@ class Git(Fetch):
94 return True 83 return True
95 if 'noclone' in ud.parm: 84 if 'noclone' in ud.parm:
96 return False 85 return False
97 if os.path.exists(ud.localpath):
98 return False
99 if not self._contains_ref(ud.tag, d): 86 if not self._contains_ref(ud.tag, d):
100 return True 87 return True
101 return False 88 return False
@@ -120,6 +107,8 @@ class Git(Fetch):
120 107
121 repofile = os.path.join(data.getVar("DL_DIR", d, 1), ud.mirrortarball) 108 repofile = os.path.join(data.getVar("DL_DIR", d, 1), ud.mirrortarball)
122 109
110 ud.repochanged = not os.path.exists(repofile)
111
123 # If the checkout doesn't exist and the mirror tarball does, extract it 112 # If the checkout doesn't exist and the mirror tarball does, extract it
124 if not os.path.exists(ud.clonedir) and os.path.exists(repofile): 113 if not os.path.exists(ud.clonedir) and os.path.exists(repofile):
125 bb.mkdirhier(ud.clonedir) 114 bb.mkdirhier(ud.clonedir)
@@ -144,60 +133,18 @@ class Git(Fetch):
144 runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d) 133 runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d)
145 runfetchcmd("%s prune-packed" % ud.basecmd, d) 134 runfetchcmd("%s prune-packed" % ud.basecmd, d)
146 runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d) 135 runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
136 ud.repochanged = True
147 137
148 def build_mirror_data(self, url, ud, d): 138 def build_mirror_data(self, url, ud, d):
149 # Generate a mirror tarball if needed 139 # Generate a mirror tarball if needed
150 coname = '%s' % (ud.tag)
151 codir = os.path.join(ud.clonedir, coname)
152 repofile = os.path.join(data.getVar("DL_DIR", d, 1), ud.mirrortarball) 140 repofile = os.path.join(data.getVar("DL_DIR", d, 1), ud.mirrortarball)
153 141
154 os.chdir(ud.clonedir) 142 os.chdir(ud.clonedir)
155 mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) 143 mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
156 if mirror_tarballs != "0" or 'fullclone' in ud.parm: 144 if (mirror_tarballs != "0" or 'fullclone' in ud.parm) and ud.repochanged:
157 logger.info("Creating tarball of git repository") 145 logger.info("Creating tarball of git repository")
158 runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d) 146 runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d)
159 147
160 if 'fullclone' in ud.parm:
161 return
162
163 if os.path.exists(codir):
164 bb.utils.prunedir(codir)
165
166 subdir = ud.parm.get("subpath", "")
167 if subdir != "":
168 if subdir.endswith("/"):
169 subdirbase = os.path.basename(subdir[:-1])
170 else:
171 subdirbase = os.path.basename(subdir)
172 else:
173 subdirbase = ""
174
175 if subdir != "":
176 readpathspec = ":%s" % (subdir)
177 codir = os.path.join(codir, "git")
178 coprefix = os.path.join(codir, subdirbase, "")
179 else:
180 readpathspec = ""
181 coprefix = os.path.join(codir, "git", "")
182
183 scmdata = ud.parm.get("scmdata", "")
184 if scmdata == "keep":
185 runfetchcmd("%s clone -n %s %s" % (ud.basecmd, ud.clonedir, coprefix), d)
186 os.chdir(coprefix)
187 runfetchcmd("%s checkout -q -f %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
188 else:
189 bb.mkdirhier(codir)
190 os.chdir(ud.clonedir)
191 runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
192 runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d)
193
194 os.chdir(codir)
195 logger.info("Creating tarball of git checkout")
196 runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
197
198 os.chdir(ud.clonedir)
199 bb.utils.prunedir(codir)
200
201 def unpack(self, ud, destdir, d): 148 def unpack(self, ud, destdir, d):
202 """ unpack the downloaded src to destdir""" 149 """ unpack the downloaded src to destdir"""
203 150