794 Commits

Author SHA1 Message Date
Cody Shepherd
7981a08c2c
Install packages and perform dist-upgrade necessary for secure xenial
bootable-buildd image
2020-10-06 10:20:44 -07:00
Cody Shepherd
2d9243e499
Fork buildd disk-image-uefi hook from the ubuntu-cpc/base/
disk-image-uefi hook; it was originally a backported fork of the hook
from the ubuntu/focal branch
2020-10-06 10:20:44 -07:00
Cody Shepherd
bd20b4321b
Set ports/archive as appropriate for default mirror 2020-10-06 10:20:43 -07:00
Cody Shepherd
0e66c9e3f0
Set a default archive mirror 2020-10-06 10:20:43 -07:00
Cody Shepherd
e30aefc83b
Only build bootable buildd images for amd64. 2020-10-06 10:20:43 -07:00
Cody Shepherd
9b93c0c613
Properly setup the chroot before using the network in buildd hook. 2020-10-06 10:20:42 -07:00
Cody Shepherd
9b1fe7a820
Fix broken DNS in buildd image builds.
Instead of injecting an empty resolv.conf with an includes.chroot, we'll
inject it in late with a hook. The empty resolv.conf breaks DNS early in
the build, and causes some binary hooks to fail
2020-10-06 10:20:42 -07:00
Cody Shepherd
a29e886fe1
Include empty resolv.conf only in buildd lxd tarballs. 2020-10-06 10:20:41 -07:00
Cody Shepherd
172a7dd55c
Add hooks to build bootable buildd images
Only install policyrd-script-zg2 in lxd tarball
2020-10-06 10:20:41 -07:00
Cody Shepherd
934cb358e1
Enable building buildd artifacts with an ext4 image target 2020-10-06 10:20:32 -07:00
Cody Shepherd
c279a93b1b
Omit --no-install-recommends flag and ubuntu-server from install 2020-09-16 13:00:55 -06:00
Cody Shepherd
78fe4394c1
Install grub-legacy-ec2 for all ubuntu-cpc (LP #1888575) 2020-09-16 11:24:58 -06:00
Robert C Jennings
8789997c4b
Backport snap preseed base support (LP: #1874834)
Xenial builds with core18-based snaps pre-seed core snap instead core18
and snapd.  This patch is a backport of snap pre-seeding functionality
that is snap base aware.
2020-04-24 11:31:23 -05:00
Brian Murray
2738ffc1b3 Merge remote-tracking branch 'rcj/feature/snap_cohort_key-xenial' into ubuntu/xenial 2020-03-06 01:23:33 -08:00
Robert C Jennings
ace52c572b
Use a snap cohort key for consistent parallel builds (LP: #1866159) 2020-03-05 08:21:47 +01:00
Michael Hudson-Doyle
d70309b7e0 Preserve apt preferences created by any package we install (i.e. ubuntu-advantage-tools) against live-build's attempt to delete them. (LP: #1855354) 2019-12-19 15:47:26 +13:00
Łukasz 'sil2100' Zemczak
baf2b5bcdd Backport enabling of adding extra snaps to ubuntu-core images via the EXTRA_SNAPS environment 2019-10-30 17:30:10 +01:00
Robert C Jennings
53e8eeaee3
magic-proxy: dump proxy log to stdout on failure (LP: #1847300)
When we encounter a failure in 'lb binary' the launchpad builders can
only surface the build output from stdout.  If the binary hook failure
implicates the archive we can not determine fault without the apt
proxy log.  This patch will dump the proxy log to stdout to aid in
debugging these failures.
2019-10-08 11:02:30 -05:00
Colin Watson
27ef9b07b4 Fix /dev/ptmx rather than excluding makedev
Revert exclusion of makedev from buildd chroots, as it turned out not to
be the problem.  Instead, fix up /dev/ptmx to be a character device node
rather than a symlink to /dev/pts/ptmx, in line with the discussion in
https://bugs.debian.org/817236; I think this is safer than
cherry-picking the fix to debootstrap at this point in a stable release
cycle.

LP: #1844504
2019-09-26 10:32:04 +01:00
Colin Watson
6049019a8b Fix exclusion of makedev from buildd chroots
debootstrap doesn't respect --exclude for "Priority: required" packages,
so we have to purge makedev later.

LP: #1844504
2019-09-24 14:31:40 +01:00
Colin Watson
566b3f3a3e Exclude makedev from buildd chroots
It was historically excluded, and apparently breaks some builds (e.g.
mir).
2019-09-17 13:42:33 +02:00
Robert C Jennings
ae9b91d124
ubuntu-cpc: use sys.exit() rather than quit() 2019-08-30 14:05:09 -05:00
Robert C Jennings
c3d1a92933
ubuntu-cpc: remove unused final.binary hook support
Right now this is a solution looking for a problem as the implementation
no longer relies on it.
2019-08-30 14:05:08 -05:00
Robert C Jennings
8f8ea8922e
ubuntu-cpc: rework image artifact cleanup
The livecd.ubuntu-cpc.ext4 that is present in each build (plus kernel
and initrd) are not renamed from /build/binary/boot/filsystem.ext4
and friends until after the binary hooks are run, so this patch moves
from trying to perform this cleanup in a binary hook.  Now the cleanup
will be run at the end of live-build/binary for the ubuntu-cpc project.
2019-08-30 14:05:08 -05:00
Robert C Jennings
9bea8296ee
ubuntu-cpc: Only produce explicitly named artifacts (LP: #1837254)
In parallel builds where a list of image targets are provided the build
may produce binaries that are not part of the named set of targets but
are created by series dependencies.  These implicitly created binaries
may be generated by multiple builds but are unused as our convention for
the ubuntu-cpc project is to only consume binaries from the explicitly
named image targets; this avoid overwriting the same object by multiple
parallel builds.

This patch adds support for a 'provides' keyword for series files. It can
be specified multiple times per series file.  The field is used by the
make-hooks script to generate a list of output files created explicitly by
the named image targets.  The list is saved to the "explicit_provides"
file in the hooks output directory. In the case of the "all" target
this list would be empty.  This list is consumed by the "final.binary"
hook file.

This patch adds support for optional final.binary hooks in hooks.d/base
and/or hooks.d/extra.  These final.binary hooks are always included as
the last hook(s) if either exist with the hook in "extra" running last.

The base/final.binary hook includes logic to parse the "explicit_provides"
file generated by the make-hooks script and remove any binary output not
explicitly specified.

Some series files named unnecessary dependencies, specifically
disk-image, to keep output of implicit artifacts consistent between
parallel builds.  These unnecessary dependencies are removed in this
patch.
2019-08-30 14:05:07 -05:00
Robert C Jennings
c10042acb0
ubuntu-cpc: Fixup comment references to file names post-parallelization 2019-05-21 17:07:03 -05:00
Robert C Jennings
996d7e20d5
ubuntu-cpc: Ensure base disk image is the same between all build targets
The following targets have livecd.ubuntu-cpc.manifest (and
livecd.ubuntu-cpc.ext4) which differ in some way from the 'all'
target. They are all missing grub-efi and other modifications:

root-dir
squashfs
tarball

These targets do not depend on the 'disk-image' target. This means that
the ext4 produced will lack the uefi modifications (and any from the
disk-image target binary hooks).

Since the ext4 file is common to all builds there is a chance that a
parallel build from one of these targets could overwrite this artifact.
This patch ensures that all targets will produce consistent base output.
2019-05-21 17:07:03 -05:00
Robert C Jennings
75a3b3e6ae
ubuntu-cpc: Allow comments in series files
An upcoming addition of the disk-image target to several series files will
required some explanation.  Without comment support in series files that
is not possible.  This patch adds support for comments in series files.
2019-05-21 17:07:03 -05:00
Ubuntu
aafa682254
Drop snap-tool
The cohort API used in the snap-tool has been dropped and
a replacement is needed.  Until then the code will be unused.
2019-05-21 17:07:03 -05:00
Robert C Jennings
77ae8d704f
ubuntu-cpc: parallel builds
* Replace "snap download" with tool that uses snap store's coherence feature

    This is important for parallel image builds to ensure all pre-seeded snaps
    have the same versions across image variants.

* Inject a proxy into the build providing a snapshot view of the package repo.

    When the REPO_SNAPSHOT_STAMP variable is set, the auto/build script will attempt
    to launch a transparent HTTP proxy on port 8080, and insert an iptables rule to
    redirect all outgoing HTTP requests to this proxy.

    The proxy, contained in the `magic-proxy` Python script, examines each request
    and silently overrides those pointing to InRelease files or files that are
    listed in InRelease files. It will instead provide the contents of the requested
    file as it was at REPO_SNAPSHOT_STAMP, by downloading the corresponding asset
    "by hash".

* Use series files with dependency handling to generate hook symlinks dynamically

    This patch currently only applies to the "ubuntu-cpc" project.

    More and more logic has been going into the hook scripts to decide
    under which conditions they should run or not. As we are moving
    to parallelized builds of image sets, this will get even more
    complicated. Base hooks will have to know which image sets they
    belong to and modification of the dependency chain between scripts
    will become more complicated and prone to errors, as the number of
    image sets grows.

    This patch introduces explicit ordering and dependency handling for
    scripts through the use of `series` files and an explicit syntax
    for dependency specification.
2019-05-21 17:06:59 -05:00
Balint Reczey
64985baafd Build WSL rootfs tarball
LP: #1827930
2019-05-17 14:03:03 +02:00
Steve Langasek
4e77d07a6c Also don't create the update-motd directory since we're not writing to it.
It will almost certainly be created at some point but we don't need to
create it here.
2019-04-08 11:51:40 -07:00
Steve Langasek
518b18db0f Drop /etc/update-motd.d/51-cloudguest from cloud images; this is not consistent with current Ubuntu Advantage product language. Any future customizations to update-motd for cloud images should be done via a package instead. 2019-04-08 11:51:38 -07:00
Colin Watson
493035c7d2 Make sure buildd images have a /usr/sbin/policy-rc.d symlink
Installing policyrcd-script-zg2 doesn't quite do this because of the way
that live-build installs its own temporary version of policy-rc.d.  The
only remotely sensible way I can see to deal with this is to create the
symlink manually.
2019-02-18 16:05:27 +00:00
Colin Watson
8414b699da Drop code to handle buildd images for != xenial 2019-02-05 14:23:10 +00:00
Colin Watson
6c9fc6f3ec Move buildd image building to binary hooks 2019-01-16 12:53:33 +00:00
Colin Watson
6e9d7f35ca Add a LXD image to builds for the buildd subproject 2019-01-16 12:53:33 +00:00
Colin Watson
aec5f3666a Add a buildd subproject 2019-01-16 12:53:30 +00:00
Balint Reczey
657500f59f Add .keep files to preserve empty directories 2018-12-12 15:35:18 +01:00
Cody Shepherd
1f05fbea69 Backport adding snaps to image manifests (LP: #1805497) 2018-11-27 11:53:59 -08:00
Steve Langasek
fef73e9a90 Merge lp:~rcj/livecd-rootfs/xenial-proposed 2018-11-16 08:37:10 -08:00
Cody Shepherd
1f990b1bf2 Fixing spelling error 2018-10-31 13:37:44 -07:00
Cody Shepherd
29324714c0 Improving modularity of moving around /etc/resolv.conf in order to make
some other fixes more future proof.
2018-10-31 11:52:20 -07:00
Łukasz 'sil2100' Zemczak
f64e3c9981 As Steve pointed out, the auto/build PREFIX change was a move, not an addition. 2018-10-29 17:57:43 +01:00
Robert C Jennings
91ba932fec Disable checksum generation (LP: #1799773) 2018-10-24 14:20:01 -05:00
Łukasz 'sil2100' Zemczak
49d1dce530 Merge trunk. 2018-10-24 17:02:04 +02:00
Łukasz 'sil2100' Zemczak
872d4f6e7f For the pc model, the name changed so we need to special case it a bit. 2018-10-11 17:13:35 +02:00
Łukasz 'sil2100' Zemczak
3291e971de The model assertions for 18 don't actually use series=18 because that would be too logical. 2018-10-10 21:59:36 +02:00
Daniel Watkins
64e90c0cca ubuntu-cpc: Handle a pre-existing /lib/modules in 030-root-tarball.hook (LP: #1797170). 2018-10-10 09:09:19 -07:00
Łukasz 'sil2100' Zemczak
706685a5a2 Backport support for building core images with ubuntu-image. 2018-10-04 19:33:10 +02:00