diff options
| -rw-r--r-- | meta/classes/rootfs-postcommands.bbclass | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass index 95d28afa30..db8b551533 100644 --- a/meta/classes/rootfs-postcommands.bbclass +++ b/meta/classes/rootfs-postcommands.bbclass | |||
| @@ -21,7 +21,7 @@ ROOTFS_POSTUNINSTALL_COMMAND =+ "write_image_manifest ; " | |||
| 21 | POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log" | 21 | POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log" |
| 22 | # Set default target for systemd images | 22 | # Set default target for systemd images |
| 23 | SYSTEMD_DEFAULT_TARGET ?= '${@bb.utils.contains("IMAGE_FEATURES", "x11-base", "graphical.target", "multi-user.target", d)}' | 23 | SYSTEMD_DEFAULT_TARGET ?= '${@bb.utils.contains("IMAGE_FEATURES", "x11-base", "graphical.target", "multi-user.target", d)}' |
| 24 | ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd", "set_systemd_default_target; ", "", d)}' | 24 | ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd", "set_systemd_default_target; systemd_create_users;", "", d)}' |
| 25 | 25 | ||
| 26 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' | 26 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' |
| 27 | 27 | ||
| @@ -30,7 +30,25 @@ ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' | |||
| 30 | SSH_DISABLE_DNS_LOOKUP ?= " ssh_disable_dns_lookup ; " | 30 | SSH_DISABLE_DNS_LOOKUP ?= " ssh_disable_dns_lookup ; " |
| 31 | ROOTFS_POSTPROCESS_COMMAND_append_qemuall = "${SSH_DISABLE_DNS_LOOKUP}" | 31 | ROOTFS_POSTPROCESS_COMMAND_append_qemuall = "${SSH_DISABLE_DNS_LOOKUP}" |
| 32 | 32 | ||
| 33 | 33 | systemd_create_users () { | |
| 34 | for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd.conf ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd-remote.conf; do | ||
| 35 | [ -e $conffile ] || continue | ||
| 36 | grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do | ||
| 37 | if [ "$type" = "u" ]; then | ||
| 38 | useradd_params="--shell /sbin/nologin" | ||
| 39 | [ "$id" != "-" ] && useradd_params="$useradd_params --uid $id" | ||
| 40 | [ "$comment" != "-" ] && useradd_params="$useradd_params --comment $comment" | ||
| 41 | useradd_params="$useradd_params --system $name" | ||
| 42 | eval useradd --root ${IMAGE_ROOTFS} $useradd_params || true | ||
| 43 | elif [ "$type" = "g" ]; then | ||
| 44 | groupadd_params="" | ||
| 45 | [ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id" | ||
| 46 | groupadd_params="$groupadd_params --system $name" | ||
| 47 | eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true | ||
| 48 | fi | ||
| 49 | done | ||
| 50 | done | ||
| 51 | } | ||
| 34 | 52 | ||
| 35 | # | 53 | # |
| 36 | # A hook function to support read-only-rootfs IMAGE_FEATURES | 54 | # A hook function to support read-only-rootfs IMAGE_FEATURES |
| @@ -73,27 +91,6 @@ read_only_rootfs_hook () { | |||
| 73 | ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh | 91 | ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh |
| 74 | fi | 92 | fi |
| 75 | fi | 93 | fi |
| 76 | |||
| 77 | if ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "true", "false", d)}; then | ||
| 78 | # Update user database files so that services don't fail for a read-only systemd system | ||
| 79 | for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd.conf ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd-remote.conf; do | ||
| 80 | [ -e $conffile ] || continue | ||
| 81 | grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do | ||
| 82 | if [ "$type" = "u" ]; then | ||
| 83 | useradd_params="" | ||
| 84 | [ "$id" != "-" ] && useradd_params="$useradd_params --uid $id" | ||
| 85 | [ "$comment" != "-" ] && useradd_params="$useradd_params --comment $comment" | ||
| 86 | useradd_params="$useradd_params --system $name" | ||
| 87 | eval useradd --root ${IMAGE_ROOTFS} $useradd_params || true | ||
| 88 | elif [ "$type" = "g" ]; then | ||
| 89 | groupadd_params="" | ||
| 90 | [ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id" | ||
| 91 | groupadd_params="$groupadd_params --system $name" | ||
| 92 | eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true | ||
| 93 | fi | ||
| 94 | done | ||
| 95 | done | ||
| 96 | fi | ||
| 97 | } | 94 | } |
| 98 | 95 | ||
| 99 | # | 96 | # |
