From patchwork Tue May 26 12:44:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88743 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D702CD5BD0 for ; Tue, 26 May 2026 12:44:44 +0000 (UTC) Received: from OSPPR02CU001.outbound.protection.outlook.com (OSPPR02CU001.outbound.protection.outlook.com [40.107.159.12]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.35909.1779799477283460427 for ; Tue, 26 May 2026 05:44:37 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=GwVcwjKX; spf=pass (domain: axis.com, ip: 40.107.159.12, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kXMGIP33Rib1fo4/zq2P7j9+hVy21ciutSEwi9pa9js6vqYxL7UvZbPlq9U/BuQ0FLpytzHp357d9DhRCAC8pY4ppUfZVVcG9B6e+T2VRo23k/vDIF7XtOCzgpanZ5FOT44BL6Y/y+o+59zTzcYG5i5MQ2qNssuroD+Fj+Oblp0Hwc4bXeVo8VPmpUc1C2AeSXvE3sMJMYTNMvigai5mB0zTd8OQpLI9PyFRh3chZ0gYTF6jpovxbymDLCFrGKcnbe1RwiQOAcTZUxajqTftrN4kzZMor6Ejf5UfqbxVj8wx5X6qdjEstv3uSvYbFMKWCdjoU+MOdjN126X/SOks0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AIswL4eh2H84cX+mUxqAZXVw9LrQQ+TzWdl1jm7DwVI=; b=f7H9FV7cl/9nvOQfzZPHEIf/8wsaghmP8Oc8MO10trftTX2g3LU504z/uswnYsx+l8RgcWsfigR+kJ24YSxRCCft02B4A757dJdnz1nb10EuqgSHCR1SWHHGCIH5eOISDHBnUA3acc7KHiP2lx3f057xLozsyIcvYnJOyzbDz7ijRmwZXpC9oZETcDa6qPvdG4UTNdhRlE5orgb5nGF/maL2KNOBjCk5kqeGXd45VKAW0zbuUyovZ3IkddbVHCvn59hqQkEmTzA7CaKtrAX/79sA4BZZqutp1I9f3Z30Oa6eRHyJPWEi6/BMy2lJxuZSTb5AHGOTtWjM4NvbGseQew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AIswL4eh2H84cX+mUxqAZXVw9LrQQ+TzWdl1jm7DwVI=; b=GwVcwjKXC1Eli7HKBrpKdsv90rRl3nbSS6LJ2jAG5/mTGRzcjywwAz6TcgMRklye2jivwL4oVklhpmT9dB5NIDwJb1R8mFPHkJcc2mVm+88RtqPpwgDMnr5Phzw1+0nmJdig/vZqlZhAX0nbM4iPEbiZE9W5acALl8kKUwSFO1o= Received: from DUZPR01CA0136.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bc::24) by DU2PR02MB10205.eurprd02.prod.outlook.com (2603:10a6:10:49e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 12:44:30 +0000 Received: from DB1PEPF000509FD.eurprd03.prod.outlook.com (2603:10a6:10:4bc:cafe::56) by DUZPR01CA0136.outlook.office365.com (2603:10a6:10:4bc::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Tue, 26 May 2026 12:44:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509FD.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:29 +0000 Received: from se-mail11w.axis.com (10.20.40.11) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.39; Tue, 26 May 2026 14:44:28 +0200 Received: from se-intmail01x.se.axis.com (10.4.0.28) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:28 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail01x.se.axis.com (Postfix) with ESMTP id 073E53541 for ; Tue, 26 May 2026 14:44:29 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 01C99122A1F; Tue, 26 May 2026 14:44:28 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 1/6] useradd.bbclass: Some clean-ups and simplifications Date: Tue, 26 May 2026 14:44:15 +0200 Message-ID: <20260526124420.2564500-1-pkj@axis.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509FD:EE_|DU2PR02MB10205:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ef6d41c-befc-46f2-173a-08debb24873c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|6133799003|11063799006|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: yI8aOgBzalKn1T9Nq/PJI9XEC+bQZQOgM4bk500pSV4vQ9Q89YcSEVcNddFinH4NaZBSKBzNz/4YOCQjXi22/4L0VcRdiSY6DptD7zah320FVrxUuTXst4hN6KZX/2EiuGpSXIH1Vz9pD5qPtQrHUPiOTLs5DoUSgxKVlLyX+MMCMbvOAcrGaa3wgGdZK9p5D6FPpv9yCHlYazwXdNbUeJDxuOVWJLNqIirYH8wBrs002xgGTWtgB+D3f1/Z8SFK4suxTKIgvkJimNy9y493CPi0QNNkqZnHqpWfZpNu53oe6QvHrpckV/Slkh6rDEh4Jsgw/IQu6aqppYjHo5XJSpw5RTkVZXbUROTCskMY/uLaUlSCTWc+roMVajI6MVlRkiAWFa8nN4z+2B5HGJXjXBLxvebBmR9g2aHnfsnLdUfVKNNIoriOOyL/eYKUtzfXJjwHfvOqitLtB+XxVwPXI7oLxFS7/NATyuxuzhHH5gbxaGS1FR2ay2ch3+dUCMZfB6BN4cdciowORtkxzb+/MESkxJ80L1u3zKqfqlm4jvOlPBphKA37+VkwaD+XvtW4e19xjriz2tX1ZWZOGUMwSe7QtHTY6rfukjCi5ezuW2I3my9SryzocIe+OFOMDJhrWhHnmdnPlv3xPK0OfvPkSSaTkR8tsDsoFHg9IAEDW0JS0KPkPky4zwBde+z6wSBGndidplaTBOcjTVGAdvVG+Sh00cty9CTXVVQdX7CppmA= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(6133799003)(11063799006)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xJZN14UzyxgpDLPVQTrrdSXjx2F+7jsRVUB8c5TYtj9y/4EsHzm+h2JmVf5CcR+G1OHxSMuYyMIayZPWY/Jy8TF9c0W8gmnJ1NKnNKQHv84Dtshh8qtrtzw/vcgX15HsCMI04EykfghnNXdwSh5b7HNMLpBdi1TZvMGlR41qCWNNpLBGsHlAYksNIuSZZeonP0lICFuOUmJASOiCcYZElVgy5yPlOtULrmtptEt1RKivcPMc1Mj9KGrVBOuR6rGASBg6Roj+ZQKIEI58SGuj4vcbyAR+tA7UPR4GfscPUZzhsXbeREl4xzt8O6hBWK7028l+AZBtadf38h/QgIh1BIvArMG7As5xNVaa7d9lrVKlGVj7YXmvVclheEXo2wI+GYuOiPxU03NpG+6cGlWjVdkjIsNXLpAzFHFyB62I2LZxGn18YOjGZJIYr3ShxT+6 X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:29.4781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ef6d41c-befc-46f2-173a-08debb24873c X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FD.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR02MB10205 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237605 * Improve some odd function names, e.g., groupmemsadd_sysroot and user_group_groupmems_add_sysroot. These were introduced in commit 322ef726132a47d977d2c6ee41de5358f1e85994 (useradd.bbclass: Fix order of postinst-useradd-*). * Make common_useradd_sysroot() look for the actually used command instead of always looking for useradd. * Simplification of common_useradd_sysroot() by using case/esac. * A bit of whitespace clean-up. Signed-off-by: Peter Kjellerstedt --- PATCHv2: No changes. meta/classes/useradd.bbclass | 60 +++++++++++++++++------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index d7ed6cb931..1080008b3f 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -19,7 +19,7 @@ PACKAGE_WRITE_DEPS += "shadow-native" # c) As the preinst script in the target package at do_rootfs time # d) As the preinst script in the target package on device as a package upgrade # -useradd_preinst () { +useradd_preinst() { OPT="" SYSROOT="" @@ -34,7 +34,7 @@ if test "x$D" != "x"; then # shadow package, then while performing preinsts for packages that depend on # shadow, there might only be /etc/login.def.dpkg-new there in root filesystem. if [ ! -e $D${sysconfdir}/login.defs -a -e $D${sysconfdir}/login.defs.dpkg-new ]; then - cp $D${sysconfdir}/login.defs.dpkg-new $D${sysconfdir}/login.defs + cp $D${sysconfdir}/login.defs.dpkg-new $D${sysconfdir}/login.defs fi # user/group lookups should match useradd/groupadd --prefix @@ -102,19 +102,19 @@ if test "x`echo $GROUPMEMS_PARAM | tr -d '[:space:]'`" != "x"; then fi } -useradd_sysroot () { - user_group_groupmems_add_sysroot user +groupadd_sysroot() { + common_useradd_sysroot groupadd } -groupadd_sysroot () { - user_group_groupmems_add_sysroot group +useradd_sysroot() { + common_useradd_sysroot useradd } -groupmemsadd_sysroot () { - user_group_groupmems_add_sysroot groupmems +groupmems_sysroot() { + common_useradd_sysroot groupmems } -user_group_groupmems_add_sysroot () { +common_useradd_sysroot() { # Pseudo may (do_prepare_recipe_sysroot) or may not (do_populate_sysroot_setscene) be running # at this point so we're explicit about the environment so pseudo can load if # not already present. @@ -130,28 +130,24 @@ user_group_groupmems_add_sysroot () { # Beware that in some cases we might see the fake pseudo passwd here, in which case we also must # exit. if [ ! -f $D${sysconfdir}/passwd ] || - grep -q this-is-the-pseudo-passwd $D${sysconfdir}/passwd; then + grep -q this-is-the-pseudo-passwd $D${sysconfdir}/passwd; then exit 0 fi # It is also possible we may be in a recipe which doesn't have useradd dependencies and hence the # useradd/groupadd tools are unavailable. If there is no dependency, we assume we don't want to # create users in the sysroot - if ! command -v useradd; then - bbwarn "command useradd not found!" + if ! command -v "$1"; then + bbwarn "The $1 command could not be found!" exit 0 fi # Add groups and users defined for all recipe packages - if test "$1" = "group"; then - GROUPADD_PARAM="${@get_all_cmd_params(d, 'groupadd')}" - elif test "$1" = "user"; then - USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}" - elif test "$1" = "groupmems"; then - GROUPMEMS_PARAM="${@get_all_cmd_params(d, 'groupmems')}" - elif test "x$1" = "x"; then - bbwarn "missing type of passwd db action" - fi + case "$1" in + groupadd) GROUPADD_PARAM="${@get_all_cmd_params(d, 'groupadd')}";; + useradd) USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}";; + groupmems) GROUPMEMS_PARAM="${@get_all_cmd_params(d, 'groupmems')}";; + esac # Tell the system to use the environment vars UA_SYSROOT=1 @@ -159,36 +155,36 @@ user_group_groupmems_add_sysroot () { useradd_preinst } -# The export of PSEUDO in useradd_sysroot() above contains references to +# The export of PSEUDO in common_useradd_sysroot() above contains references to # ${PSEUDO_SYSROOT} and ${PSEUDO_LOCALSTATEDIR}. Additionally, the logging # shell functions use ${LOGFIFO}. These need to be handled when restoring # postinst-useradd-${PN} from the sstate cache. EXTRA_STAGING_FIXMES += "PSEUDO_SYSROOT PSEUDO_LOCALSTATEDIR LOGFIFO" -python useradd_sysroot_sstate () { - for type, sort_prefix in [("group", "01"), ("user", "02"), ("groupmems", "03")]: +python useradd_sysroot_sstate() { + for cmd, sort_prefix in [("groupadd", "01"), ("useradd", "02"), ("groupmems", "03")]: scriptfile = None task = d.getVar("BB_CURRENTTASK") if task == "package_setscene": - bb.build.exec_func(type + "add_sysroot", d) + bb.build.exec_func(f"{cmd}_sysroot", d) elif task == "prepare_recipe_sysroot": # Used to update this recipe's own sysroot so the user/groups are available to do_install # If do_populate_sysroot is triggered and we write the file here, there would be an overlapping - # files. See usergrouptests.UserGroupTests.test_add_task_between_p_sysroot_and_package - scriptfile = d.expand("${RECIPE_SYSROOT}${bindir}/postinst-useradd-" + sort_prefix + type + "-${PN}-recipedebug") + # file. See usergrouptests.UserGroupTests.test_add_task_between_p_sysroot_and_package + scriptfile = d.expand("${RECIPE_SYSROOT}${bindir}/postinst-useradd-" + sort_prefix + cmd + "-${PN}-recipedebug") - bb.build.exec_func(type + "add_sysroot", d) + bb.build.exec_func(f"{cmd}_sysroot", d) elif task == "populate_sysroot": # Used when installed in dependent task sysroots - scriptfile = d.expand("${SYSROOT_DESTDIR}${bindir}/postinst-useradd-" + sort_prefix + type + "-${PN}") + scriptfile = d.expand("${SYSROOT_DESTDIR}${bindir}/postinst-useradd-" + sort_prefix + cmd + "-${PN}") if scriptfile: bb.utils.mkdirhier(os.path.dirname(scriptfile)) with open(scriptfile, 'w') as script: script.write("#!/bin/sh -e\n") - bb.data.emit_func(type + "add_sysroot", script, d) - script.write(type + "add_sysroot\n") + bb.data.emit_func(f"{cmd}_sysroot", script, d) + script.write(f"{cmd}_sysroot\n") os.chmod(scriptfile, 0o755) } @@ -247,7 +243,7 @@ def get_all_cmd_params(d, cmd_type): return "; ".join(params) # Adds the preinst script into generated packages -fakeroot python populate_packages:prepend () { +fakeroot python populate_packages:prepend() { def update_useradd_package(pkg): bb.debug(1, 'adding user/group calls to preinst for %s' % pkg) From patchwork Tue May 26 12:44:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88742 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B046CD6E40 for ; Tue, 26 May 2026 12:44:44 +0000 (UTC) Received: from DU2PR03CU002.outbound.protection.outlook.com (DU2PR03CU002.outbound.protection.outlook.com [52.101.65.64]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.35908.1779799476904982328 for ; Tue, 26 May 2026 05:44:37 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=j7sHtf/C; spf=pass (domain: axis.com, ip: 52.101.65.64, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VyphrPRH4bfEWdcFVd8RFpeq9oYrePf8kmPnYZMXnhCu046VT63c7+lTns1MLOyOyZvvdtFyU4FDwqRdLCREQXYG/giqodYT76ii4kBX6VokVKu3Zk76yV4XOyIAoh+k1ZWOCNTCBDjWxu+D2NO3cFJzON6iPBzvEdskfpkyI09HohqSFb9gl0A9EWB3UwgVkrjE91J+lOfiU4oc8Oe+W0znh7BUNh1DkTEs7pm8hZ6rC4rbSLrbbDOE/yMR3sdy/dpUhnKt19gA0OU7uGUbAk4nXly4qee1M4dLavcNMQinazPxpIeOGVn5I4H0Q61lTP7afeZ5k3T3CVvq1BuItw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EJBxV0Qooej0x2jGuFdo5moDx5h9QYwqki0X3f7S0fs=; b=jDOlsp22QZF79fZQLIQkdJHlhg/jGK7LI7V7lAybFUpuztriI7j+5iUah+KuMlVzpNel6DxlsTXp10iJZVLFCAuqoIAOibVtL2LZk15RY0eZEwAHJu9zh6JHL3pwQJ8TbxTMNifXbwB6YboWEflJry6A7dMiWtuAQjOqNGxaPmGAKy3F8X/X17oFxALOnsXmoPDqC4JUQqAmHUVlcxBg21cFaw234bAUF9eRzCxlmSxjKoBLRjGHKLf13ENM4wjdYnVwRO3vux/iKIrPkY+v56TQGHK1pdATIoq2K3TwiSPin05juKEVCZpMAmRcpGY/XxOlo/JfcpErmeIHXexmeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EJBxV0Qooej0x2jGuFdo5moDx5h9QYwqki0X3f7S0fs=; b=j7sHtf/CoZ2GR2CoQfLtmJnZ7dKvnjJm7V/10gzB6o3rnqChMUXlJfraJEOxYyxdSIUQ5smrV8HH+0oV/EJEJlV6rI+oncpGbt62/ysotrFZpauim6coB9fbKqSSFppDFXdS0nFh7IuJplZq2Lc/9csFqUBsypx5HGN3/fW1AT8= Received: from DUZPR01CA0131.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bc::16) by AS8PR02MB9236.eurprd02.prod.outlook.com (2603:10a6:20b:5c0::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 12:44:31 +0000 Received: from DB1PEPF000509FD.eurprd03.prod.outlook.com (2603:10a6:10:4bc:cafe::2e) by DUZPR01CA0131.outlook.office365.com (2603:10a6:10:4bc::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509FD.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 Received: from SE-MAILARCH01W.axis.com (10.20.40.15) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.39; Tue, 26 May 2026 14:44:30 +0200 Received: from se-mail11w.axis.com (10.20.40.11) by SE-MAILARCH01W.axis.com (10.20.40.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Tue, 26 May 2026 14:44:30 +0200 Received: from se-intmail01x.se.axis.com (10.4.0.28) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:30 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail01x.se.axis.com (Postfix) with ESMTP id 8F4E93541 for ; Tue, 26 May 2026 14:44:30 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 8C6D9122A1F; Tue, 26 May 2026 14:44:30 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 2/6] useradd.bbclass: Add support for USERMOD_PARAM Date: Tue, 26 May 2026 14:44:16 +0200 Message-ID: <20260526124420.2564500-2-pkj@axis.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260526124420.2564500-1-pkj@axis.com> References: <20260526124420.2564500-1-pkj@axis.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509FD:EE_|AS8PR02MB9236:EE_ X-MS-Office365-Filtering-Correlation-Id: ff87c851-48f4-4289-a4bd-08debb24887b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|3023799007|5023799004|11063799006|56012099003|18002099003|22082099003|6133799003|20046099003; X-Microsoft-Antispam-Message-Info: RiCF3oI/MsjiiPPppAlnt1XIteuNYQkOUp49HE/oeve5gUy4Na4PzkHZzBTAg2yFHJewyuH8NYgAFA5J/nKUHB06ST3Ka6/ri9qZOcFrHCmV0WW3iTy/Tiwd9hQp4iveZYzmyA++Y08Q+svfGZDUkDEp6FbmhR+shVgqZIF1ZkCI/nfGLn8J/Dxvc05BlsGwNyI7vc+VEMGhRalDTbcI2GkxUS7htpM/vPsqsN/Jo/HSlV3jzts+k3Xom5FzjkQSrDV+9kkjuZza3Cig7SIV5rb1U57auMOM92JXkyYoXUSdWpUUmPDDO7/1u7ICZGz0lqv5nBR3Z83hZJhEkUlIkZmVtOYwsOY2SvlYWXf2vnWtmcE7D7bYp9zzN9r3gav7s0WSXgnIkBvpF79PlCcuI2ofHDdi5/R9UWmJjc3aC/UfS41j/1e+IZT6zb9Jmo568XBjO5vksiWSEq9z+ZRmftBLcWbB8HFhm/oMHAog3MvXf7fOGq7Qt15BOyO9DFVG2VeqH2pv1kv+zzK3ghIbfn6Yxt29aSxiYOq0KBaV+kkuax5E2jDzvnZdVRMaWz+DrJPZtAssYE4VTbjjWhWa5fBFZX0o05XTf5s6xnD/ftokFSmOVsAmcNt2mWY3wpJ55KqKgTiTd2Ik5izgDnlZwwU9pdBSecV/lGHe8UL+MPE+jFk78YSTBqqE+gi8f4Vzevt1SYD/OT/nlyz7YCPuTIT481JGRfR8juMQakZHcDc= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(3023799007)(5023799004)(11063799006)(56012099003)(18002099003)(22082099003)(6133799003)(20046099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: f8yeFfnX8ZN5NZdzHenHdUk92svj9qGrDp7xOthNVpw6wbEjcHMNbOo8gIXsxbyTfq+KYtKQ7HAgCwU+SXid75JPB9tXOHfGP7zEddUDrMgI0sW/ov/y0LN2E2n+Zvkg2kjgQnALgadFdEZC4HZAk5JJogkCpJ8gGtVUnG6Txf7pun81vAcN/mB2XGFzOEm8IpGe45aSnVwdPCM/8V5T8hw5DpdEZIUIB2QU4rnj3fn52yB2qXfAHo6QnSgZOqvHDaprNTymUXJuliWi7t9yjnkjeIZYlWL0KG0eK/AuJvg01py9xoCg2CzVPA6DsgG3ix2h4+/qISm2vjVT0UvA+FnfC+CaoCOnKN/bj6Dnh5XOIPUvaSgLHg2HwMfaxyq8BKbht/vCZiakUQyLZXVfZ6B2zA9WDFGUXfO9wt3isG0BKA5sbmDTjMFuoNcd8HEX X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:31.5724 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff87c851-48f4-4289-a4bd-08debb24887b X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FD.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR02MB9236 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237604 The groupmems command will be removed in shadow 4.20. The same functionality as provided by groupmems can be achieved with the usermod command. Add support for USERMOD_PARAM variables to specify the options to use. The following GROUPMEMS_PARAM: GROUPMEMS_PARAM:${PN} = "--add user --group group1; \ --add user --group group2" would be directly converted to the following USERMOD_PARAM: USERMOD_PARAM:${PN} = "--append --groups group1 user; \ --append --groups group2 user" It can also be simplified to: USERMOD_PARAM:${PN} = "--append --groups group1,group2 user" [YOCTO#16277] Co-authored-by: Ross Burton Signed-off-by: Peter Kjellerstedt --- PATCHv2: No changes. meta/classes/useradd.bbclass | 39 ++++++++++++++++++++++++++++-------- meta/conf/documentation.conf | 1 + 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 1080008b3f..55393d38f7 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -48,6 +48,7 @@ if test "x$UA_SYSROOT" = "x"; then # Add groups and users defined only for this package GROUPADD_PARAM="${GROUPADD_PARAM}" USERADD_PARAM="${USERADD_PARAM}" + USERMOD_PARAM="${USERMOD_PARAM}" GROUPMEMS_PARAM="${GROUPMEMS_PARAM}" fi @@ -85,6 +86,22 @@ if test "x`echo $USERADD_PARAM | tr -d '[:space:]'`" != "x"; then done fi +if test "x`echo $USERMOD_PARAM | tr -d '[:space:]'`" != "x"; then + echo "Running usermod commands..." + # Invoke multiple instances of usermod for parameter lists + # separated by ';' + opts=`echo "$USERMOD_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'` + remaining=`echo "$USERMOD_PARAM" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'` + while test "x$opts" != "x"; do + perform_usermod "$SYSROOT" "$OPT $opts" + if test "x$opts" = "x$remaining"; then + break + fi + opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'` + remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'` + done +fi + if test "x`echo $GROUPMEMS_PARAM | tr -d '[:space:]'`" != "x"; then echo "Running groupmems commands..." # Invoke multiple instances of groupmems for parameter lists @@ -103,13 +120,17 @@ fi } groupadd_sysroot() { - common_useradd_sysroot groupadd + common_useradd_sysroot groupadd } useradd_sysroot() { common_useradd_sysroot useradd } +usermod_sysroot() { + common_useradd_sysroot usermod +} + groupmems_sysroot() { common_useradd_sysroot groupmems } @@ -146,6 +167,7 @@ common_useradd_sysroot() { case "$1" in groupadd) GROUPADD_PARAM="${@get_all_cmd_params(d, 'groupadd')}";; useradd) USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}";; + usermod) USERMOD_PARAM="${@get_all_cmd_params(d, 'usermod')}";; groupmems) GROUPMEMS_PARAM="${@get_all_cmd_params(d, 'groupmems')}";; esac @@ -162,7 +184,7 @@ common_useradd_sysroot() { EXTRA_STAGING_FIXMES += "PSEUDO_SYSROOT PSEUDO_LOCALSTATEDIR LOGFIFO" python useradd_sysroot_sstate() { - for cmd, sort_prefix in [("groupadd", "01"), ("useradd", "02"), ("groupmems", "03")]: + for cmd, sort_prefix in [("groupadd", "01"), ("useradd", "02"), ("usermod", "03"), ("groupmems", "04")]: scriptfile = None task = d.getVar("BB_CURRENTTASK") if task == "package_setscene": @@ -216,9 +238,9 @@ def update_useradd_after_parse(d): bb.fatal("%s inherits useradd but doesn't set USERADD_PACKAGES" % d.getVar('FILE', False)) for pkg in useradd_packages.split(): - d.appendVarFlag("do_populate_sysroot", "vardeps", " USERADD_PARAM:%s GROUPADD_PARAM:%s GROUPMEMS_PARAM:%s" % (pkg, pkg, pkg)) - if not d.getVar('USERADD_PARAM:%s' % pkg) and not d.getVar('GROUPADD_PARAM:%s' % pkg) and not d.getVar('GROUPMEMS_PARAM:%s' % pkg): - bb.fatal("%s inherits useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM or GROUPMEMS_PARAM for package %s" % (d.getVar('FILE', False), pkg)) + d.appendVarFlag("do_populate_sysroot", "vardeps", f" USERADD_PARAM:{pkg} GROUPADD_PARAM:{pkg} USERMOD_PARAM:{pkg} GROUPMEMS_PARAM:{pkg}") + if not any(d.getVar(f"{name}_PARAM:{pkg}") for name in ["USERADD", "GROUPADD", "USERMOD", "GROUPMEMS"]): + bb.fatal("%s inherits useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM, USERMOD_PARAM or GROUPMEMS_PARAM for package %s" % (d.getVar('FILE', False), pkg)) python __anonymous() { if not bb.data.inherits_class('nativesdk', d) \ @@ -226,8 +248,8 @@ python __anonymous() { update_useradd_after_parse(d) } -# Return a single [GROUP|USER]ADD_PARAM formatted string which includes the -# [group|user]add parameters for all USERADD_PACKAGES in this recipe +# Return a single (GROUPADD|USERADD|USERMOD)_PARAM formatted string which includes the +# (groupadd|useradd|usermod) parameters for all USERADD_PACKAGES in this recipe def get_all_cmd_params(d, cmd_type): import string @@ -260,10 +282,11 @@ fakeroot python populate_packages:prepend() { preinst += 'bbfatal () {\n\techo "ERROR: $*"\n\texit 1\n}\n' preinst += 'perform_groupadd () {\n%s}\n' % d.getVar('perform_groupadd') preinst += 'perform_useradd () {\n%s}\n' % d.getVar('perform_useradd') + preinst += 'perform_usermod () {\n%s}\n' % d.getVar('perform_usermod') preinst += 'perform_groupmems () {\n%s}\n' % d.getVar('perform_groupmems') preinst += d.getVar('useradd_preinst') # Expand out the *_PARAM variables to the package specific versions - for rep in ["GROUPADD_PARAM", "USERADD_PARAM", "GROUPMEMS_PARAM"]: + for rep in ["GROUPADD_PARAM", "USERADD_PARAM", "USERMOD_PARAM", "GROUPMEMS_PARAM"]: val = d.getVar(rep + ":" + pkg) or "" preinst = preinst.replace("${" + rep + "}", val) d.setVar('pkg_preinst:%s' % pkg, preinst) diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf index 94368d5c2b..41e67d3365 100644 --- a/meta/conf/documentation.conf +++ b/meta/conf/documentation.conf @@ -451,6 +451,7 @@ USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed." USERADD_UID_TABLES[doc] = "Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the system during package installation." USERADDEXTENSION[doc] = "When set to 'useradd-staticids', causes the OpenEmbedded build system to base all user and group additions on files listed in USERADD_UID_TABLES and USERADD_GID_TABLES." +USERMOD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the usermod command if you wish to modify a user when the package is installed. Typically used to add the user to one or more groups." #W From patchwork Tue May 26 12:44:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88741 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B4EBCD6E42 for ; Tue, 26 May 2026 12:44:45 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.40]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.36129.1779799475083263745 for ; Tue, 26 May 2026 05:44:36 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=XrFiaWov; spf=pass (domain: axis.com, ip: 40.107.162.40, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dT7kFtKMMdpKaJp3nbQ3HUgWBO+kO6b+zv22cbcyNEaZ664FFGovI2PnAPKuxBmzTTyszK8V/VmJrsQNOGJ1pMWjUsblHhNflOWfh1PvQlKS5Asbhi9bRvwigeKKbejLvJcvtoaZUAlo6g81CMVR1yfv1oYiuS0TBz5QFQ9bNKBS7nHcTAHNjOhfQ15W9mGoN84/p78s3OeZIr1CIyCZfmh2is7UcYWKdkqPNQY0T9bYQcFRyMNjPYrXCKeE4YBux3tPfqd84K2uYeS0n3AgUFNd4IC+9OVw6ViZtGRQn+h1SF7A+ANGhfp3kK4hyH7cSvuq27hN+nsdV4s7vTrGoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lw5q1CGh1JC5puG2Q27JoDM5Xizzun/S4Rugj0AgLZU=; b=Bx1O0KK/j+GcJoUXFLxPziF50Wgsp4f/Xi+7OG6R/6JrPvWTPPmAsIKaC0iIaS0AN4ywF4x9js1RpBb9dDae5RuHUHKPKEQX7CPSLVCuLk/3/4CxbjJtKmanHqKgnCt87tjxZTrSa0tZPCfJ09MCshLLJ6xPu78mdFe67X7JPhYsed7+R6Jcn/XUHkk7ggVCHQO8nAIzl8rWP6850W0VwbYkIlNZ4VhEsfkn+kt+/j/i3uvNPAUHpKxa2ges8NGoYTK4T++gUxXYWX2IvLFz/6miAKkumsGEc3VxVAGnwhAOfU7SphzDd1edE1e+fKFX3Mom+/y6GgpMPEv7b8ue1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lw5q1CGh1JC5puG2Q27JoDM5Xizzun/S4Rugj0AgLZU=; b=XrFiaWov1GNrQ0QojMPgom0HNd4veK1qbXTrdrK/Nj4cXP9UsgLUGOKdk+NdLvb6IGZfw8DX6U7+ejcZZV7kDUakVDDtzqfBUB38YOuGpv/r6tIMYoy/GhFQqlGrJMvpgb5Z4SHsYgp8adA58DI8r0ROx1bgYlvLfIhOv0VMJ6Q= Received: from DUZPR01CA0141.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bd::28) by AM9PR02MB7091.eurprd02.prod.outlook.com (2603:10a6:20b:271::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May 2026 12:44:31 +0000 Received: from DB1PEPF000509F9.eurprd02.prod.outlook.com (2603:10a6:10:4bd:cafe::97) by DUZPR01CA0141.outlook.office365.com (2603:10a6:10:4bd::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509F9.mail.protection.outlook.com (10.167.242.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:30 +0000 Received: from se-mail10w.axis.com (10.20.40.10) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.39; Tue, 26 May 2026 14:44:30 +0200 Received: from se-intmail01x.se.axis.com (10.4.0.28) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:30 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail01x.se.axis.com (Postfix) with ESMTP id 932973784 for ; Tue, 26 May 2026 14:44:30 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 908DF122A1F; Tue, 26 May 2026 14:44:30 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 3/6] package.bbclass: Add USERMOD_PARAM to PACKAGEVARS Date: Tue, 26 May 2026 14:44:17 +0200 Message-ID: <20260526124420.2564500-3-pkj@axis.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260526124420.2564500-1-pkj@axis.com> References: <20260526124420.2564500-1-pkj@axis.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509F9:EE_|AM9PR02MB7091:EE_ X-MS-Office365-Filtering-Correlation-Id: ef8d50d8-af3d-4454-9fe3-08debb248821 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 9xKjTKfBiH73IG9v8WrGChUUzqsakPcMcAjxNmCqsgtw0nn/q1M7zDLy8cqrxB0SnOdZ2HHdiLv4CNic8JcmPJfckdjfFt1vrXzVSKJuBS2r/ZUBAW7GYOiyT0kogJk8UJUs3bEOsciStPJKE7l7klqXdvfk1JZ0uP690RfmrKdhouoLnu76Y1WriyZwinal6/fqiIlML64ALpwXAvepYkk95E4Jg/c+40IPfLig/r0rBRkoYklTtpp5p9WqLrvRUMud61fEhtUqZAMAA98J1yrYbDGMyabvy37BnDClHLyyavFUf7lnULOi1/3JgzSYsYZDN5ZyhMq5VJtMk+PuwYgQfd7sMBTg40mnDd3MKydt3uZ/9Dw/FCtiegxpIfZmbmreqbhKTti7bjxDUhARF73IjdpYsdmeBEXE/MWY2CjU6+92PnQO9dNdktzb2HyGRCu5sLGnBf0rab0EpoOaYQpSMHKf56sLt6deqnaD/p+NnGmnnQyMfGiKwQmFRolIzV1YuzM3n/POgTeZyxY3hw6Puix/RqBzApjJvqFKbzBtpvDIuUghu+mZy0P4T1z5Oy45N0wtOKdBNj8t9efUyWOzlCXQkqT9reNzT02ijjv0wcSQAJ4yIayiIf/NZGpV08Qpw4EQd8hmt3Nw3tef5If2mhk585/9ca8RfvRss1QbA2PpSk42oV/cInAth5KWUZ9V0zRTg+A4kIC6LNfXzMoxOsQiQvfgxsqfuTs3cxY= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(56012099003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /FUonujObMiUm2N/IUlxpFMSWOBdE5HPGeZnxy6Jg8z++O2wDXVOhREdPsQa3E4/c6sBVCV8MiDdT1IHaGta8paMmzMbeCf0AQZ7R3ZnP1s1wnQo48+uIIAN5uMI5o8473xsWQprdqsUa2vQuCRRFon6pRPN8ZkKRlINKYx79PASyi8rquMT9UDHZa0j1TqzR+XILUQae61AKtPIf6dtl+xJO0mSJ0jAM/OE1jxIcNGYLyrcibrKnnrqbMW+CgnfKMhmd/9QcE08vqOPPu+XOtkxt/VTzMmBgOZBVD+BO3jbcAb2U217Z7duvx0esJrvjBEx+wJKfO7uu/+cGSkyCCGNGiERwlXywcRNOMImc3z0sji4KJjvjp+FHCSbXWjgecWsOdISnQMXCSeB0/fgTE/3ta4Cd23HAyf8ETPIGM+jGUCqsB3mpCMV9EMOViA/ X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:30.9831 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ef8d50d8-af3d-4454-9fe3-08debb248821 X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F9.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR02MB7091 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237602 This complements the USERADD_PARAM and GROUPADD_PARAM variables. [YOCTO#16277] Co-authored-by: Ross Burton Signed-off-by: Peter Kjellerstedt --- PATCHv2: No changes. meta/classes-global/package.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass index 67148fc1ac..30accaeaa9 100644 --- a/meta/classes-global/package.bbclass +++ b/meta/classes-global/package.bbclass @@ -438,7 +438,7 @@ python package_depchains() { # Since bitbake can't determine which variables are accessed during package # iteration, we need to list them here: -PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS PACKAGE_ADD_METADATA" +PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM USERMOD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS PACKAGE_ADD_METADATA" def gen_packagevar(d, pkgvars="PACKAGEVARS"): ret = [] From patchwork Tue May 26 12:44:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88739 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F9E3CD5BB1 for ; Tue, 26 May 2026 12:44:44 +0000 (UTC) Received: from DUZPR83CU001.outbound.protection.outlook.com (DUZPR83CU001.outbound.protection.outlook.com [52.101.66.9]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.36132.1779799478707430945 for ; Tue, 26 May 2026 05:44:39 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=IjxMRsX4; spf=pass (domain: axis.com, ip: 52.101.66.9, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f3EbFsbe0hX3yz+uaLMeEvDvQzj8JOD7XapACHcSBVnqBwwkVpCcYtW2/9hc0kYIlKT+njShifQvdZhBFR0jHqHmIFynDI0CTmJ4hbpI8Zt9fJQEfLHPjaaw2sBq5PsY8V71yFyvbEC8/qaobDF1fe2BOgza9azFuWAdx/EC74y4Vx4uwzAjnOpxhazwqIXBoG+9d4t/IT24PBUuRHLyiXY+7s3JAGfBXLCwslohHoCmBx5lwa1GfGD3pfG5TI8x2fT4Al3X/ub7cgnr0HAjyKCCsceKVKT5d4F3/yn6nIehdgPJ1hRYSrrIHUit5uN+0DIz8yiSZ78rWI4cuMRo5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jD/fmr2zEf/MdlyP9JmtcgvZEwtteQR4ogkhQ12Jfag=; b=UlDDL8HJgcpegiR6yUmBzJeitFs/dyKF8isy7bskaZTpu30Qs5Hm5L2x0bgq/dOwMF9eWhAhk8e5wKxk+Daz9H4+1NnN/1o7uMmqFmyyflxKdiAkyhLs4w6mvAi7ltGmruwUL64SH+g/aLmiQrLPK+Rb6/x6ApCXVBE844IKfLeXiMrV3lQN/LmI1k+OOiQnoCm3Qj10Wc1jM3TwerpQuayWWV6OAx+UKejLdxUJgZE0E1ECzrJP6e1sx0M1kVksHnIc28R08a2kekoLW/B4ZI0n1SZHllsRIHa9YacLXeDKVROdP9goe9Ih+UVaaMaYsewzBQEA9Cn75Tc3VJhe1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jD/fmr2zEf/MdlyP9JmtcgvZEwtteQR4ogkhQ12Jfag=; b=IjxMRsX43vJsLZIjg7SpH1kkepum7eyh/iF9y0yrYkg+HtPM0+dw1BP5J4zS+46ZXVmTWMamFdndICjatrNuRCSCzWFx0wdU6bVzqdVp1iV98cP2S6v9u1VfynJoJ9jV/j3SuaAy0EFj/FT4omvKCTj0r6SGz+ONvpxGSjS8zqc= Received: from DUZPR01CA0134.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bc::9) by AS8PR02MB6630.eurprd02.prod.outlook.com (2603:10a6:20b:238::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May 2026 12:44:31 +0000 Received: from DB1PEPF000509FD.eurprd03.prod.outlook.com (2603:10a6:10:4bc:cafe::7f) by DUZPR01CA0134.outlook.office365.com (2603:10a6:10:4bc::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509FD.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 Received: from se-mail11w.axis.com (10.20.40.11) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.39; Tue, 26 May 2026 14:44:30 +0200 Received: from se-intmail02x.se.axis.com (10.4.0.28) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:30 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail02x.se.axis.com (Postfix) with ESMTP id 9767A855 for ; Tue, 26 May 2026 14:44:30 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 94826122A1F; Tue, 26 May 2026 14:44:30 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 4/6] useradd_base.bbclass: Emulate the groupmems command using usermod Date: Tue, 26 May 2026 14:44:18 +0200 Message-ID: <20260526124420.2564500-4-pkj@axis.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260526124420.2564500-1-pkj@axis.com> References: <20260526124420.2564500-1-pkj@axis.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509FD:EE_|AS8PR02MB6630:EE_ X-MS-Office365-Filtering-Correlation-Id: e636c6c3-16e0-4f28-0cd4-08debb24884d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|18002099003|22082099003|56012099003|11063799006; X-Microsoft-Antispam-Message-Info: 8U1zhdz3bRy8xGlxkLy/npSpp9bY8saQPFj+HQ7H3o2f1w9RaGlen0fhMqMsmFXgs4z/1DPszsqtHhru3xALwsK/VBT74jYOm8iuLAGFZ9KhUbBzBEEyWJ6XuAKppqxNU8zEwQ+1zBKixEWVGZeg17v75Nka6E5LFbZctyo8jgp/KG3A6Rqyq1KZTBmnFMvktCubWTw85zeMVDoJlwFco3CTUu/NaeHjQHye8KA99qX/PLyH3tUupqrfyT2B8NykJRTq3w13SXWOerDvfB1Vih7vIV7UOnln06Pyp8E60qp+PoUGMdCTRs+x4eFGbo6OmoQZ0HgJbttQSRRdEHg7sGfYB+pwfjGZGRI0yxZmlp+3+mZpcQ2vpDOYTzwJH7JpD8To6w/1XIpxdNxkbn+S4Msw9SMG8qQZa9LOV+c7QN89zjxicMy1DW5zhde4jc3sUCbHBji4J7l4tjjn+eMuVLNUxPJtqoc9hp0pcKSACR2FKiuVZ3P15wLMADRYTjbFAe8oRSkZESaVhN0WvnZrOYboJOpKkMUlPKHOMjxX+SIrmEdRIhhZxUvQ5aeb/CJIeend6SJEs28JHK2FuiE0HT8LKbW3ZjcjNZcfBms1rHUtl32B2xM+w+cBay+oWI0c4buYf1nBCrtC/YavJ3+E94C/JVZH80O9cJOu9iqmZWD2ClgtaiUZ2tnt7xZCExaDoUd6FJ4TQ2TyVmNGaxgOO9BzsM2YxITq7w83gwYdcMU= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700016)(18002099003)(22082099003)(56012099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LCodzIJhcCKTYpDDi2AjC2RoqQzl0gkXYTfzlL9t6ty5ibH+QhO/RNuQIOAHv290CMdk60IaGJOqqGACnFzxJ5zZkpAd1v75C6R7j9iLr+91wkRxcWOys201DSOf6sz/XOztf1LCFaLKc4bBGjNlnNE+K3BHZpZB2epva+ZuD1QiUBRFV1k/4WPqMEN+3JDRah6TvlaPzcIbIxohHS0jY2OyV90Z/HM+zNsTK+OBngDurZxmTZYNn8C/dEJXMioa9P5MWlYYA5027fkPNcpe/Vt8zOUrJodTDyJ4Cex3GdL1w++kxuaat/tSZZLg02Q7uDcd8mpPHHgbLovJ3mJ3cNdXzN4DPBeegqwVrNqXXdDbjcGTKkQFuN/q0MZSvVrSOwvWYeiJuCXF6aVr1KlH1iU3x6sdAJR6Xb8cnh35ZhudFlhm+jSfo1EoxAdqsI9Z X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:31.2678 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e636c6c3-16e0-4f28-0cd4-08debb24884d X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FD.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR02MB6630 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237606 The groupmems command does to support the --prefix option, which is being used since commit a7b846ba7d6d63a5e59939d75d9c5fe3e4cbb0e9. However, the groupmems command can easily be emulated using the usermod command. [YOCTO#16277] Signed-off-by: Peter Kjellerstedt --- PATCHv2: Fail if --add and/or --group are not specified. meta/classes/useradd_base.bbclass | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/meta/classes/useradd_base.bbclass b/meta/classes/useradd_base.bbclass index 5e1c699118..5e12880b64 100644 --- a/meta/classes/useradd_base.bbclass +++ b/meta/classes/useradd_base.bbclass @@ -56,13 +56,20 @@ perform_groupmems () { bbnote "${PN}: Performing groupmems with [$opts]" local groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'` local username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'` - bbnote "${PN}: Running groupmems command with group $groupname and user $username" + local prefix=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-P" || $i == "--prefix") print $(i+1) }'` + if test "x$groupname" = "x"; then + bbfatal "${PN}: groupmems: No user specified using --add." + + elif test "x$username" = "x"; then + bbfatal "${PN}: groupmems: No group specified using --group." + fi + bbnote "${PN}: Emulating groupmems command using usermod with group $groupname and user $username" local mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*$" $rootdir/etc/group || true`" if test "x$mem_exists" = "x"; then - eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO groupmems \$opts\" || true + eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO usermod \${prefix:+--prefix \$prefix} --append --groups \$groupname \$username\" || true mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*$" $rootdir/etc/group || true`" if test "x$mem_exists" = "x"; then - bbfatal "${PN}: groupmems command did not succeed." + bbfatal "${PN}: groupmems command (emulated using usermod) did not succeed." fi else bbnote "${PN}: group $groupname already contains $username, not re-adding it" From patchwork Tue May 26 12:44:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88744 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 791E1CD5BD2 for ; Tue, 26 May 2026 12:44:45 +0000 (UTC) Received: from DUZPR83CU001.outbound.protection.outlook.com (DUZPR83CU001.outbound.protection.outlook.com [52.101.66.68]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.36130.1779799475107238767 for ; Tue, 26 May 2026 05:44:36 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=P5Fbe6sO; spf=pass (domain: axis.com, ip: 52.101.66.68, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gYJHKVPQRoLYsQscM9RqZlSe+gF0wphVrk/JzaqUDHWsHDsIiILcAWjKkOTNOlJmQgK/c9p2qFxhXflVvnFvLZj0smF9sudd8CEiHrMdY7ayp7Mi7n5mlvnK3Qv56z2drpS19CHEkJz/xTjitFavFtmkxN8QMWLBRSXoRRv9POMGgvXb/85ZMnUOdxocMZvuI8RjPy+fMcRNhDh7N15/00QDkVfIXNgU9HENe5ZafhRDCYmgUbz68akJv0+2pg19iMUXigdLNj6i0LE2kuoJ/6Nt5AfP4vOcsx7mfPMk0WlxQUTYpIeSrmz/ZIh4Oa++8QYsuqNAHyDEGfB7Afztdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=A2grcnmMGcDftOiCcFBPiXpqPogQ23wJLXIa64GW1tc=; b=Tvtmybesc9w3FgseWomc7Iiqpi/InmX4DzoPqqspUS4oDxxrwOw0VUt6Omx0ff+QEDyc+05DR2apta1U+DSg04Q/ywlC+unO22nvqdnShF+ToHFzrrI11o6H5R/3FlhCKcgLJpceKPHp4LbJhZktse5DMigBXwGEs9QBpKM5PD9nkJz03jSDxQrsP/jJ3LAcSx8SuEJx5EGtKUMpYh8lMgZTkTIBRzfmRI0mHnDvPdReP0g5eWG23z6UJ4b5kCrUTs8rAc370daOvJnO6oPE87VWCOIS3oV4n5hSKRSQxaBlnUIYReyFmyfRuz6GfS79f7NB0+wRn+JcEep0dCanAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A2grcnmMGcDftOiCcFBPiXpqPogQ23wJLXIa64GW1tc=; b=P5Fbe6sOPmjlEiVHXn80Q6SJJi+aQCDdU3FGO+MvPeGAgUj1Vfd1r43i8jq0fwiG7W60f4m3giM7z3ZeoYON4WLuwT1AFEmEuTcU/TjchkXww9diWIOAt/lcfZ+izvDXjcitMO3+eSAm2M3Q+jwq0mfiddH7kHdbsvDaxjqeYUM= Received: from DUZPR01CA0120.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bc::18) by AM9PR02MB6673.eurprd02.prod.outlook.com (2603:10a6:20b:2d0::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 12:44:31 +0000 Received: from DB1PEPF000509FD.eurprd03.prod.outlook.com (2603:10a6:10:4bc:cafe::a6) by DUZPR01CA0120.outlook.office365.com (2603:10a6:10:4bc::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Tue, 26 May 2026 12:44:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509FD.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:30 +0000 Received: from SE-MAILARCH01W.axis.com (10.20.40.15) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.39; Tue, 26 May 2026 14:44:30 +0200 Received: from se-mail11w.axis.com (10.20.40.11) by SE-MAILARCH01W.axis.com (10.20.40.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Tue, 26 May 2026 14:44:30 +0200 Received: from se-intmail01x.se.axis.com (10.4.0.28) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:30 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail01x.se.axis.com (Postfix) with ESMTP id 9BB9637C2 for ; Tue, 26 May 2026 14:44:30 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 98987122A2B; Tue, 26 May 2026 14:44:30 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 5/6] useradd.bbclass: Show a deprecation warning if GROUPMEMS_PARAM is used Date: Tue, 26 May 2026 14:44:19 +0200 Message-ID: <20260526124420.2564500-5-pkj@axis.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260526124420.2564500-1-pkj@axis.com> References: <20260526124420.2564500-1-pkj@axis.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509FD:EE_|AM9PR02MB6673:EE_ X-MS-Office365-Filtering-Correlation-Id: f364ce71-e13e-4ed1-1b3e-08debb24881c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|18002099003|22082099003|56012099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: wVLMWyKVYCA0DFWrrA6k//Y1S6B4SP6NJ/ND3vBeaQcwwLXGg0u7YbvD1xIIz7EXQIA5RAjTID6+ymoHOsK/5w+A8ftXE1UA1xzSsOXT39A+vbPlUdAV9L65eYmqwGqoj+YoJaX8knJELnEijeYq/rl+9Pbiy7/eztxcAMY1iAUMv5nrQNmOC5Q0TNQ8GBRguFLLEFdsH30J27OYeS8BXo7Q77vw5VpycnSMJ+MMyOBk6Sz63DSYI3yinMXTjleiT3F/YMv03b4fJS442fekK/8vYEsjnnx9Lb3jmziDGCim6bDe3nUiTiKFnqDQbFcO2cp3/7kj/I7fdKqx4KVqG5nOfqAPt8ZYMQdRJ2cvzPHIHMeldCGw6SetaWkQ+y73sdkXfm4h4CU5GfXgzhW478fFwVeHOJs0uWSwHI1BgOgMWthpSCWpijmIsGi8GxH8YlQ8FEYTV8WAwVj4RnKZ6zc5ta/WAxdoI91dWsEs5CVnWMuvaXUr1mIpbYdp0eLf803L8wfR6BaUO6JrdXh2M2JecKyAdOswTjBZbLPrtyDPitDq0b6q+vWCk9W8nqu+5m/IRo47+HjFx4kj3ZCbUIUvXRQY42AwED2TrX8OOCBzvgV+gEw9em2EQPEmpU5GdMFVDpEARluqJ41VAZpFTbCCrjt8PS2fvLaUSubN4VbD5tFGQeHyLjg+RZqfU6qJvRlO/mrBtDbPlqb+7rdCsDUKztr8gb+j1L3NR3gXubk= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(18002099003)(22082099003)(56012099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pKKh5D7Sj2FNkE6IclmbjM6hQYTLbqoZsStRDfbtziWGLMXGTwTG2xKsNA9dH7Gj8Nk1hQYj44r6GNQk+TvJTEDA0ZQqifW1tLfndnarFaXeaYQ9wK4Jnxy3BonHRx8/MOzijXC3R2dmAWitCHIwZDWdkBY5MGX/OvNqOi3IZmE045JY4oo+wHCB0rHHpMwIO0c5lID7paYybNzWb4d37e/0s5iZiCO33J77gBfNpgEnPQHYo+Vp04CxLT8WO4DRM/Mk1rzhXR/47f+nzZd6iJyNWH6yPC+ejT6a9+uSSvJXifmSDJgFh8L3RgcOaquZISCSIJ3Yc+GRQrv5CbU8jDTeMXlUb1KwXm3D6suMYzk0nTlWQFN2wXzZzLInlr21C+3XUjkcRqvWph+92Fj/vBOzai2TPmKTYe2QvNdGUX0RulP8X46kaXPupvSv7uDE X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:30.9459 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f364ce71-e13e-4ed1-1b3e-08debb24881c X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FD.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR02MB6673 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237601 Tell the user that they should switch to using USERMOD_PARAM instead of GROUPMEMS_PARAM. [YOCTO#16277] Signed-off-by: Peter Kjellerstedt --- PATCHv2: Tweaked the warning message a little. meta/classes/useradd.bbclass | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 55393d38f7..d6e1df2bd6 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -308,6 +308,15 @@ fakeroot python populate_packages:prepend() { update_useradd_package(pkg) } +do_recipe_qa[postfuncs] += "recipe_qa_deprecate_groupmems_param" +python recipe_qa_deprecate_groupmems_param() { + useradd_packages = d.getVar('USERADD_PACKAGES') or "" + for pkg in useradd_packages.split(): + if d.getVar(f"GROUPMEMS_PARAM:{pkg}"): + bb.warn("The GROUPMEMS_PARAM variable is deprecated. Please use USERMOD_PARAM instead.") + return +} + # Use the following to extend the useradd with custom functions USERADDEXTENSION ?= "" From patchwork Tue May 26 12:44:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Kjellerstedt X-Patchwork-Id: 88740 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6AFA9CD6E41 for ; Tue, 26 May 2026 12:44:45 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.31]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.35907.1779799475208071950 for ; Tue, 26 May 2026 05:44:36 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@axis.com header.s=selector1 header.b=bEU4BzDQ; spf=pass (domain: axis.com, ip: 40.107.162.31, mailfrom: peter.kjellerstedt@axis.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sh8L+II5OKKAM19cPN3JojD58kJ7ytrgNZ52YtEbZ6vCr7TRPxCqAPKn6tFWIMlmevm2O2j4m3kgh6t1hKOgsvB6H+hOlqSc92n1pNAqu0EotBggU7p/kf7mxUmp4stM94+4w9XNbM6mkQDLHgxL1HZdY7dvT21N+A3DZz+h/RhUiI/kAmFvaCQxpKgBO0+ChW501O0zJ6PSFPmnNCPRtREcV0ty133G5KZWoULb+atTq+BZrFf+7g96YUhvLICFeVLOzYqF3FaYA/quvtNevf5OzkFrEiVzGkmGDkGGMHOVdUEDfIH+tobLA2cOCaupcDvKgDxnGnOhXVEB9kRnpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iX2j3IpHnMO+NhX0+pjZAmetoDrMhFAVE4IRGJNCA8M=; b=LVd6Tpy0iaNmvLmLN/23MYKG+nucuFS2PO1tQcT0mZtOT7YMbudUIp1itnsvznSaP3Vt56+5vTGW4ujNmnzMCCuqbnjckbQlE+axSmC2erEt9KMCe6iTTmGC4YJ7NFOAnArek1RBGWas+e+sQUVMQfUNz3s52/Gb3eY4rz77ty4j7SJMIVP6R3aojRlq00n1j7zlc+S2rFiiUem33y4zK5+gWAbEAQVXnAjDGHVXZckosTZtvarh2z6fLkNKUGF+Siz3/PchComymAFR0eu3SB+fkFgDNaakknhWj0cAOhOUVjH4Px0hxneosjkPSq5Fpb4iCmWSgdAqYc8O/hRP3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iX2j3IpHnMO+NhX0+pjZAmetoDrMhFAVE4IRGJNCA8M=; b=bEU4BzDQ68Pdqdi4KCQvxhdoOmMOFrTVRp3x7dSo4f5wX/Q2NM9KRBW8LWH0vaIK1+Ahwy48uc1D8CmWJlkEz9tLq0MeeuEBt/9x/jgzS4p+jAH7kb8ixATQiTPbGdVQUTA2CvEsB4oJvQt7ujWaIE3Jzg2xz/oZ3YGTUBg/hTs= Received: from DUZPR01CA0156.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bd::19) by AMBPR02MB11996.eurprd02.prod.outlook.com (2603:10a6:20b:725::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Tue, 26 May 2026 12:44:31 +0000 Received: from DB1PEPF000509F9.eurprd02.prod.outlook.com (2603:10a6:10:4bd:cafe::37) by DUZPR01CA0156.outlook.office365.com (2603:10a6:10:4bd::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by DB1PEPF000509F9.mail.protection.outlook.com (10.167.242.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 12:44:31 +0000 Received: from se-mail10w.axis.com (10.20.40.10) by se-mail11w.axis.com (10.20.40.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.39; Tue, 26 May 2026 14:44:30 +0200 Received: from se-intmail01x.se.axis.com (10.4.0.28) by se-mail10w.axis.com (10.20.40.10) with Microsoft SMTP Server id 15.2.1748.39 via Frontend Transport; Tue, 26 May 2026 14:44:30 +0200 Received: from pc56063-2339.se.axis.com (pc56063-2339.se.axis.com [10.92.3.2]) by se-intmail01x.se.axis.com (Postfix) with ESMTP id 9EBAA3B9F for ; Tue, 26 May 2026 14:44:30 +0200 (CEST) Received: by pc56063-2339.se.axis.com (Postfix, from userid 14323) id 9C6D51204BF; Tue, 26 May 2026 14:44:30 +0200 (CEST) From: Peter Kjellerstedt To: Subject: [PATCHv2 6/6] extrauser.bbclass: Switch from using --root to --prefix Date: Tue, 26 May 2026 14:44:20 +0200 Message-ID: <20260526124420.2564500-6-pkj@axis.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260526124420.2564500-1-pkj@axis.com> References: <20260526124420.2564500-1-pkj@axis.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509F9:EE_|AMBPR02MB11996:EE_ X-MS-Office365-Filtering-Correlation-Id: c3f3d95a-2dd1-40ca-1e18-08debb24887f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700016|18002099003|56012099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: CMShh8BwQ8x/HUK/D+e2pp8DaJe9mwhRbefTVECW6RR5Dh98thOwZQcCglI4lvPJ3Jr/3G2y+6eEInRGsugELeqovckWGK38ch8fJrczhW4JXuqrGOrDpdtDVQ3mbCi8tULyAMVglFUaonwVPsIXISyZY52D7Z4Slka82ATxZO7hB7hl+7rRCcSZt6IE3axyJJXcIfrfLBgaHQqnw1vPCuvlN9peaq3ENZR2sNSH0A23c/XxPWQJ8kjTqVunc9YkysAY6PFNixeR//Em/wVw9G/mH3ce0h7sdDlQ5t13XVA3K2JBok1TSXOfOd2BWhyJ9PqeX8av23j6CVUtWHHFpZ2EbJGf4eX0ehtpbZWIWnr51splMeRF9GSR3OfX7pXgQfVx0adFZF9hMjGWSY/OpLIv/JF/NjrBq9TSwscikB9UoyCQwYUAp6kaKPzr9NpraFBj/NpzUjHd8Plv4FY5NSPjSYVRky986eotgtP2REGy61lRv9x76GuSoVD9ven0K6L5cCQDR5O041PBk/0EhVQpNdMh0W8PUxAoedGjUeXBd/xC/rS9Tej5k46uyUto94MZ5gzWSF42Ewg8ldx2IGjYd2a1r45A9pswhw/Wik3ZJcNCumjjfXISXp3KSHwGGN+i4uOg3LtFQRxc+OFE0TXbEd4Aam/mVdXXDbNERgwLKRLVAJtYpSACfwNsWk1jQEdjh6vcBvIAqlCwfo2bweonb+C07AtdaEmfol5JuI0= X-Forefront-Antispam-Report: CIP:195.60.68.100;CTRY:SE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.axis.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700016)(18002099003)(56012099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: d4x5W9+7IV89I0id36Um4UsFc0BQOzHu5ynA7szUkvhdiLUKwvwaWZIxQh51GRw3rbSlMFZNDOHUlew15wzNYI1G/4j3U+OvJHGHayIlUVFUGbbOEr6vm0xchIWIs8X+Jek3eu6AJbcUtWlkjceWrCCVlwYxwo9nhLNwxF3Z04JWvelmlD4GHG/bJsGGDEF9bZibyQsLz126r+X1g/YsQ0x/RD9m/AJCSA7PjeFxx8h4JyFO5Jm7+N09cIr1RzxVh/EC0stdJeoH0Co31gJSXwDc/OtUQyOlzADJTGO7+6+IBE10LLFdQSna6evPge9uTKvV3kuAolvZ8Hl7H2dmaZJIvhRFGUDcan4iuuEI44I3ryeZcdnC6squfSQKcKcNWQlAKcBDKQEMBt5UopF3276EpTk/LiA07aF6WHxsbLXbqDQSJObh6EVETIOgr3zB X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:44:31.5955 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c3f3d95a-2dd1-40ca-1e18-08debb24887f X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af;Ip=[195.60.68.100];Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F9.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR02MB11996 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 26 May 2026 12:44:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/237603 This corresponds to commit a7b846ba7d6d63a5e59939d75d9c5fe3e4cbb0e9, which updated useradd.bbclass to use the --prefix option instead of the --root option when specifying the destination directory. Signed-off-by: Peter Kjellerstedt --- PATCHv2: New in v2. meta/classes/extrausers.bbclass | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/meta/classes/extrausers.bbclass b/meta/classes/extrausers.bbclass index bfb70b7180..5f72612696 100644 --- a/meta/classes/extrausers.bbclass +++ b/meta/classes/extrausers.bbclass @@ -38,25 +38,25 @@ set_user_group () { # this setting is actually a serial process. So we only retry once. case $cmd in useradd) - perform_useradd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_useradd "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; groupadd) - perform_groupadd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_groupadd "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; userdel) - perform_userdel "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_userdel "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; groupdel) - perform_groupdel "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_groupdel "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; usermod) - perform_usermod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_usermod "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; passwd-expire) perform_passwd_expire "${IMAGE_ROOTFS}" "$opts" ;; groupmod) - perform_groupmod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} $opts" + perform_groupmod "${IMAGE_ROOTFS}" "--prefix ${IMAGE_ROOTFS} $opts" ;; *) bbfatal "Invalid command in EXTRA_USERS_PARAMS: $cmd"