Merge lp:~broder/ubuntu-dev-tools/update-builder into lp:~ubuntu-dev/ubuntu-dev-tools/trunk

Proposed by Evan Broder
Status: Merged
Merged at revision: 834
Proposed branch: lp:~broder/ubuntu-dev-tools/update-builder
Merge into: lp:~ubuntu-dev/ubuntu-dev-tools/trunk
Diff against target: 174 lines (+71/-5)
6 files modified
backportpackage (+10/-0)
debian/changelog (+3/-1)
doc/backportpackage.1 (+3/-0)
doc/sponsor-patch.1 (+3/-0)
sponsor-patch (+17/-4)
ubuntutools/builder.py (+35/-0)
To merge this branch: bzr merge lp:~broder/ubuntu-dev-tools/update-builder
Reviewer Review Type Date Requested Status
Ubuntu Development Team Pending
Review via email: mp+44019@code.launchpad.net

This proposal supersedes a proposal from 2010-12-17.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'backportpackage'
--- backportpackage 2010-12-16 22:43:48 +0000
+++ backportpackage 2010-12-17 09:51:10 +0000
@@ -64,6 +64,11 @@
64 default=None,64 default=None,
65 help='Specify the package builder (default: pbuilder)',65 help='Specify the package builder (default: pbuilder)',
66 metavar='BUILDER')66 metavar='BUILDER')
67 p.add_option('-U', '--update',
68 dest='update',
69 default=False,
70 action='store_true',
71 help='Update the build environment before attempting to build')
67 p.add_option('-u', '--upload',72 p.add_option('-u', '--upload',
68 dest='upload',73 dest='upload',
69 help='Specify an upload destination',74 help='Specify an upload destination',
@@ -182,6 +187,11 @@
182 if not builder:187 if not builder:
183 return188 return
184189
190 if opts.update:
191 if 0 != builder.update(release):
192 error('Failed to update %s chroot for %s.' % \
193 (release, builder.get_name()))
194
185 return builder.build(os.path.join(workdir,195 return builder.build(os.path.join(workdir,
186 '%s_%s.dsc' % (package, bp_version)),196 '%s_%s.dsc' % (package, bp_version)),
187 release,197 release,
188198
=== modified file 'debian/changelog'
--- debian/changelog 2010-12-16 22:43:48 +0000
+++ debian/changelog 2010-12-17 09:51:10 +0000
@@ -14,8 +14,10 @@
1414
15 [ Evan Broder ]15 [ Evan Broder ]
16 * backportpackage: new script for testing backport requests in a PPA.16 * backportpackage: new script for testing backport requests in a PPA.
17 * sponsor-patch: Add --update option to make sure build environment is
18 up to date (LP: #689605)
1719
18 -- Benjamin Drung <bdrung@ubuntu.com> Thu, 16 Dec 2010 23:40:14 +010020 -- Evan Broder <evan@ebroder.net> Fri, 17 Dec 2010 01:46:50 -0800
1921
20ubuntu-dev-tools (0.107) experimental; urgency=low22ubuntu-dev-tools (0.107) experimental; urgency=low
2123
2224
=== modified file 'doc/backportpackage.1'
--- doc/backportpackage.1 2010-12-16 09:05:29 +0000
+++ doc/backportpackage.1 2010-12-17 09:51:10 +0000
@@ -33,6 +33,9 @@
33\fBpbuilder\fR(8) and \fBsbuild\fR(1). This overrides33\fBpbuilder\fR(8) and \fBsbuild\fR(1). This overrides
34\fBUBUNTUTOOLS_BUILDER\fR. The default is \fBpbuilder\fR(8).34\fBUBUNTUTOOLS_BUILDER\fR. The default is \fBpbuilder\fR(8).
35.TP35.TP
36.B \-U, \-\-update
37Update the builder environment before attempting to build.
38.TP
36.B \-u \fIUPLOAD\fR, \-\-upload=\fIUPLOAD\fR39.B \-u \fIUPLOAD\fR, \-\-upload=\fIUPLOAD\fR
37Upload to \fIUPLOAD\fR with \fBdput\fR(1) (after confirmation).40Upload to \fIUPLOAD\fR with \fBdput\fR(1) (after confirmation).
38.TP41.TP
3942
=== modified file 'doc/sponsor-patch.1'
--- doc/sponsor-patch.1 2010-12-16 22:43:48 +0000
+++ doc/sponsor-patch.1 2010-12-17 09:51:10 +0000
@@ -77,6 +77,9 @@
77.B \-u \fIDEST\fR, \fB\-\-upload\fR=\fIDEST77.B \-u \fIDEST\fR, \fB\-\-upload\fR=\fIDEST
78Upload to \fIDEST\fR with \fBdput\fR(1) (after confirmation).78Upload to \fIDEST\fR with \fBdput\fR(1) (after confirmation).
79.TP79.TP
80.BR \-U ", " \-\-update
81Make sure the build environment is up to date before building.
82.TP
80.BR \-v ", " \-\-verbose83.BR \-v ", " \-\-verbose
81Print more information.84Print more information.
82.TP85.TP
8386
=== modified file 'sponsor-patch'
--- sponsor-patch 2010-12-13 03:45:52 +0000
+++ sponsor-patch 2010-12-17 09:51:10 +0000
@@ -409,8 +409,8 @@
409 edit = True409 edit = True
410 return edit410 return edit
411411
412def main(script_name, bug_number, build, edit, keyid, upload, workdir, builder,412def main(script_name, bug_number, update, build, edit, keyid, upload, workdir,
413 verbose=False):413 builder, verbose=False):
414 workdir = os.path.expanduser(workdir)414 workdir = os.path.expanduser(workdir)
415 if not os.path.isdir(workdir):415 if not os.path.isdir(workdir):
416 try:416 try:
@@ -598,6 +598,15 @@
598 continue598 continue
599599
600 if build:600 if build:
601 if update:
602 ret = builder.update()
603 if ret != 0:
604 Logger.error("Failed to update %s chroot for %s." % \
605 (changelog.distributions,
606 builder.get_name()))
607 ask_for_manual_fixing()
608 continue
609
601 buildresult = os.path.join(workdir, task.package + "-buildresult")610 buildresult = os.path.join(workdir, task.package + "-buildresult")
602 if not os.path.isdir(buildresult):611 if not os.path.isdir(buildresult):
603 os.makedirs(buildresult)612 os.makedirs(buildresult)
@@ -706,6 +715,9 @@
706 dest="sponsoring", action="store_true", default=False)715 dest="sponsoring", action="store_true", default=False)
707 parser.add_option("-u", "--upload", dest="upload", default=None,716 parser.add_option("-u", "--upload", dest="upload", default=None,
708 help="Specify an upload destination (default none).")717 help="Specify an upload destination (default none).")
718 parser.add_option("-U", "--update", dest="update", default=False,
719 action="store_true",
720 help="Update builder chroot before building")
709 parser.add_option("-v", "--verbose", help="print more information",721 parser.add_option("-v", "--verbose", help="print more information",
710 dest="verbose", action="store_true", default=False)722 dest="verbose", action="store_true", default=False)
711 parser.add_option("-w", "--workdir", dest="workdir",723 parser.add_option("-w", "--workdir", dest="workdir",
@@ -737,5 +749,6 @@
737 options.build = True749 options.build = True
738 options.upload = "ubuntu"750 options.upload = "ubuntu"
739751
740 main(script_name, bug_number, options.build, options.edit, options.keyid,752 main(script_name, bug_number, options.update, options.build, options.edit,
741 options.upload, options.workdir, builder, options.verbose)753 options.keyid, options.upload, options.workdir, builder,
754 options.verbose)
742755
=== modified file 'ubuntutools/builder.py'
--- ubuntutools/builder.py 2010-12-13 04:20:40 +0000
+++ ubuntutools/builder.py 2010-12-17 09:51:10 +0000
@@ -50,6 +50,11 @@
50 Logger.command(cmd)50 Logger.command(cmd)
51 return subprocess.call(cmd)51 return subprocess.call(cmd)
5252
53 def update(self, dist):
54 cmd = ["sudo", "-E", "DIST=" + dist, "pbuilder", "--update"]
55 Logger.command(cmd)
56 return subprocess.call(cmd)
57
5358
54class Sbuild(Builder):59class Sbuild(Builder):
55 def __init__(self):60 def __init__(self):
@@ -67,6 +72,36 @@
67 os.chdir(workdir)72 os.chdir(workdir)
68 return result73 return result
6974
75 def update(self, dist):
76 cmd = ["schroot", "--list"]
77 Logger.command(cmd)
78 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
79 chroots, _ = p.communicate()
80 chroots = chroots.strip().split()
81 if p.returncode != 0:
82 return p.returncode
83
84 params = {"dist": dist,
85 "arch": self.architecture}
86 for chroot in ("%(dist)s-%(arch)s-sbuild-source",
87 "%(dist)s-sbuild-source",
88 "%(dist)s-%(arch)s-source",
89 "%(dist)s-source"):
90 chroot = chroot % params
91 if chroot in chroots:
92 break
93 else:
94 return 1
95
96 commands = [["sbuild-update"],
97 ["sbuild-distupgrade"],
98 ["sbuild-clean", "-a", "-c"]]
99 for cmd in commands:
100 Logger.command(cmd + [chroot])
101 ret = subprocess.call(cmd + [chroot])
102 if ret != 0:
103 return ret
104
70105
71def getBuilder(builder=None):106def getBuilder(builder=None):
72 if not builder:107 if not builder:

Subscribers

People subscribed via source and target branches

to status/vote changes: