1146 Commits

Author SHA1 Message Date
Cody Shepherd
15a0b598d1 Only build bootable buildd images for amd64. 2020-03-19 13:43:33 -04:00
Cody Shepherd
a668e09ac4 Properly setup the chroot before using the network in buildd hook. 2020-03-19 13:43:33 -04:00
Cody Shepherd
6fed316068 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-03-19 13:43:33 -04:00
Cody Shepherd
b628d90ef8 Include empty resolv.conf only in buildd lxd tarballs. 2020-03-19 13:43:33 -04:00
Cody Shepherd
58962d67d0 Add hooks to build bootable buildd images
Only install policyrd-script-zg2 in lxd tarball
2020-03-19 13:43:33 -04:00
Cody Shepherd
686425a634 Enable building buildd artifacts with an ext4 image target 2020-03-19 13:43:33 -04:00
Robert C Jennings
15c419eafb
Fix core_snap variable scope issue
The prior change to pre-seed the correct base added a case to handle
installation of the core snap.  When that was added it created a case
where the $core_snap variable would not be defined when we reach the
end of the _snap_preseed function and evaluate if $core_snap is defined
by empty.  Previous if the snap to preseed was core or core18 then
$core_snap would be "" so this patch addresses that by ensuring the
variable exists and is empty by default.
2020-02-28 08:36:56 -06:00
Robert C Jennings
632ab2b982
Address snap base regression after snap-tool removal
With the removal of snap-tool failures are seen in image builds that do
not have the 'core' snap included by the seed.  This is the case for the
minimized subproject of the ubuntu-cpc project where lxd/core is removed.
In that subproject, any binary hook which adds a snap that is based
on 'core' will not add 'core' and fail 'snap debug validate-seed'.
snap-tool included the following logic in the 'snap-tool info' when
determining snap bases:

    # Have "base" initialized to something meaningful.
    if self.is_core_snap():
        snap_data["snap"]["base"] = ""
    elif snap_data["snap"].get("base") is None:
        snap_data["snap"]["base"] = "core"

