← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~cjwatson/launchpad-buildd/fix-livefs-proposed into lp:launchpad-buildd

 

Colin Watson has proposed merging lp:~cjwatson/launchpad-buildd/fix-livefs-proposed into lp:launchpad-buildd.

Commit message:
Fix handling of livefs builds for the -proposed pocket.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad-buildd/fix-livefs-proposed/+merge/219961

I discovered in local testing that livefs builds against -proposed don't currently work, because setting SUITE=utopic-proposed in the environment causes live-build to try to debootstrap utopic-proposed, which doesn't work: debootstrap only takes series names.  This corrects our handling of this case, and as a bonus means that it's no longer necessary to set "proposed" to True in a metadata override for livefs builds against -proposed.

The alternative to this implementation would be to have Launchpad's LiveFSBuildBehaviour pass the series and pocket separately rather than as a single suite parameter, which does have some appeal.  However, that would require another launchpad-buildd rollout in production before we can make use of the Launchpad changes even for release pocket builds, which isn't currently necessary.  We can always refactor this later.
-- 
https://code.launchpad.net/~cjwatson/launchpad-buildd/fix-livefs-proposed/+merge/219961
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~cjwatson/launchpad-buildd/fix-livefs-proposed into lp:launchpad-buildd.
=== modified file 'buildlivefs'
--- buildlivefs	2013-12-13 12:49:36 +0000
+++ buildlivefs	2014-05-18 13:24:35 +0000
@@ -121,7 +121,7 @@
                 "ubuntu-defaults-image",
                 "--locale", self.options.locale,
                 "--arch", self.options.arch,
-                "--release", self.options.suite,
+                "--release", self.options.series,
                 ])
         else:
             self.run_build_command(["rm", "-rf", "auto"])
@@ -141,7 +141,7 @@
             if self.options.subarch is not None:
                 base_lb_env["SUBARCH"] = self.options.subarch
             lb_env = dict(base_lb_env)
-            lb_env["SUITE"] = self.options.suite
+            lb_env["SUITE"] = self.options.series
             if self.options.datestamp is not None:
                 lb_env["NOW"] = self.options.datestamp
             if self.options.image_format is not None:
@@ -165,7 +165,8 @@
     parser.add_option(
         "--subproject", metavar="SUBPROJECT",
         help="build for subproject SUBPROJECT")
-    parser.add_option("--suite", metavar="SUITE", help="build for suite SUITE")
+    parser.add_option(
+        "--series", metavar="SERIES", help="build for series SERIES")
     parser.add_option("--datestamp", help="date stamp")
     parser.add_option(
         "--image-format", metavar="FORMAT", help="produce an image in FORMAT")

=== modified file 'debian/changelog'
--- debian/changelog	2014-05-13 15:50:19 +0000
+++ debian/changelog	2014-05-18 13:24:35 +0000
@@ -1,3 +1,9 @@
+launchpad-buildd (123) UNRELEASED; urgency=medium
+
+  * Fix handling of livefs builds for the -proposed pocket.
+
+ -- Colin Watson <cjwatson@xxxxxxxxxx>  Sun, 18 May 2014 14:18:49 +0100
+
 launchpad-buildd (122) hardy; urgency=medium
 
   * Drop the status_dict XML-RPC method, now that the master uses the

=== modified file 'lpbuildd/livefs.py'
--- lpbuildd/livefs.py	2014-05-03 14:48:19 +0000
+++ lpbuildd/livefs.py	2014-05-18 13:24:35 +0000
@@ -42,10 +42,14 @@
         self.subarch = extra_args.get("subarch")
         self.project = extra_args["project"]
         self.subproject = extra_args.get("subproject")
-        self.suite = extra_args["suite"]
+        suite = extra_args["suite"]
+        if "-" in suite:
+            self.series, self.pocket = suite.rsplit("-", 1)
+        else:
+            self.series = suite
+            self.pocket = "release"
         self.datestamp = extra_args.get("datestamp")
         self.image_format = extra_args.get("image_format")
-        self.proposed = extra_args.get("proposed", False)
         self.locale = extra_args.get("locale")
 
         super(LiveFilesystemBuildManager, self).initiate(
@@ -63,12 +67,12 @@
         args.extend(["--project", self.project])
         if self.subproject:
             args.extend(["--subproject", self.subproject])
-        args.extend(["--suite", self.suite])
+        args.extend(["--series", self.series])
         if self.datestamp:
             args.extend(["--datestamp", self.datestamp])
         if self.image_format:
             args.extend(["--image-format", self.image_format])
-        if self.proposed:
+        if self.pocket == "proposed":
             args.append("--proposed")
         if self.locale:
             args.extend(["--locale", self.locale])


Follow ups