14 Commits

Author SHA1 Message Date
Dimitri John Ledkov
6832b6bda4
functions: stop removing systemd-detect-virt unconditionally in undivert_grub
One can call divert_grub; replace_kernel; undivert_grub. And
replace_kernel will call into force_boot_without_initramfs, which
under certain conditions can call divert_grub &
undivert_grub. Resulting in undivert_grub called twice in a row.

When undivert_grub is called twice in a row it wipes
systemd-detect-virt binary from disk, as the rm call is unguarded to
check that there is something to divert if systemd package is
installed. And if the systemd package is not installed, it does not
check that systemd-detect-virt file is in-fact what divert_grub has
created.

Add a guard to check that systemd-detect-virt is the placeholder one,
before removing it.

LP: #1902260
(cherry picked from commit 096a00f40459187719840ccad99e86c7ade2ec12)
2021-02-09 01:17:35 +00:00
John Chittum
242508908a
re-add sed command
Older version of vmdk-stream-converter has an incorrect header. The
original sed command replaced the incorrect "Description File" comment
with the correct "Disk DescriptorFile".
2020-11-18 11:37:04 -06:00
John Chittum
58f9e413ba
Backport vmtools version in vmdk (LP: #1893898)
Backport
LP: #1893898 describes missing vmtools version from the vmdk headers.
The version should be added as ddb.toolsVersion = "2147483647" however
the sed was no longer replacing a ddb.comment field with the tools
version. Rather than subbing ddb.comment with toolsVersion, this commit
deletes ddb.comment (which the comment mentions could cause errors),
and adds the correct value. There was no visibility into the descriptor
during hook creation, so debug statements were added. This allows us to
quickly verify in the logs that bad statements are removed (the possibly
offending comments), as well as ensuring that the toolsVersion is added
2020-11-16 11:18:59 -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
Robert C Jennings
ace52c572b
Use a snap cohort key for consistent parallel builds (LP: #1866159) 2020-03-05 08:21:47 +01: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
Cody Shepherd
1f05fbea69 Backport adding snaps to image manifests (LP: #1805497) 2018-11-27 11:53:59 -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
Robert C Jennings
d6c5d54dfa Fix unbound variable in config/binary and zero UEFI partition
* Zero fill space in UEFI partitions, too
* Set LB_ISO_PREPARER to livecd-rootfs to avoid unbound variable in default string
2018-06-08 09:12:22 -07:00
Robert C Jennings
8e53c77a11 snap: Alternate fix for snap pre-seeding (LP: #1775710)
* Backport: Refactor functions out of ubuntu-cpc and ubuntu-server hooks.
  * Backport: Add dependency on distro-info for snap preseeding
2018-06-07 17:35:12 -07:00
Robert C Jennings
c7878bdc76 snaps: Fixes for snap pre-seeding (LP: #1775710)
* Add dependency on distro-info for snap preseeding
* Move snap-related functions to avoid conflicts with ubuntu-cpc functions
2018-06-07 14:54:23 -07:00
Mathieu Trudel-Lapierre
f4424e223e Backport snap preseeding functions from bionic. (LP: #1771177) 2018-06-07 14:53:22 -07:00