The snap store does not return a base if the base is core which makes
this necessary.  This patch looks for the base in 'snap info' output
and if none is found (and the snap is not snapd or core) it assumes the
base is 'core' and installs it.  This restores the behavior lost in the
migration from snap-tool to snap cli.
2020-02-27 16:40:23 -06:00
Robert C Jennings
ec954a80b9
Use snap cli rather than custom snap-tool (LP: #1864252)
snap-tool was added to support a deprecate cohort-key feature of the
snap store.  Recent changes in snap assertions have added additional
fields which snap-tool is not retrieving.  This resulted in snap install
failures on first boot.

This patch removes snap-tool and returns to using the snap cli.
This ensures snap downloads will function without odd incompatibilities.
2020-02-27 16:39:06 -06:00
Steve Langasek
d516e68807 Stop building per-pi-flavor images and only build a pi generic image for core18. (LP: #1861520) 2020-02-27 12:17:28 -08:00
Łukasz 'sil2100' Zemczak
fcaa6d447c Ensure seed part. is mounted; wait for getty 2020-01-24 18:55:34 +01:00
Łukasz 'sil2100' Zemczak
efd428856b Switch raspi2-hwe-18.04-edge to raspi2-hwe-18.04. 2020-01-22 09:29:37 +01:00
Łukasz 'sil2100' Zemczak
89bcec68c5 Support generating a .disk/info file via ubuntu-image. 2020-01-22 09:20:21 +01:00
Łukasz 'sil2100' Zemczak
b47acc9456 Actually, modify 2.525.37 and re-release since the kernel flavour name was wrong. 2020-01-14 10:29:23 +01:00
Łukasz 'sil2100' Zemczak
38cfb82a84 Use the 5.3 kernel for the bionic raspi3 images. 2020-01-13 16:14:12 +01:00
Michael Hudson-Doyle
d381420065 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:45:17 +13:00
Łukasz 'sil2100' Zemczak
42f2ccd60a Enable core18 builds 2019-11-12 21:20:59 +01:00
Łukasz 'sil2100' Zemczak
f212eb9a73 Merge branch 'hyperv-bionic' of git+ssh://git.launchpad.net/~davidkrauser/livecd-rootfs/+git/livecd-rootfs into ubuntu/bionic 2019-11-12 21:17:15 +01:00
Łukasz 'sil2100' Zemczak
98f52a0f7b Support amd64+kassel in bionic 2019-10-30 18:12:18 +01:00
Łukasz 'sil2100' Zemczak
f38122e070 Support EXTRA_SNAPS 2019-10-23 16:02:36 +02:00
Łukasz 'sil2100' Zemczak
ce1b1cf815 Backport the 999-ubuntu-image-customization changes, add a delta on top to still support the old legacy raspi2 images. 2019-10-23 12:41:40 +02:00
Łukasz 'sil2100' Zemczak
f8dd8502ce Fix typo in auto/build regarding core builds. 2019-10-22 17:17:38 +02:00
David Krauser
78aa0844cf Fixing broken binary hook symlinks for hyperv gallery image builds. 2019-10-09 16:05:14 -04:00
Dimitri John Ledkov
f16cac1842 Unbreak cpc/server builds, by ensuring that includes are copied with archived symlinks, and only hooks resolve symlinks when getting copied. 2019-10-09 16:05:14 -04:00
David Krauser
335470331c Add support for HyperV Gallery images 2019-10-09 16:05:14 -04:00
Robert C Jennings
dda6e5953a
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:00:41 -05:00
Łukasz 'sil2100' Zemczak
73e3864f25 Backport the changes for Nitrogen6x board support. 2019-09-10 16:57:24 +02:00
Robert C Jennings
1f8eb7b8dc
ubuntu-cpc: use sys.exit() rather than quit() 2019-08-30 12:38:38 -05:00
Robert C Jennings
08e6f93a75
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 12:38:38 -05:00
Robert C Jennings
39fb950de2
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 12:38:37 -05:00
Robert C Jennings
f7cd30f59a
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 12:38:36 -05:00
Iain Lane
139983b8a1
live-build/functions: Seed core again on non-minimized builds
This is apparently still required; without it snapd gives an error
message like:

  stateengine.go:102: state ensure error: devicemgr: cannot proceed without seeding "core"

(cherry picked from commit 7f07cc899192b33c0eded30ffa514a6581df046e)
2019-07-16 11:42:20 +01:00
Michael Vogt
3b3fe0fce8
Run "snap debug validate-seed" to do basic validation of the generated seed.yaml
(cherry picked from commit b208ded59ea9e54ad42bd071a39cebe2e4809aa4)

Signed-off-by: Iain Lane <iain.lane@canonical.com>
2019-07-16 11:42:00 +01:00
Tobias Koch
51ef72e5b9
Backport error-checking on determining snap bases
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/1828500

Signed-off-by: Iain Lane <iain.lane@canonical.com>
2019-07-16 11:38:53 +01:00
Tobias Koch
31e4f4fe02 Backport improvements to snap seeding from trunk.
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1831675

Signed-off-by: Steve Langasek <steve.langasek@canonical.com>
2019-06-05 16:37:38 -07:00
Steve Langasek
315516a372 Strip translation files out of the minimal images.
This is another thing that goes unused when there is no human console user
(and we already don't have the locales themselves present on a minimal
image).

Bug-Ubuntu: https://bugs.launchpad.net/bugs/1829333
2019-05-28 08:52:31 -07:00
Robert C Jennings
aa06de9ae1
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 15:52:06 -05:00
Robert C Jennings
7da22ddf55
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 15:52:06 -05:00
Robert C Jennings
2742b06211
ubuntu-cpc: parallel builds: apt repo snapshot
* 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".
2019-05-21 15:52:06 -05:00
Robert C Jennings
7907544390
ubuntu-cpc: parallel builds: build hooks during config
* 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, and prior, introduce explicit ordering and dependency
    handling for scripts through the use of `series` files and an
    explicit syntax for dependency specification.
2019-05-21 15:52:06 -05:00
Robert C Jennings
3029676441
ubuntu-cpc: parallel builds: Remove old targets
Also fix references to the old file names in the hooks
2019-05-21 15:52:06 -05:00
Robert C Jennings
d154f08e04
ubuntu-cpc: parallel builds: Add hook generation tooling 2019-05-21 15:51:40 -05:00
Robert C Jennings
f2e2efcbbb
ubuntu-cpc: parallel builds: Re-organize hooks 2019-05-21 15:49:33 -05:00
Balint Reczey
1a48706a37 Merge lp:~rbalint/livecd-rootfs -b wsl-bionic 2019-05-17 15:10:54 +02:00
Balint Reczey
df69f3bcd9 Build WSL rootfs tarball
LP: #1827930
2019-05-17 14:55:50 +02:00
Michael Hudson-Doyle
223bf910df Backport two minimizations for the docker images: remove apt lists that are removed downstream anyway, and remove device nodes from the image. (LP: #1828118) 2019-05-08 11:03:42 +12:00
Dimitri John Ledkov
0e50a351a6 Fix ubuntu-server-live images to generate initrd with casper UUID.
Whilst configs are sources, the variables are not exported into
the environment by default. Thus when casper hook is executed, it had
no idea that it should generate UUID.
2019-05-02 11:33:31 +01:00
Dimitri John Ledkov
f8ebe8e98e Make serial-subiquity@ use the same codepath as tty1 subiquity.
Such that subiquity runs in the correct environment.
Depends on: https://github.com/CanonicalLtd/subiquity/pull/428
2019-05-02 11:33:31 +01:00
Dimitri John Ledkov
fef6023ce5 subiquity: make subiqutiy_config.mount optional
Remove wants from local-fs.target, add wants from the uuid device instead.

Tested by applying these changes from pre-pivot-root by modifying
/root files in place whilst booting with break=bottom.
2019-05-02 11:33:31 +01:00
Julian Andres Klode
87a26d2cd2 Remove crufty files after minimize-manual
minimize-manual would be creating those files again, and other
parts may be creating them, so best to do the cleanup at the
very end.

LP: #1826377
2019-04-26 10:40:05 +02:00