22893 Commits

Author SHA1 Message Date
Kai Lüke
c01560ba63 coreos-base/coreos-init: support btrfs on the OEM partition
This pulls in
https://github.com/kinvolk/init/pull/42
2021-07-28 13:28:28 +02:00
Kai Lüke
42b4f612ca sys-kernel/bootengine: support btrfs /usr filesystems
Pulls in https://github.com/kinvolk/bootengine/pull/25
2021-07-28 13:28:10 +02:00
Jeremi Piotrowski
cfbc81ee59
Merge pull request #136 from kinvolk/jepio/boostrap-use-stage1-properly
bootstrap_sdk: override seed path after building stage1
2021-07-28 12:15:34 +02:00
Kai Lüke
1240faa3ea Merge pull request #1136 from kinvolk/kai/vmlinuz-compression
sys-kernel/coreos-modules: switch to gzip/zstd compression
2021-07-28 11:29:43 +02:00
Kai Lüke
29f2903c87 sys-kernel/coreos-modules: switch to gzip/zstd compression
With the default gzip compression the 60 MB limit for the vmlinuz
bundle of kernel+initramfs was reached. The limit comes from the size
of the /boot partition which is 128 MB large and the kernel needs to
fit twice, in addition to GRUB.

Use zstd for the initramfs as it provides a similar speed but better
compression. For the kernel we can't switch yet to zstd for arm64
but for amd64 it works.
2021-07-27 14:48:26 +02:00
Kai Lüke
e4f811dd0d disk_layout: optimize btrfs filesystem overhead
The defaults already give more space than the ext4 defaults but it's
recommended to use the mixed mode for filesystems smaller than 1-5 GB.
Another aspect is the duplication of metadata and while it currently is
off it's actually related to the underlying block device and could
change as soon as the block device type changes.

Select the mixed mode that uses a merged area for data and metadata
blocks. Also ensure that no metadata duplication gets enabled
automatically.
2021-07-27 14:23:47 +02:00
Kai Lüke
bc97e15c3c disk_layout: use btrfs for the OEM partition
The compression feature of btrfs allows us to store more in the
size-limited /usr and OEM partitions. The size should of course still
be monitored to not bloat the image but more headroom helps to try
things out quickly without hitting the hard limit which fails the
build.
Use btrfs for the OEM partition but with zlib compression because
the outdated GRUB version doesn't support zstd yet.
New subvolumes currently can't be used for the OEM partition as default
subvolumes because GRUB tries to read the grub.cfg from the top
subvolume (at least with our old version). (We could however use
subvolumes for the /usr partition when switching to btrfs if that
makes any sense.)
2021-07-27 14:08:42 +02:00
Kai Lüke
d0cf1a4d19 disk_util: support compressed btrfs filesystems
The limited /usr and OEM partiton size is a challenge when adding new
packages or updating a package. Since the disk layout can't be changed
for compatibility reasons when updating an existing instance, we can't
simply try out something without ensuring first that enough space is
there by removing something else. This situation can be relaxed by
leveraging btrfs compression. There was some support for btrfs but it
was a bit outdated and didn't allow to configure compression or setting
read-only flags.
Fix the btrfs support, allow to mark the default subvolume as read only
and add a compression variable that allows to select a compression
algorithm. Instead of enabling compression by setting the mount option,
we can set the filesystem attribute which has the benefit that
compression is still used with the default mount options for this (top)
directory and its contents. While for the ext2 /usr partition a hack
existed to force read-only mode by modifying some bytes and checking
these bytes could also be used to know if read-only should be used to
prevent corruption of dm-verity data, we rather check directly whether
dm-verity is active for this partition and mount it read-only (and
with the norecovery option to really prevent any write attempt).
2021-07-27 14:08:42 +02:00
Kai Lüke
29fbd62339
Merge pull request #135 from kinvolk/kai/test-update
jenkins/kola/qemu(_uefi): run update test from previous release
2021-07-27 12:50:29 +02:00
Kai Lüke
e96c1c5e6d jenkins/kola/qemu(_uefi): run update test from previous release
The newly enabled update test performs an update from the built image
to itself. This is useful to test that the update mechanism didn't
break but it doesn't say if the built image will be accepted as update
from the previous official release.

