From 47b77cea07992ee718c8a4e2f91004c266bee0bc Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Thu, 14 Mar 2024 17:12:00 +0000 Subject: [PATCH 1/4] sys-libs/ncurses: Install tmux terminfo Debian tmux seems to set TERM=tmux-256color, not TERM=screen. This causes issues when ssh-ing into flatcar from tmux. Copy the screen terminfo files as the tmux ones, they should be mostly compatible. Tmux terminfo files are removed because of USE=minimal, but I don't see a way to hook into the ebuild and prevent the removal easily. Signed-off-by: Jeremi Piotrowski --- .../coreos-overlay/coreos/config/env/sys-libs/ncurses | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-libs/ncurses diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-libs/ncurses b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-libs/ncurses new file mode 100644 index 0000000000..0788550fcd --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-libs/ncurses @@ -0,0 +1,5 @@ +cros_post_src_install_tmux_terminfo() { + mkdir -p "${ED}/usr/share/terminfo/t" + cp "${ED}/usr/share/terminfo/"{s/screen,t/tmux} + cp "${ED}/usr/share/terminfo/"{s/screen-256color,t/tmux-256color} +} From 0eb0bb38e8ad2881be129adca868330ff6a14c74 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Thu, 14 Mar 2024 17:50:21 +0000 Subject: [PATCH 2/4] build_library: Use lbzip2 to decompress gcc binpkg Speeds things up a bit. Signed-off-by: Jeremi Piotrowski --- build_library/build_image_util.sh | 3 ++- build_library/prod_image_util.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build_library/build_image_util.sh b/build_library/build_image_util.sh index 64a7a89b86..c2863b7bd1 100755 --- a/build_library/build_image_util.sh +++ b/build_library/build_image_util.sh @@ -529,7 +529,8 @@ insert_extra_slsa() { if [ -f "${binpkg}" ]; then info "Found ${atom} at ${binpkg}" qtbz2 -O -t "${binpkg}" | \ - sudo tar -C "${rootfs}" -xj --wildcards './usr/share/SLSA' + lbzcat -d -c - | \ + sudo tar -C "${rootfs}" -x --wildcards './usr/share/SLSA' continue fi warn "Missing SLSA information for ${atom}" diff --git a/build_library/prod_image_util.sh b/build_library/prod_image_util.sh index 183d57f9ef..050c31628e 100755 --- a/build_library/prod_image_util.sh +++ b/build_library/prod_image_util.sh @@ -44,7 +44,8 @@ extract_prod_gcc() { # /usr/lib/gcc/x86_64-cros-linux-gnu/$version/* # Instead we extract them to plain old /usr/lib qtbz2 -O -t "${pkg}" | \ - sudo tar -C "${root_fs_dir}" -xj \ + lbzcat -d -c - | \ + sudo tar -C "${root_fs_dir}" -x \ --transform 's#/usr/lib/.*/#/usr/lib64/#' \ --wildcards './usr/lib/gcc/*.so*' \ --wildcards './usr/share/SLSA' From 9b50112c5aa6c43f82fa1f08d424d1b632dde116 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Fri, 15 Mar 2024 09:26:36 +0100 Subject: [PATCH 3/4] build_library: Reduce xattr spam when creating cpio Mksquashfs running against a btrfs filesystem tries to capture btrfs specific xattrs (btrfs.compression) generating a lot of spam. Remove the spam by ignoring btrfs xattrs. Signed-off-by: Jeremi Piotrowski --- build_library/vm_image_util.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 3721c7b15b..8e8010cdf6 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -695,7 +695,7 @@ _write_cpio_common() { # Build the squashfs, embed squashfs into a gzipped cpio pushd "${cpio_target}" >/dev/null - sudo mksquashfs "${base_dir}" "./usr.squashfs" -pf "${VM_TMP_DIR}/extra" + sudo mksquashfs "${base_dir}" "./usr.squashfs" -pf "${VM_TMP_DIR}/extra" -xattrs-exclude '^btrfs.' find . | cpio -o -H newc | gzip > "$2" popd >/dev/null From 60a45ef0c5fa992e3dc5bac6fc5874853f085ed8 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Fri, 15 Mar 2024 14:43:29 +0100 Subject: [PATCH 4/4] ci-automation/test: Always pull mantle image when running tests Signed-off-by: Jeremi Piotrowski --- ci-automation/test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci-automation/test.sh b/ci-automation/test.sh index bdddb4a3b4..04890e4746 100644 --- a/ci-automation/test.sh +++ b/ci-automation/test.sh @@ -167,7 +167,7 @@ function _test_run_impl() { # determine success based on test results (tapfile). set +e touch sdk_container/.env - docker run --rm --name="${container_name}" --privileged --net host -v /dev:/dev \ + docker run --pull always --rm --name="${container_name}" --privileged --net host -v /dev:/dev \ -w /work -v "$PWD":/work "${mantle_ref}" \ bash -c "git config --global --add safe.directory /work && \ source sdk_container/.env && \ @@ -176,7 +176,7 @@ function _test_run_impl() { rm -f "${work_dir}/first_run" # Note: git safe.directory is not set in this run as it does not use git - docker run --rm --name="${container_name}" --privileged --net host -v /dev:/dev \ + docker run --pull always --rm --name="${container_name}" --privileged --net host -v /dev:/dev \ -w /work -v "$PWD":/work "${mantle_ref}" \ ci-automation/test_update_reruns.sh \ "${arch}" "${vernum}" "${image}" "${retry}" \