Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
86415be
build_library: Fix "get_sdk_libdir: command not found" errors
chewi May 6, 2026
9b7a25e
sys-apps/baselayout: Don't need to explicitly create /oem any more
chewi Apr 24, 2026
83797a2
build_packages: Exclude OEM sysext packages when running eclean packages
chewi Feb 4, 2026
d16c443
build_sysext: Ensure sysexts are entirely built from binary packages
chewi Feb 4, 2026
4ff31e7
Drop the per-OEM USE flags
chewi Jan 28, 2026
c5e95a1
build_sysext: Safely quote the extension-release.d fields
chewi Feb 19, 2026
282a47a
build_sysext: Populate SYSEXT_ID/NAME/VERSION_ID/HOME_URL/BUG_REPORT_URL
chewi Feb 19, 2026
b2da06d
coreos-base/coreos-cloudinit: Bump for new OEM config location
chewi Apr 16, 2026
584901f
sys-kernel/coreos-modules: Enable the vboxguest kernel module
chewi Apr 28, 2026
b1f4e37
sys-kernel/bootengine: Bump for better oem.id handling and vboxguest
chewi Apr 27, 2026
b27c622
Drop support for Rackspace
chewi Apr 23, 2026
26058f1
Drop support for Equinix Metal (Packet)
chewi Apr 23, 2026
6efcce0
Drop the vmware_insecure image
chewi Apr 27, 2026
42cc462
Drop the vagrant_virtualbox image in favour of the vagrant image
chewi Apr 27, 2026
1dc66c4
Drop the vagrant_vmware_fusion image
chewi Apr 27, 2026
54d4ef9
ci: Fix bad handling of image format names
chewi Apr 27, 2026
6aa5344
Convert remaining OEM packages to sysexts and rework how they are built
chewi Feb 19, 2026
d1927c4
build_library: Refresh our Vagrant support
chewi Apr 27, 2026
9749d5c
vm_image_util: Share the Vagrant metadata JSON between providers
chewi May 6, 2026
bc924a1
virtualbox_ovf: Modernise VirtualBox OVF (including for Vagrant)
chewi May 6, 2026
ba7c393
coreos-devel/board-packages: Drop the OEM sysext dependencies
chewi Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 7 additions & 17 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -189,25 +189,15 @@ 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"
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
# 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
Expand Down
1 change: 0 additions & 1 deletion build_library/check_root
Original file line number Diff line number Diff line change
Expand Up @@ -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/*",
Expand Down
8 changes: 0 additions & 8 deletions build_library/disk_layout.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,6 @@
"blocks":"33845248"
}
},
"onmetal":{
"7":{
"label":"config-2",
"fs_label":"config-2",
"type":"data",
"fs_type":"ext2"
}
},
"container":{
"1":{
"type":"blank"
Expand Down
16 changes: 0 additions & 16 deletions build_library/extra_sysexts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Flatcar GRUB settings

set oem_id="vagrant"
set oem_id="akamai"
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Flatcar GRUB settings

set oem_id="azure"
set linux_append="flatcar.autologin"

# Azure only has a serial console.
Expand Down
3 changes: 3 additions & 0 deletions build_library/oem/digitalocean/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Flatcar GRUB settings

set oem_id="digitalocean"
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Flatcar GRUB settings

set oem_id="rackspace"
set oem_id="hetzner"
3 changes: 3 additions & 0 deletions build_library/oem/kubevirt/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Flatcar GRUB settings

set oem_id="kubevirt"
3 changes: 3 additions & 0 deletions build_library/oem/nutanix/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Flatcar GRUB settings

set oem_id="nutanix"
4 changes: 4 additions & 0 deletions build_library/oem/openstack/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Flatcar GRUB settings

set oem_id="openstack"
set linux_append="flatcar.autologin"
4 changes: 4 additions & 0 deletions build_library/oem/proxmoxve/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Flatcar GRUB settings

set oem_id="proxmoxve"
set linux_append="flatcar.autologin"
4 changes: 4 additions & 0 deletions build_library/oem/qemu/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Flatcar GRUB settings

set oem_id="qemu"
set linux_append="flatcar.autologin"
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# Flatcar GRUB settings

set oem_id="scaleway"
set linux_console="console=ttyS0,115200n8 earlycon=ttyS0,115200"
3 changes: 3 additions & 0 deletions build_library/oem/stackit/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Flatcar GRUB settings

set oem_id="openstack"
Original file line number Diff line number Diff line change
@@ -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'

Expand All @@ -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|
Expand All @@ -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
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# -*- 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
# NOTE: This monkey-patching is done to force cloud-init over NetworkManager.
# Vagrant attempts to detect cloud-init, but Flatcar doesn't have an executable
# under that name, only coreos-cloudinit.

require Vagrant.source_root.join("plugins/guests/coreos/cap/configure_networks.rb")

Expand All @@ -11,6 +12,7 @@ module GuestCoreOS
module Cap
class ConfigureNetworks
def self.configure_networks(machine, networks)
configure_networks_cloud_init(machine, networks)
end
end
end
Expand Down
4 changes: 4 additions & 0 deletions build_library/oem/vmware/grub.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Flatcar GRUB settings

set oem_id="vmware"
set linux_append="flatcar.autologin"
68 changes: 28 additions & 40 deletions build_library/oem_sysexts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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}|${oem_id}")
list_var_ref+=( "oem-${oem_id}|coreos-base/oem-${oem_id}|" )
done

local -n matrix_ref="${list_var_name}"
matrix_ref=("${matrix[@]}")
}
1 change: 1 addition & 0 deletions build_library/sysext_prod_builder
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
42 changes: 0 additions & 42 deletions build_library/test_oem_pkgs

This file was deleted.

Loading