Introduce an additional kola run that begins from the previous official
release and tests to update to the built image. Since the test does two
updates it also covers the case of updating from the built image to the
built image. Thus, we can skip the test in the normal run.
This new kola run is done first to keep the qemu-latest symlink valid
for the main test suite.
2021-07-27 11:51:58 +02:00
Jeremi Piotrowski
e2c10a9fe8 bootstrap_sdk: override seed path after building stage1
When performing a full bootstrap (stage1-4), the stage1 results are currently
discarded because of the logic in catalyst_build: the first build stage uses
the "seed" and every following stage uses the previous stages results *but*
stage1 is built before catalyst_build. So from the point of view of
catalyst_build, stage2 is the first one and uses the seed tarball.

To make sure stage1 results are used if it was built, set the SEED variable to
the latest stage1 location.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-26 16:29:13 +00:00
Kai Lüke
1b70f59cd0 jenkins/kola: share a single qemu script file 2021-07-26 15:01:24 +02:00
Jeremi Piotrowski
8e44a167d5
Merge pull request #133 from kinvolk/jepio/fix-arm64-devcontainer
disk_layout: devcontainer: use architecture agnostic part uuid
2021-07-22 22:10:29 +02:00
Dongsu Park
08ea76673f .github: list only ebuilds with a unique VERSION_OLD
Due to unnecessary wildcard listings, ebuild files including all rc or
beta are being listed. Since `VERSION_OLD` is already generated as a
unique version, we do not need to list multiple files to filter by
running `head -n1` etc. We just need to use only the specific ebuild.
Simply list only the unique ebuild file.
2021-07-22 15:31:20 +02:00
Dongsu Park
e2cd417df5 .github: make correct input for runc versions
Before passing runc versions to `sed '/-/!{s/$/_/}'`, we need to replace
`_` with `-`, because runc tarball files already have names like
`1.0.0_rc2`. Without the fix, version sort would `1.0.0` come before
`1.0.0_rc2`, which is not expected in the later steps.
2021-07-22 12:41:45 +02:00
Sayan Chowdhury
1b068b5186 Merge pull request #1126 from kinvolk/sayan/update-systemd-247.7
sys-apps/systemd: Bump to v247.7
2021-07-21 16:50:28 +05:30
Sayan Chowdhury
64ea092d0c Merge pull request #189 from kinvolk/sayan/update-to-curl-7.78
net-misc/curl: Bump curl to 7.78.0 release
2021-07-21 16:49:37 +05:30
Sayan Chowdhury
f26a5a17d3 net-misc/curl: Bump curl to 7.78.0 release
This releases includes fixes for the following CVEs:
- CVE-2021-22924
- CVE-2021-22926
- CVE-2021-22925

The changes are not sync with Gentoo upstream, rather modified in the
overlay. The changes are:
- 7.78.0 removes metalink support
- 7.78.0 remmoves references to darwinssl package

Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-07-21 13:55:05 +05:30
Sayan Chowdhury
a3715fe1d9 Merge pull request #1124 from kinvolk/linux-5.10.52-main
Upgrade Linux Kernel in main from 5.10.49 to 5.10.52
2021-07-21 13:35:35 +05:30
Flatcar Buildbot
e1e7bd2c2c sys-kernel: Upgrade Kernel 5.10.49 to 5.10.52 2021-07-21 07:10:12 +00:00
Sayan Chowdhury
cf97d4ad91 sys-apps/systemd: Bump to v247.7
Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-07-20 23:29:14 +05:30
Dongsu Park
a76fb38501 Merge pull request #1120 from kinvolk/dongsu/containerd-1.5.4
app-emulation/containerd: update to 1.5.4
2021-07-20 16:49:08 +02:00
Dongsu Park
70bfaff439 app-emulation/containerd: update to 1.5.4
Update app-emulation/containerd to 1.5.4, mainly to address
CVE-2021-32760.
2021-07-20 16:36:48 +02:00
Sayan Chowdhury
6f9eb8dd31 Merge pull request #187 from kinvolk/sayan/update-readline-8.0
sys-libs/readline: Sync with Gentoo upstream; updates to 8.1
2021-07-20 16:58:30 +05:30
Dongsu Park
2df538b480 Merge pull request #1115 from kinvolk/go-1.16.6-main
Upgrade Go in main from 1.16.5 to 1.16.6
2021-07-19 18:28:20 +02:00
Mathieu Tortuyaux
37bc8884e5
Merge pull request #132 from kinvolk/tormath1/qemu-option
build_lib/qemu_tmpl: fix short-form warning
alpha-2942.0.0
2021-07-19 17:50:06 +02:00
Jeremi Piotrowski
4ba3218d6a boostrap_sdk: only build aarch64 cross-rust on x86 hosts
The rust ebuild has some magic to detect cross-toolchains present on the
system and enable building additional cross targets. The code to trigger
the rebuild of rust is part of install_cross_rust, and checks whether
the cross directories exist in the rust installation. If they don't,
then rust is removed and rebuilt to allow for the auto-detection to
happen.

