diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/hg.py')
| -rw-r--r-- | bitbake/lib/bb/fetch2/hg.py | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/bitbake/lib/bb/fetch2/hg.py b/bitbake/lib/bb/fetch2/hg.py index 3b743ff51d..20df8016da 100644 --- a/bitbake/lib/bb/fetch2/hg.py +++ b/bitbake/lib/bb/fetch2/hg.py | |||
| @@ -169,25 +169,22 @@ class Hg(FetchMethod): | |||
| 169 | # If the checkout doesn't exist and the mirror tarball does, extract it | 169 | # If the checkout doesn't exist and the mirror tarball does, extract it |
| 170 | if not os.path.exists(ud.pkgdir) and os.path.exists(ud.fullmirror): | 170 | if not os.path.exists(ud.pkgdir) and os.path.exists(ud.fullmirror): |
| 171 | bb.utils.mkdirhier(ud.pkgdir) | 171 | bb.utils.mkdirhier(ud.pkgdir) |
| 172 | os.chdir(ud.pkgdir) | 172 | runfetchcmd("tar -xzf %s" % (ud.fullmirror), d, workdir=ud.pkgdir) |
| 173 | runfetchcmd("tar -xzf %s" % (ud.fullmirror), d) | ||
| 174 | 173 | ||
| 175 | if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK): | 174 | if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK): |
| 176 | # Found the source, check whether need pull | 175 | # Found the source, check whether need pull |
| 177 | updatecmd = self._buildhgcommand(ud, d, "update") | 176 | updatecmd = self._buildhgcommand(ud, d, "update") |
| 178 | os.chdir(ud.moddir) | ||
| 179 | logger.debug(1, "Running %s", updatecmd) | 177 | logger.debug(1, "Running %s", updatecmd) |
| 180 | try: | 178 | try: |
| 181 | runfetchcmd(updatecmd, d) | 179 | runfetchcmd(updatecmd, d, workdir=ud.moddir) |
| 182 | except bb.fetch2.FetchError: | 180 | except bb.fetch2.FetchError: |
| 183 | # Runnning pull in the repo | 181 | # Runnning pull in the repo |
| 184 | pullcmd = self._buildhgcommand(ud, d, "pull") | 182 | pullcmd = self._buildhgcommand(ud, d, "pull") |
| 185 | logger.info("Pulling " + ud.url) | 183 | logger.info("Pulling " + ud.url) |
| 186 | # update sources there | 184 | # update sources there |
| 187 | os.chdir(ud.moddir) | ||
| 188 | logger.debug(1, "Running %s", pullcmd) | 185 | logger.debug(1, "Running %s", pullcmd) |
| 189 | bb.fetch2.check_network_access(d, pullcmd, ud.url) | 186 | bb.fetch2.check_network_access(d, pullcmd, ud.url) |
| 190 | runfetchcmd(pullcmd, d) | 187 | runfetchcmd(pullcmd, d, workdir=ud.moddir) |
| 191 | try: | 188 | try: |
| 192 | os.unlink(ud.fullmirror) | 189 | os.unlink(ud.fullmirror) |
| 193 | except OSError as exc: | 190 | except OSError as exc: |
| @@ -200,17 +197,15 @@ class Hg(FetchMethod): | |||
| 200 | logger.info("Fetch " + ud.url) | 197 | logger.info("Fetch " + ud.url) |
| 201 | # check out sources there | 198 | # check out sources there |
| 202 | bb.utils.mkdirhier(ud.pkgdir) | 199 | bb.utils.mkdirhier(ud.pkgdir) |
| 203 | os.chdir(ud.pkgdir) | ||
| 204 | logger.debug(1, "Running %s", fetchcmd) | 200 | logger.debug(1, "Running %s", fetchcmd) |
| 205 | bb.fetch2.check_network_access(d, fetchcmd, ud.url) | 201 | bb.fetch2.check_network_access(d, fetchcmd, ud.url) |
| 206 | runfetchcmd(fetchcmd, d) | 202 | runfetchcmd(fetchcmd, d, workdir=ud.pkgdir) |
| 207 | 203 | ||
| 208 | # Even when we clone (fetch), we still need to update as hg's clone | 204 | # Even when we clone (fetch), we still need to update as hg's clone |
| 209 | # won't checkout the specified revision if its on a branch | 205 | # won't checkout the specified revision if its on a branch |
| 210 | updatecmd = self._buildhgcommand(ud, d, "update") | 206 | updatecmd = self._buildhgcommand(ud, d, "update") |
| 211 | os.chdir(ud.moddir) | ||
| 212 | logger.debug(1, "Running %s", updatecmd) | 207 | logger.debug(1, "Running %s", updatecmd) |
| 213 | runfetchcmd(updatecmd, d) | 208 | runfetchcmd(updatecmd, d, workdir=ud.moddir) |
| 214 | 209 | ||
| 215 | def clean(self, ud, d): | 210 | def clean(self, ud, d): |
| 216 | """ Clean the hg dir """ | 211 | """ Clean the hg dir """ |
| @@ -246,10 +241,9 @@ class Hg(FetchMethod): | |||
| 246 | if os.path.islink(ud.fullmirror): | 241 | if os.path.islink(ud.fullmirror): |
| 247 | os.unlink(ud.fullmirror) | 242 | os.unlink(ud.fullmirror) |
| 248 | 243 | ||
| 249 | os.chdir(ud.pkgdir) | ||
| 250 | logger.info("Creating tarball of hg repository") | 244 | logger.info("Creating tarball of hg repository") |
| 251 | runfetchcmd("tar -czf %s %s" % (ud.fullmirror, ud.module), d) | 245 | runfetchcmd("tar -czf %s %s" % (ud.fullmirror, ud.module), d, workdir=ud.pkgdir) |
| 252 | runfetchcmd("touch %s.done" % (ud.fullmirror), d) | 246 | runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=ud.pkgdir) |
| 253 | 247 | ||
| 254 | def localpath(self, ud, d): | 248 | def localpath(self, ud, d): |
| 255 | return ud.pkgdir | 249 | return ud.pkgdir |
| @@ -269,10 +263,8 @@ class Hg(FetchMethod): | |||
| 269 | logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'") | 263 | logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'") |
| 270 | runfetchcmd("%s init %s" % (ud.basecmd, codir), d) | 264 | runfetchcmd("%s init %s" % (ud.basecmd, codir), d) |
| 271 | logger.debug(2, "Unpack: updating source in '" + codir + "'") | 265 | logger.debug(2, "Unpack: updating source in '" + codir + "'") |
| 272 | os.chdir(codir) | 266 | runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir) |
| 273 | runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d) | 267 | runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir) |
| 274 | runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d) | ||
| 275 | else: | 268 | else: |
| 276 | logger.debug(2, "Unpack: extracting source to '" + codir + "'") | 269 | logger.debug(2, "Unpack: extracting source to '" + codir + "'") |
| 277 | os.chdir(ud.moddir) | 270 | runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d, workdir=ud.moddir) |
| 278 | runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d) | ||
