Use common error message for sponsor-patch and backportpackage.

This commit is contained in:
Benjamin Drung 2010-12-18 23:08:13 +01:00
parent a0ef5a7e20
commit 4afe3c8478
3 changed files with 26 additions and 15 deletions

View File

@ -205,8 +205,7 @@ def do_build(workdir, package, release, bp_version, builder, update):
if update:
if 0 != builder.update(release):
error('Failed to update %s chroot for %s.' % \
(release, builder.get_name()))
sys.exit(1)
return builder.build(os.path.join(workdir,
'%s_%s.dsc' % (package, bp_version)),
@ -248,7 +247,7 @@ def do_backport(workdir, package, dscfile, version, suffix, release, build,
if build:
if 0 != do_build(workdir, package, release, bp_version, builder, update):
error('Package failed to build; aborting')
sys.exit(1)
if upload:
do_upload(workdir, package, bp_version, upload, prompt)

View File

@ -35,12 +35,24 @@ class Builder(object):
if not os.path.isdir(result_directory):
os.makedirs(result_directory)
def build_failure(self, returncode, dsc_file):
if returncode != 0:
Logger.error("Failed to build %s from source with %s." % \
(os.path.basename(dsc_file), self.name))
return returncode
def get_architecture(self):
return self.architecture
def get_name(self):
return self.name
def update_failure(self, returncode, dist):
if returncode != 0:
Logger.error("Failed to update %s chroot for %s." % \
(dist, self.name))
return returncode
class Pbuilder(Builder):
def __init__(self):
@ -53,13 +65,15 @@ class Pbuilder(Builder):
"--distribution", dist, "--architecture", self.architecture,
"--buildresult", result_directory, dsc_file]
Logger.command(cmd)
return subprocess.call(cmd)
returncode = subprocess.call(cmd)
return self.build_failure(returncode, dsc_file)
def update(self, dist):
cmd = ["sudo", "-E", "DIST=" + dist, "pbuilder", "--update",
"--distribution", dist, "--architecture", self.architecture]
Logger.command(cmd)
return subprocess.call(cmd)
returncode = subprocess.call(cmd)
return self.update_failure(returncode, dist)
class Pbuilderdist(Builder):
@ -71,12 +85,14 @@ class Pbuilderdist(Builder):
cmd = ["pbuilder-dist", dist, self.architecture,
"build", dsc_file, "--buildresult", result_directory]
Logger.command(cmd)
return subprocess.call(cmd)
returncode = subprocess.call(cmd)
return self.build_failure(returncode, dsc_file)
def update(self, dist):
cmd = ["pbuilder-dist", dist, self.architecture, "update"]
Logger.command(cmd)
return subprocess.call(cmd)
returncode = subprocess.call(cmd)
return self.update_failure(returncode, dist)
class Sbuild(Builder):
@ -91,10 +107,10 @@ class Sbuild(Builder):
cmd = ["sbuild", "--arch-all", "--dist=" + dist,
"--arch=" + self.architecture, dsc_file]
Logger.command(cmd)
result = subprocess.call(cmd)
returncode = subprocess.call(cmd)
Logger.command(["cd", workdir])
os.chdir(workdir)
return result
return self.build_failure(returncode, dsc_file)
def update(self, dist):
cmd = ["schroot", "--list"]
@ -124,7 +140,8 @@ class Sbuild(Builder):
Logger.command(cmd + [chroot])
ret = subprocess.call(cmd + [chroot])
if ret != 0:
return ret
return self.update_failure(ret, dist)
return 0
def getBuilder(builder=None):

View File

@ -403,8 +403,6 @@ def main(bug_number, update, build, edit, keyid, upload, workdir, builder,
if update:
ret = builder.update(dist)
if ret != 0:
Logger.error("Failed to update %s chroot for %s." % \
(dist, builder.get_name()))
ask_for_manual_fixing()
break
# We want to update the build environment only once, but not
@ -414,9 +412,6 @@ def main(bug_number, update, build, edit, keyid, upload, workdir, builder,
# build package
result = builder.build(new_dsc_file, dist, buildresult)
if result != 0:
Logger.error("Failed to build %s from source with %s." % \
(os.path.basename(new_dsc_file),
builder.get_name()))
question = Question(["yes", "update", "retry", "no"])
answer = question.ask("Do you want to resolve this issue "
"manually", "yes")