From ba5a5948444a6c5cea0e15ca82254be58424c455 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 29 Dec 2025 10:45:33 +0000 Subject: [PATCH] app-admin/google-guest-configs: New package to install udev disk rules We already have GCE disk rules in coreos-init, but a user has pointed out that the newer NVMe rules are missing. Let's take the rules directly from upstream instead. This is loosely based on the ChromiumOS package of the same name. This only installs the udev disk rules because the network rules are not GCE-specific. The disk rules need to be in the initrd, so we cannot separate this package from other platforms by putting it in the GCE OEM image. We could split this package in two, but the network rules don't seem essential. Signed-off-by: James Le Cuirot --- changelog/bugfixes/2025-12-29-gce-udev.md | 1 + .../app-admin/google-guest-configs/Manifest | 1 + .../google-guest-configs-20251014.00.ebuild | 56 +++++++++++++++++++ .../google-guest-configs/metadata.xml | 7 +++ .../coreos-kernel-6.12.62.ebuild | 5 +- 5 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 changelog/bugfixes/2025-12-29-gce-udev.md create mode 100644 sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/Manifest create mode 100644 sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/google-guest-configs-20251014.00.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/metadata.xml diff --git a/changelog/bugfixes/2025-12-29-gce-udev.md b/changelog/bugfixes/2025-12-29-gce-udev.md new file mode 100644 index 00000000000..d8458d9f4db --- /dev/null +++ b/changelog/bugfixes/2025-12-29-gce-udev.md @@ -0,0 +1 @@ +- Updated the GCE udev disk rules to include NVMe disks. diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/Manifest b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/Manifest new file mode 100644 index 00000000000..02b3af8f09d --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/Manifest @@ -0,0 +1 @@ +DIST google-guest-configs-20251014.00.tar.gz 49030 BLAKE2B 20330b57868814e2e4278a15355d8b8a2d6f065049bbe876f8fa48c70f54f65ed98537c5a6a5603e38967c12fd4953c6d06232d6dae691ae81e0f5111108e9c6 SHA512 0040ca6cc6b18c0cb0afaa2febd1bef61a1a62e6f277ef8c9ed01254194a7802ff19baa99bcb8ba64c96e1113f6686a63a23116aa1c7cd5b6caa787ae4e107fa diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/google-guest-configs-20251014.00.ebuild b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/google-guest-configs-20251014.00.ebuild new file mode 100644 index 00000000000..e27851a8931 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/google-guest-configs-20251014.00.ebuild @@ -0,0 +1,56 @@ +# Copyright 2025 The Flatcar Container Linux Maintainers +# Distributed under the terms of the Apache License 2.0 + +# This only installs the udev disk rules because the network rules are not +# GCE-specific. The disk rules need to be in the initrd, so we cannot separate +# this package from other platforms by putting it in the GCE OEM image. We could +# split this package in two, but the network rules don't seem essential. + +EAPI=8 + +inherit udev + +DESCRIPTION="Configuration and scripts to support the Google Compute Engine guest environment" +HOMEPAGE="http://github.com/GoogleCloudPlatform/guest-configs" +SRC_URI="https://github.com/GoogleCloudPlatform/guest-configs/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/guest-configs-${PV}" + +LICENSE="Apache-2.0 BSD ZLIB" +SLOT="0" +KEYWORDS="amd64" + +RDEPEND=" + sys-apps/nvme-cli +" +# sys-apps/ethtool +# sys-apps/iproute2 + +PATCHES=( +# "${FILESDIR}"/${PN}-20211116.00-sysctl.patch +) + +src_install() { + exeinto "$(get_udevdir)" + doexe src/lib/udev/google_nvme_id + + udev_dorules src/lib/udev/rules.d/65-gce-disk-naming.rules +# udev_dorules src/lib/udev/rules.d/75-gce-network.rules + + insinto /etc/sysctl.d +# doins src/etc/sysctl.d/60-gce-network-security.conf + +# dobin src/usr/bin/google_set_multiqueue +# dobin src/usr/bin/google_optimize_local_ssd # Already in google-compute-engine +# dobin src/usr/bin/gce-nic-naming + + insinto /usr/lib/dracut/modules.d + doins -r src/lib/dracut/modules.d/* +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/metadata.xml b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/metadata.xml new file mode 100644 index 00000000000..3abd52a6f70 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/google-guest-configs/metadata.xml @@ -0,0 +1,7 @@ + + + + + GoogleCloudPlatform/guest-configs + + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-6.12.62.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-6.12.62.ebuild index 8b9cea19187..c3d5342b163 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-6.12.62.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-kernel/coreos-kernel-6.12.62.ebuild @@ -52,7 +52,10 @@ DEPEND=" >=sys-kernel/bootengine-0.0.38-r37:= >=sys-kernel/coreos-firmware-20180103-r1:= virtual/udev - amd64? ( sys-firmware/intel-microcode:= ) + amd64? ( + app-admin/google-guest-configs + sys-firmware/intel-microcode:= + ) " src_prepare() {