806 Commits

Author SHA1 Message Date
Robert C Jennings
4144105767
Merge vagrant_40_gb_xenial into ubuntu/xenial [a=patviafore] [r=rcj]
Make Ubuntu Vagrant box 40G. (LP: #1580596)

Vagrant images were previously put at 10G, but this was a regression
from Trusty, in which they were 40G. This made it a tough sell for
users to upgrade if they were using a Ubuntu desktop experience.

This change does not impact disk usage as Vagrant with the virtualbox
provider dynamically allocates space with the VMDK. On a test system,
the VMDK took up 1.1G of disk space according to df, and after
creating a 2G file in Vagrant, the VMDK grew to 3.1G.

Therefore, users who are running on a system with little free space will
not see adverse effects if they upgrade to a new vagrant image

MP: https://code.launchpad.net/~patviafore/livecd-rootfs/+git/livecd-rootfs/+merge/384636
2020-11-20 15:25:51 -06:00
Cody Shepherd
695b4de393
Omit file type exensions in manifest names 2020-11-20 12:41:32 -08:00
Cody Shepherd
c5102d998e
Create manifests for buildd tarballs 2020-11-20 07:52:21 -08:00
Cody Shepherd
aede5df67b
Skip jasper for buildd subproject 2020-10-26 09:40:53 -07:00
Cody Shepherd
bacc18b6b3
Change tar transform target to match changes in bionic+, allowing for
ext4 image format to be built correctly
2020-10-09 09:25:23 -07:00
Cody Shepherd
e1e3fec767
Don't install recommends for bootable buildd image 2020-10-06 10:22:12 -07:00
Cody Shepherd
c9043b2697
Call function to set up resolvconf to enable DNS for buildd 2020-10-06 10:20:46 -07:00
Cody Shepherd
f7512b21a0
Remove bind9 from buildd installed packages 2020-10-06 10:20:46 -07:00
Cody Shepherd
4a9592601d
Disable buildd console output on ttyS0 2020-10-06 10:20:46 -07:00
Cody Shepherd
515bc1430b
Safely set /etc/resolv.conf to an empty file in buildd images.
In the buildd image chroot, /etc/resolv.conf is a symbolic link to
a configuration file in the /run directory. A call to truncate will
modify that file, which we should not do. Instead, we want to remove
the symbolic link and replace it with an empty file.
2020-10-06 10:20:45 -07:00
Cody Shepherd
e23685134e
* Remove explicit install of grub-efi* packages for amd64
* Remove systemd-networkd artifacts from includes.chroot
2020-10-06 10:20:45 -07:00
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
Pat Viafore
4e18eab233
Make Ubuntu Vagrant box 40G. (LP: #1580596)
Vagrant images were previously put at 10G, but this was a regression
from Trusty, in which they were 40G.  This made it a tough sell for
users to upgrade if they were using a Ubuntu desktop experience.

This change does not impact disk usage as Vagrant with the virtualbox
provider dynamically allocates space with the VMDK.  On a test system,
the VMDK took up 1.1G of disk space according to df, and after
creating a 2G file in Vagrant, the VMDK grew to 3.1G.

Therefore, users who are running on a system with little free space will
not see adverse effects if they upgrade to a new vagrant image
2020-05-26 09:47:05 -05: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