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

Commit message:
Accept an "extra_ppas" entry in livefs arguments, which is passed to 
livecd-rootfs to request that the image be built against additional PPAs.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad-buildd/livefs-extra-ppas/+merge/220109

A requirement for the CI Airline is the ability to build live filesystems 
against additional PPAs, to make it possible to perform full-image tests before 
releasing the PPA contents.  Initially I'd hoped for this to be worked out from 
the build chroot's /etc/apt/sources.list, but the design of live-build does not 
make that remotely straightforward.  Instead, 
https://launchpad.net/ubuntu/+source/livecd-rootfs/2.213 lays the groundwork 
for passing the necessary extra PPAs explicitly.  This adds a little bit of 
glue to launchpad-buildd to pass through the relevant arguments.

After this, it is possible to build a full image with an additional PPA by 
passing e.g. "extra_ppas": ["ci-train-ppa-service/landing-011"] in the 
metadata_override dict that's passed to LiveFS.requestBuild.

Ideally, this would be calculated automatically by Launchpad when dispatching 
the build; after all this was most of the reason we added an archive column to 
LiveFSBuild.  However, this isn't strictly necessary, and if we do make those 
arrangements then it will still require the same code in launchpad-buildd.
-- 
https://code.launchpad.net/~cjwatson/launchpad-buildd/livefs-extra-ppas/+merge/220109
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~cjwatson/launchpad-buildd/livefs-extra-ppas into lp:launchpad-buildd.
=== modified file 'buildlivefs'
--- buildlivefs	2013-12-13 12:49:36 +0000
+++ buildlivefs	2014-05-19 16:50:34 +0000
@@ -148,6 +148,8 @@
                 lb_env["IMAGEFORMAT"] = self.options.image_format
             if self.options.proposed:
                 lb_env["PROPOSED"] = "1"
+            if self.options.extra_ppas:
+                lb_env["EXTRA_PPAS"] = "\n".join(self.options.extra_ppas)
             self.run_build_command(["lb", "config"], env=lb_env)
             self.run_build_command(["lb", "build"], env=base_lb_env)
 
@@ -175,6 +177,9 @@
     parser.add_option(
         "--locale", metavar="LOCALE",
         help="use ubuntu-defaults-image to build an image for LOCALE")
+    parser.add_option(
+        "--extra-ppa", dest="extra_ppas", default=[], action="append",
+        help="use this additional PPA")
     options, _ = parser.parse_args()
 
     builder = LiveFSBuilder(options)

=== modified file 'lpbuildd/livefs.py'
--- lpbuildd/livefs.py	2014-05-03 14:48:19 +0000
+++ lpbuildd/livefs.py	2014-05-19 16:50:34 +0000
@@ -47,6 +47,7 @@
         self.image_format = extra_args.get("image_format")
         self.proposed = extra_args.get("proposed", False)
         self.locale = extra_args.get("locale")
+        self.extra_ppas = extra_args.get("extra_ppas", [])
 
         super(LiveFilesystemBuildManager, self).initiate(
             files, chroot, extra_args)
@@ -72,6 +73,8 @@
             args.append("--proposed")
         if self.locale:
             args.extend(["--locale", self.locale])
+        for ppa in self.extra_ppas:
+            args.extend(["--extra-ppa", ppa])
         self.runSubProcess(self.build_livefs_path, args)
 
     def iterate_BUILD_LIVEFS(self, retcode):

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to