From 563233bb3047429d4fb4561036a40e4a40e47d97 Mon Sep 17 00:00:00 2001 From: Hiago De Franco Date: Mon, 22 Apr 2024 09:52:03 -0300 Subject: set-hostname: update sethostname script to handle read-only root filesystem The sethostname script has issues when the root filesystem is mounted as read-only, making not possible to create or modify the /etc/hostname file. Therefore, this change updates the sethostname script and adds the @@HOSTNAMECTL_OPT@@ that can further be replaced with the "--transient" flag for hostnamectl if the system uses a read-only root FS. This flag will change the hostname without creating the /etc/hostname file. With this change, update recipe version from 1.0 to 1.1. Related-to: ELB-5713 Signed-off-by: Hiago De Franco (cherry picked from commit 9d2e8422f17a52e4dd7d2170c685cad2acba5550) --- recipes-core/set-hostname/files/sethostname | 2 +- recipes-core/set-hostname/set-hostname_1.0.bb | 30 ------------------------- recipes-core/set-hostname/set-hostname_1.1.bb | 32 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 31 deletions(-) delete mode 100644 recipes-core/set-hostname/set-hostname_1.0.bb create mode 100644 recipes-core/set-hostname/set-hostname_1.1.bb diff --git a/recipes-core/set-hostname/files/sethostname b/recipes-core/set-hostname/files/sethostname index 87e6320..aacb7ab 100644 --- a/recipes-core/set-hostname/files/sethostname +++ b/recipes-core/set-hostname/files/sethostname @@ -13,7 +13,7 @@ fi hostname=@@MACHINE@@"-"${serial} if [ -f /usr/bin/hostnamectl ]; then - /usr/bin/hostnamectl set-hostname ${hostname} + /usr/bin/hostnamectl set-hostname @@HOSTNAMECTL_OPT@@ ${hostname} else hostname ${hostname} fi diff --git a/recipes-core/set-hostname/set-hostname_1.0.bb b/recipes-core/set-hostname/set-hostname_1.0.bb deleted file mode 100644 index b39abdb..0000000 --- a/recipes-core/set-hostname/set-hostname_1.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -inherit systemd - -SRC_URI += " \ - file://sethostname \ - file://set-hostname.service \ -" - -FILES:${PN} = " \ - ${bindir} \ - ${systemd_system_unitdir} \ -" - -SYSTEMD_SERVICE:${PN} = " \ - set-hostname.service \ -" - -do_install () { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/sethostname ${D}${bindir} - sed -i "s/@@MACHINE@@/${MACHINE}/g" ${D}${bindir}/sethostname - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/set-hostname.service ${D}${systemd_system_unitdir} - fi -} diff --git a/recipes-core/set-hostname/set-hostname_1.1.bb b/recipes-core/set-hostname/set-hostname_1.1.bb new file mode 100644 index 0000000..e9c3878 --- /dev/null +++ b/recipes-core/set-hostname/set-hostname_1.1.bb @@ -0,0 +1,32 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit systemd + +SRC_URI += " \ + file://sethostname \ + file://set-hostname.service \ +" + +FILES:${PN} = " \ + ${bindir} \ + ${systemd_system_unitdir} \ +" + +SYSTEMD_SERVICE:${PN} = " \ + set-hostname.service \ +" + +do_install () { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/sethostname ${D}${bindir} + sed -i "s/@@MACHINE@@/${MACHINE}/g" ${D}${bindir}/sethostname + sed -i "s/@@HOSTNAMECTL_OPT@@/${@bb.utils.contains('IMAGE_FEATURES','read-only-rootfs','--transient','',d)}/g" \ + ${D}${bindir}/sethostname + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/set-hostname.service ${D}${systemd_system_unitdir} + fi +} -- cgit v1.2.3