204 Commits

Author SHA1 Message Date
Robert C Jennings
3b1f2bba99
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:32:47 -05:00
Robert C Jennings
1257763c98
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:32:47 -05:00
Robert C Jennings
c373d81ee0
ubuntu-cpc: Fixup comment references to file names post-parallelization 2019-05-21 17:32:47 -05:00
Robert C Jennings
620e17d2b7
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:32:47 -05:00
Cody Shepherd
a9935923f8 Changes to include grub efi packages and dependencies in uefi image manifests. 2018-10-29 09:28:50 -07:00
Cody Shepherd
5bee1ade70 Ensure pre-seeded snaps are now published in the image manifests. 2018-10-22 10:21:50 -07:00
Dimitri John Ledkov
08c9c26e58 Ensure /lib/modules exists in root tarballs and sqashfs.
(LP: #1792905)
2018-09-20 13:37:25 +02:00
Steve Langasek
3db2340c54 generate all tar files with --xattrs. LP: #1302192. 2018-08-01 18:02:13 -07:00
Robert C Jennings
58b510cf99 ubuntu-cpc: Remove git-man for minimized images 2018-06-08 10:14:16 -07:00
Daniel Watkins
f9cae3ff7f Restore removal of /boot/grub from rootfs artifacts 2018-06-07 16:24:59 -07:00
Daniel Watkins
ab85167fb5 Shell formatting cleanup 2018-06-07 16:24:29 -07:00
Daniel Watkins
605b97de97 ubuntu-cpc: Generate the root image contents once, and use it for both the
-root.tar.xz and the .squashfs.
2018-06-07 14:23:18 -07:00
Steve Langasek
91f26e016c resync with trunk 2018-06-06 17:11:07 -07:00
Daniel Watkins
a9bb37c661 Use a relative path for config/functions 2018-06-06 16:04:45 -07:00
Steve Langasek
92497af14f live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary: don't manually
install grub-efi-amd64 since that forces off grub-pc, which is otherwise
now coinstallable.
2018-06-06 15:41:30 -07:00
Daniel Watkins
136e2e2200 Drop /lib/modules creation as MAAS handles it downstream 2018-06-06 15:32:06 -07:00
Daniel Watkins
8e344b1f6b Add comment explaining /lib/modules creation 2018-06-06 14:53:58 -07:00
Daniel Watkins
0e5b19259d ubuntu-cpc: Reintroduce the -root.tar.xz artifact (LP: #1585233). 2018-06-06 11:24:10 -07:00
Daniel Watkins
87c11b5114 Don't fail to build CPC images if /lib/modules already exists in the
squashfs.
2018-04-24 12:01:44 -04:00
Daniel Watkins
12339422c5 ubuntu-cpc: When performing a minimized build, don't generate artifacts
that won't boot with the linux-kvm kernel (LP: #1757223).
2018-03-20 14:30:27 -04:00
Dimitri John Ledkov
815c3dfc10 Whitelist preserving "unowned" /var/log/journal. Maybe systemd package
should own the directory, and only adjust the permissions in
postinst. LP: #1754332
2018-03-16 18:38:22 +00:00
Dimitri John Ledkov
bc194dd48b Build EFI armhf images. 2018-03-06 12:58:38 +00:00
Dimitri John Ledkov
d4fe705be7 Stop building vagrant.box, ova, vmdk images for i386.
https://trello.com/c/zhisDVTq
2018-02-05 15:37:52 +00:00
Steve Langasek
c02f0f0f4c Install grub-ieee1275 instead of grub2 on ppc64el; grub2 is a dummy
transitional package in universe.
2017-12-06 14:22:41 -08:00
Michael Hudson-Doyle
c24e13f8f9 install grub-ieee1275 instead of grub2 on ppc64el
grub2 is a dummy transitional package that is in universe.
2017-12-01 13:44:32 +13:00
Balint Reczey
532bd5b5ed Build minimized images in a 1GiB image 2017-11-23 20:27:16 +01:00
Balint Reczey
c45ea223b4 Use default xz compression (-6) for raspi2 image
Xz with -0 generated ~35% bigger compressed image.

LP: #1732681
2017-11-20 21:18:33 +01:00
Balint Reczey
578fa5a92d Update changelog 2017-11-14 19:04:21 +01:00
Balint Reczey
4a168af954 Skip setting up initrd for s390x when it is not generated for the image
This fixes building minimized s390x images.
2017-11-14 18:44:06 +01:00
Steve Langasek
51890b5b43 add 'file' to the axe list for minimized 2017-10-18 18:11:53 -07:00
Steve Langasek
c9b427c11b Another round of package removals for minimization 2017-10-18 17:50:56 -07:00
Steve Langasek
c0bb8d760f remove vim a little harder 2017-10-13 23:52:03 -04:00
Steve Langasek
783437f533 instead, call apt clean from the chroot 2017-10-13 21:50:26 -04:00
Steve Langasek
dec765f035 no actual point in apt clean here, since that just cleans files from the bind mount 2017-10-13 21:40:02 -04:00
Steve Langasek
bc361bc33b call apt clean separately for the squashfs 2017-10-13 17:35:33 -04:00
Steve Langasek
dc875735b8 More packages to remove when minimizing 2017-10-13 17:25:50 -04:00
Steve Langasek
add1cca991 Refactor, mark all lib'*' and python'*' packages auto-installed so they can be cleaned up as dependencies instead 2017-10-13 17:00:37 -04:00
Steve Langasek
54427d4440 When building minimized cloud images, remove various packages that we
don't want installed by default.  Some are tools that aren't needed for
non-interactive use; some are libraries whose reverse-dependencies
will have already been removed; and one, open-vm-tools, should only be
included in images that are targeted to VMWare (which is not the case
for any of the current minimal images), rather than being included
directly in the cloud-image seed.
2017-10-13 14:59:37 -04:00
Steve Langasek
ad78957f01 Remove boot/grub leftovers from our root squashfs, left behind after
grub purge.
2017-10-13 14:20:50 -04:00
Balint Reczey
549232f607 Clean up dangling /boot/initrd.img symlink when needed 2017-10-11 01:57:03 +02:00
Steve Langasek
a75cbf210b Fix the force-partuuid handling to create the file under
/etc/default/grub.d/ with a .cfg extension as grub expects; it's unclear
how this ever worked without.
2017-10-04 22:51:30 -07:00
Steve Langasek
a5e27120c0 Factor out grub-related diversions and use them consistently, so we
don't end up with wrong os-probe output in our grub.cfg.
2017-10-04 22:33:41 -07:00
Balint Reczey
f0cb85a506 When SUBPROJECT environment variable is not set assume it to be "" 2017-09-29 15:20:14 -04:00
Balint Reczey
2ef2aee456 Use SUBPROJECT=minimized name instead of SUBPROJECT=minimize for consistency 2017-09-29 15:20:14 -04:00
Balint Reczey
c5d01a6635 Force partuuid in /etc/default/grub.d/* instead of in /etc/default/grub
This prevents ucf questions upon installation of changed /etc/default/grub
2017-09-27 18:54:09 -04:00
Steve Langasek
0365171ce3 minimization handling for UEFI disk images 2017-09-26 22:39:09 -04:00
Balint Reczey
9dd615d380 Drop initramfs-tools diversion
Kernels which are able to boot without initramfs now dropped dependency
on initramfs-tools thus initramfs-tools can be removed from the image
instead of having to divert it to avoid initramfs generation.
2017-09-26 22:39:09 -04:00
Balint Reczey
d65e1edfd1 Source config/binary instead of /build/config/binary which may not exist 2017-09-26 22:39:09 -04:00
Steve Langasek
3ed1f4fdd1 In a cloud environment, we can rely on the kernel being able to boot the
root filesystem directly, without an initramfs; enable this when
building minimized.
2017-09-26 22:39:09 -04:00
Steve Langasek
786370819c Make the 999-cpc-fixes.chroot subproject-aware, so we don't try to locale-gen 2017-09-26 22:39:09 -04:00