From 10a18c2b17f42a741fa8c44dfb49f877a411a885 Mon Sep 17 00:00:00 2001 From: unitexe Date: Mon, 26 Jan 2026 23:36:49 -0600 Subject: Add sbin to svc user path - Create .profile by default in user recipes - The set-xdg-env class needs to append not overwrite --- meta-unit-core/recipes-users/useradd/add-user-svc.bb | 13 +++++++++++++ meta-unit-core/recipes-users/useradd/add-user-unitexe.bb | 7 +++++++ meta-virtualization-extra/classes/set-xdg-env.bbclass | 7 ++----- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/meta-unit-core/recipes-users/useradd/add-user-svc.bb b/meta-unit-core/recipes-users/useradd/add-user-svc.bb index 3e2a8ca..ee534c5 100644 --- a/meta-unit-core/recipes-users/useradd/add-user-svc.bb +++ b/meta-unit-core/recipes-users/useradd/add-user-svc.bb @@ -22,7 +22,20 @@ USERADD_PARAM:${PN} = "-u ${USER_TO_ADD_UID} -d /home/${USER_TO_ADD_NAME} -s ${b INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +do_install() { + # Note: Use of .profile here assumes busybox shell. + install -D -m 0644 /dev/null ${D}/home/${USER_TO_ADD_NAME}/.profile + + # User is not part of sudo group and therefore doesn't + # have sbin in path, add it for access to common commands. + cat > ${D}/home/${USER_TO_ADD_NAME}/.profile << 'EOF' +export PATH="${sbindir}:/sbin:$PATH" +EOF +} + # Prior to useradd being performed on the sysroot a couple things must happen: # 1. Need the systemd recipe to create the systemd-journal group # 2. Need busybox shell present do_prepare_recipe_sysroot[depends] += "systemd:do_populate_sysroot busybox:do_populate_sysroot" + +FILES:${PN}:append = " /home/${USER_TO_ADD_NAME}/.profile" diff --git a/meta-unit-core/recipes-users/useradd/add-user-unitexe.bb b/meta-unit-core/recipes-users/useradd/add-user-unitexe.bb index faa1d2a..527af74 100644 --- a/meta-unit-core/recipes-users/useradd/add-user-unitexe.bb +++ b/meta-unit-core/recipes-users/useradd/add-user-unitexe.bb @@ -24,7 +24,14 @@ USERADD_PARAM:${PN} = "-u ${USER_TO_ADD_UID} -d /home/${USER_TO_ADD_NAME} -s ${b INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +do_install() { + # Note: Use of .profile here assumes busybox shell. + install -D -m 0644 /dev/null ${D}/home/${USER_TO_ADD_NAME}/.profile +} + # Prior to useradd being performed on the sysroot a couple things must happen: # 1. Need the systemd recipe to create the systemd-journal group # 2. Need busybox shell present do_prepare_recipe_sysroot[depends] += "systemd:do_populate_sysroot busybox:do_populate_sysroot" + +FILES:${PN}:append = " /home/${USER_TO_ADD_NAME}/.profile" diff --git a/meta-virtualization-extra/classes/set-xdg-env.bbclass b/meta-virtualization-extra/classes/set-xdg-env.bbclass index 4835e93..667f89a 100644 --- a/meta-virtualization-extra/classes/set-xdg-env.bbclass +++ b/meta-virtualization-extra/classes/set-xdg-env.bbclass @@ -1,14 +1,11 @@ do_install:append() { - # Note: Use of .profile here assumes busybox shell. + # Assumes that .profile is already installed. # Podman uses these (if defined) for overriding # default configuration file locations. This is # explained here: # https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md#user-configuration-files - install -D -m 0644 /dev/null ${D}/home/${USER_TO_ADD_NAME}/.profile - cat > ${D}/home/${USER_TO_ADD_NAME}/.profile << 'EOF' + cat >> ${D}/home/${USER_TO_ADD_NAME}/.profile << 'EOF' export XDG_RUNTIME_DIR=/run/user/$(id -u) export XDG_CONFIG_HOME=$HOME/.config EOF } - -FILES:${PN}:append = " /home/${USER_TO_ADD_NAME}/.profile" -- cgit v1.2.3