Right now there are two issues with the code. Firstly, the path that is
checked is wrong, which leads to rust always being removed and rebuilt.
The path checked is /usr/lib/rust-*/rustlib but /usr/lib/rustlib is
where the files are installed.

The second issue is that it checks for aarch64 dirs when CHOST is
aarch64-cros-linux-gnu. However, on an aarch64 host the aarch64 dirs
will already exist from building the sdk itself. The rust ebuild is not
ready to handle aarch64 hosts yet and blows up. The correct behavior is
to combine the check for CHOST with a check for the right CBUILD.

On an aarch64 host we should presumably check for the x86 CHOST and rust
dirs, but that can be added later, because it needs more work.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:11:12 +00:00
Jeremi Piotrowski
e4f57bea82 bootstrap_sdk: fix issues around lib->lib64 symlink
The arm64 profiles don't specify SYMLINK_LIB=yes, which makes sense
since arm64 systems don't support multilib in the way that we are used
to from x86. What this means is that build artifacts are installed into
separate lib and lib64 directories. The root overlay installed in stage4
needs to check for SYMLINK_LIB before trying to create a symlink,
otherwise it fails to be applied because it collides with the directory
in the rootfs.

This uncovered a second minor issues - the rust toolchain bootstrap
scripts checked for /usr/lib64/rust*, but the ebuild installs to
/usr/lib/rust.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:11:09 +00:00
Jeremi Piotrowski
0a1b0be7f3 dev-lang/rust: don't enable aarch64 cross target when host is aarch64
This does not work because the host and cross rust targets share the
same name. This needs to be reworked to (potentially) enable x86 cross
targets for aarch64 targets.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:09:01 +00:00
Jeremi Piotrowski
0064e6b3ec profiles: remove "pc xen" from arm64 GRUB_PLATFORMS
grub refuses to build these targets when host is arm64.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:08:59 +00:00
Jeremi Piotrowski
a90c4265bf profiles: move BOOSTRAP_USE=cros_host to arch indepenent part of sdk profile
So that it can apply to both arm64 and amd64 sdk profiles.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:08:56 +00:00
Jeremi Piotrowski
d460bf3a8d coreos-base/update_engine: add glib-utils to (B)DEPEND
glib-utils are used during the build so they need to be part of host
dependencies for update_engine. This only really pops up during a repeat
bootstrap, when update_engine is being built from source but glib has
been installed from a binary. BDEPEND would be the correct variable but
that requires EAPI=7, so additionally added it to DEPEND for now.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:08:54 +00:00
Jeremi Piotrowski
44fcb0513a mark platform specific host/sdk dependencies as amd64/!arm64
kola-data and google-cloud-sdk install pre-built amd64 binaries, so
there's no point installing them right now. Both could be made to work
at a later time. iucode and syslinux and are x86 specific and won't
build. selinux related packages *currently* don't work/build on arm64
but could be made to work.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:08:51 +00:00
Jeremi Piotrowski
0aaa9766c7 keyword sdk dependencies for arm64
Where the packages are part of coreos-overlay, I keyworded the ebuilds
directly to the same level of stability as amd64. Other packages have
been keyworded through the profile, as close to the amd64 level as I
could manage.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-19 15:08:48 +00:00
Dongsu Park
065661a751 Merge pull request #1113 from kinvolk/dongsu/open-vm-tools-11.3.0
app-emulation/open-vm-tools: update to 11.3.0
2021-07-19 12:01:03 +02:00
Sayan Chowdhury
2300ad3287 sys-libs/readline: Sync with Gentoo upstream
Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-07-19 14:43:33 +05:30
Flatcar Buildbot
e03a28561c dev-lang: Upgrade Go 1.16.5 to 1.16.6 2021-07-19 07:26:12 +00:00
Jeremi Piotrowski
911da26072 disk_layout: devcontainer: use architecture agnostic part uuid
The previously used uuid 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 is valid
for x86_64 root partitions, which resulted in the dev container not
working with systemd-nspawn on aarch64. systemd-nspawn fails with:

  No suitable root partition found in image

