From 86415be6dac58842e0b54ce9d6b5fd6709b80e4b Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 6 May 2026 17:40:58 +0100 Subject: [PATCH 01/21] build_library: Fix "get_sdk_libdir: command not found" errors Signed-off-by: James Le Cuirot --- build_library/sysext_prod_builder | 1 + build_library/write_hdd.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/build_library/sysext_prod_builder b/build_library/sysext_prod_builder index 8e570806303..5406c884d7d 100755 --- a/build_library/sysext_prod_builder +++ b/build_library/sysext_prod_builder @@ -15,6 +15,7 @@ SCRIPT_ROOT="$(cd "$(dirname "$(readlink -f "$0")")/../"; pwd)" assert_inside_chroot switch_to_strict_mode +. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/build_image_util.sh" || exit 1 # Create a sysext from a package and install it to the OS image. diff --git a/build_library/write_hdd.sh b/build_library/write_hdd.sh index f6da7f94c35..85c892f3495 100755 --- a/build_library/write_hdd.sh +++ b/build_library/write_hdd.sh @@ -6,6 +6,7 @@ SCRIPT_ROOT=$(readlink -f $(dirname "$0")/..) . "${SCRIPT_ROOT}/common.sh" || exit 1 +. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/build_image_util.sh" || exit 1 DEFINE_string input_disk_image "" "Disk image to convert from, required." From 9b7a25e65a36a6f681a6307bdab1b3764d06992a Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Fri, 24 Apr 2026 11:09:17 +0100 Subject: [PATCH 02/21] sys-apps/baselayout: Don't need to explicitly create /oem any more It's handled by dumb-tmpfiles-proc.sh. Signed-off-by: James Le Cuirot --- .../coreos-overlay/sys-apps/baselayout/baselayout-9999.ebuild | 3 --- 1 file changed, 3 deletions(-) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/baselayout/baselayout-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/baselayout/baselayout-9999.ebuild index ca9aaf1d64c..1ff5db96a49 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/baselayout/baselayout-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/baselayout/baselayout-9999.ebuild @@ -118,9 +118,6 @@ pkg_postinst() { done # Create a compatibility symlink for OEM. ln -sfT ../../oem "${ROOT}/usr/share/oem" - # Also create the directory to avoid having dangling - # symlinks. - mkdir -p "${ROOT}/oem" # pam situation was messed up big time, create some # symlinks to point to just a single place From 83797a29a1eb877636aa775714be6b9f3f9e9a61 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 4 Feb 2026 14:29:31 +0000 Subject: [PATCH 03/21] build_packages: Exclude OEM sysext packages when running eclean packages Also simplify the exclusion mechanism while we're at it. Signed-off-by: James Le Cuirot --- build_library/extra_sysexts.sh | 16 ---------------- build_packages | 14 +++++++------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/build_library/extra_sysexts.sh b/build_library/extra_sysexts.sh index 85ae7096fc3..444b3eb9a67 100644 --- a/build_library/extra_sysexts.sh +++ b/build_library/extra_sysexts.sh @@ -11,19 +11,3 @@ EXTRA_SYSEXTS=( "python|dev-lang/python,dev-python/pip" "zfs|sys-fs/zfs" ) - -_get_unversioned_sysext_packages_unsorted() { - for sysext in "${EXTRA_SYSEXTS[@]}"; do - IFS="|" read -r _ PACKAGE_ATOMS _ <<< "$sysext" - - IFS=, - for atom in $PACKAGE_ATOMS; do - qatom "$atom" -F "%{CATEGORY}/%{PN}" - done - unset IFS - done -} - -get_unversioned_sysext_packages() { - _get_unversioned_sysext_packages_unsorted | sort | uniq -} diff --git a/build_packages b/build_packages index 6f69b75d300..21b3945bc95 100755 --- a/build_packages +++ b/build_packages @@ -291,6 +291,10 @@ fi export KBUILD_BUILD_USER="${BUILD_USER:-build}" export KBUILD_BUILD_HOST="${BUILD_HOST:-pony-truck.infra.kinvolk.io}" +# Gather a list of packages we build with --buildpkgonly to prevent them from +# getting cleaned by `eclean --deep packages` below. +eclean_excludes=$(mktemp) || die_notrace "Couldn't create temporary exclusions file for eclean" + # Build sysext packages from an array of sysext definitions. # Usage: build_sysext_packages "description" "${SYSEXT_ARRAY[@]}" # Array format: "name|packages|useflags|arches" @@ -307,6 +311,7 @@ build_sysext_packages() { info "Building packages for $sysext_name sysext with USE=$useflags" IFS=, + qatom -F "%{CATEGORY}/%{PN}" ${package_atoms} >> "${eclean_excludes}" for package in $package_atoms; do # --buildpkgonly does not install dependencies, so we install them # separately before building the binary package @@ -375,13 +380,8 @@ if [[ "${FLAGS_usepkgonly}" -eq "${FLAGS_FALSE}" ]]; then fi fi -exclusions_file=$(mktemp) -if [ ! -f "$exclusions_file" ]; then - die_notrace "Couldn't create temporary exclusions file $exclusions_file for eclean" -fi -get_unversioned_sysext_packages > "$exclusions_file" -eclean-"$BOARD" -d --exclude-file="$exclusions_file" packages -rm -f "$exclusions_file" +eclean-"$BOARD" --deep --exclude-file="${eclean_excludes}" packages +rm -f "${eclean_excludes}" # run eclean again, this time without the --deep option, to clean old versions # of sysext packages (those, for which .ebuild file no longer exists) eclean-"$BOARD" packages From d16c44387ff7073c1acf38ad59df5e347c4f96b0 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 4 Feb 2026 15:03:38 +0000 Subject: [PATCH 04/21] build_sysext: Ensure sysexts are entirely built from binary packages It is no longer necessary to build the meta packages from source as they are now covered by build_packages. Signed-off-by: James Le Cuirot --- build_sysext | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build_sysext b/build_sysext index 89dab47defd..d590423f7a1 100755 --- a/build_sysext +++ b/build_sysext @@ -22,7 +22,7 @@ default_install_root_basename='install-root' DEFINE_string board "${DEFAULT_BOARD}" \ "The board to build a sysext for." DEFINE_string metapkgs '' \ - "Comma-separated list of meta-packages to build from source and install into sysext image." + "Comma-separated list of binary meta-packages to install into the sysext image." DEFINE_string squashfs_base '' \ "The path to the squashfs base image. Defaults to the most current image built in '${default_imagedir}/${FLATCAR_PRODUCTION_IMAGE_SYSEXT_BASE}'." DEFINE_string image_builddir '' \ @@ -206,9 +206,9 @@ if [ "$VERSION_BOARD" != "$FLATCAR_VERSION" ]; then fi if [[ -n "${FLAGS_metapkgs}" ]]; then - mapfile -t metapkgs < <(tr ',' '\n' <<<"${FLAGS_metapkgs}") - "emerge-${FLAGS_board}" --nodeps --buildpkgonly --usepkg n --verbose "${metapkgs[@]}" - set -- "${metapkgs[@]}" "${@}" + IFS=, + set -- ${FLAGS_metapkgs} "${@}" + unset IFS fi if [[ ${#} -lt 1 ]]; then From 4ff31e7ece0b22e818a50283255efaf708ee34f1 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 28 Jan 2026 16:34:22 +0000 Subject: [PATCH 05/21] Drop the per-OEM USE flags Having a USE flag per OEM is unnecessary when we only really need to know whether the package will be installed in an OEM sysext or not. A single USE flag could do this, but our existing flatcar_target() helper avoids the complexity of binpkg-multi-instance. The flag names were also prone to conflicts (e.g. qemu) and we don't currently make use of them anyway. Signed-off-by: James Le Cuirot --- build_library/oem_sysexts.sh | 2 +- build_library/test_oem_pkgs | 42 ---------------------------------- build_library/vm_image_util.sh | 31 +------------------------ 3 files changed, 2 insertions(+), 73 deletions(-) delete mode 100755 build_library/test_oem_pkgs diff --git a/build_library/oem_sysexts.sh b/build_library/oem_sysexts.sh index 7d50efc4bed..68fea06c26b 100644 --- a/build_library/oem_sysexts.sh +++ b/build_library/oem_sysexts.sh @@ -75,7 +75,7 @@ get_oem_sysext_matrix() { local -a matrix=() local oem_id for oem_id in "${oem_ids[@]}"; do - matrix+=("oem-${oem_id}|coreos-base/oem-${oem_id}|${oem_id}") + matrix+=("oem-${oem_id}|coreos-base/oem-${oem_id}|") done local -n matrix_ref="${list_var_name}" diff --git a/build_library/test_oem_pkgs b/build_library/test_oem_pkgs deleted file mode 100755 index b6c1230c09b..00000000000 --- a/build_library/test_oem_pkgs +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2012 The Chromium OS Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -SCRIPT_ROOT=$(readlink -f $(dirname "$0")/..) -. "${SCRIPT_ROOT}/common.sh" || exit 1 -. "${BUILD_LIBRARY_DIR}/vm_image_util.sh" || exit 1 - -# We're invoked only by build_image, which runs in the chroot -assert_inside_chroot - -# Die on any errors -switch_to_strict_mode - -# all of this is amd64 only right now -BOARD="amd64-usr" - -oem_uses() { - local vm oem="$1" - for vm in "${VALID_IMG_TYPES[@]}"; do - local oem_var="IMG_${vm}_OEM_PACKAGE" - local use_var="IMG_${vm}_OEM_USE" - if [[ "${!oem_var}" == "${oem}" && -n "${!use_var}" ]]; then - echo "${!use_var}" - fi - done | sort -u -} - -for oem in "${VALID_OEM_PACKAGES[@]/#/oem-}"; do - uses=( $(oem_uses "${oem}") ) - if [[ ${#uses} -eq 0 ]]; then - uses=( "" ) - fi - - for use in "${uses[@]}"; do - info "Checking ${oem}${use:+[${use}]}" - USE="${use}" emerge-${BOARD} --usepkg --getbinpkg \ - --emptytree --pretend --verbose "coreos-base/${oem}" - done -done diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 4d4ab65af4f..0ef4f6bceea 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -100,12 +100,6 @@ IMG_DEFAULT_OEM_PACKAGE= # Forced OEM package name overriding what may be in the format IMG_FORCE_OEM_PACKAGE= -# USE flags for the OEM package -IMG_DEFAULT_OEM_USE= - -# Forced USE flags for the OEM package -IMG_FORCE_OEM_USE= - # If set install the given package name to the OEM sysext image IMG_DEFAULT_OEM_SYSEXT= @@ -141,7 +135,6 @@ IMG_DEFAULT_CPUS=2 IMG_qemu_uefi_DISK_FORMAT=qcow2 IMG_qemu_uefi_DISK_LAYOUT=vm IMG_qemu_uefi_CONF_FORMAT=qemu_uefi -IMG_qemu_uefi_OEM_USE=qemu IMG_qemu_uefi_OEM_PACKAGE=common-oem-files IMG_qemu_uefi_OEM_SYSEXT=oem-qemu @@ -190,7 +183,6 @@ IMG_vagrant_parallels_OEM_PACKAGE=oem-vagrant IMG_vmware_DISK_FORMAT=vmdk_scsi IMG_vmware_DISK_LAYOUT=vm IMG_vmware_CONF_FORMAT=vmx -IMG_vmware_OEM_USE=vmware IMG_vmware_OEM_PACKAGE=common-oem-files IMG_vmware_OEM_SYSEXT=oem-vmware @@ -199,12 +191,10 @@ IMG_vmware_ova_DISK_FORMAT=vmdk_stream IMG_vmware_ova_DISK_LAYOUT=vm IMG_vmware_ova_CONF_FORMAT=ovf_vmware IMG_vmware_ova_BUNDLE_FORMAT=ova -IMG_vmware_ova_OEM_USE=vmware IMG_vmware_ova_OEM_PACKAGE=common-oem-files IMG_vmware_ova_OEM_SYSEXT=oem-vmware ## vmware_raw -IMG_vmware_raw_OEM_USE=vmware IMG_vmware_raw_OEM_PACKAGE=common-oem-files IMG_vmware_raw_OEM_SYSEXT=oem-vmware @@ -222,11 +212,9 @@ IMG_parallels_CONF_FORMAT=pvs ## ami IMG_ami_vmdk_DISK_FORMAT=vmdk_stream -IMG_ami_vmdk_OEM_USE=ami IMG_ami_vmdk_OEM_PACKAGE=common-oem-files IMG_ami_vmdk_SYSEXT=oem-ami IMG_ami_vmdk_DISK_LAYOUT=vm -IMG_ami_OEM_USE=ami IMG_ami_OEM_PACKAGE=common-oem-files IMG_ami_OEM_SYSEXT=oem-ami IMG_ami_DISK_LAYOUT=vm @@ -235,13 +223,11 @@ IMG_ami_DISK_LAYOUT=vm IMG_openstack_DISK_FORMAT=qcow2 IMG_openstack_DISK_LAYOUT=vm IMG_openstack_OEM_PACKAGE=common-oem-files -IMG_openstack_OEM_USE=openstack IMG_openstack_OEM_SYSEXT=oem-openstack ## openstack but without a resized root partition for more flexibility IMG_openstack_mini_DISK_FORMAT=qcow2 IMG_openstack_mini_OEM_PACKAGE=common-oem-files -IMG_openstack_mini_OEM_USE=openstack IMG_openstack_mini_OEM_SYSEXT=oem-openstack ## pxe, which is an cpio image @@ -260,7 +246,6 @@ IMG_iso_MEM=2048 IMG_gce_DISK_LAYOUT=vm IMG_gce_CONF_FORMAT=gce IMG_gce_OEM_PACKAGE=common-oem-files -IMG_gce_OEM_USE=gce IMG_gce_OEM_SYSEXT=oem-gce ## rackspace @@ -280,7 +265,6 @@ IMG_cloudstack_vhd_OEM_PACKAGE=oem-cloudstack ## digitalocean IMG_digitalocean_OEM_PACKAGE=common-oem-files -IMG_digitalocean_OEM_USE=digitalocean IMG_digitalocean_OEM_SYSEXT=oem-digitalocean ## exoscale @@ -290,25 +274,21 @@ IMG_exoscale_OEM_PACKAGE=oem-exoscale ## azure IMG_azure_DISK_FORMAT=vhd_fixed IMG_azure_DISK_LAYOUT=azure -IMG_azure_OEM_USE=azure IMG_azure_OEM_PACKAGE=common-oem-files IMG_azure_OEM_SYSEXT=oem-azure ## hetzner IMG_hetzner_DISK_LAYOUT=vm -IMG_hetzner_OEM_USE=hetzner IMG_hetzner_OEM_PACKAGE=common-oem-files IMG_hetzner_OEM_SYSEXT=oem-hetzner ## hyper-v IMG_hyperv_DISK_FORMAT=vhd -IMG_hyperv_OEM_USE=hyperv IMG_hyperv_OEM_PACKAGE=common-oem-files IMG_hyperv_OEM_SYSEXT=oem-hyperv ## hyper-v vhdx IMG_hyperv_vhdx_DISK_FORMAT=vhdx -IMG_hyperv_vhdx_OEM_USE=hyperv IMG_hyperv_vhdx_OEM_PACKAGE=common-oem-files IMG_hyperv_vhdx_OEM_SYSEXT=oem-hyperv @@ -319,13 +299,11 @@ IMG_cloudsigma_OEM_PACKAGE=oem-cloudsigma ## packet IMG_packet_OEM_PACKAGE=common-oem-files IMG_packet_OEM_SYSEXT=oem-packet -IMG_packet_OEM_USE=packet ## scaleway IMG_scaleway_DISK_FORMAT=qcow2 IMG_scaleway_DISK_LAYOUT=vm IMG_scaleway_OEM_PACKAGE=common-oem-files -IMG_scaleway_OEM_USE=scaleway IMG_scaleway_OEM_SYSEXT=oem-scaleway IMG_scaleway_DISK_EXTENSION=qcow2 @@ -333,34 +311,29 @@ IMG_scaleway_DISK_EXTENSION=qcow2 IMG_stackit_DISK_FORMAT=qcow2 IMG_stackit_DISK_LAYOUT=vm IMG_stackit_OEM_PACKAGE=common-oem-files -IMG_stackit_OEM_USE=stackit IMG_stackit_OEM_SYSEXT=oem-stackit ## kubevirt IMG_kubevirt_DISK_FORMAT=qcow2 IMG_kubevirt_DISK_LAYOUT=vm IMG_kubevirt_OEM_PACKAGE=common-oem-files -IMG_kubevirt_OEM_USE=kubevirt IMG_kubevirt_OEM_SYSEXT=oem-kubevirt IMG_kubevirt_DISK_EXTENSION=qcow2 ## akamai (Linode) IMG_akamai_DISK_LAYOUT=vm IMG_akamai_OEM_PACKAGE=common-oem-files -IMG_akamai_OEM_USE=akamai IMG_akamai_OEM_SYSEXT=oem-akamai # proxmoxve IMG_proxmoxve_DISK_FORMAT=qcow2 IMG_proxmoxve_DISK_LAYOUT=vm IMG_proxmoxve_OEM_PACKAGE=common-oem-files -IMG_proxmoxve_OEM_USE=proxmoxve IMG_proxmoxve_OEM_SYSEXT=oem-proxmoxve ## nutanix IMG_nutanix_DISK_FORMAT=qcow2 IMG_nutanix_DISK_LAYOUT=vm -IMG_nutanix_OEM_USE=nutanix IMG_nutanix_OEM_PACKAGE=common-oem-files IMG_nutanix_OEM_SYSEXT=oem-nutanix @@ -397,12 +370,10 @@ set_vm_type() { # Validate and set the oem package, colon delimited USE optional set_vm_oem_pkg() { - local oem_pkg="${1%:*}" oem_use="${1##*:}" - local valid_pkg + local oem_pkg="${1}" valid_pkg for valid_pkg in "${VALID_OEM_PACKAGES[@]}"; do if [[ "${oem_pkg}" == "${valid_pkg}" ]]; then IMG_FORCE_OEM_PACKAGE="oem-${oem_pkg}" - IMG_FORCE_OEM_USE="${oem_use}" return 0 fi done From c5e95a17c35c95bd095f8c170455f419a4119a07 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 19 Feb 2026 11:56:26 +0000 Subject: [PATCH 06/21] build_sysext: Safely quote the extension-release.d fields Signed-off-by: James Le Cuirot --- build_sysext | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/build_sysext b/build_sysext index d590423f7a1..6bd6066147a 100755 --- a/build_sysext +++ b/build_sysext @@ -282,15 +282,13 @@ for entry in "${BUILD_DIR}/${FLAGS_install_root_basename}"/*; do info " Removing ${entry##*/}" rm -rf "${entry}" done -mkdir -p "${BUILD_DIR}/${FLAGS_install_root_basename}/usr/lib/extension-release.d" -version_field="${VERSION_FIELD_OVERRIDE:-VERSION_ID=${FLATCAR_VERSION_ID}}" -all_fields=( - 'ID=flatcar' - "${version_field}" - "ARCHITECTURE=${ARCH}" - "EXTENSION_RELOAD_MANAGER=1" -) -printf '%s\n' "${all_fields[@]}" >"${BUILD_DIR}/${FLAGS_install_root_basename}/usr/lib/extension-release.d/extension-release.${SYSEXTNAME}" + +grep . </dev/null)" = y ]; then attr -R -r overlay.opaque {}; fi' \; From 282a47a9d799d08c405e988b2dac339f0135bf6f Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 19 Feb 2026 11:57:38 +0000 Subject: [PATCH 07/21] build_sysext: Populate SYSEXT_ID/NAME/VERSION_ID/HOME_URL/BUG_REPORT_URL These extension-release.d fields are equivalent to their non-SYSEXT os-release counterparts. SYSEXT_ID is taken from the sysext's name as given to build_sysext. SYSEXT_NAME, SYSEXT_VERSION_ID, and SYSEXT_HOME_URL are taken from the package if only one is given. SYSEXT_NAME is the new name for the OEM_NAME variable. Signed-off-by: James Le Cuirot --- build_sysext | 38 ++++++++++++------- .../common-oem-files-0-r11.ebuild | 4 +- .../oem-akamai/oem-akamai-0.ebuild | 2 +- .../oem-ami/oem-ami-3.3.2299.0.ebuild | 2 +- .../oem-azure/oem-azure-2.12.0.4-r2.ebuild | 2 +- .../oem-digitalocean-0.1.1-r2.ebuild | 2 +- .../oem-gce/oem-gce-20180823-r7.ebuild | 2 +- .../oem-hetzner/oem-hetzner-0.ebuild | 2 +- .../oem-hyperv/oem-hyperv-0.2.0.ebuild | 2 +- .../oem-kubevirt/oem-kubevirt-0.ebuild | 2 +- .../oem-nutanix/oem-nutanix-0.0.1.ebuild | 2 +- .../oem-openstack/oem-openstack-0.ebuild | 2 +- .../oem-packet/oem-packet-0.2.2-r2.ebuild | 2 +- .../oem-proxmoxve/oem-proxmoxve-0.ebuild | 2 +- .../oem-qemu/oem-qemu-0.0.2.ebuild | 2 +- .../oem-scaleway/oem-scaleway-0.ebuild | 2 +- .../oem-stackit/oem-stackit-0.ebuild | 2 +- .../oem-vmware/oem-vmware-13.0.10.ebuild | 2 +- 18 files changed, 43 insertions(+), 31 deletions(-) diff --git a/build_sysext b/build_sysext index 6bd6066147a..b53a209566b 100755 --- a/build_sysext +++ b/build_sysext @@ -93,8 +93,8 @@ switch_to_strict_mode -uo pipefail # Validate command line parameters -SYSEXTNAME="${1:-}" -if [[ -z "${SYSEXTNAME}" ]]; then +SYSEXT_ID="${1:-}" +if [[ -z "${SYSEXT_ID}" ]]; then die "No sysext name provided." fi shift @@ -216,7 +216,7 @@ if [[ ${#} -lt 1 ]]; then show_help_if_requested -h fi -info "Building '${SYSEXTNAME}' sysext with (meta-)packages '${@}' in '${BUILD_DIR}' using '${FLAGS_compression}' compression". +info "Building '${SYSEXT_ID}' sysext with (meta-)packages '${@}' in '${BUILD_DIR}' using '${FLAGS_compression}' compression". for package; do echo "Installing package into sysext image: $package" @@ -232,6 +232,13 @@ for package; do "${package}" done +# If there's only one package, grab its metadata for the sysext. +unset PVR HOMEPAGE SYSEXT_NAME +if [[ ${#} -eq 1 ]]; then + CPV=$(portageq best_version "${BUILD_DIR}/${FLAGS_install_root_basename}" "$1") + IFS=$'\n' read -r -d '' PVR HOMEPAGE SYSEXT_NAME < <(portageq metadata "${BUILD_DIR}/${FLAGS_install_root_basename}" installed "${CPV}" PVR HOMEPAGE SYSEXT_NAME; printf '\0') +fi + # Make squashfs generation more reproducible. export SOURCE_DATE_EPOCH=$(stat -c '%Y' "${BUILD_DIR}/fs-root/usr/lib/os-release") @@ -240,16 +247,16 @@ umount "${BUILD_DIR}/${FLAGS_install_root_basename}" umount "${BUILD_DIR}/fs-root" if [[ "$FLAGS_generate_pkginfo" = "${FLAGS_TRUE}" ]] ; then - info " Creating pkginfo squashfs '${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw'" + info " Creating pkginfo squashfs '${BUILD_DIR}/${SYSEXT_ID}_pkginfo.raw'" mkdir -p "${BUILD_DIR}/img-pkginfo/var/db" cp -R "${BUILD_DIR}/${FLAGS_install_root_basename}/var/db/pkg" "${BUILD_DIR}/img-pkginfo/var/db/" - mksquashfs "${BUILD_DIR}/img-pkginfo" "${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw" \ + mksquashfs "${BUILD_DIR}/img-pkginfo" "${BUILD_DIR}/${SYSEXT_ID}_pkginfo.raw" \ -noappend -xattrs-exclude '^btrfs.' -comp zstd -Xcompression-level 22 -b 512k fi -info "Writing ${SYSEXTNAME}_packages.txt" +info "Writing ${SYSEXT_ID}_packages.txt" ROOT="${BUILD_DIR}/${FLAGS_install_root_basename}" PORTAGE_CONFIGROOT="/build/${FLAGS_board}" \ - equery --no-color list --format '$cpv::$repo' '*' > "${BUILD_DIR}/${SYSEXTNAME}_packages.txt" + equery --no-color list --format '$cpv::$repo' '*' > "${BUILD_DIR}/${SYSEXT_ID}_packages.txt" if [[ "${FLAGS_strip_binaries}" = "${FLAGS_TRUE}" ]]; then @@ -283,11 +290,16 @@ for entry in "${BUILD_DIR}/${FLAGS_install_root_basename}"/*; do rm -rf "${entry}" done -grep . < --- changelog/bugfixes/2026-04-28-virtualbox.md | 1 + .../sys-kernel/coreos-modules/files/amd64_defconfig-6.12 | 1 + 2 files changed, 2 insertions(+) create mode 100644 changelog/bugfixes/2026-04-28-virtualbox.md diff --git a/changelog/bugfixes/2026-04-28-virtualbox.md b/changelog/bugfixes/2026-04-28-virtualbox.md new file mode 100644 index 00000000000..9990aa1a49a --- /dev/null +++ b/changelog/bugfixes/2026-04-28-virtualbox.md @@ -0,0 +1 @@ +- Fixed booting the VirtualBox image, which was broken since upstream Ignition changed how their VirtualBox support works. The Vagrant VirtualBox image was unaffected. diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/amd64_defconfig-6.12 b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/amd64_defconfig-6.12 index c19cbac2136..23cacc9adf5 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/amd64_defconfig-6.12 +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/amd64_defconfig-6.12 @@ -108,6 +108,7 @@ CONFIG_TCG_INFINEON=m CONFIG_TCG_NSC=m CONFIG_UPROBE_EVENTS=y CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_VBOXGUEST=m CONFIG_VFIO_PCI_IGD=y CONFIG_VFIO_PCI_VGA=y CONFIG_VHOST_VSOCK=m From b1f4e37031c4666d9ba471de62e787f6a1ae4809 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 18:30:02 +0100 Subject: [PATCH 10/21] sys-kernel/bootengine: Bump for better oem.id handling and vboxguest This allows us to drop an Ignition patch. Signed-off-by: James Le Cuirot --- ...ded-platforms-to-docs-to-pass-tests.patch} | 0 ...6-revert-internal-oem-drop-noop-OEMs.patch | 46 ------------------- ...oem.patch => 0017-usr-share-oem-oem.patch} | 0 ...nternal-exec-stages-mount-Mount-oem.patch} | 0 .../sys-apps/ignition/ignition-9999.ebuild | 7 ++- .../sys-kernel/bootengine/Manifest | 2 +- ...42.ebuild => bootengine-0.0.38-r43.ebuild} | 0 .../bootengine/bootengine-9999.ebuild | 2 +- 8 files changed, 5 insertions(+), 52 deletions(-) rename sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/{0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch => 0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch} (100%) delete mode 100644 sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-revert-internal-oem-drop-noop-OEMs.patch rename sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/{0018-usr-share-oem-oem.patch => 0017-usr-share-oem-oem.patch} (100%) rename sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/{0019-internal-exec-stages-mount-Mount-oem.patch => 0018-internal-exec-stages-mount-Mount-oem.patch} (100%) rename sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/{bootengine-0.0.38-r42.ebuild => bootengine-0.0.38-r43.ebuild} (100%) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch rename to sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-revert-internal-oem-drop-noop-OEMs.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-revert-internal-oem-drop-noop-OEMs.patch deleted file mode 100644 index cf576c5fbba..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-revert-internal-oem-drop-noop-OEMs.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 60a6c5a81e06fbaed6939ac925937ca941f0732e Mon Sep 17 00:00:00 2001 -From: Mathieu Tortuyaux -Date: Tue, 20 Feb 2024 10:25:24 +0100 -Subject: [PATCH 16/19] revert: internal/oem: drop noop OEMs - -This reverts: https://github.com/flatcar/ignition/commit/26828f92e00060aa8ebf2197545ad602af237132 - -Signed-off-by: Mathieu Tortuyaux ---- - internal/providers/metal/metal.go | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/internal/providers/metal/metal.go b/internal/providers/metal/metal.go -index 27c923d4..ae259f8f 100644 ---- a/internal/providers/metal/metal.go -+++ b/internal/providers/metal/metal.go -@@ -26,10 +26,26 @@ import ( - ) - - func init() { -+ platform.Register(platform.Provider{ -+ Name: "cloudsigma", -+ Fetch: fetchConfig, -+ }) - platform.Register(platform.Provider{ - Name: "metal", - Fetch: fetchConfig, - }) -+ platform.Register(platform.Provider{ -+ Name: "rackspace", -+ Fetch: fetchConfig, -+ }) -+ platform.Register(platform.Provider{ -+ Name: "rackspace-onmetal", -+ Fetch: fetchConfig, -+ }) -+ platform.Register(platform.Provider{ -+ Name: "vagrant", -+ Fetch: fetchConfig, -+ }) - } - - func fetchConfig(f *resource.Fetcher) (types.Config, report.Report, error) { --- -2.51.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0018-usr-share-oem-oem.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0017-usr-share-oem-oem.patch similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0018-usr-share-oem-oem.patch rename to sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0017-usr-share-oem-oem.patch diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0019-internal-exec-stages-mount-Mount-oem.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0018-internal-exec-stages-mount-Mount-oem.patch similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0019-internal-exec-stages-mount-Mount-oem.patch rename to sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0018-internal-exec-stages-mount-Mount-oem.patch diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild index 63750b14966..0d3d12faa81 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild @@ -31,10 +31,9 @@ else "${FILESDIR}/0013-Partially-revert-drop-OEM-URI-support.patch" "${FILESDIR}/0014-config-Support-oem-schema-in-newer-config-spec-versi.patch" "${FILESDIR}/0015-translation-support-OEM-and-oem.patch" - "${FILESDIR}/0016-revert-internal-oem-drop-noop-OEMs.patch" - "${FILESDIR}/0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch" - "${FILESDIR}/0018-usr-share-oem-oem.patch" - "${FILESDIR}/0019-internal-exec-stages-mount-Mount-oem.patch" + "${FILESDIR}/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch" + "${FILESDIR}/0017-usr-share-oem-oem.patch" + "${FILESDIR}/0018-internal-exec-stages-mount-Mount-oem.patch" ) fi diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest index 3d27149da6c..d693efd2eae 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest @@ -1 +1 @@ -DIST bootengine-003a67d93a99705391a0a1fa825f018b074d8e8b.tar.gz 37805 BLAKE2B 25abb7cf425a02c330245c7efc63406ee823fd9921afd39f9b413eda1451fa48ed150dd104cb550f9b81e7445b4c9e50a0ec55077dbf6de0c712cbcb7339dd67 SHA512 a9246398a560a7bbdb7b1d714012fdca65a2475843cfcb5fd20551086165623d248c577b6170fb32a75709a67014b33581c415e4c5410202e29a57e6a0ff6d88 +DIST bootengine-32aede10a3d9e20036ead7e2dc45242f0f273f45.tar.gz 37819 BLAKE2B 4f69f3373d6098516072391767ce14b00ff4226fab275ca8e0998edf2b05f4eb5f4b1ae9a0bf8851c60206602a57a61f0a195ddf7871588e84c2f32310a9ca91 SHA512 1b791e65dc9ce3b8e322262ae588e546b25977902be96cbe2a62bd67ee703362b4c327430ff918011819f8d91f9ce7340efd86122c1b24da3eccfa729ba356f0 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r42.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r43.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r42.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r43.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild index 2857e0ab741..daf63846c67 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/flatcar/bootengine.git" inherit git-r3 else - EGIT_VERSION="003a67d93a99705391a0a1fa825f018b074d8e8b" # flatcar-master + EGIT_VERSION="32aede10a3d9e20036ead7e2dc45242f0f273f45" SRC_URI="https://github.com/flatcar/bootengine/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz" S="${WORKDIR}/${PN}-${EGIT_VERSION}" KEYWORDS="amd64 arm arm64 x86" From b27c62208d4af3d6d9f6aeced6f1c32e0bf69ea9 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 23 Apr 2026 15:18:34 +0100 Subject: [PATCH 11/21] Drop support for Rackspace Signed-off-by: James Le Cuirot --- build_library/check_root | 1 - build_library/disk_layout.json | 8 ---- build_library/vm_image_util.sh | 15 ------- changelog/changes/2026-04-23-rackspace.md | 1 + .../coreos-base/nova-agent-container/Manifest | 1 - .../nova-agent-container/metadata.xml | 4 -- .../nova-agent-container-0.0.1-r1.ebuild | 18 -------- .../coreos-base/nova-agent-watcher/Manifest | 1 - .../nova-agent-watcher/metadata.xml | 7 ---- .../nova-agent-watcher-0.0.7-r2.ebuild | 1 - .../nova-agent-watcher-9999.ebuild | 30 ------------- .../files/cloud-config.yml | 42 ------------------- .../oem-rackspace-onmetal/files/grub.cfg | 13 ------ .../oem-rackspace-onmetal/metadata.xml | 4 -- .../oem-rackspace-onmetal-0.0.8-r2.ebuild | 27 ------------ .../oem-rackspace/files/cloud-config.yml | 37 ---------------- .../files/flatcar-setup-environment | 35 ---------------- .../coreos-base/oem-rackspace/files/grub.cfg | 3 -- .../coreos-base/oem-rackspace/metadata.xml | 4 -- .../oem-rackspace-0.0.4-r3.ebuild | 39 ----------------- ...dded-platforms-to-docs-to-pass-tests.patch | 4 +- ....0-r2.ebuild => ignition-2.24.0-r3.ebuild} | 0 22 files changed, 2 insertions(+), 293 deletions(-) create mode 100644 changelog/changes/2026-04-23-rackspace.md delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml delete mode 120000 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml delete mode 100755 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild rename sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/{ignition-2.24.0-r2.ebuild => ignition-2.24.0-r3.ebuild} (100%) diff --git a/build_library/check_root b/build_library/check_root index 4b1bf255f60..62ee2c710a7 100755 --- a/build_library/check_root +++ b/build_library/check_root @@ -107,7 +107,6 @@ IGNORE_SHEBANG = ( "*/python[0-9].[0-9][0-9]/cgi.py", "*/usr/lib64/modules/*/source/scripts/*", "*/usr/lib/modules/*/source/scripts/*", - "*/usr/share/nova-agent/*/etc/gentoo/nova-agent", "*/tmp/*", "*/Documentation/*", "*/doc/*", diff --git a/build_library/disk_layout.json b/build_library/disk_layout.json index 2106b0f7377..7b30e4d5b11 100644 --- a/build_library/disk_layout.json +++ b/build_library/disk_layout.json @@ -98,14 +98,6 @@ "blocks":"33845248" } }, - "onmetal":{ - "7":{ - "label":"config-2", - "fs_label":"config-2", - "type":"data", - "fs_type":"ext2" - } - }, "container":{ "1":{ "type":"blank" diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 0ef4f6bceea..1c4c346e4ef 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -28,9 +28,6 @@ VALID_IMG_TYPES=( proxmoxve pxe qemu_uefi - rackspace - rackspace_onmetal - rackspace_vhd scaleway stackit vagrant @@ -62,8 +59,6 @@ VALID_OEM_PACKAGES=( packet proxmoxve qemu - rackspace - rackspace-onmetal scaleway stackit vagrant @@ -248,16 +243,6 @@ IMG_gce_CONF_FORMAT=gce IMG_gce_OEM_PACKAGE=common-oem-files IMG_gce_OEM_SYSEXT=oem-gce -## rackspace -IMG_rackspace_OEM_PACKAGE=oem-rackspace -IMG_rackspace_vhd_DISK_FORMAT=vhd -IMG_rackspace_vhd_OEM_PACKAGE=oem-rackspace - -## rackspace onmetal -IMG_rackspace_onmetal_DISK_FORMAT=qcow2 -IMG_rackspace_onmetal_DISK_LAYOUT=onmetal -IMG_rackspace_onmetal_OEM_PACKAGE=oem-rackspace-onmetal - ## cloudstack IMG_cloudstack_OEM_PACKAGE=oem-cloudstack IMG_cloudstack_vhd_DISK_FORMAT=vhd diff --git a/changelog/changes/2026-04-23-rackspace.md b/changelog/changes/2026-04-23-rackspace.md new file mode 100644 index 00000000000..89e4d29988b --- /dev/null +++ b/changelog/changes/2026-04-23-rackspace.md @@ -0,0 +1 @@ +- Dropped support for Rackspace, including OnMetal. Rackspace-specific images are no longer built or published. Flatcar only had community level support for Rackspace, and the Flatcar team is no longer confident that this support actually works. Rackspace themselves have pivoted from being an independent cloud provider to being a management platform for other clouds. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest deleted file mode 100644 index b1077281b9b..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST nova-agent-container-0.0.1.tar.gz 6634988 SHA256 ccaea8ea597111d5b89649e9fb03f6a9fdf8530e69c18c8af6e059d7ac20a029 SHA512 71468307ed8d87fafcaf44d1cb48b5499a42e9902a61d97d6ea191fed3e0e81cc8c3beb61839449f5ec87f54717801d2aa56df848bfa2b6602419360e3196005 WHIRLPOOL 0989323868fcf751c8aa4381130c0607cb19f8271c531018ee7bc12676b89e0f908f3999a7da6462c4654673eed822f427ed24d93da4e46d3ea0ddf7a8cc6eed diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild deleted file mode 100644 index f7d01e11e74..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-container/nova-agent-container-0.0.1-r1.ebuild +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="nova agent for rackspace images" -HOMEPAGE="https://github.com/coreos/nova-agent-container" -SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -src_install() { - dodir /oem/nova-agent - rsync -aq "${S}/" "${D}/oem/nova-agent/" || die -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest deleted file mode 100644 index cec1b060487..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST nova-agent-watcher-f750d8e5e91a7e7e22e26c9d241d27b1b7563d70.tar.gz 217622 BLAKE2B 73c2975faba141cb5d259adf0f8ae8a9bbe7e89fd94e9a66577ad67798c5a740d2e25b8d826ee1241b3ebfb783df5ea42bf747bc5d6b12fe5f2624950d367e00 SHA512 0e684f95328c253734f9f5feac9340d403f4f50b5e87cc4a5eab95dde2a13a5eef9c967bbede7b315757063a9b2aef557a5370b489e0a781a072eec0c4b2e25c diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml deleted file mode 100644 index 0bdb255dd6f..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/metadata.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - coreos/nova-agent-watcher - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild deleted file mode 120000 index 9723e177c8c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-0.0.7-r2.ebuild +++ /dev/null @@ -1 +0,0 @@ -nova-agent-watcher-9999.ebuild \ No newline at end of file diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild deleted file mode 100644 index 068ab472ffc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/nova-agent-watcher/nova-agent-watcher-9999.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (c) 2014 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -COREOS_GO_PACKAGE="github.com/coreos/nova-agent-watcher" -COREOS_GO_GO111MODULE="off" -inherit coreos-go - -DESCRIPTION="Watches for changes from Nova and reapplies them with coreos-cloudinit" -HOMEPAGE="https://github.com/coreos/nova-agent-watcher" - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/coreos/nova-agent-watcher.git" - inherit git-r3 -else - EGIT_VERSION="f750d8e5e91a7e7e22e26c9d241d27b1b7563d70" - SRC_URI="https://github.com/coreos/nova-agent-watcher/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz" - S="${WORKDIR}/${PN}-${EGIT_VERSION}" - KEYWORDS="amd64 arm64" -fi - -LICENSE="Apache-2.0" -SLOT="0" - -src_install() { - into /oem - dobin scripts/gentoo-to-networkd - dobin "${GOBIN}"/nova-agent-watcher -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml deleted file mode 100644 index c051c235bc2..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/cloud-config.yml +++ /dev/null @@ -1,42 +0,0 @@ -#cloud-config - -coreos: - units: - - name: user-configdrive.service.d/netconf.conf - runtime: yes - content: | - [Service] - ExecStart= - ExecStart=/usr/bin/coreos-cloudinit --oem=rackspace-onmetal - - name: ping-out.service - runtime: yes - enable: yes - content: | - [Unit] - After=user-config.target - - [Service] - Type=oneshot - RemainAfterExit=yes - ExecStart=/usr/bin/sh -c "ping -A -c1 $(ip route | awk '/default/ { print $3 }')" - - [Install] - WantedBy=user-config.target - - name: media-configdrive.mount - command: start - runtime: yes - content: | - [Unit] - Wants=user-configdrive.service - Before=user-configdrive.service - - [Mount] - What=/dev/disk/by-label/config-2 - Where=/media/configdrive - Options=ro - oem: - id: onmetal - name: Rackspace OnMetal - version-id: @@OEM_VERSION_ID@@ - home-url: http://www.rackspace.com/ - bug-report-url: https://issues.flatcar.org diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg deleted file mode 100644 index 9519ecd9690..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/files/grub.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Flatcar GRUB settings - -set oem_id="rackspace-onmetal" - -# Rackspace wanted a longer timeout, I forget why. (15 seconds) -set timeout=15 - -# Switch default console to ttyS4, only applies to Linux since -# GRUB needs exact IO ports for non-standard serial devices. -set linux_console="console=ttyS4,115200n8 8250.nr_uarts=5" - -# Blacklist MEI, the firmware is just plain broken. -set linux_append="modprobe.blacklist=mei_me net.ifnames=0" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild deleted file mode 100644 index e6752e3a63b..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace-onmetal/oem-rackspace-onmetal-0.0.8-r2.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for Rackspace Teeth images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - insinto "/oem" - doins "${T}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml deleted file mode 100644 index 4b5310c1ba1..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml +++ /dev/null @@ -1,37 +0,0 @@ -#cloud-config - -coreos: - units: - - name: nova-agent-auto.service - command: restart - runtime: yes - content: | - [Unit] - After=dbus.service - [Service] - Environment=HOME=/root - ExecStartPre=/bin/mount -t proc none /oem/nova-agent/proc - ExecStartPre=/bin/mount -t xenfs none /oem/nova-agent/proc/xen - ExecStartPre=/bin/mount --bind /dev /oem/nova-agent/dev - ExecStartPre=/bin/mount --bind /sys /oem/nova-agent/sys - ExecStart=/usr/bin/chroot /oem/nova-agent/ /usr/share/nova-agent/0.0.1.38/sbin/nova-agent -o - -n -l info /usr/share/nova-agent/nova-agent.py - ExecStopPost=/bin/umount -f /oem/nova-agent/sys - ExecStopPost=/bin/umount -f /oem/nova-agent/dev - ExecStopPost=/bin/umount -f /oem/nova-agent/proc/xen - ExecStopPost=/bin/umount -f /oem/nova-agent/proc - - name: nova-agent-watcher.service - command: restart - runtime: yes - content: | - [Unit] - After=dbus.service - - [Service] - ExecStart=/oem/bin/nova-agent-watcher -watch-dir=/oem/nova-agent -scripts-dir=/oem/bin/ - - oem: - id: rackspace - name: Rackspace Cloud Servers - version-id: @@OEM_VERSION_ID@@ - home-url: https://www.rackspace.com/cloud/servers/ - bug-report-url: https://issues.flatcar.org diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment deleted file mode 100755 index 2e5f9c1bd01..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/flatcar-setup-environment +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -e - -ENV=$1 - -if [ -z "$ENV" ]; then - echo usage: $0 /etc/environment - exit 1 -fi -# test for rw -touch $ENV -if [ $? -ne 0 ]; then - echo exiting, unable to modify: $ENV - exit 1 -fi - -sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \ - -e '/^COREOS_PRIVATE_IPV4=/d' \ - "${ENV}" - -# We spin loop until the nova-agent sets up the ip addresses -function get_ip () { - IF=$1 - IP= - while [ 1 ]; do - IP=$(ifconfig $IF | awk '/inet /{print $2}') - if [ "$IP" != "" ]; then - break - fi - sleep .1 - done - echo $IP -} - -echo COREOS_PUBLIC_IPV4=$(get_ip eth0) >> $ENV -echo COREOS_PRIVATE_IPV4=$(get_ip eth1) >> $ENV diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg deleted file mode 100644 index 8e05a0e0643..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/grub.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Flatcar GRUB settings - -set oem_id="rackspace" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild deleted file mode 100644 index f36e73fa141..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.4-r3.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 -# $Header:$ -# - -EAPI=7 - -DESCRIPTION="oem suite for rackspace images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -RDEPEND=" - coreos-base/nova-agent-container - coreos-base/nova-agent-watcher -" - -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - insinto "/oem" - doins "${T}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" - - into "/oem" - dobin "${FILESDIR}/flatcar-setup-environment" -} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch index 1065f45d67f..c29e3cc5181 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/files/0016-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch @@ -21,12 +21,10 @@ index 897eeabd..2a861637 100644 * [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately. * [Exoscale] (`exoscale`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Google Cloud] (`gcp`) - Ignition will read its configuration from the instance metadata entry named "user-data". Cloud SSH keys are handled separately. -@@ -31,6 +32,9 @@ Ignition is currently supported for the following platforms: +@@ -31,6 +32,7 @@ Ignition is currently supported for the following platforms: * [Equinix Metal] (`packet`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [IBM Power Systems Virtual Server] (`powervs`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [QEMU] (`qemu`) - Ignition will read its configuration from the 'opt/com.coreos/config' key on the QEMU Firmware Configuration Device (available in QEMU 2.4.0 and higher). -+* `rackspace` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. -+* `rackspace-onmetal` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. +* `vagrant` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Scaleway] (`scaleway`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [UpCloud] (`upcloud`) - Ignition will read its configuration from the instance userdata fetched from the metadata service (which is NOT enabled by default, make sure you enable it if you use custom images). Cloud SSH keys are handled separately. diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r3.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r2.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-2.24.0-r3.ebuild From 26058f1976d528773690c7a558afab174573da35 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 23 Apr 2026 15:56:59 +0100 Subject: [PATCH 12/21] Drop support for Equinix Metal (Packet) Signed-off-by: James Le Cuirot --- .github/workflows/ci.yaml | 11 ----------- build_library/vm_image_util.sh | 15 --------------- changelog/changes/2026-04-23-equinix-metal.md | 1 + ci-automation/test.sh | 2 +- ci-automation/vms.sh | 12 ------------ pkg_auto/impl/for-shellcheck/globals | 1 - .../afterburn/files/coreos-metadata.service | 3 --- .../common-oem-files-0-r11.ebuild | 1 - .../common-oem-files/files/packet/grub.cfg.frag | 6 ------ .../coreos-base/oem-packet/metadata.xml | 4 ---- .../oem-packet/oem-packet-0.2.2-r2.ebuild | 15 --------------- 11 files changed, 2 insertions(+), 69 deletions(-) create mode 100644 changelog/changes/2026-04-23-equinix-metal.md delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/packet/grub.cfg.frag delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-packet/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-packet/oem-packet-0.2.2-r2.ebuild diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9f0d09083a8..b5399f2c0ad 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -189,15 +189,6 @@ jobs: images_out="images" - has_packet=0 - has_pxe=0 - formats="${IMAGE_FORMATS}" - for format in "${formats}";do - [[ "${format}" = 'packet' ]] || [[ "${format}" = 'equinix_metal' ]] && has_packet=1 - [[ "${format}" = 'pxe' ]] && has_pxe=1 - done - - [[ ${has_packet} -eq 1 ]] && [[ ${has_pxe} -eq 0 ]] && set -- 'pxe' "${@}" if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') formats+=" vmware vmware_insecure vmware_ova vmware_raw" @@ -206,8 +197,6 @@ jobs: formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') formats+=" ami ami_vmdk" fi - # Keep compatibility with SDK scripts where "equinix_metal" remains unknown. - formats=$(echo "$formats" | tr ' ' '\n' | sed 's/equinix_metal/packet/g') for format in ${formats}; do if [ "${format}" = qemu ] || [ "${format}" = qemu_uefi_secure ]; then diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 1c4c346e4ef..9f76c22f72a 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -23,7 +23,6 @@ VALID_IMG_TYPES=( kubevirt openstack openstack_mini - packet parallels proxmoxve pxe @@ -56,7 +55,6 @@ VALID_OEM_PACKAGES=( hyperv kubevirt openstack - packet proxmoxve qemu scaleway @@ -281,10 +279,6 @@ IMG_hyperv_vhdx_OEM_SYSEXT=oem-hyperv IMG_cloudsigma_DISK_FORMAT=qcow2 IMG_cloudsigma_OEM_PACKAGE=oem-cloudsigma -## packet -IMG_packet_OEM_PACKAGE=common-oem-files -IMG_packet_OEM_SYSEXT=oem-packet - ## scaleway IMG_scaleway_DISK_FORMAT=qcow2 IMG_scaleway_DISK_LAYOUT=vm @@ -878,15 +872,6 @@ You can pass extra kernel parameters with -append, for example: When using -nographic or -serial you must also enable the serial console: ./$(basename "${script}") -nographic -append 'console=ttyS0,115200n8' EOF - local packetipxe="$(_dst_dir)/flatcar_production_packet.ipxe" - cat > "$packetipxe" < - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-packet/oem-packet-0.2.2-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-packet/oem-packet-0.2.2-r2.ebuild deleted file mode 100644 index 200df1209e6..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-packet/oem-packet-0.2.2-r2.ebuild +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2020 Kinvolk GmbH. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Equinix Metal suite for Equinix Metal" -HOMEPAGE="https://www.equinix.com/" -SRC_URI="" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 arm64" -IUSE="" - -SYSEXT_NAME="Equinix Metal" From 6efcce082320cfe47b0bd0ec872583c59f7a4fa1 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 14:51:13 +0100 Subject: [PATCH 13/21] Drop the vmware_insecure image Signed-off-by: James Le Cuirot --- .github/workflows/ci.yaml | 2 +- build_library/vm_image_util.sh | 66 ------------------- .../changes/2026-04-27-vmware-insecure.md | 1 + ci-automation/vms.sh | 2 +- .../oem-vagrant-key/files/cloud-config.yml | 4 -- .../oem-vagrant-key/files/grub.cfg | 3 - .../coreos-base/oem-vagrant-key/metadata.xml | 4 -- .../oem-vagrant-key-0.0.3-r1.ebuild | 22 ------- 8 files changed, 3 insertions(+), 101 deletions(-) create mode 100644 changelog/changes/2026-04-27-vmware-insecure.md delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/files/cloud-config.yml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/files/grub.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/oem-vagrant-key-0.0.3-r1.ebuild diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b5399f2c0ad..6edd0230096 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -191,7 +191,7 @@ jobs: if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') - formats+=" vmware vmware_insecure vmware_ova vmware_raw" + formats+=" vmware vmware_ova vmware_raw" fi if echo "$formats" | tr ' ' '\n' | grep -q -P '^(ami|aws)'; then formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 9f76c22f72a..03ead828ab5 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -35,7 +35,6 @@ VALID_IMG_TYPES=( vagrant_vmware_fusion virtualbox vmware - vmware_insecure vmware_ova vmware_raw xen @@ -60,7 +59,6 @@ VALID_OEM_PACKAGES=( scaleway stackit vagrant - vagrant-key vagrant-virtualbox virtualbox vmware @@ -191,12 +189,6 @@ IMG_vmware_ova_OEM_SYSEXT=oem-vmware IMG_vmware_raw_OEM_PACKAGE=common-oem-files IMG_vmware_raw_OEM_SYSEXT=oem-vmware -## vmware_insecure -IMG_vmware_insecure_DISK_FORMAT=vmdk_scsi -IMG_vmware_insecure_DISK_LAYOUT=vm -IMG_vmware_insecure_CONF_FORMAT=vmware_zip -IMG_vmware_insecure_OEM_PACKAGE=oem-vagrant-key - ## parallels IMG_parallels_BUNDLE_FORMAT=pvm_tgz IMG_parallels_DISK_FORMAT=hdd @@ -937,64 +929,6 @@ EOF fi } -_write_vmware_zip_conf() { - local src_name=$(basename "$VM_SRC_IMG") - local dst_name=$(basename "$VM_DST_IMG") - local dst_dir=$(dirname "$VM_DST_IMG") - local vmx_path="${dst_dir}/$(_src_to_dst_name "${src_name}" ".vmx")" - local vmx_file=$(basename "${vmx_path}") - local zip="${dst_dir}/$(_src_to_dst_name "${src_name}" ".zip")" - - _write_vmx_conf "$1" - - # Move the disk/vmx to tmp, they will be zipped. - mv "${VM_DST_IMG}" "${VM_TMP_DIR}/${dst_name}" - mv "${vmx_path}" "${VM_TMP_DIR}/${vmx_file}" - cat > "${VM_TMP_DIR}/insecure_ssh_key" < "${VM_README}" < - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/oem-vagrant-key-0.0.3-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/oem-vagrant-key-0.0.3-r1.ebuild deleted file mode 100644 index 019f35f0bca..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-key/oem-vagrant-key-0.0.3-r1.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2013 The CoreOS Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for login access via Vagrant's ssh key." -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_install() { - insinto "/oem" - doins "${FILESDIR}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" -} From 42cc462e91e724747bb489f494b3d0911c91cea4 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 15:34:41 +0100 Subject: [PATCH 14/21] Drop the vagrant_virtualbox image in favour of the vagrant image Signed-off-by: James Le Cuirot --- build_library/vm_image_util.sh | 10 - .../changes/2026-04-27-vagrant-virtualbox.md | 1 + .../coreos-base/afterburn/Manifest | 1 - ...10.0.ebuild => afterburn-5.10.0-r1.ebuild} | 0 .../afterburn/afterburn-9999.ebuild | 6 +- ...0001-Revert-remove-cl-legacy-feature.patch | 184 +----------------- .../files/box/Vagrantfile | 31 --- .../files/box/base_mac.rb | 4 - .../files/box/change_host_name.rb | 18 -- .../files/box/configure_networks.rb | 18 -- .../oem-vagrant-virtualbox/files/grub.cfg | 3 - .../oem-vagrant-virtualbox/metadata.xml | 4 - .../oem-vagrant-virtualbox-0.0.2-r1.ebuild | 22 --- 13 files changed, 3 insertions(+), 299 deletions(-) create mode 100644 changelog/changes/2026-04-27-vagrant-virtualbox.md rename sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/{afterburn-5.10.0.ebuild => afterburn-5.10.0-r1.ebuild} (100%) delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/Vagrantfile delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/base_mac.rb delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/change_host_name.rb delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/configure_networks.rb delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/grub.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/oem-vagrant-virtualbox-0.0.2-r1.ebuild diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 03ead828ab5..4eb5a0df3d8 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -31,7 +31,6 @@ VALID_IMG_TYPES=( stackit vagrant vagrant_parallels - vagrant_virtualbox vagrant_vmware_fusion virtualbox vmware @@ -59,7 +58,6 @@ VALID_OEM_PACKAGES=( scaleway stackit vagrant - vagrant-virtualbox virtualbox vmware ) @@ -146,14 +144,6 @@ IMG_vagrant_DISK_LAYOUT=vagrant IMG_vagrant_CONF_FORMAT=vagrant IMG_vagrant_OEM_PACKAGE=oem-vagrant -## vagrant_virtualbox -IMG_vagrant_virtualbox_FS_HOOK=box -IMG_vagrant_virtualbox_BUNDLE_FORMAT=box -IMG_vagrant_virtualbox_DISK_FORMAT=vmdk_ide -IMG_vagrant_virtualbox_DISK_LAYOUT=vagrant -IMG_vagrant_virtualbox_CONF_FORMAT=vagrant -IMG_vagrant_virtualbox_OEM_PACKAGE=oem-vagrant-virtualbox - ## vagrant_vmware IMG_vagrant_vmware_fusion_FS_HOOK=box IMG_vagrant_vmware_fusion_BUNDLE_FORMAT=box diff --git a/changelog/changes/2026-04-27-vagrant-virtualbox.md b/changelog/changes/2026-04-27-vagrant-virtualbox.md new file mode 100644 index 00000000000..ab5e86dcbd1 --- /dev/null +++ b/changelog/changes/2026-04-27-vagrant-virtualbox.md @@ -0,0 +1 @@ +- Dropped the Vagrant VirtualBox image because the regular Vagrant image also targets VirtualBox. The only difference between them was that the former was geared for provisioning with Ignition and Afterburn rather than cloud-config and Vagrant itself. The Ignition support was broken when it was dropped by upsteam. A single image can handle Ignition, cloud-config, and Vagrant. The Afterburn support has been dropped entirely. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/Manifest b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/Manifest index 07cb0e1d699..7aeb05363e4 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/Manifest @@ -1,3 +1,2 @@ DIST afterburn-5.10.0-vendor.tar.gz 21824451 BLAKE2B fe263d51ce29ac6cee2d3974153ee73acca9f40abc80747cf40ab7ee69638a66fa3861f288033a976ecacaaf047611f547364e4abb9ed6a729cd7d77b498441e SHA512 ac186e88a9ced2195f80540ad686ce34352c9d854439afabc31ec0838c12e4f8614e273370b3778137a435b7fc088a040106ea29b7ed8df3c70caeac7a0bb6ec DIST afterburn-5.10.0.tar.gz 133765 BLAKE2B 3297a99d744a446532f8811f4d68741fafac32d47b6e7fcc63d5f7ec8f126462f76f3dbf5674e4267ae393c245f01c8a4ff2daaafa783cef44dededfdaa1c3eb SHA512 4f1f61b385d109451908c996336a6491323ac531d730a974ec23ef30d90fba75f07f530936dcccd35239e6a394a93e633db21dafd599a374bea9f342fd221c83 -DIST hostname-0.4.2.crate 12983 BLAKE2B a72e015d1bfd99828a9b1402a745968d578343c81301549cca0d5a4a5814a51c1eb58f7ed937ed75a6a6be385c340bf662d5d51cf401aa21809d1c893ff207f2 SHA512 57d7688fd7e724fe95b2d275d7cd11056e829318ff9683b59617575d94d5951eeb328ef2426bb16f4172bea461d0248cece573f212b6d2d8d3d0252981def4a6 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-5.10.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-5.10.0-r1.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-5.10.0.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-5.10.0-r1.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-9999.ebuild index fbd3b48bcd3..2b59f6d0f63 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/afterburn-9999.ebuild @@ -3,12 +3,8 @@ EAPI=8 -# This crate is required by our patch but missing from the vendor tarball. -CRATES="hostname@0.4.2" - inherit cargo systemd -SRC_URI="${CARGO_CRATE_URIS}" DESCRIPTION="A tool for collecting instance metadata from various providers" HOMEPAGE="https://github.com/coreos/afterburn" @@ -16,7 +12,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/coreos/afterburn.git" inherit git-r3 else - SRC_URI+=" https://github.com/coreos/afterburn/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + SRC_URI="https://github.com/coreos/afterburn/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz https://github.com/coreos/afterburn/releases/download/v${PV}/${P}-vendor.tar.gz" KEYWORDS="amd64 arm64" ECARGO_VENDOR="${WORKDIR}/vendor" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0001-Revert-remove-cl-legacy-feature.patch b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0001-Revert-remove-cl-legacy-feature.patch index ebaeab91e9f..cd03da47388 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0001-Revert-remove-cl-legacy-feature.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/0001-Revert-remove-cl-legacy-feature.patch @@ -5,73 +5,14 @@ Subject: [PATCH 1/3] Revert "*: remove cl-legacy feature" This reverts commit 3e4b623b390ab756a6be963eec7198b3e7f44e20. -(dpark: Re-add hostname crate and its dependencies, as they are not - included by default in 5.5.) - Signed-off-by: Mathieu Tortuyaux Signed-off-by: Dongsu Park ---- - Cargo.lock | 33 ++++++++++- - Cargo.toml | 4 ++ - src/metadata.rs | 8 +++ - src/providers/mod.rs | 2 + - src/providers/vagrant_virtualbox/mod.rs | 79 +++++++++++++++++++++++++ - src/util/cmdline.rs | 4 ++ - 6 files changed, 129 insertions(+), 1 deletion(-) - create mode 100644 src/providers/vagrant_virtualbox/mod.rs -diff --git a/Cargo.lock b/Cargo.lock -index a4b7224..c2e3cc9 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -31,6 +31,7 @@ dependencies = [ - "base64 0.22.1", - "cfg-if", - "clap", -+ "hostname", - "ipnetwork", - "libflate", - "libsystemd", -@@ -812,6 +813,17 @@ dependencies = [ - "digest", - ] - -+[[package]] -+name = "hostname" -+version = "0.4.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" -+dependencies = [ -+ "cfg-if", -+ "libc", -+ "windows-link 0.2.0", -+] -+ - [[package]] - name = "http" - version = "1.3.1" -@@ -2478,6 +2490,16 @@ version = "0.4.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" - -+[[package]] -+name = "windows" -+version = "0.62.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "9579d0e6970fd5250aa29aba5994052385ff55cf7b28a059e484bb79ea842e42" -+dependencies = [ -+ "windows-core", -+ "windows-targets 0.52.6", -+] -+ - [[package]] - name = "windows-registry" - version = "0.5.3" diff --git a/Cargo.toml b/Cargo.toml index 0929be8..7cd4b91 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -33,11 +33,15 @@ path = "src/main.rs" +@@ -33,6 +33,9 @@ path = "src/main.rs" # We assume we're being delivered via e.g. RPM which supports split debuginfo debug = true @@ -81,25 +22,10 @@ index 0929be8..7cd4b91 100644 [dependencies] anyhow = "1.0" base64 = "0.22" - cfg-if = "1.0" - clap = { version = "4", "default-features" = false, "features" = ["std", "cargo", "derive", "error-context", "help", "suggestions", "usage", "wrap_help"] } -+hostname = "0.4.0" - ipnetwork = ">= 0.17, < 0.22" - libflate = "2.1" - libsystemd = ">= 0.2.1, < 0.8.0" diff --git a/src/metadata.rs b/src/metadata.rs index 94f9238..2ad1c8e 100644 --- a/src/metadata.rs +++ b/src/metadata.rs -@@ -35,6 +35,8 @@ use crate::providers::packet::PacketProvider; - use crate::providers::powervs::PowerVSProvider; - use crate::providers::proxmoxve; - use crate::providers::scaleway::ScalewayProvider; -+#[cfg(feature = "cl-legacy")] -+use crate::providers::vagrant_virtualbox::VagrantVirtualboxProvider; - use crate::providers::upcloud::UpCloudProvider; - use crate::providers::vmware::VmwareProvider; - use crate::providers::vultr::VultrProvider; @@ -60,6 +62,10 @@ pub fn fetch_metadata(provider: &str) -> Result box_result!(ConfigDrive::try_new()?), "digitalocean" => box_result!(DigitalOceanProvider::try_new()?), @@ -111,114 +37,6 @@ index 94f9238..2ad1c8e 100644 "gcp" => box_result!(GcpProvider::try_new()?), "hetzner" => box_result!(HetznerProvider::try_new()?), // IBM Cloud - VPC Generation 2. -@@ -73,6 +79,8 @@ pub fn fetch_metadata(provider: &str) -> Result box_result!(PowerVSProvider::try_new()?), - "proxmoxve" => proxmoxve::try_config_drive_else_leave(), - "scaleway" => box_result!(ScalewayProvider::try_new()?), -+ #[cfg(feature = "cl-legacy")] -+ "vagrant-virtualbox" => box_result!(VagrantVirtualboxProvider::new()), - "upcloud" => box_result!(UpCloudProvider::try_new()?), - "vmware" => box_result!(VmwareProvider::try_new()?), - "vultr" => box_result!(VultrProvider::try_new()?), -diff --git a/src/providers/mod.rs b/src/providers/mod.rs -index e17d551..6fe44b6 100644 ---- a/src/providers/mod.rs -+++ b/src/providers/mod.rs -@@ -40,6 +40,8 @@ pub mod packet; - pub mod powervs; - pub mod proxmoxve; - pub mod scaleway; -+#[cfg(feature = "cl-legacy")] -+pub mod vagrant_virtualbox; - pub mod upcloud; - pub mod vmware; - pub mod vultr; - -diff --git a/src/providers/vagrant_virtualbox/mod.rs b/src/providers/vagrant_virtualbox/mod.rs -new file mode 100644 -index 0000000..d7a9e0e ---- /dev/null -+++ b/src/providers/vagrant_virtualbox/mod.rs -@@ -0,0 +1,79 @@ -+// Copyright 2017 CoreOS, Inc. -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+//! vagrant/virtualbox metadata fetcher -+ -+use std::collections::HashMap; -+use std::net::IpAddr; -+use std::thread; -+use std::time::Duration; -+ -+use anyhow::{anyhow,Context,Result}; -+use slog_scope::info; -+ -+use crate::providers::MetadataProvider; -+ -+#[derive(Clone, Copy, Debug)] -+pub struct VagrantVirtualboxProvider; -+ -+impl VagrantVirtualboxProvider { -+ pub fn new() -> Self { -+ Self -+ } -+ -+ fn get_ip() -> Result { -+ let max_attempts = 30; -+ for _ in 0..max_attempts { -+ if let Some(iface) = Self::find_eth1() { -+ for a in iface.ips { -+ if let IpAddr::V4(a) = a.ip() { -+ return Ok(format!("{}", a)); -+ } -+ } -+ } -+ info!("eth1 not found or is lacking an ipv4 address; waiting 2 seconds"); -+ thread::sleep(Duration::from_secs(2)); -+ } -+ Err(anyhow!("eth1 was not found!")) -+ } -+ -+ fn find_eth1() -> Option { -+ pnet_datalink::interfaces() -+ .into_iter() -+ .find(|i| i.name == "eth1") -+ } -+ -+ /// Get the hostname from local system settings. -+ fn system_hostname() -> Result { -+ let hostname = hostname::get() -+ .context("unable to get hostname")? -+ .to_string_lossy() -+ .into_owned(); -+ Ok(hostname) -+ } -+} -+ -+impl MetadataProvider for VagrantVirtualboxProvider { -+ fn attributes(&self) -> Result> { -+ let hostname = Self::system_hostname()?; -+ let ip = Self::get_ip()?; -+ -+ let attributes = maplit::hashmap! { -+ "VAGRANT_VIRTUALBOX_HOSTNAME".to_string() => hostname, -+ "VAGRANT_VIRTUALBOX_PRIVATE_IPV4".to_string() => ip, -+ }; -+ -+ Ok(attributes) -+ } -+} diff --git a/src/util/cmdline.rs b/src/util/cmdline.rs index d07cfeb..2e96ce4 100644 --- a/src/util/cmdline.rs diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/Vagrantfile b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/Vagrantfile deleted file mode 100644 index e5c4a2fe7bf..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/Vagrantfile +++ /dev/null @@ -1,31 +0,0 @@ -# -*- mode: ruby -*- -# # vi: set ft=ruby : - -if Vagrant::VERSION < "1.6.0" - raise "Need at least vagrant version 1.6.0, please update" -end - -require_relative 'change_host_name.rb' -require_relative 'configure_networks.rb' -require_relative 'base_mac.rb' - -Vagrant.configure("2") do |config| - # always use Vagrants insecure key - config.ssh.insert_key = false - - # SSH in as the default 'core' user, it has the vagrant ssh key. - config.ssh.username = "core" - - # Disable the base shared folder, guest additions are unavailable. - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.provider :virtualbox do |vb| - # Guest Additions are unavailable. - vb.check_guest_additions = false - vb.functional_vboxsf = false - - # Fix docker not being able to resolve private registry in VirtualBox - vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] - vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] - end -end diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/base_mac.rb b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/base_mac.rb deleted file mode 100644 index 1f26796e070..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/base_mac.rb +++ /dev/null @@ -1,4 +0,0 @@ -# This file must be rewritten with a real value for VirtualBox -Vagrant.configure("2") do |config| - config.vm.base_mac = "080027000000" -end diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/change_host_name.rb b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/change_host_name.rb deleted file mode 100644 index a4d5654b048..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/change_host_name.rb +++ /dev/null @@ -1,18 +0,0 @@ -# -*- mode: ruby -*- -# # vi: set ft=ruby : - -# NOTE: This monkey-patching is done to disable to old cloud config based -# change_host_name built into the upstream vagrant project - -require Vagrant.source_root.join("plugins/guests/coreos/cap/change_host_name.rb") - -module VagrantPlugins - module GuestCoreOS - module Cap - class ChangeHostName - def self.change_host_name(machine, name) - end - end - end - end -end diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/configure_networks.rb b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/configure_networks.rb deleted file mode 100644 index 4788bd1b19f..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/box/configure_networks.rb +++ /dev/null @@ -1,18 +0,0 @@ -# -*- mode: ruby -*- -# # vi: set ft=ruby : - -# NOTE: This monkey-patching is done to disable to old cloud config based -# configure_networks built into the upstream vagrant project - -require Vagrant.source_root.join("plugins/guests/coreos/cap/configure_networks.rb") - -module VagrantPlugins - module GuestCoreOS - module Cap - class ConfigureNetworks - def self.configure_networks(machine, networks) - end - end - end - end -end diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/grub.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/grub.cfg deleted file mode 100644 index 22ef469458e..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/files/grub.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Flatcar GRUB settings - -set oem_id="vagrant-virtualbox" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/oem-vagrant-virtualbox-0.0.2-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/oem-vagrant-virtualbox-0.0.2-r1.ebuild deleted file mode 100644 index 10ed3ddb438..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant-virtualbox/oem-vagrant-virtualbox-0.0.2-r1.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2017 The CoreOS Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for vagrant images (virtualbox)" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_install() { - insinto "/oem" - doins -r "${FILESDIR}/box" - doins "${FILESDIR}/grub.cfg" -} From 1dc66c4a412f6dff4570e7bd10d468abc92b62b7 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 15:39:31 +0100 Subject: [PATCH 15/21] Drop the vagrant_vmware_fusion image It turns out we haven't even been building this for years because of a CI bug. There's no point in reviving it now. Signed-off-by: James Le Cuirot --- build_library/vm_image_util.sh | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 4eb5a0df3d8..91c0b1e6b0a 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -31,7 +31,6 @@ VALID_IMG_TYPES=( stackit vagrant vagrant_parallels - vagrant_vmware_fusion virtualbox vmware vmware_ova @@ -144,14 +143,6 @@ IMG_vagrant_DISK_LAYOUT=vagrant IMG_vagrant_CONF_FORMAT=vagrant IMG_vagrant_OEM_PACKAGE=oem-vagrant -## vagrant_vmware -IMG_vagrant_vmware_fusion_FS_HOOK=box -IMG_vagrant_vmware_fusion_BUNDLE_FORMAT=box -IMG_vagrant_vmware_fusion_DISK_FORMAT=vmdk_scsi -IMG_vagrant_vmware_fusion_DISK_LAYOUT=vagrant -IMG_vagrant_vmware_fusion_CONF_FORMAT=vagrant_vmware_fusion -IMG_vagrant_vmware_fusion_OEM_PACKAGE=oem-vagrant - ## vagrant_parallels IMG_vagrant_parallels_FS_HOOK=box IMG_vagrant_parallels_BUNDLE_FORMAT=box @@ -1002,15 +993,6 @@ _write_vagrant_conf() { --output_vagrant "$mac" } -_write_vagrant_vmware_fusion_conf() { - local vm_mem="${1:-$(_get_vm_opt MEM)}" - local vmx=$(_dst_path ".vmx") - - mkdir -p "${VM_TMP_DIR}/box" - _write_vmx_conf ${vm_mem} - mv "${vmx}" "${VM_TMP_DIR}/box" -} - _write_vagrant_parallels_conf() { local vm_mem="${1:-$(_get_vm_opt MEM)}" local pvs=$(_dst_path ".pvs") @@ -1078,9 +1060,7 @@ _write_box_bundle() { local image=${VM_DST_IMG} local provider="virtualbox" - if [[ "${VM_IMG_TYPE}" == vagrant_vmware_fusion ]]; then - provider="vmware_fusion" - elif [[ "${VM_IMG_TYPE}" == vagrant_parallels ]]; then + if [[ "${VM_IMG_TYPE}" == vagrant_parallels ]]; then provider="parallels" image="${VM_TMP_DIR}/tmp.pvm" mkdir -p "${image}" From 54d4ef9592b2a8edb07e8fd4b7b1e59df674ccd7 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 16:00:43 +0100 Subject: [PATCH 16/21] ci: Fix bad handling of image format names This is what caused vagrant_vmware_fusion to not be built. Signed-off-by: James Le Cuirot --- .github/workflows/ci.yaml | 13 +++++++------ ci-automation/vms.sh | 14 +++++++------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6edd0230096..260b8ba0bee 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -189,13 +189,14 @@ jobs: images_out="images" - if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') - formats+=" vmware vmware_ova vmware_raw" + printf -v formats "%s\n" ${formats} + if grep -q '^vmware' <<< "${formats}"; then + formats=$(grep -v '^vmware' <<< "${formats}") + printf -v formats "%s\n" ${formats} vmware vmware_ova vmware_raw fi - if echo "$formats" | tr ' ' '\n' | grep -q -P '^(ami|aws)'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') - formats+=" ami ami_vmdk" + if printf "%s\n" $formats | grep -q '^ami\|^aws'; then + formats=$(grep -v '^ami\|^aws' <<< "${formats}") + printf -v formats "%s\n" ${formats} ami ami_vmdk fi for format in ${formats}; do diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index aa6c6325b90..1f4074dbdbe 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -80,14 +80,14 @@ function _vm_build_impl() { apply_local_patches # Convert platform names (also used to find the test scripts) to image formats they entail - formats="$*" - if echo "$formats" | tr ' ' '\n' | grep -q '^vmware'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/vmware.*/d') - formats+=" vmware vmware_ova vmware_raw" + printf -v formats "%s\n" ${formats} + if grep -q '^vmware' <<< "${formats}"; then + formats=$(grep -v '^vmware' <<< "${formats}") + printf -v formats "%s\n" ${formats} vmware vmware_ova vmware_raw fi - if echo "$formats" | tr ' ' '\n' | grep -q -P '^(ami|aws)'; then - formats=$(echo "$formats" | tr ' ' '\n' | sed '/ami.*/d' | sed '/aws/d') - formats+=" ami ami_vmdk" + if printf "%s\n" $formats | grep -q '^ami\|^aws'; then + formats=$(grep -v '^ami\|^aws' <<< "${formats}") + printf -v formats "%s\n" ${formats} ami ami_vmdk fi source sdk_lib/sdk_container_common.sh From 6aa5344250710c52d3654d4ca5290b497ba10474 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 19 Feb 2026 18:28:40 +0000 Subject: [PATCH 17/21] Convert remaining OEM packages to sysexts and rework how they are built common-oem-files was a giant hack. oem-release can now be easily be generated from metadata embedded in the sysext image itself. grub.cfg is often just a couple of lines, so there's no point in having all this complex logic around generating it, especially when that logic has some exceptions anyway. It's far easier to just explicitly store each variant under build_library/oem. The list of OEMs is now generated by looking for coreos-base/oem-*/*.ebuild. Signed-off-by: James Le Cuirot --- build_library/oem/akamai/grub.cfg | 3 + .../oem/ami/grub.cfg | 4 +- .../oem/azure/grub.cfg | 3 + .../oem/cloudsigma}/grub.cfg | 0 .../oem/cloudstack}/grub.cfg | 0 build_library/oem/digitalocean/grub.cfg | 3 + .../oem/exoscale}/grub.cfg | 0 .../oem/gce/grub.cfg | 4 + build_library/oem/hetzner/grub.cfg | 3 + .../oem/hyperv}/grub.cfg | 0 build_library/oem/kubevirt/grub.cfg | 3 + build_library/oem/nutanix/grub.cfg | 3 + build_library/oem/openstack/grub.cfg | 4 + build_library/oem/proxmoxve/grub.cfg | 4 + build_library/oem/qemu/grub.cfg | 4 + .../oem/scaleway/grub.cfg | 3 + build_library/oem/stackit/grub.cfg | 3 + .../oem/vagrant/build}/box/Vagrantfile | 0 .../oem/vagrant/build}/box/base_mac.rb | 0 .../vagrant/build}/box/change_host_name.rb | 0 .../vagrant/build}/box/configure_networks.rb | 0 .../oem/vagrant}/grub.cfg | 0 .../oem/virtualbox}/grub.cfg | 0 build_library/oem/vmware/grub.cfg | 4 + build_library/oem_sysexts.sh | 68 +++--- build_library/vm_image_util.sh | 198 +++++------------- changelog/changes/2026-04-29-oem-sysexts.md | 1 + image_to_vm.sh | 10 +- .../common-oem-files-0-r11.ebuild | 158 -------------- .../files/openstack/grub.cfg.frag | 1 - .../files/proxmoxve/grub.cfg.frag | 1 - .../common-oem-files/files/qemu/grub.cfg.frag | 1 - .../files/vmware/grub.cfg.frag | 1 - .../coreos-base/common-oem-files/metadata.xml | 4 - .../coreos-base/oem-akamai/metadata.xml | 4 - .../oem-akamai/oem-akamai-0.ebuild | 4 +- .../coreos-base/oem-ami/metadata.xml | 4 - .../oem-ami/oem-ami-3.3.2299.0.ebuild | 10 +- .../coreos-base/oem-azure/metadata.xml | 4 - .../oem-azure/oem-azure-2.12.0.4-r2.ebuild | 5 +- .../coreos-base/oem-cloudsigma/metadata.xml | 4 - .../oem-cloudsigma-0.0.3-r6.ebuild | 27 --- .../oem-cloudsigma-1.0.0.ebuild | 19 ++ .../oem-cloudstack/files/cloud-config.yml | 6 +- .../files/cloudstack-coreos-cloudinit | 2 +- .../oem-cloudstack/files/cloudstack-ssh-key | 2 +- .../files/flatcar-setup-environment | 2 +- .../coreos-base/oem-cloudstack/metadata.xml | 4 - .../oem-cloudstack-0.0.4-r1.ebuild | 38 ---- .../oem-cloudstack-1.0.0.ebuild | 22 ++ .../coreos-base/oem-digitalocean/metadata.xml | 4 - .../oem-digitalocean-0.1.1-r2.ebuild | 8 +- .../oem-exoscale/files/cloud-config.yml | 6 +- .../files/exoscale-coreos-cloudinit | 2 +- .../oem-exoscale/files/exoscale-ssh-key | 2 +- .../files/flatcar-setup-environment | 2 +- .../coreos-base/oem-exoscale/metadata.xml | 4 - .../oem-exoscale/oem-exoscale-0.0.5-r1.ebuild | 38 ---- .../oem-exoscale/oem-exoscale-1.0.0.ebuild | 22 ++ .../coreos-base/oem-gce/metadata.xml | 4 - .../oem-gce/oem-gce-20180823-r7.ebuild | 42 ---- .../oem-gce/oem-gce-20190124.ebuild | 34 +++ .../coreos-base/oem-hetzner/metadata.xml | 4 - .../oem-hetzner/oem-hetzner-0.ebuild | 4 +- .../coreos-base/oem-hyperv/files/oem-release | 4 - .../coreos-base/oem-hyperv/metadata.xml | 4 - .../oem-hyperv/oem-hyperv-0.2.0.ebuild | 15 +- .../coreos-base/oem-kubevirt/metadata.xml | 4 - .../oem-kubevirt/oem-kubevirt-0.ebuild | 4 +- .../coreos-base/oem-nutanix/metadata.xml | 4 - .../oem-nutanix/oem-nutanix-0.0.1.ebuild | 4 +- .../coreos-base/oem-openstack/metadata.xml | 4 - .../oem-openstack/oem-openstack-0.ebuild | 8 +- .../coreos-base/oem-proxmoxve/metadata.xml | 4 - .../oem-proxmoxve/oem-proxmoxve-0.ebuild | 4 +- .../coreos-base/oem-qemu/metadata.xml | 4 - .../oem-qemu/oem-qemu-0.0.2.ebuild | 4 +- .../coreos-base/oem-scaleway/metadata.xml | 4 - .../oem-scaleway/oem-scaleway-0.ebuild | 4 +- .../coreos-base/oem-stackit/metadata.xml | 4 - .../oem-stackit/oem-stackit-0.ebuild | 11 +- .../oem-vagrant/files/cloud-config.yml | 2 +- .../coreos-base/oem-vagrant/metadata.xml | 4 - .../oem-vagrant/oem-vagrant-0.0.3-r1.ebuild | 32 --- .../oem-vagrant/oem-vagrant-1.0.0.ebuild | 21 ++ .../oem-virtualbox/files/oem-release | 4 - .../coreos-base/oem-virtualbox/metadata.xml | 4 - .../oem-virtualbox-0.0.1-r1.ebuild | 28 --- .../oem-virtualbox-1.0.0.ebuild | 13 ++ .../coreos-base/oem-vmware/metadata.xml | 4 - .../oem-vmware/oem-vmware-13.0.10.ebuild | 9 +- .../profiles/coreos/base/profile.bashrc | 6 - .../portage-stable/licenses/metapackage | 6 + 93 files changed, 301 insertions(+), 746 deletions(-) create mode 100644 build_library/oem/akamai/grub.cfg rename sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ami/grub.cfg.frag => build_library/oem/ami/grub.cfg (92%) rename sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/azure/grub.cfg.frag => build_library/oem/azure/grub.cfg (89%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/files => build_library/oem/cloudsigma}/grub.cfg (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files => build_library/oem/cloudstack}/grub.cfg (100%) create mode 100644 build_library/oem/digitalocean/grub.cfg rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files => build_library/oem/exoscale}/grub.cfg (100%) rename sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/gce/grub.cfg.frag => build_library/oem/gce/grub.cfg (80%) create mode 100644 build_library/oem/hetzner/grub.cfg rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files => build_library/oem/hyperv}/grub.cfg (100%) create mode 100644 build_library/oem/kubevirt/grub.cfg create mode 100644 build_library/oem/nutanix/grub.cfg create mode 100644 build_library/oem/openstack/grub.cfg create mode 100644 build_library/oem/proxmoxve/grub.cfg create mode 100644 build_library/oem/qemu/grub.cfg rename sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/scaleway/grub.cfg.frag => build_library/oem/scaleway/grub.cfg (58%) create mode 100644 build_library/oem/stackit/grub.cfg rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files => build_library/oem/vagrant/build}/box/Vagrantfile (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files => build_library/oem/vagrant/build}/box/base_mac.rb (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files => build_library/oem/vagrant/build}/box/change_host_name.rb (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files => build_library/oem/vagrant/build}/box/configure_networks.rb (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files => build_library/oem/vagrant}/grub.cfg (100%) rename {sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files => build_library/oem/virtualbox}/grub.cfg (100%) create mode 100644 build_library/oem/vmware/grub.cfg create mode 100644 changelog/changes/2026-04-29-oem-sysexts.md delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r11.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/openstack/grub.cfg.frag delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/proxmoxve/grub.cfg.frag delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/qemu/grub.cfg.frag delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/vmware/grub.cfg.frag delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-0.0.3-r6.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-1.0.0.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-0.0.4-r1.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-1.0.0.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-0.0.5-r1.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-1.0.0.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20180823-r7.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20190124.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/oem-release delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-0.0.3-r1.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-1.0.0.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/oem-release delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-0.0.1-r1.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-1.0.0.ebuild delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/metadata.xml create mode 100644 sdk_container/src/third_party/portage-stable/licenses/metapackage diff --git a/build_library/oem/akamai/grub.cfg b/build_library/oem/akamai/grub.cfg new file mode 100644 index 00000000000..f91c71700b0 --- /dev/null +++ b/build_library/oem/akamai/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="akamai" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ami/grub.cfg.frag b/build_library/oem/ami/grub.cfg similarity index 92% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ami/grub.cfg.frag rename to build_library/oem/ami/grub.cfg index d2a6607394d..7b18156766d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ami/grub.cfg.frag +++ b/build_library/oem/ami/grub.cfg @@ -1,4 +1,6 @@ -# Flatcar GRUB settings for AMI +# Flatcar GRUB settings + +set oem_id="ec2" # Blacklist the Xen framebuffer module so it doesn't get loaded at boot # Disable `ens3` style names, so eth0 is used for both ixgbevf or xen. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/azure/grub.cfg.frag b/build_library/oem/azure/grub.cfg similarity index 89% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/azure/grub.cfg.frag rename to build_library/oem/azure/grub.cfg index 48d22ee8865..7fcbdad686d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/azure/grub.cfg.frag +++ b/build_library/oem/azure/grub.cfg @@ -1,3 +1,6 @@ +# Flatcar GRUB settings + +set oem_id="azure" set linux_append="flatcar.autologin" # Azure only has a serial console. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/files/grub.cfg b/build_library/oem/cloudsigma/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/files/grub.cfg rename to build_library/oem/cloudsigma/grub.cfg diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/grub.cfg b/build_library/oem/cloudstack/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/grub.cfg rename to build_library/oem/cloudstack/grub.cfg diff --git a/build_library/oem/digitalocean/grub.cfg b/build_library/oem/digitalocean/grub.cfg new file mode 100644 index 00000000000..a595676b611 --- /dev/null +++ b/build_library/oem/digitalocean/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="digitalocean" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/grub.cfg b/build_library/oem/exoscale/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/grub.cfg rename to build_library/oem/exoscale/grub.cfg diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/gce/grub.cfg.frag b/build_library/oem/gce/grub.cfg similarity index 80% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/gce/grub.cfg.frag rename to build_library/oem/gce/grub.cfg index d292e2faf0a..8366e12a550 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/gce/grub.cfg.frag +++ b/build_library/oem/gce/grub.cfg @@ -1,3 +1,7 @@ +# Flatcar GRUB settings + +set oem_id="gce" + # GCE only has a serial console. set linux_console="console=ttyS0,115200n8" serial com0 --speed=115200 --word=8 --parity=no diff --git a/build_library/oem/hetzner/grub.cfg b/build_library/oem/hetzner/grub.cfg new file mode 100644 index 00000000000..5bd68c28633 --- /dev/null +++ b/build_library/oem/hetzner/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="hetzner" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/grub.cfg b/build_library/oem/hyperv/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/grub.cfg rename to build_library/oem/hyperv/grub.cfg diff --git a/build_library/oem/kubevirt/grub.cfg b/build_library/oem/kubevirt/grub.cfg new file mode 100644 index 00000000000..4698c8d916d --- /dev/null +++ b/build_library/oem/kubevirt/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="kubevirt" diff --git a/build_library/oem/nutanix/grub.cfg b/build_library/oem/nutanix/grub.cfg new file mode 100644 index 00000000000..7e91086e0b8 --- /dev/null +++ b/build_library/oem/nutanix/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="nutanix" diff --git a/build_library/oem/openstack/grub.cfg b/build_library/oem/openstack/grub.cfg new file mode 100644 index 00000000000..c450d1b465e --- /dev/null +++ b/build_library/oem/openstack/grub.cfg @@ -0,0 +1,4 @@ +# Flatcar GRUB settings + +set oem_id="openstack" +set linux_append="flatcar.autologin" diff --git a/build_library/oem/proxmoxve/grub.cfg b/build_library/oem/proxmoxve/grub.cfg new file mode 100644 index 00000000000..5db100dbbd1 --- /dev/null +++ b/build_library/oem/proxmoxve/grub.cfg @@ -0,0 +1,4 @@ +# Flatcar GRUB settings + +set oem_id="proxmoxve" +set linux_append="flatcar.autologin" diff --git a/build_library/oem/qemu/grub.cfg b/build_library/oem/qemu/grub.cfg new file mode 100644 index 00000000000..2cd3a0a3105 --- /dev/null +++ b/build_library/oem/qemu/grub.cfg @@ -0,0 +1,4 @@ +# Flatcar GRUB settings + +set oem_id="qemu" +set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/scaleway/grub.cfg.frag b/build_library/oem/scaleway/grub.cfg similarity index 58% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/scaleway/grub.cfg.frag rename to build_library/oem/scaleway/grub.cfg index 0b87566bceb..f9939237722 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/scaleway/grub.cfg.frag +++ b/build_library/oem/scaleway/grub.cfg @@ -1 +1,4 @@ +# Flatcar GRUB settings + +set oem_id="scaleway" set linux_console="console=ttyS0,115200n8 earlycon=ttyS0,115200" diff --git a/build_library/oem/stackit/grub.cfg b/build_library/oem/stackit/grub.cfg new file mode 100644 index 00000000000..b91b5a747e3 --- /dev/null +++ b/build_library/oem/stackit/grub.cfg @@ -0,0 +1,3 @@ +# Flatcar GRUB settings + +set oem_id="openstack" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/Vagrantfile b/build_library/oem/vagrant/build/box/Vagrantfile similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/Vagrantfile rename to build_library/oem/vagrant/build/box/Vagrantfile diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/base_mac.rb b/build_library/oem/vagrant/build/box/base_mac.rb similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/base_mac.rb rename to build_library/oem/vagrant/build/box/base_mac.rb diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/change_host_name.rb b/build_library/oem/vagrant/build/box/change_host_name.rb similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/change_host_name.rb rename to build_library/oem/vagrant/build/box/change_host_name.rb diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/configure_networks.rb b/build_library/oem/vagrant/build/box/configure_networks.rb similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/box/configure_networks.rb rename to build_library/oem/vagrant/build/box/configure_networks.rb diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/grub.cfg b/build_library/oem/vagrant/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/grub.cfg rename to build_library/oem/vagrant/grub.cfg diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/grub.cfg b/build_library/oem/virtualbox/grub.cfg similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/grub.cfg rename to build_library/oem/virtualbox/grub.cfg diff --git a/build_library/oem/vmware/grub.cfg b/build_library/oem/vmware/grub.cfg new file mode 100644 index 00000000000..d58568ab54c --- /dev/null +++ b/build_library/oem/vmware/grub.cfg @@ -0,0 +1,4 @@ +# Flatcar GRUB settings + +set oem_id="vmware" +set linux_append="flatcar.autologin" diff --git a/build_library/oem_sysexts.sh b/build_library/oem_sysexts.sh index 68fea06c26b..4042f12abf5 100644 --- a/build_library/oem_sysexts.sh +++ b/build_library/oem_sysexts.sh @@ -20,42 +20,35 @@ get_oem_overlay_root() { printf '%s' "${overlay_root}" } -_get_oem_ids() { - local arch list_var_name - arch=${1}; shift - list_var_name=${1}; shift - - local overlay_root - overlay_root=$(get_oem_overlay_root) - - local -a ebuilds=("${overlay_root}/coreos-base/common-oem-files/common-oem-files-"*'.ebuild') - if [[ ${#ebuilds[@]} -eq 0 ]] || [[ ! -e ${ebuilds[0]} ]]; then - echo "No coreos-base/common-oem-files ebuilds?!" >&2 - exit 1 - fi - - # This defines local COMMON_OEMIDS, AMD64_ONLY_OEMIDS, - # ARM64_ONLY_OEMIDS and OEMIDS variable. We don't use the last - # one. Also defines global-by-default EAPI, which we make local - # here to avoid making it global. - local EAPI - source "${ebuilds[0]}" flatcar-local-variables - - local -n arch_oemids_ref="${arch^^}_ONLY_OEMIDS" - local all_oemids=( - "${COMMON_OEMIDS[@]}" - "${arch_oemids_ref[@]}" - ) - - mapfile -t "${list_var_name}" < <(printf '%s\n' "${all_oemids[@]}" | sort) -} - # Gets a list of OEMs that are using sysexts. # # 1 - arch # 2 - name of an array variable to store the result in get_oem_id_list() { - _get_oem_ids "$@" + local arch=${1}; shift + local -n list_var_ref=${1}; shift + + local overlay_root dir ebuild regex + overlay_root=$(get_oem_overlay_root) + + for dir in "${overlay_root}"/coreos-base/oem-*; do + for ebuild in "${dir}"/*.ebuild; do + if [[ ! -e ${ebuild} ]]; then + echo "No coreos-base/oem-* ebuilds?!" >&2 + exit 1 + fi + + # Check the KEYWORDS by sourcing the ebuild. We can't rely on Portage + # because this needs to work outside the SDK. OEM ebuilds are relatively + # boring, so this should be sufficient. This doesn't check whether the + # KEYWORDS are stable, but that shouldn't matter. + regex="\b${arch}\b" + if ( set +eu; . "${ebuild}" &>/dev/null; [[ ${KEYWORDS} =~ ${regex} ]] ); then + list_var_ref+=( "${dir##*/oem-}" ) + break + fi + done + done } # Gets a list of OEM sysext descriptors. @@ -65,19 +58,14 @@ get_oem_id_list() { # # Format: "name|metapackage|useflags" get_oem_sysext_matrix() { - local arch list_var_name - arch=${1}; shift - list_var_name=${1}; shift + local arch=${1}; shift + declare -n list_var_ref=${1}; shift local -a oem_ids - _get_oem_ids "${arch}" oem_ids + get_oem_id_list "${arch}" oem_ids - local -a matrix=() local oem_id for oem_id in "${oem_ids[@]}"; do - matrix+=("oem-${oem_id}|coreos-base/oem-${oem_id}|") + list_var_ref+=( "oem-${oem_id}|coreos-base/oem-${oem_id}|" ) done - - local -n matrix_ref="${list_var_name}" - matrix_ref=("${matrix[@]}") } diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 91c0b1e6b0a..0543ea68403 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -39,28 +39,6 @@ VALID_IMG_TYPES=( nutanix ) -#list of oem package names, minus the oem- prefix -VALID_OEM_PACKAGES=( - akamai - azure - cloudsigma - cloudstack - digitalocean - exoscale - gce - hetzner - hyperv - kubevirt - openstack - proxmoxve - qemu - scaleway - stackit - vagrant - virtualbox - vmware -) - # Set at runtime to one of the above types VM_IMG_TYPE=DEFAULT @@ -82,18 +60,9 @@ VM_GENERATED_FILES=() # If set to 0 then a partition skeleton won't be laid out on VM_TMP_IMG IMG_DEFAULT_PARTITIONED_IMG=1 -# If set install the given package name to the OEM partition -IMG_DEFAULT_OEM_PACKAGE= - -# Forced OEM package name overriding what may be in the format -IMG_FORCE_OEM_PACKAGE= - # If set install the given package name to the OEM sysext image IMG_DEFAULT_OEM_SYSEXT= -# Forced OEM package name overriding what may be in the format -IMG_FORCE_OEM_SYSEXT= - # Hook to do any final tweaks or grab data while fs is mounted. IMG_DEFAULT_FS_HOOK= @@ -123,8 +92,7 @@ IMG_DEFAULT_CPUS=2 IMG_qemu_uefi_DISK_FORMAT=qcow2 IMG_qemu_uefi_DISK_LAYOUT=vm IMG_qemu_uefi_CONF_FORMAT=qemu_uefi -IMG_qemu_uefi_OEM_PACKAGE=common-oem-files -IMG_qemu_uefi_OEM_SYSEXT=oem-qemu +IMG_qemu_uefi_OEM_SYSEXT=qemu ## xen IMG_xen_CONF_FORMAT=xl @@ -133,42 +101,37 @@ IMG_xen_CONF_FORMAT=xl IMG_virtualbox_DISK_FORMAT=vmdk_ide IMG_virtualbox_DISK_LAYOUT=vm IMG_virtualbox_CONF_FORMAT=ovf_virtualbox -IMG_virtualbox_OEM_PACKAGE=oem-virtualbox +IMG_virtualbox_OEM_SYSEXT=virtualbox ## vagrant -IMG_vagrant_FS_HOOK=box IMG_vagrant_BUNDLE_FORMAT=box IMG_vagrant_DISK_FORMAT=vmdk_ide IMG_vagrant_DISK_LAYOUT=vagrant IMG_vagrant_CONF_FORMAT=vagrant -IMG_vagrant_OEM_PACKAGE=oem-vagrant +IMG_vagrant_OEM_SYSEXT=vagrant ## vagrant_parallels -IMG_vagrant_parallels_FS_HOOK=box IMG_vagrant_parallels_BUNDLE_FORMAT=box IMG_vagrant_parallels_DISK_FORMAT=hdd IMG_vagrant_parallels_DISK_LAYOUT=vagrant IMG_vagrant_parallels_CONF_FORMAT=vagrant_parallels -IMG_vagrant_parallels_OEM_PACKAGE=oem-vagrant +IMG_vagrant_parallels_OEM_SYSEXT=vagrant ## vmware IMG_vmware_DISK_FORMAT=vmdk_scsi IMG_vmware_DISK_LAYOUT=vm IMG_vmware_CONF_FORMAT=vmx -IMG_vmware_OEM_PACKAGE=common-oem-files -IMG_vmware_OEM_SYSEXT=oem-vmware +IMG_vmware_OEM_SYSEXT=vmware ## vmware_ova +IMG_vmware_ova_BUNDLE_FORMAT=ova IMG_vmware_ova_DISK_FORMAT=vmdk_stream IMG_vmware_ova_DISK_LAYOUT=vm IMG_vmware_ova_CONF_FORMAT=ovf_vmware -IMG_vmware_ova_BUNDLE_FORMAT=ova -IMG_vmware_ova_OEM_PACKAGE=common-oem-files -IMG_vmware_ova_OEM_SYSEXT=oem-vmware +IMG_vmware_ova_OEM_SYSEXT=vmware ## vmware_raw -IMG_vmware_raw_OEM_PACKAGE=common-oem-files -IMG_vmware_raw_OEM_SYSEXT=oem-vmware +IMG_vmware_raw_OEM_SYSEXT=vmware ## parallels IMG_parallels_BUNDLE_FORMAT=pvm_tgz @@ -178,23 +141,19 @@ IMG_parallels_CONF_FORMAT=pvs ## ami IMG_ami_vmdk_DISK_FORMAT=vmdk_stream -IMG_ami_vmdk_OEM_PACKAGE=common-oem-files -IMG_ami_vmdk_SYSEXT=oem-ami IMG_ami_vmdk_DISK_LAYOUT=vm -IMG_ami_OEM_PACKAGE=common-oem-files -IMG_ami_OEM_SYSEXT=oem-ami +IMG_ami_vmdk_OEM_SYSEXT=ami IMG_ami_DISK_LAYOUT=vm +IMG_ami_OEM_SYSEXT=ami ## openstack IMG_openstack_DISK_FORMAT=qcow2 IMG_openstack_DISK_LAYOUT=vm -IMG_openstack_OEM_PACKAGE=common-oem-files -IMG_openstack_OEM_SYSEXT=oem-openstack +IMG_openstack_OEM_SYSEXT=openstack ## openstack but without a resized root partition for more flexibility IMG_openstack_mini_DISK_FORMAT=qcow2 -IMG_openstack_mini_OEM_PACKAGE=common-oem-files -IMG_openstack_mini_OEM_SYSEXT=oem-openstack +IMG_openstack_mini_OEM_SYSEXT=openstack ## pxe, which is an cpio image IMG_pxe_DISK_FORMAT=cpio @@ -211,83 +170,71 @@ IMG_iso_MEM=2048 ## gce, image tarball IMG_gce_DISK_LAYOUT=vm IMG_gce_CONF_FORMAT=gce -IMG_gce_OEM_PACKAGE=common-oem-files -IMG_gce_OEM_SYSEXT=oem-gce +IMG_gce_OEM_SYSEXT=gce ## cloudstack -IMG_cloudstack_OEM_PACKAGE=oem-cloudstack +IMG_cloudstack_OEM_SYSEXT=cloudstack IMG_cloudstack_vhd_DISK_FORMAT=vhd -IMG_cloudstack_vhd_OEM_PACKAGE=oem-cloudstack +IMG_cloudstack_vhd_OEM_SYSEXT=cloudstack ## digitalocean -IMG_digitalocean_OEM_PACKAGE=common-oem-files -IMG_digitalocean_OEM_SYSEXT=oem-digitalocean +IMG_digitalocean_OEM_SYSEXT=digitalocean ## exoscale IMG_exoscale_DISK_FORMAT=qcow2 -IMG_exoscale_OEM_PACKAGE=oem-exoscale +IMG_exoscale_OEM_SYSEXT=exoscale ## azure IMG_azure_DISK_FORMAT=vhd_fixed IMG_azure_DISK_LAYOUT=azure -IMG_azure_OEM_PACKAGE=common-oem-files -IMG_azure_OEM_SYSEXT=oem-azure +IMG_azure_OEM_SYSEXT=azure ## hetzner IMG_hetzner_DISK_LAYOUT=vm -IMG_hetzner_OEM_PACKAGE=common-oem-files -IMG_hetzner_OEM_SYSEXT=oem-hetzner +IMG_hetzner_OEM_SYSEXT=hetzner ## hyper-v IMG_hyperv_DISK_FORMAT=vhd -IMG_hyperv_OEM_PACKAGE=common-oem-files -IMG_hyperv_OEM_SYSEXT=oem-hyperv +IMG_hyperv_OEM_SYSEXT=hyperv ## hyper-v vhdx IMG_hyperv_vhdx_DISK_FORMAT=vhdx -IMG_hyperv_vhdx_OEM_PACKAGE=common-oem-files -IMG_hyperv_vhdx_OEM_SYSEXT=oem-hyperv +IMG_hyperv_vhdx_OEM_SYSEXT=hyperv ## cloudsigma IMG_cloudsigma_DISK_FORMAT=qcow2 -IMG_cloudsigma_OEM_PACKAGE=oem-cloudsigma +IMG_cloudsigma_OEM_SYSEXT=cloudsigma ## scaleway IMG_scaleway_DISK_FORMAT=qcow2 IMG_scaleway_DISK_LAYOUT=vm -IMG_scaleway_OEM_PACKAGE=common-oem-files -IMG_scaleway_OEM_SYSEXT=oem-scaleway +IMG_scaleway_OEM_SYSEXT=scaleway IMG_scaleway_DISK_EXTENSION=qcow2 ## stackit IMG_stackit_DISK_FORMAT=qcow2 IMG_stackit_DISK_LAYOUT=vm -IMG_stackit_OEM_PACKAGE=common-oem-files -IMG_stackit_OEM_SYSEXT=oem-stackit +IMG_stackit_OEM_SYSEXT=stackit ## kubevirt IMG_kubevirt_DISK_FORMAT=qcow2 IMG_kubevirt_DISK_LAYOUT=vm -IMG_kubevirt_OEM_PACKAGE=common-oem-files -IMG_kubevirt_OEM_SYSEXT=oem-kubevirt +IMG_kubevirt_OEM_SYSEXT=kubevirt IMG_kubevirt_DISK_EXTENSION=qcow2 ## akamai (Linode) IMG_akamai_DISK_LAYOUT=vm -IMG_akamai_OEM_PACKAGE=common-oem-files -IMG_akamai_OEM_SYSEXT=oem-akamai +IMG_akamai_OEM_SYSEXT=akamai # proxmoxve IMG_proxmoxve_DISK_FORMAT=qcow2 IMG_proxmoxve_DISK_LAYOUT=vm -IMG_proxmoxve_OEM_PACKAGE=common-oem-files -IMG_proxmoxve_OEM_SYSEXT=oem-proxmoxve +IMG_proxmoxve_OEM_SYSEXT=proxmoxve ## nutanix IMG_nutanix_DISK_FORMAT=qcow2 IMG_nutanix_DISK_LAYOUT=vm -IMG_nutanix_OEM_PACKAGE=common-oem-files -IMG_nutanix_OEM_SYSEXT=oem-nutanix +IMG_nutanix_OEM_SYSEXT=nutanix ########################################################### @@ -320,18 +267,6 @@ set_vm_type() { return 1 } -# Validate and set the oem package, colon delimited USE optional -set_vm_oem_pkg() { - local oem_pkg="${1}" valid_pkg - for valid_pkg in "${VALID_OEM_PACKAGES[@]}"; do - if [[ "${oem_pkg}" == "${valid_pkg}" ]]; then - IMG_FORCE_OEM_PACKAGE="oem-${oem_pkg}" - return 0 - fi - done - return 1 -} - # Validate and set source vm image path set_vm_paths() { local src_dir="${1}"; shift @@ -365,8 +300,7 @@ _get_vm_opt() { local opt="$1" local type_opt="IMG_${VM_IMG_TYPE}_${opt}" local default_opt="IMG_DEFAULT_${opt}" - local force_opt="IMG_FORCE_${opt}" - echo "${!force_opt:-${!type_opt:-${!default_opt}}}" + echo "${!type_opt:-${!default_opt}}" } # Translate source image names to output names. @@ -455,42 +389,6 @@ setup_disk_image() { fi } -# If the current type defines a oem package install it to the given fs image. -install_oem_package() { - local oem_pkg=$(_get_vm_opt OEM_PACKAGE) - local oem_use=$(_get_vm_opt OEM_USE) - # The "${VM_IMG_TYPE}-oem-image-rootfs" directory name is - # important - it is used to determine the package target in - # coreos/base/profile.bashrc - local oem_tmp="${VM_TMP_DIR}/${VM_IMG_TYPE}-oem-image-rootfs" - - if [[ -z "${oem_pkg}" ]]; then - return 0 - fi - - # Split into two steps because we want to always install $oem_pkg from - # the ebuild (build_packages doesn't handle it) *but* we never want to - # build anything else from source here. emerge doesn't have a way to - # enforce this in a single command. - info "Building ${oem_pkg}" - USE="${oem_use}" emerge-${BOARD} \ - --nodeps --buildpkgonly --usepkg n \ - --verbose "${oem_pkg}" - - local getbinpkg - if [[ ${FLAGS_getbinpkg} -eq ${FLAGS_TRUE} ]]; then - getbinpkg=--getbinpkg - fi - - info "Installing ${oem_pkg} to OEM partition" - USE="${oem_use}" emerge-${BOARD} \ - --root="${oem_tmp}" --sysroot="${oem_tmp}" \ - --usepkgonly ${getbinpkg} \ - --verbose --jobs=2 "${oem_pkg}" - sudo rsync -a "${oem_tmp}/oem/" "${VM_TMP_ROOT}/oem/" - sudo rm -rf "${oem_tmp}" -} - # Install the prebuilt OEM sysext file into the OEM partition. # The sysext should have been built by 'build_image oem_sysext'. install_oem_sysext() { @@ -500,7 +398,7 @@ install_oem_sysext() { return 0 fi - local prebuilt_sysext_filename="${oem_sysext}.raw" + local prebuilt_sysext_filename="oem-${oem_sysext}.raw" local prebuilt_sysext_path="${FLAGS_from}/${prebuilt_sysext_filename}" local version="${FLATCAR_VERSION}" @@ -509,34 +407,27 @@ install_oem_sysext() { fi local installed_sysext_oem_dir='/oem/sysext' - local installed_sysext_file_prefix="${oem_sysext}-${version}" + local installed_sysext_file_prefix="oem-${oem_sysext}-${version}" local installed_sysext_filename="${installed_sysext_file_prefix}.raw" local installed_sysext_abspath="${installed_sysext_oem_dir}/${installed_sysext_filename}" - info "Installing ${oem_sysext} sysext from prebuilt image" + info "Installing oem-${oem_sysext} sysext from prebuilt image" sudo install -Dpm 0644 \ "${prebuilt_sysext_path}" \ "${VM_TMP_ROOT}${installed_sysext_abspath}" || - die "Could not install ${oem_sysext} sysext" + die "Could not install oem-${oem_sysext} sysext" # Mark the installed sysext as active. - sudo touch "${VM_TMP_ROOT}${installed_sysext_oem_dir}/active-${oem_sysext}" -} + sudo touch "${VM_TMP_ROOT}${installed_sysext_oem_dir}/active-oem-${oem_sysext}" -# Any other tweaks required? -run_fs_hook() { - local fs_hook=$(_get_vm_opt FS_HOOK) - if [[ -n "${fs_hook}" ]]; then - info "Running ${fs_hook} fs hook" - _run_${fs_hook}_fs_hook "$@" - fi -} + # Extract metadata from the sysext and write it to oem-release. Chop off the + # oem- prefix from SYSEXT_ID because that's how it has traditionally looked. + sudo systemd-dissect --json=short "${prebuilt_sysext_path}" | jq -r '.sysextRelease | .[]' | + sed -n -r -e "s/^SYSEXT_ID=oem-/SYSEXT_ID=/" -e "s/^SYSEXT_//p" | + sudo install -m0644 /dev/stdin "${VM_TMP_ROOT}/oem/oem-release" -_run_box_fs_hook() { - # Copy basic Vagrant configs from OEM - mkdir -p "${VM_TMP_DIR}/box" - cp -R "${VM_TMP_ROOT}/oem/box/." "${VM_TMP_DIR}/box" - sudo rm -fr "${VM_TMP_ROOT}/oem/box" + # Copy the OEM-specific grub.cfg. + sudo install -m0644 "${BUILD_LIBRARY_DIR}/oem/${oem_sysext}/grub.cfg" "${VM_TMP_ROOT}/oem/grub.cfg" } # Write the vm disk image to the target directory in the proper format @@ -980,11 +871,17 @@ EOF VM_GENERATED_FILES+=( "$ovf" "${VM_README}" ) } +_copy_vagrant_files() { + local oem_sysext=$(_get_vm_opt OEM_SYSEXT) + cp -r "${BUILD_LIBRARY_DIR}/oem/${oem_sysext}/build/box" "${VM_TMP_DIR}/" +} + _write_vagrant_conf() { local vm_mem="${1:-$(_get_vm_opt MEM)}" local ovf="${VM_TMP_DIR}/box/box.ovf" local mac="${VM_TMP_DIR}/box/base_mac.rb" + _copy_vagrant_files "${BUILD_LIBRARY_DIR}/virtualbox_ovf.sh" \ --vm_name "$VM_NAME" \ --disk_vmdk "${VM_DST_IMG}" \ @@ -997,6 +894,7 @@ _write_vagrant_parallels_conf() { local vm_mem="${1:-$(_get_vm_opt MEM)}" local pvs=$(_dst_path ".pvs") + _copy_vagrant_files "${BUILD_LIBRARY_DIR}/parallels_pvs.sh" \ --vm_name "$VM_NAME" \ --disk_image "$VM_DST_IMG" \ diff --git a/changelog/changes/2026-04-29-oem-sysexts.md b/changelog/changes/2026-04-29-oem-sysexts.md new file mode 100644 index 00000000000..c625eca6f16 --- /dev/null +++ b/changelog/changes/2026-04-29-oem-sysexts.md @@ -0,0 +1 @@ +- All the legacy OEMs (CloudSigma, CloudStack, Exoscale, Vagrant, VirtualBox) have been converted to sysexts. The transition should be seamless, but the Flatcar team was only able to test VirtualBox with and without Vagrant, so please report any issues. diff --git a/image_to_vm.sh b/image_to_vm.sh index ded310ae5b6..c9d392c07b1 100755 --- a/image_to_vm.sh +++ b/image_to_vm.sh @@ -38,8 +38,6 @@ DEFINE_integer mem "${DEFAULT_MEM}" \ "Memory size for the vm config in MBs." DEFINE_string to "" \ "Destination folder for VM output file(s)" -DEFINE_string oem_pkg "" \ - "OEM package to install" DEFINE_boolean getbinpkg "${FLAGS_FALSE}" \ "Download binary packages from remote repository." DEFINE_string getbinpkgver "" \ @@ -67,10 +65,6 @@ if ! set_vm_type "${FLAGS_format}"; then die_notrace "Invalid format: ${FLAGS_format}" fi -if [ ! -z "${FLAGS_oem_pkg}" ] && ! set_vm_oem_pkg "${FLAGS_oem_pkg}"; then - die_notrace "Invalid oem : ${FLAGS_oem_pkg}" -fi - if [ -z "${FLAGS_board}" ] ; then die_notrace "--board is required." fi @@ -117,10 +111,8 @@ fix_mtab # Setup new (raw) image, possibly resizing filesystems setup_disk_image "${FLAGS_disk_layout}" -# Optionally install any OEM packages -install_oem_package +# Optionally install any OEM sysexts install_oem_sysext -run_fs_hook # Changes done, glue it together write_vm_disk diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r11.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r11.ebuild deleted file mode 100644 index 434e7cf32e1..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r11.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright (c) 2023 The Flatcar Maintainers. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# The hack below is there in order to avoid excessive duplication of -# OEM IDs around the place. This ebuild serves as a Gentoo ebuild and -# as a bash file to be sourced in order to get arch-specific -# information about possible OEM IDs. The latter role is assumed when -# the ebuild is sourced with first argument being -# 'flatcar-local-variables'. Due to the requirements imposed by the -# section 7.3.1 in Package Manager Specification (that says that EAPI -# assignment must be the first non-comment, non-blank line in the -# file), shell scripts wanting to source this ebuild for geting OEM -# IDs, may need to declare EAPI as local, if it finds it suitable. The -# role of sourced script is used by our image-changes job. All this -# fluff needs to happen before we define or invoke any other -# Gentoo-specific variables or functions like "DEPEND" or "inherit" -# that may mess up sourcing. -# -# This can't be done with a separate shell file in FILESDIR, because -# portage moves the ebuild into some temporary directory where -# FILESDIR, although defined, does not even exist at first - it shows -# up during the invocation of any src_ functions. Probably a security -# measure or something. - -if [[ ${1:-} = 'flatcar-local-variables' ]]; then - local -a COMMON_OEMIDS ARM64_ONLY_OEMIDS AMD64_ONLY_OEMIDS OEMIDS -fi - -COMMON_OEMIDS=( - akamai - ami - azure - hetzner - openstack - proxmoxve - qemu - scaleway - stackit - kubevirt -) - -ARM64_ONLY_OEMIDS=( -) - -AMD64_ONLY_OEMIDS=( - digitalocean - gce - hyperv - vmware - nutanix -) - -OEMIDS=( - "${COMMON_OEMIDS[@]}" - "${ARM64_ONLY_OEMIDS[@]}" - "${AMD64_ONLY_OEMIDS[@]}" -) - -if [[ ${1:-} = 'flatcar-local-variables' ]]; then - return 0 -else - unset COMMON_OEMIDS ARM64_ONLY_OEMIDS AMD64_ONLY_OEMIDS -fi - -DESCRIPTION='Common OEM files' -HOMEPAGE='https://www.flatcar.org/' - -LICENSE='Apache-2.0' -SLOT='0' -KEYWORDS='amd64 arm64' -IUSE="${OEMIDS[*]}" -REQUIRED_USE="^^ ( ${OEMIDS[*]} )" - -# No source directory. -S="${WORKDIR}" - -DEPEND="" -RDEPEND="${DEPEND}" -BDEPEND=" - app-portage/gentoolkit -" - -src_compile() { - local oemid package ebuild version name homepage lines oemid_cmdline - - for oemid in "${OEMIDS[@]}"; do - if use "${oemid}"; then break; fi - done - - package="coreos-base/oem-${oemid}" - ebuild=$(equery which "${package}") - version=${ebuild##*"oem-${oemid}-"} - version=${version%%'.ebuild'} - if [[ -z "${version}" ]]; then - die "Could not deduce a version from ebuild ${ebuild##*/} (${ebuild})" - fi - name=$(source <(grep -F 'SYSEXT_NAME=' "${ebuild}"); echo "${SYSEXT_NAME}") - if [[ -z "${name}" ]]; then - die "Missing SYSEXT_NAME variable in ${ebuild##*/}" - fi - # We need to prefix the HOMEPAGE variable with SYSEXT_, because - # portage marks HOMEPAGE as readonly and this gets propagated to - # subshells, so sourcing a snippet with HOMEPAGE=foo won't - # overwrite the readonly variable. - homepage=$(source <(grep -F 'HOMEPAGE=' "${ebuild}" | sed -e 's/^/SYSEXT_/'); echo "${SYSEXT_HOMEPAGE}") - lines=( - "ID=${oemid}" - "VERSION_ID=${version}" - "NAME=\"${name}\"" - ) - if [[ -n "${homepage}" ]]; then - lines+=( "HOME_URL=\"${homepage}\"" ) - fi - lines+=( - 'BUG_REPORT_URL="https://issues.flatcar.org"' - ) - - { - printf '%s\n' "${lines[@]}" - if [[ -e "${FILESDIR}/${oemid}/oem-release.frag" ]]; then - cat "${FILESDIR}/${oemid}/oem-release.frag" - fi - } >"${T}/oem-release" - - oemid_cmdline="${oemid}" - - # In this specific case, the OEM ID from the oem-release file ('ami') - # is different from the OEM ID kernel command line parameter ('ec2') - # because some services like Afterburn or Ignition expects 'ec2|aws' value. - if [[ "${oemid}" == "ami" ]]; then - oemid_cmdline="ec2" - fi - - # STACKIT is running on top of OpenStack, so the `oem_cmdline` has to be `openstack` for Ignition/Afterburn integration but the `oemid` has to stay `stackit` to load the correct `oem-stackit` sysext image. - if [[ "${oemid}" == "stackit" ]]; then - oemid_cmdline="openstack" - fi - - lines=( - '# Flatcar GRUB settings' - '' - "set oem_id=\"${oemid_cmdline}\"" - ) - { - printf '%s\n' "${lines[@]}" - if [[ -e "${FILESDIR}/${oemid}/grub.cfg.frag" ]]; then - cat "${FILESDIR}/${oemid}/grub.cfg.frag" - fi - } >"${T}/grub.cfg" -} - -src_install() { - insinto "/oem" - doins "${T}/grub.cfg" - doins "${T}/oem-release" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/openstack/grub.cfg.frag b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/openstack/grub.cfg.frag deleted file mode 100644 index 4f9e06c2c8c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/openstack/grub.cfg.frag +++ /dev/null @@ -1 +0,0 @@ -set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/proxmoxve/grub.cfg.frag b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/proxmoxve/grub.cfg.frag deleted file mode 100644 index 4f9e06c2c8c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/proxmoxve/grub.cfg.frag +++ /dev/null @@ -1 +0,0 @@ -set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/qemu/grub.cfg.frag b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/qemu/grub.cfg.frag deleted file mode 100644 index 4f9e06c2c8c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/qemu/grub.cfg.frag +++ /dev/null @@ -1 +0,0 @@ -set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/vmware/grub.cfg.frag b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/vmware/grub.cfg.frag deleted file mode 100644 index 4f9e06c2c8c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/vmware/grub.cfg.frag +++ /dev/null @@ -1 +0,0 @@ -set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/metadata.xml deleted file mode 100644 index 7c900b19e8e..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/oem-akamai-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/oem-akamai-0.ebuild index 3b46e4e624c..ba2edcb27b8 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/oem-akamai-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-akamai/oem-akamai-0.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for Akamai (previously Linode)" HOMEPAGE="https://www.linode.com" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="Akamai" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-3.3.2299.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-3.3.2299.0.ebuild index 55182be7b1c..dfb1733cb11 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-3.3.2299.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-3.3.2299.0.ebuild @@ -7,23 +7,19 @@ inherit systemd DESCRIPTION="OEM suite for Amazon Machine Images" HOMEPAGE="http://aws.amazon.com/ec2/" -SRC_URI="" +S="${WORKDIR}" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" RDEPEND=" - ~app-emulation/amazon-ssm-agent-${PV} - coreos-base/flatcar-eks + ~app-emulation/amazon-ssm-agent-${PV} + coreos-base/flatcar-eks " -# for coreos-base/common-oem-files SYSEXT_NAME="Amazon EC2" -S="${WORKDIR}" - src_install() { systemd_dounit "${FILESDIR}/setup-oem.service" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/oem-azure-2.12.0.4-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/oem-azure-2.12.0.4-r2.ebuild index 46b400b8c22..535b1b6c816 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/oem-azure-2.12.0.4-r2.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-azure/oem-azure-2.12.0.4-r2.ebuild @@ -7,12 +7,11 @@ inherit systemd tmpfiles DESCRIPTION="OEM suite for Azure" HOMEPAGE="https://azure.microsoft.com/" -SRC_URI="" +S="${WORKDIR}" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" RDEPEND=" ~app-emulation/wa-linux-agent-${PV} @@ -22,10 +21,8 @@ RDEPEND=" sys-fs/inotify-tools " -# for coreos-base/common-oem-files SYSEXT_NAME="Microsoft Azure" -S="${WORKDIR}" src_install() { systemd_enable_service multi-user.target chronyd.service diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-0.0.3-r6.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-0.0.3-r6.ebuild deleted file mode 100644 index 4ddf25036f2..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-0.0.3-r6.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) 2015 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for CloudSigma images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - insinto "/oem" - doins "${T}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-1.0.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-1.0.0.ebuild new file mode 100644 index 00000000000..cb745c34596 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudsigma/oem-cloudsigma-1.0.0.ebuild @@ -0,0 +1,19 @@ +# Copyright (c) 2015 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for CloudSigma" +HOMEPAGE="https://www.cloudsigma.com/" +S="${WORKDIR}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64" + +SYSEXT_NAME="CloudSigma" + +src_install() { + insinto /usr/share/flatcar + sed "s:@@OEM_VERSION_ID@@:${PVR}:g" "${FILESDIR}/cloud-config.yml" | newins - cloud-config.yml +} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloud-config.yml index 7301934316c..ea30f7695bc 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloud-config.yml @@ -12,7 +12,7 @@ coreos: [Service] Type=oneshot StandardOutput=journal+console - ExecStart=/oem/bin/cloudstack-ssh-key + ExecStart=/usr/bin/cloudstack-ssh-key - name: cloudstack-cloudinit.service command: restart runtime: yes @@ -25,10 +25,10 @@ coreos: [Service] Type=oneshot EnvironmentFile=/etc/environment - ExecStart=/oem/bin/cloudstack-coreos-cloudinit + ExecStart=/usr/bin/cloudstack-coreos-cloudinit oem: id: cloudstack name: CloudStack version-id: @@OEM_VERSION_ID@@ - home-url: http://cloudstack.apache.org/ + home-url: https://cloudstack.apache.org/ bug-report-url: https://github.com/coreos/coreos-overlay diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-coreos-cloudinit b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-coreos-cloudinit index 53d1c2aacd8..4ee93ad98f7 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-coreos-cloudinit +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-coreos-cloudinit @@ -1,6 +1,6 @@ #!/bin/bash -. /oem/bin/cloudstack-dhcp +. /usr/bin/cloudstack-dhcp DHCP_SERVER=$(get_dhcp_ip) USERDATA_URL="http://${DHCP_SERVER}/latest/user-data" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-ssh-key b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-ssh-key index 9116acd7c2a..daa38cb89b3 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-ssh-key +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/cloudstack-ssh-key @@ -1,6 +1,6 @@ #!/bin/bash -. /oem/bin/cloudstack-dhcp +. /usr/bin/cloudstack-dhcp DHCP_SERVER=$(get_dhcp_ip) KEY_URL="http://${DHCP_SERVER}/latest/meta-data/public-keys" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/flatcar-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/flatcar-setup-environment index b9c77dfa68b..e1b59c68e39 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/flatcar-setup-environment +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/files/flatcar-setup-environment @@ -18,7 +18,7 @@ sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \ -e '/^COREOS_PRIVATE_IPV4=/d' \ "${ENV}" -. /oem/bin/cloudstack-dhcp +. /usr/bin/cloudstack-dhcp DHCP_SERVER=$(get_dhcp_ip) METADATA_URL="http://${DHCP_SERVER}/latest/meta-data/" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-0.0.4-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-0.0.4-r1.ebuild deleted file mode 100644 index c7fe81d4c8a..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-0.0.4-r1.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. -# Copyright (c) 2014 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 -# $Header:$ -# - -EAPI=7 - -DESCRIPTION="OEM suite for CloudStack images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - into "/oem" - dobin "${FILESDIR}/cloudstack-dhcp" - dobin "${FILESDIR}/cloudstack-ssh-key" - dobin "${FILESDIR}/cloudstack-coreos-cloudinit" - dobin "${FILESDIR}/flatcar-setup-environment" - - insinto "/oem" - doins "${T}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-1.0.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-1.0.0.ebuild new file mode 100644 index 00000000000..fc825e77fad --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-cloudstack/oem-cloudstack-1.0.0.ebuild @@ -0,0 +1,22 @@ +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. +# Copyright (c) 2014 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for CloudStack" +HOMEPAGE="https://cloudstack.apache.org/" +S="${WORKDIR}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64" + +SYSEXT_NAME="CloudStack" + +src_install() { + insinto /usr/share/flatcar + sed "s:@@OEM_VERSION_ID@@:${PVR}:g" "${FILESDIR}/cloud-config.yml" | newins - cloud-config.yml + + dobin "${FILESDIR}"/{cloudstack-{coreos-cloudinit,dhcp,ssh-key},flatcar-setup-environment} +} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/oem-digitalocean-0.1.1-r2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/oem-digitalocean-0.1.1-r2.ebuild index af78c6cd972..6b1b9e22d5e 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/oem-digitalocean-0.1.1-r2.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-digitalocean/oem-digitalocean-0.1.1-r2.ebuild @@ -3,13 +3,11 @@ EAPI=8 -DESCRIPTION="DigitalOcean suite for DigitalOcean" +DESCRIPTION="OEM suite for DigitalOcean" HOMEPAGE="https://www.digitalocean.com/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" -KEYWORDS="amd64 arm64" -IUSE="" +KEYWORDS="amd64" SYSEXT_NAME="DigitalOcean" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/cloud-config.yml index f8602081f2c..9f8a7582d7b 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/cloud-config.yml @@ -12,7 +12,7 @@ coreos: [Service] Type=oneshot StandardOutput=journal+console - ExecStart=/oem/bin/exoscale-ssh-key + ExecStart=/usr/bin/exoscale-ssh-key - name: exoscale-cloudinit.service command: restart runtime: yes @@ -25,10 +25,10 @@ coreos: [Service] Type=oneshot EnvironmentFile=/etc/environment - ExecStart=/oem/bin/exoscale-coreos-cloudinit + ExecStart=/usr/bin/exoscale-coreos-cloudinit oem: id: exoscale name: exoscale version-id: @@OEM_VERSION_ID@@ - home-url: http://www.exoscale.ch + home-url: https://www.exoscale.com/ bug-report-url: https://github.com/coreos/coreos-overlay diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-coreos-cloudinit b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-coreos-cloudinit index bd6be82f0f3..5aa938dba89 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-coreos-cloudinit +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-coreos-cloudinit @@ -1,6 +1,6 @@ #!/bin/bash -. /oem/bin/exoscale-dhcp +. /usr/bin/exoscale-dhcp DHCP_SERVER=$(get_dhcp_ip) USERDATA_URL="http://${DHCP_SERVER}/latest/user-data" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-ssh-key b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-ssh-key index 85ae4521af3..8153f1bf653 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-ssh-key +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/exoscale-ssh-key @@ -1,6 +1,6 @@ #!/bin/bash -. /oem/bin/exoscale-dhcp +. /usr/bin/exoscale-dhcp DHCP_SERVER=$(get_dhcp_ip) KEY_URL="http://${DHCP_SERVER}/latest/public-keys" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/flatcar-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/flatcar-setup-environment index 763fcb0106f..6e881032871 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/flatcar-setup-environment +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/files/flatcar-setup-environment @@ -18,7 +18,7 @@ sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \ -e '/^COREOS_PRIVATE_IPV4=/d' \ "${ENV}" -. /oem/bin/exoscale-dhcp +. /usr/bin/exoscale-dhcp DHCP_SERVER=$(get_dhcp_ip) METADATA_URL="http://${DHCP_SERVER}/latest/" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-0.0.5-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-0.0.5-r1.ebuild deleted file mode 100644 index f2f8f2cba99..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-0.0.5-r1.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. -# Copyright (c) 2014 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 -# $Header:$ -# - -EAPI=7 - -DESCRIPTION="OEM suite for Exoscale images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - into "/oem" - dobin "${FILESDIR}/exoscale-dhcp" - dobin "${FILESDIR}/exoscale-ssh-key" - dobin "${FILESDIR}/exoscale-coreos-cloudinit" - dobin "${FILESDIR}/flatcar-setup-environment" - - insinto "/oem" - doins "${T}/cloud-config.yml" - doins "${FILESDIR}/grub.cfg" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-1.0.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-1.0.0.ebuild new file mode 100644 index 00000000000..b5d3a35d1ee --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-exoscale/oem-exoscale-1.0.0.ebuild @@ -0,0 +1,22 @@ +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. +# Copyright (c) 2014 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for Exoscale" +HOMEPAGE="https://www.exoscale.com/" +S="${WORKDIR}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64" + +SYSEXT_NAME="Exoscale" + +src_install() { + insinto /usr/share/flatcar + sed "s:@@OEM_VERSION_ID@@:${PVR}:g" "${FILESDIR}/cloud-config.yml" | newins - cloud-config.yml + + dobin "${FILESDIR}"/{exoscale-{coreos-cloudinit,dhcp,ssh-key},flatcar-setup-environment} +} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20180823-r7.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20180823-r7.ebuild deleted file mode 100644 index defa71046a6..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20180823-r7.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 -# Copyright (c) 2020 Kinvolk GmbH. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit systemd - -DESCRIPTION="OEM suite for Google Compute Engine images" -HOMEPAGE="https://cloud.google.com/products/compute-engine/" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -# no source directory -S="${WORKDIR}" - -RDEPEND=" - app-emulation/google-compute-engine -" - -SYSEXT_NAME="Google Compute Engine" - -src_install() { - systemd_dounit "${FILESDIR}/units/oem-gce.service" - systemd_dounit "${FILESDIR}/units/oem-gce-enable-oslogin.service" - systemd_dounit "${FILESDIR}/units/setup-oem.service" - systemd_install_dropin "multi-user.target" "${FILESDIR}/units/10-oem-gce.conf" - systemd_enable_service "multi-user.target" "ntpd.service" - - dobin "${FILESDIR}/bin/enable-oslogin" - dobin "${FILESDIR}/bin/init.sh" - - # These files will be symlinked to /etc via 'setup-oem.service' - insinto /usr/share/gce/ - doins "${FILESDIR}/files/hosts" - doins "${FILESDIR}/files/google-cloud-sdk.sh" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20190124.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20190124.ebuild new file mode 100644 index 00000000000..444f1ee7649 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-20190124.ebuild @@ -0,0 +1,34 @@ +# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 +# Copyright (c) 2020 Kinvolk GmbH. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd + +DESCRIPTION="OEM suite for Google Compute Engine" +HOMEPAGE="https://cloud.google.com/products/compute-engine/" +S="${WORKDIR}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64" + +RDEPEND=" + ~app-emulation/google-compute-engine-${PV} +" + +SYSEXT_NAME="Google Compute Engine" + +src_install() { + systemd_dounit "${FILESDIR}"/units/{oem-gce,oem-gce-enable-oslogin,setup-oem}.service + systemd_install_dropin multi-user.target "${FILESDIR}"/units/10-oem-gce.conf + systemd_enable_service multi-user.target ntpd.service + + dobin "${FILESDIR}"/bin/{enable-oslogin,init.sh} + + # These files will be symlinked to /etc via 'setup-oem.service' + insinto /usr/share/gce + doins "${FILESDIR}"/files/{google-cloud-sdk.sh,hosts} +} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/oem-hetzner-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/oem-hetzner-0.ebuild index bc64cf358bd..e17292a550d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/oem-hetzner-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hetzner/oem-hetzner-0.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for Hetzner" HOMEPAGE="https://hetzner.com" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="Hetzner" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/oem-release b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/oem-release deleted file mode 100644 index 1259a0aa689..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/files/oem-release +++ /dev/null @@ -1,4 +0,0 @@ -ID=hyperv -VERSION_ID=@@OEM_VERSION_ID@@ -NAME="Microsoft Hyper-V" -BUG_REPORT_URL="https://issues.flatcar.org" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/oem-hyperv-0.2.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/oem-hyperv-0.2.0.ebuild index 8fb1cbdf2c2..0e5a8c51c1b 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/oem-hyperv-0.2.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-hyperv/oem-hyperv-0.2.0.ebuild @@ -3,20 +3,13 @@ EAPI=8 -DESCRIPTION="OEM suite for Hyper-V" -HOMEPAGE="" -SRC_URI="" +DESCRIPTION="OEM suite for Microsoft Hyper-V" +HOMEPAGE="https://learn.microsoft.com/windows-server/virtualization/hyper-v/" -LICENSE="Apache-2.0" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64" -IUSE="" -RDEPEND=" - app-emulation/hv-daemons -" +RDEPEND="app-emulation/hv-daemons" SYSEXT_NAME="Microsoft Hyper-V" - -# no source directory -S="${WORKDIR}" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/oem-kubevirt-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/oem-kubevirt-0.ebuild index 23056fd5fa8..93a563a4a5d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/oem-kubevirt-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-kubevirt/oem-kubevirt-0.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for KubeVirt" HOMEPAGE="https://kubevirt.io/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="KubeVirt" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/oem-nutanix-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/oem-nutanix-0.0.1.ebuild index c420f785b12..84205a86b71 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/oem-nutanix-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-nutanix/oem-nutanix-0.0.1.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for Nutanix" HOMEPAGE="https://www.nutanix.com/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64" -IUSE="" SYSEXT_NAME="Nutanix" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/oem-openstack-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/oem-openstack-0.ebuild index d90d9fc42eb..dc36d7c3727 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/oem-openstack-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-openstack/oem-openstack-0.ebuild @@ -3,13 +3,11 @@ EAPI=8 -DESCRIPTION="OpenStack suite for OpenStack" +DESCRIPTION="OEM suite for OpenStack" HOMEPAGE="https://www.openstack.org/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" -SYSEXT_NAME="Openstack" +SYSEXT_NAME="OpenStack" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild index 0b98a1ae620..50f00c9ae73 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for Proxmox VE" HOMEPAGE="https://www.proxmox.com/en/proxmox-virtual-environment/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="Proxmox VE" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/oem-qemu-0.0.2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/oem-qemu-0.0.2.ebuild index e8bf2f8900a..8882394464e 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/oem-qemu-0.0.2.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-qemu/oem-qemu-0.0.2.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for QEMU" HOMEPAGE="https://www.qemu.org/" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="QEMU" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/oem-scaleway-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/oem-scaleway-0.ebuild index 0b2ba075b1a..52ca3112d99 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/oem-scaleway-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-scaleway/oem-scaleway-0.ebuild @@ -5,11 +5,9 @@ EAPI=8 DESCRIPTION="OEM suite for Scaleway" HOMEPAGE="https://www.scaleway.com" -SRC_URI="" -LICENSE="GPL-2" +LICENSE="metapackage" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" SYSEXT_NAME="Scaleway" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild index 52f129c5011..50150a1c260 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild @@ -6,19 +6,14 @@ EAPI=8 inherit systemd tmpfiles DESCRIPTION="OEM suite for STACKIT" -HOMEPAGE="https://stackit.cloud" -SRC_URI="" +HOMEPAGE="https://stackit.com/" +S="${WORKDIR}" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" - -RDEPEND=" - net-misc/chrony -" -S="${WORKDIR}" +RDEPEND="net-misc/chrony" SYSEXT_NAME="STACKIT" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/cloud-config.yml index 2666663f46a..0a5946be825 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/files/cloud-config.yml @@ -19,7 +19,7 @@ coreos: id: vagrant name: Vagrant version-id: @@OEM_VERSION_ID@@ - home-url: http://www.vagrantup.com/ + home-url: https://developer.hashicorp.com/vagrant bug-report-url: https://github.com/coreos/coreos-overlay ssh_authorized_keys: diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-0.0.3-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-0.0.3-r1.ebuild deleted file mode 100644 index cdfad543621..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-0.0.3-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2013 The CoreOS Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for vagrant images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/cloud-config.yml" > "${T}/cloud-config.yml" || die -} - -src_install() { - insinto "/oem" - doins "${T}/cloud-config.yml" - doins -r "${FILESDIR}/box" - doins "${FILESDIR}/grub.cfg" - - into "/oem" - dobin "${FILESDIR}/flatcar-setup-environment" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-1.0.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-1.0.0.ebuild new file mode 100644 index 00000000000..c1cd1d82eea --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vagrant/oem-vagrant-1.0.0.ebuild @@ -0,0 +1,21 @@ +# Copyright 2013 The CoreOS Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for Vagrant" +HOMEPAGE="https://developer.hashicorp.com/vagrant" +S="${WORKDIR}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64" + +SYSEXT_NAME="Vagrant" + +src_install() { + insinto /usr/share/flatcar + sed "s:@@OEM_VERSION_ID@@:${PVR}:g" "${FILESDIR}/cloud-config.yml" | newins - cloud-config.yml + + dobin "${FILESDIR}"/flatcar-setup-environment +} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/oem-release b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/oem-release deleted file mode 100644 index 8a357cf6ffd..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/files/oem-release +++ /dev/null @@ -1,4 +0,0 @@ -ID=virtualbox -VERSION_ID=@@OEM_VERSION_ID@@ -NAME="Oracle VirtualBox" -BUG_REPORT_URL="https://issues.flatcar.org" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-0.0.1-r1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-0.0.1-r1.ebuild deleted file mode 100644 index 091cea57739..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-0.0.1-r1.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for VirtualBox" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - "${FILESDIR}/oem-release" > "${T}/oem-release" || die -} - -src_install() { - insinto "/oem" - doins "${FILESDIR}/grub.cfg" - doins "${T}/oem-release" -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-1.0.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-1.0.0.ebuild new file mode 100644 index 00000000000..3af945d0dbc --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-virtualbox/oem-virtualbox-1.0.0.ebuild @@ -0,0 +1,13 @@ +# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for Oracle VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" + +LICENSE="metapackage" +SLOT="0" +KEYWORDS="amd64" + +SYSEXT_NAME="Oracle VirtualBox" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/metadata.xml deleted file mode 100644 index 097975e3adc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/oem-vmware-13.0.10.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/oem-vmware-13.0.10.ebuild index 1d4d750df85..d1aa3658cfa 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/oem-vmware-13.0.10.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-vmware/oem-vmware-13.0.10.ebuild @@ -7,21 +7,16 @@ inherit systemd DESCRIPTION="OEM suite for VMware" HOMEPAGE="https://www.vmware.com/" -SRC_URI="" +S="${WORKDIR}" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="amd64 arm64" -IUSE="" +KEYWORDS="amd64" RDEPEND=" ~app-emulation/open-vm-tools-${PV} " -# no source directory -S="${WORKDIR}" - -# for coreos-base/common-oem-files SYSEXT_NAME="VMware" src_install() { diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc index 332ae8c3413..bcc7b1d0815 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/profile.bashrc @@ -12,7 +12,6 @@ CROS_ADDONS_TREE="/mnt/host/source/src/third_party/coreos-overlay/coreos" # - generic-board (board sysroot) # - generic-prod (production image) # - generic-dev (developer container image) -# - generic-oem-${name} (image for OEM ${name}, like azure, qemu_uefi) # - generic-sysext-base-${name} (sysext image ${name} built-in into # production image, usually docker or containerd) # - generic-sysext-extra-${name} (extra sysext image ${name}, like @@ -43,11 +42,6 @@ flatcar_target_ref() { name=${name%-extra-sysext-rootfs} type_ref="generic-sysext-extra-${name}" ;; - */*-oem-image-rootfs) - name=${ROOT##*/} - name=${name%-oem-image-rootfs} - type_ref="generic-oem-${name}" - ;; */*-oem-sysext-rootfs) name=${ROOT##*/} name=${name%-oem-sysext-rootfs} diff --git a/sdk_container/src/third_party/portage-stable/licenses/metapackage b/sdk_container/src/third_party/portage-stable/licenses/metapackage new file mode 100644 index 00000000000..c8318394935 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/metapackage @@ -0,0 +1,6 @@ +This is a metapackage that (itself) installs no files, therefore no +license is needed. + +This does not in any way imply under which licenses the packages in it +are distributed. Check the metapackage's dependencies for their actual +license terms. From d1927c4cbfa0dca9e260342899d2f5d1ba87d757 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 27 Apr 2026 18:31:14 +0100 Subject: [PATCH 18/21] build_library: Refresh our Vagrant support The CoreOS support we have been carrying was merged upstream years ago. The network configuration still needs special handling because our cloud-init is called coreos-cloudinit, breaking the detection. Flatcar's documentation used to point users at coreos-vagrant. This is long dead and used the old Ignition VirtualBox support, which no longer works. Rather than revive that, we can capture the essence of what coreos-vagrant did in our base Vagrantfile. Signed-off-by: James Le Cuirot --- .../oem/vagrant/build/box/Vagrantfile | 16 ++- .../oem/vagrant/build/box/change_host_name.rb | 37 ----- .../vagrant/build/box/configure_networks.rb | 130 +----------------- changelog/changes/2026-04-29-vagrant.md | 1 + 4 files changed, 16 insertions(+), 168 deletions(-) delete mode 100644 build_library/oem/vagrant/build/box/change_host_name.rb create mode 100644 changelog/changes/2026-04-29-vagrant.md diff --git a/build_library/oem/vagrant/build/box/Vagrantfile b/build_library/oem/vagrant/build/box/Vagrantfile index 7bed8e36438..b58b5bf492e 100644 --- a/build_library/oem/vagrant/build/box/Vagrantfile +++ b/build_library/oem/vagrant/build/box/Vagrantfile @@ -1,11 +1,8 @@ # -*- mode: ruby -*- # # vi: set ft=ruby : -if Vagrant::VERSION < "1.6.0" - raise "Need at least vagrant version 1.6.0, please update" -end +Vagrant.require_version ">= 2.2.5" -require_relative 'change_host_name.rb' require_relative 'configure_networks.rb' require_relative 'base_mac.rb' @@ -27,6 +24,10 @@ Vagrant.configure("2") do |config| # Fix docker not being able to resolve private registry in VirtualBox vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] + + if File.exist?("config.ign") + vb.customize ["guestproperty", "set", :id, "/Ignition/Config", File.read("config.ign")] + end end config.vm.provider :vmware_fusion do |vf| @@ -38,4 +39,9 @@ Vagrant.configure("2") do |config| prl.check_guest_tools = false prl.functional_psf = false end - end + + if File.exist?("user-data") + config.vm.provision :file, :source => "user-data", :destination => "/tmp/vagrantfile-user-data" + config.vm.provision :shell, :inline => "mv /tmp/vagrantfile-user-data /var/lib/flatcar-vagrant/", :privileged => true + end +end diff --git a/build_library/oem/vagrant/build/box/change_host_name.rb b/build_library/oem/vagrant/build/box/change_host_name.rb deleted file mode 100644 index bae625e2350..00000000000 --- a/build_library/oem/vagrant/build/box/change_host_name.rb +++ /dev/null @@ -1,37 +0,0 @@ -# -*- mode: ruby -*- -# # vi: set ft=ruby : - -# NOTE: This monkey-patching of the coreos guest plugin is a terrible -# hack that needs to be removed once the upstream plugin works with -# alpha CoreOS images. - -require 'tempfile' -require Vagrant.source_root.join("plugins/guests/coreos/cap/change_host_name.rb") - -CLOUD_CONFIG = < Date: Wed, 6 May 2026 12:22:18 +0100 Subject: [PATCH 19/21] vm_image_util: Share the Vagrant metadata JSON between providers We currently publish separate metadata for each provider, VirtualBox and Parallels, but you're supposed to combine these and let Vagrant choose the provider. Rewriting an existing output file is a little weird, but this use of jq makes it relatively safe. Signed-off-by: James Le Cuirot --- build_library/vm_image_util.sh | 55 +++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 0543ea68403..32399068c2a 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -954,9 +954,15 @@ write_vm_bundle() { _write_box_bundle() { local box=$(_dst_path ".box") - local json=$(_dst_path ".json") local image=${VM_DST_IMG} - local provider="virtualbox" + + # Share the metadata JSON between providers. + local json=${VM_SRC_IMG##*/} + json=$(_dst_dir)/${json%_image.bin}_vagrant.json + + local -xI FLATCAR_VERSION FLATCAR_VERSION_ID VM_GROUP + local -x provider="virtualbox" + local -x arch=${BOARD%-usr} if [[ "${VM_IMG_TYPE}" == vagrant_parallels ]]; then provider="parallels" @@ -966,28 +972,37 @@ _write_box_bundle() { mv "$(_dst_path ".pvs")" "${image}"/config.pvs fi - cat > "${VM_TMP_DIR}"/box/metadata.json < "${VM_TMP_DIR}"/box/metadata.json mv "${image}" "${VM_TMP_DIR}/box" tar -czf "${box}" -C "${VM_TMP_DIR}/box" . - cat >"${json}" < "${json}" + VM_GENERATED_FILES+=( "${box}" "${json}" ) } From bc924a13648b41cc0f45b610d2be1e747b05921c Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 6 May 2026 17:14:49 +0100 Subject: [PATCH 20/21] virtualbox_ovf: Modernise VirtualBox OVF (including for Vagrant) * 2 CPUs instead of 1 like QEMU. * 2GB RAM instead of 1GB like QEMU. * ICH9 chipset instead of PIIX3. * virtio storage controller instead of IDE. * VMware SVGA display adapter instead of VBoxVGA. * USB tablet pointer instead of PS/2 mouse. * UEFI instead of BIOS. * UTC clock instead of local. We don't enable any of the DRM drivers for any of VirtualBox's display adapters, so it uses efifb regardless, but apparently VMSVGA is best for Linux guests. For UEFI, VirtualBox actually uses EDK2. It also supports Secure Boot, but I haven't tested that. Signed-off-by: James Le Cuirot --- build_library/virtualbox_ovf.sh | 188 +++++--------------- changelog/changes/2026-05-06-ovf-refresh.md | 1 + 2 files changed, 49 insertions(+), 140 deletions(-) create mode 100644 changelog/changes/2026-05-06-ovf-refresh.md diff --git a/build_library/virtualbox_ovf.sh b/build_library/virtualbox_ovf.sh index 75083fbc5af..87ae54e38cd 100755 --- a/build_library/virtualbox_ovf.sh +++ b/build_library/virtualbox_ovf.sh @@ -6,9 +6,9 @@ SCRIPT_ROOT=$(readlink -f $(dirname "$0")/..) . "${SCRIPT_ROOT}/common.sh" || exit 1 -DEFINE_string vm_name "CoreOS" "Name for this VM" +DEFINE_string vm_name "Flatcar" "Name for this VM" DEFINE_string disk_vmdk "" "Disk image to reference, only basename is used." -DEFINE_integer memory_size 1024 "Memory size in MB" +DEFINE_integer memory_size 2048 "Memory size in MB" DEFINE_string output_ovf "" "Path to write ofv file to, required." DEFINE_string output_vagrant "" "Path to write Vagrantfile to, optional." @@ -90,12 +90,12 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then virtualbox-2.2 - 1 virtual CPU + 2 virtual CPUs Number of virtual CPUs - 1 virtual CPU + 2 virtual CPUs 1 3 - 1 + 2 MegaBytes @@ -108,21 +108,20 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then 0 - ideController0 - IDE Controller - ideController0 + virtioSCSIController0 + VirtioSCSI Controller + virtioSCSIController0 3 - PIIX4 - 5 + VirtioSCSI + 20 - 1 - ideController1 - IDE Controller - ideController1 + 0 + usb + USB Controller + usb 4 - PIIX4 - 5 + 23 true @@ -130,7 +129,6 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then NAT Ethernet adapter on 'NAT' 5 - E1000 10 @@ -144,137 +142,47 @@ if [[ -n "${FLAGS_output_ovf}" ]]; then 17 - + Complete VirtualBox machine configuration in VirtualBox format - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - diff --git a/changelog/changes/2026-05-06-ovf-refresh.md b/changelog/changes/2026-05-06-ovf-refresh.md new file mode 100644 index 00000000000..6b6f4880eee --- /dev/null +++ b/changelog/changes/2026-05-06-ovf-refresh.md @@ -0,0 +1 @@ +- Refreshed the VirtualBox OVF (which is also used by the Vagrant image) so that VMs are configured with modern hardware, including a VirtIO storage controller and UEFI. The clock is configured for UTC rather than local time. From ba7c39324e5cd55ab84b6d7c704d42f4048d200f Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Tue, 27 Jan 2026 16:37:30 +0000 Subject: [PATCH 21/21] coreos-devel/board-packages: Drop the OEM sysext dependencies It is no longer necessary to include these as they are explicitly built with --onlydeps in build_sysext_packages(). Signed-off-by: James Le Cuirot --- .../src/third_party/coreos-overlay/README.md | 7 ++-- ...ebuild => board-packages-0.0.1-r18.ebuild} | 0 .../board-packages-0.0.1.ebuild | 38 ++++--------------- 3 files changed, 10 insertions(+), 35 deletions(-) rename sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/{board-packages-0.0.1-r17.ebuild => board-packages-0.0.1-r18.ebuild} (100%) diff --git a/sdk_container/src/third_party/coreos-overlay/README.md b/sdk_container/src/third_party/coreos-overlay/README.md index 150fb7b6493..363fdfb20a3 100644 --- a/sdk_container/src/third_party/coreos-overlay/README.md +++ b/sdk_container/src/third_party/coreos-overlay/README.md @@ -23,13 +23,12 @@ gets built into a developer image and is not OEM specific. gets built into the Container Linux SDK. `coreos-devel/board-packages` is everything that could be built into a -development or production image, plus any OEM specific packages. +development or production image. `coreos-base/oem-*` are the OEM specific packages. They mostly install things -that belong in the OEM partition. Any RDEPENDS from these packages should -be copied to the RDEPENDS in `board-packages` to ensure they are built. +that belong in the OEM partition. -`coreos-base/coreos-oem-*` are metapackages for OEM specific ACIs. +`coreos-base/coreos-oem-*` are metapackages for OEM specific ACIs. # Updating diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r17.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r18.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r17.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r18.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild index e89d4114449..471793e05ff 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild @@ -2,47 +2,23 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: $ -EAPI=7 +EAPI=8 -DESCRIPTION="Meta ebuild for building all binary packages." -HOMEPAGE="http://coreos.com/docs/sdk/" -SRC_URI="" +DESCRIPTION="Meta ebuild for building all binary packages" +HOMEPAGE="https://www.flatcar.org/" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 arm64" -IUSE="" -# Depend on everything OEMs need, but not the OEMs themselves. -# This makes the built packages available for image_vm_util.sh but -# avoids copying the oem specific files (e.g. grub configs) before -# the oem partition is set up. -DEPEND="" RDEPEND=" - amd64? ( - app-emulation/google-compute-engine - app-emulation/open-vm-tools - coreos-base/nova-agent-container - coreos-base/nova-agent-watcher - ) - sys-boot/grub - sys-boot/shim - sys-boot/shim-signed app-containers/containerd app-containers/docker app-containers/docker-buildx app-containers/docker-cli - app-containers/incus - app-emulation/amazon-ssm-agent - app-emulation/hv-daemons - app-emulation/wa-linux-agent coreos-base/coreos coreos-base/coreos-dev - coreos-base/flatcar-eks - net-misc/chrony - sys-fs/zfs - app-containers/podman - net-misc/passt - dev-lang/python - dev-python/pip - " + sys-boot/grub + sys-boot/shim + sys-boot/shim-signed +"