From 6a94a91de95131829e90c88823e5a5692a84b684 Mon Sep 17 00:00:00 2001 From: Kai Lueke Date: Wed, 26 Jul 2023 13:13:10 +0200 Subject: [PATCH] wip: Support OEM systemd-sysext images and Flatcar extensions TODO: changelog --- .../coreos-base/coreos-init/coreos-init-9999.ebuild | 2 +- .../coreos-base/misc-files/files/oems/azure | 13 +++++++++++++ .../coreos-base/misc-files/files/oems/qemu | 0 .../coreos-base/misc-files/misc-files-0.ebuild | 8 ++++++++ ...0-r10.ebuild => update_engine-0.4.10-r11.ebuild} | 0 .../update_engine/update_engine-9999.ebuild | 7 ++++++- ...0.38-r17.ebuild => bootengine-0.0.38-r18.ebuild} | 0 .../sys-kernel/bootengine/bootengine-9999.ebuild | 2 +- 8 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/azure create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/qemu rename sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/{update_engine-0.4.10-r10.ebuild => update_engine-0.4.10-r11.ebuild} (100%) rename sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/{bootengine-0.0.38-r17.ebuild => bootengine-0.0.38-r18.ebuild} (100%) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild index 99662f96c16..6f5868fefbc 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild @@ -10,7 +10,7 @@ CROS_WORKON_REPO="https://github.com" if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" else - CROS_WORKON_COMMIT="e502aab19632fda2a43938d02ff1104043173702" # flatcar-master + CROS_WORKON_COMMIT="242ad2e85b30896d580dd51f91ac6f6c6f9e4af0" # TODO: flatcar-master KEYWORDS="amd64 arm arm64 x86" fi diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/azure b/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/azure new file mode 100644 index 00000000000..b44e60b2ebe --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/azure @@ -0,0 +1,13 @@ +/etc/systemd/system/nvidia.service +/oem/bin/setup-nvidia +/oem/bin/install-nvidia +/oem/units/nvidia.service +/etc/systemd/system/oem-cloudinit.service +/etc/systemd/system/multi-user.target.wants/oem-cloudinit.service +/etc/systemd/system/waagent.service +/etc/systemd/system/multi-user.target.wants/waagent.service +/oem/waagent.conf +/oem/python/ +/oem/bin/ +/oem/units/ +/oem/base/ diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/qemu b/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/files/oems/qemu new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/misc-files-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/misc-files-0.ebuild index 18416bc822d..b97dc20b78b 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/misc-files-0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/misc-files/misc-files-0.ebuild @@ -79,6 +79,14 @@ src_install() { insinto '/etc/bash/bashrc.d' doins "${FILESDIR}/99-flatcar-bcc" + insinto '/usr/share/flatcar' + # The "oems" folder should contain a file "$OEMID" for each expected OEM sysext and + # either be empty or contain a newline-separated list of files to delete during the + # migration (done from the initrd). The existance of the file will help old clients + # to do the fallback download of the sysext payload in the postinstall hook. + # The paths should use /oem instead of /usr/share/oem/ to avoid symlink resolution. + doins -r "${FILESDIR}"/oems + dotmpfiles "${T}/home-core-bash-symlinks.conf" # Ideally we would be calling systemd-tmpfiles to create the # symlinks, but at this point systemd may not have any info about diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-0.4.10-r10.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-0.4.10-r11.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-0.4.10-r10.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-0.4.10-r11.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-9999.ebuild index 297549bd82a..2b68340aa02 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/update_engine/update_engine-9999.ebuild @@ -8,7 +8,7 @@ CROS_WORKON_REPO="https://github.com" if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" else - CROS_WORKON_COMMIT="c6f566d47d8949632f7f43871eb8d5c625af3209" # flatcar-master + CROS_WORKON_COMMIT="602118bdaf6de5a234073ba8a7723153880c6585" # TODO: flatcar-master KEYWORDS="amd64 arm64" fi @@ -102,6 +102,11 @@ src_install() { insinto /usr/share/dbus-1/system.d doins com.coreos.update1.conf + insinto /usr/share/update_engine + doins src/update_engine/update_metadata.proto + exeinto /usr/share/update_engine + doexe decode_payload + # Install rule to remove old UpdateEngine.conf from /etc dotmpfiles "${FILESDIR}"/update-engine.conf } diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r17.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r18.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r17.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r18.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 b8c81c0245c..b81637c9931 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 @@ CROS_WORKON_REPO="https://github.com" if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" else - CROS_WORKON_COMMIT="cc0fdec0cc6c5692acac95a928984ea8a5eb8f08" # flatcar-master + CROS_WORKON_COMMIT="9392dd21a832bfecfa015165845bf2b2075c46b3" # TODO: flatcar-master KEYWORDS="amd64 arm arm64 x86" fi