Change the partition uuid to the architecture agnostic one documented
in the man page:

  A GUID partition table (GPT) with a single partition of type 0fc63daf-8483-4772-8e79-3d69d8477de4.

This makes systemd-nspawn happy on aarch64.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-07-16 15:35:18 +00:00
Mathieu Tortuyaux
35387cfdff
build_lib/qemu_tmpl: fix short-form warning
starting from qemu-6.0.0, options with short-form are deprecated.

```
$ ./flatcar_production_qemu.sh
qemu-system-x86_64: -fsdev local,id=conf,security_model=none,readonly,path=/tmp/flatcar-configdrive.gyqmdrQqfA: warning: short-form boolean option 'readonly' deprecated
Please use readonly=on instead
```

See this commit: ccd3b3b811

Signed-off-by: Mathieu Tortuyaux <mathieu@kinvolk.io>
2021-07-16 16:04:50 +02:00
Mathieu Tortuyaux
abd1e615c0 Merge pull request #1112 from kinvolk/containerd-1.5.3-main
Upgrade Containerd in main from 1.5.2 to 1.5.3
2021-07-16 15:52:27 +02:00
Jeremi Piotrowski
23d3861740 Merge pull request #1105 from kinvolk/sayan+jepio/update-dracut
Sayan+jepio/update dracut

Closes kinvolk/Flatcar#375
2021-07-16 15:47:17 +02:00
Dongsu Park
688eed80f3 coreos-base/oem-vmware: update to 11.3.0
Update oem-vmware to 11.3.0, corresponding to the update of
open-vm-tools to 11.3.0.
2021-07-16 13:54:28 +02:00
Dongsu Park
53983eb353 app-emulation/open-vm-tools: update to 11.3.0
Update open-vm-tools 11.3.0,
https://github.com/vmware/open-vm-tools/releases/tag/stable-11.3.0 .
Update also the build number to 18090558.
2021-07-16 13:53:51 +02:00
Mathieu Tortuyaux
b827c6557c Merge pull request #172 from kinvolk/tormath1/selinux
selinux: update eclass, libsepol to 3.1 and semodule-utils
2021-07-16 11:25:19 +02:00
Mathieu Tortuyaux
aa3ad05497 Merge pull request #1048 from kinvolk/tormath1/selinux
selinux: upgrade selinux libs
2021-07-16 11:25:10 +02:00
Flatcar Buildbot
4309eaab99 app-emulation: Upgrade Containerd 1.5.2 to 1.5.3 2021-07-16 08:10:14 +00:00
Mathieu Tortuyaux
6841de885a Revert "app-emulation/docker: disable SELinux"
This reverts commit 956f9757d45b7df260ed0e78213e1ad96c7409eb.
2021-07-16 10:04:03 +02:00
Sayan Chowdhury
2a3a1c8bc8 sys-apps/dbus: Apply Flatcar patches
Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-07-16 10:04:02 +02:00
Sayan Chowdhury
d3d56cda69 sys-apps/dbus: Sync with Gentoo upstream
Updates to dbus-1.12.20-r1

Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-07-16 10:04:02 +02:00
Mathieu Tortuyaux
8bd2eefc3f app-admin/setools: remove package
from 4.x setools is a pure python script, we won't include it
in Flatcar anymore

Signed-off-by: Mathieu Tortuyaux <mathieu@kinvolk.io>
2021-07-16 10:04:02 +02:00