From patchwork Mon Sep 22 08:01:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70716 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 E7B0FCAC5BB for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from AS8PR04CU009.outbound.protection.outlook.com (AS8PR04CU009.outbound.protection.outlook.com [52.101.70.68]) by mx.groups.io with SMTP id smtpd.web10.46601.1758529074813150509 for ; Mon, 22 Sep 2025 01:17:55 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=qzLE64Ne; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.70.68, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Pb26/QjfHwiOSuBzVuBr5l7uoX6tRPCyj837SDgQ8PMLe5Eg9xQ5tmQD8fgIShJKcJExWaIOuyINmJdl7b+w+vY+oL5FsvaKlXFU7iNUKg/BlDMUZzrTxGaVsbe2v1Zf7ZppH0iOO+AehRYY3l7A04luf3C/x6TMLunrYcOsgyZ5MCrUWY4P6Va6mG50pYFC43YqS4Y/pUe/WtvkRCtKmeuCzXlaVSDz6ZWjz5hP7CEOW9wHnxE42PWKN38K8KwY95Re0v0vpAbz10YXlHLdRzqPI0XJ+Gu3HXDuMfnrr2dvF+/KNaoSVNLHKFtrl4slWCvUZBBKLzpou0Axj4vvzA== 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=MnU7+t6GcX4OvNUGClQp7+PKnzAiwN+5xL/xibSLQeU=; b=Gl9/tT1Cpgk5nEEAwM4GkNW86AB7klhex5BFxH85ydElu6ud9YvQYskYvLPVCGhDo5cm6sA3NoeRvet15IOL/fcc7IElTqRL25uuzV0ogTqk6QEbVKC0GV/zY1QmcW3aU8ynMDOC9G42OeSnjEH8WASBojXRnLVCfq8/6Jj8UY7ngrSiGlLenxkTxf+lx2ZAtSH9n5itwZAlMhi2V7BT6qwlMH57rNpGdBc304T4Me4dax8sBjSbn+crEEgmeyP92fC6dq4whowATFbGWMVof2IGvAJts+SUOCd52eoa6Moi2bsbTxeGaC7gv19DmEUPhzHEE0jAgHEEWKIAFVnSnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MnU7+t6GcX4OvNUGClQp7+PKnzAiwN+5xL/xibSLQeU=; b=qzLE64NeS9wjdwjJluw92+tuD9hR41weBnhu5p/H6vgYUbNjeBPHutMcSJt/UY5zY4HxpPh741OcwH3BJBvJ7DEMr95ZIVpURF/EiIjM09SWjk8voh4XxHmWSxUHHHy0xG8NpLE0+XiNqRXKqdToGFan2V6DYmJbgmfyKI+7yPI= Received: from AM0PR02CA0016.eurprd02.prod.outlook.com (2603:10a6:208:3e::29) by VE1PR06MB6957.eurprd06.prod.outlook.com (2603:10a6:800:1aa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:01:59 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::94) by AM0PR02CA0016.outlook.office365.com (2603:10a6:208:3e::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.20 via Frontend Transport; Mon, 22 Sep 2025 08:01:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:01:59 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 1/8] systemd-systemctl: add support for --global flag Date: Mon, 22 Sep 2025 08:01:44 +0000 Message-ID: <20250922080151.3483394-2-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0605 (UTC) FILETIME=[2B9D2FD0:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|VE1PR06MB6957:EE_ X-MS-Office365-Filtering-Correlation-Id: 5daa99e5-997e-407f-d551-08ddf9ae4ec6 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|61400799027|43062017; X-Microsoft-Antispam-Message-Info: Ufs7US0Q5ndjDc0PSqJFZLWAfEuFwRDw0WkgOLulJ/+8QifHa2JhWiSSn2WNsjjVljzXCWsV9jPbwCV+EszmJQ5AxTLXZBqdAb6NghFg5lj95rWDhM//dQfDszARE05dqKSzG3YVGKmi+4G+ivI1kZ1rMHiMYKJic0Pc6fERAnATLKgrlf68Kwxt1DKQL+Ork53TzG2t0zc19sbd9uVI9M/OiRCTPciiudx0qJOvgaOfrNBnMqkF+0aT5LE6Qox0hARx7XinE8vno71erOScwVtcmwGj2W8TDhSBhonSWS45B4zQ2I4CTAqQeZ/v6qYvYmxsehWnbDHHuQhUKgQh/4HTRJNYZFD2RX3NT3LNNeXO95U35MxHBL7i9uc+Cgw6wd6bQNwpxh2fACiOl2LYiiCQMiLQ+813/1M9ydWb4uady4VcwQw0f/wUxg2RrihQtrP4zxi5VvmzvU4JRDSWJ/EDk54K7PFBK9KxbJ7bYuBRgefnKhHn09SK1lHqYXMFUvDtqQ5g9CLblJRDhorJ5LsV42PTIRvVSmYLHrsClGtzeeGj2+oEw4RZ5wO+ehvF3vALpRmlC5ifiN4tbpTPc+YxCKwIJnZqB5ygiIUBgOs/KzFJxtVMKzeSbzEXPQz9jzO4W6qLW3d4MnCIxKDU6J1VG2qzV2Kf6s8JkdXxEqmrtbkkuLZkdZC11CD//jK/U+U/xSvh+8CGj7jlNjiYi6oEXaLE78nTyxQywr6cjbatkD5+HucD1nvSfK54LPKhzNvVl/DHuC4d4Tz4ixVa7gAV/8f7L23q+PBeCGkz6EjGO7SVnqyYbcpmmyWXbcUgvaYgIbHLsHTAW2xiaEHOA32CMXWRHgr+H6RBBFdtnyoxO3MzFSTsqz8Q9DIhGD4rVfDeAvB8N1bD1VUpiyr1750QEVZpGm2BW0wor0+eXO5PUjKcDEVYYzCXHOfmQSd/QMjHZH0hUlM1Dw+yCQf/he8euK9+rm8DPX3RCcIgl3RtiANCwJllO/amF1HEpVLlQWiUVvdeGBVRSZ2HcUUj3IX3APimykBLqIbH3U19kyGPUZiZyshnAp3UNmkxjK9v4V9d3v0MAV1WKSXb0PL3aEbff639IzHLMtIUhNzxxlGMGDw4h4OP/GnJlL7xrsYBE3z4cqQm9I8gR5IdKMz2qRKxUlkk3HNe4zhHI0cRW1DRbH2x3/lNANTDisfdsO1bNx45EpMeiVyrxi2Fl6vkrWH4AW38BFyFU4lQ3lQk0Io/6bwK7DWaXpFlTeYVyF03jgKvnIOU94vcwMJwycuLuWjLDhUNBM81HyM8xERjZ4sXwk1tlJtUyZrenbzzxE4kreQBVy2IndEKOfJ2IwEvmK2NOXxjSCTCXH+X5Iu91FnADKud4YBxXSaXCqWExkm1UoS8fqWbIPp/OwVG9W9EzYUYeMJ1j3RTpEXp7DLWCx+JchMlZ9Dv9N1bgw6QVUouF+1z7nDm7EKnQ+aEHjzh23vzkomWbZg/TYnlvPyokskGImg1L5d9JV3bvpFWYmgT7QELTu3MZNikisvh7p8/HtJGTyqzDYoVN5Sl661HmQE= X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(61400799027)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:01:59.7412 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5daa99e5-997e-407f-d551-08ddf9ae4ec6 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR06MB6957 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223842 From: Artur Kowalski The flag is similar to --user flag as it causes systemctl to operate on user units, but it performs operations globally for all users. This is required for user presets support. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit ab6476d28485598ae842472a7b15ca7bf244c776) --- .../systemd/systemd-systemctl/systemctl | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 2229bc7b6d..81c246a5b2 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -29,15 +29,15 @@ class SystemdFile(): _clearable_keys = ['WantedBy'] - def __init__(self, root, path, instance_unit_name): + def __init__(self, root, path, instance_unit_name, unit_type): self.sections = dict() self._parse(root, path) dirname = os.path.basename(path.name) + ".d" for location in locations: - files = (root / location / "system" / dirname).glob("*.conf") + files = (root / location / unit_type / dirname).glob("*.conf") if instance_unit_name: inst_dirname = instance_unit_name + ".d" - files = chain(files, (root / location / "system" / inst_dirname).glob("*.conf")) + files = chain(files, (root / location / unit_type / inst_dirname).glob("*.conf")) for path2 in sorted(files): self._parse(root, path2) @@ -182,21 +182,22 @@ class SystemdUnitNotFoundError(Exception): class SystemdUnit(): - def __init__(self, root, unit): + def __init__(self, root, unit, unit_type): self.root = root self.unit = unit + self.unit_type = unit_type self.config = None def _path_for_unit(self, unit): for location in locations: - path = self.root / location / "system" / unit + path = self.root / location / self.unit_type / unit if path.exists() or path.is_symlink(): return path raise SystemdUnitNotFoundError(self.root, unit) def _process_deps(self, config, service, location, prop, dirstem, instance): - systemdir = self.root / SYSCONFDIR / "systemd" / "system" + systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type target = ROOT / location.relative_to(self.root) try: @@ -229,7 +230,7 @@ class SystemdUnit(): # ignore aliases return - config = SystemdFile(self.root, path, instance_unit_name) + config = SystemdFile(self.root, path, instance_unit_name, self.unit_type) if instance == "": try: default_instance = config.get('Install', 'DefaultInstance')[0] @@ -250,14 +251,14 @@ class SystemdUnit(): try: units_enabled.append(unit) if also not in units_enabled: - SystemdUnit(self.root, also).enable(units_enabled) + SystemdUnit(self.root, also, self.unit_type).enable(units_enabled) except SystemdUnitNotFoundError as e: sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit)) except KeyError: pass - systemdir = self.root / SYSCONFDIR / "systemd" / "system" + systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type target = ROOT / path.relative_to(self.root) try: for dest in config.get('Install', 'Alias'): @@ -268,15 +269,15 @@ class SystemdUnit(): pass def mask(self): - systemdir = self.root / SYSCONFDIR / "systemd" / "system" + systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type add_link(systemdir / self.unit, "/dev/null") -def collect_services(root): +def collect_services(root, unit_type): """Collect list of service files""" services = set() for location in locations: - paths = (root / location / "system").glob("*") + paths = (root / location / unit_type).glob("*") for path in paths: if path.is_dir(): continue @@ -285,16 +286,16 @@ def collect_services(root): return services -def preset_all(root): - presets = Presets('system-preset', root) - services = collect_services(root) +def preset_all(root, unit_type): + presets = Presets('{}-preset'.format(unit_type), root) + services = collect_services(root, unit_type) for service in services: state = presets.state(service) if state == "enable" or state is None: try: - SystemdUnit(root, service).enable() + SystemdUnit(root, service, unit_type).enable() except SystemdUnitNotFoundError: sys.exit("Error: Systemctl preset_all issue in %s" % service) @@ -320,6 +321,7 @@ def main(): parser.add_argument('--preset-mode', choices=['full', 'enable-only', 'disable-only'], default='full') + parser.add_argument('--global', dest="opt_global", action="store_true", default=False) args = parser.parse_args() @@ -336,16 +338,18 @@ def main(): parser.print_help() return 0 + unit_type = "user" if args.opt_global else "system" + if command == "mask": for service in args.service: try: - SystemdUnit(root, service).mask() + SystemdUnit(root, service, unit_type).mask() except SystemdUnitNotFoundError as e: sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit)) elif command == "enable": for service in args.service: try: - SystemdUnit(root, service).enable() + SystemdUnit(root, service, unit_type).enable() except SystemdUnitNotFoundError as e: sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit)) elif command == "preset-all": @@ -353,7 +357,7 @@ def main(): sys.exit("Too many arguments.") if args.preset_mode != "enable-only": sys.exit("Only enable-only is supported as preset-mode.") - preset_all(root) + preset_all(root, unit_type) else: raise RuntimeError() From patchwork Mon Sep 22 08:01:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70707 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 B9EF5CAC5B0 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from MRWPR03CU001.outbound.protection.outlook.com (MRWPR03CU001.outbound.protection.outlook.com [40.107.130.3]) by mx.groups.io with SMTP id smtpd.web11.46844.1758529007814472072 for ; Mon, 22 Sep 2025 01:16:48 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=iTjYyF7D; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 40.107.130.3, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=knpTmoUYGJ1cPdyt/Waszrj+UIGjkUVV1/ySzxGgjaUwOA2yqAbBzw6JPKSMRsuEYNfn8SJwZkHpWt/HZX+6h6iKpmH+145ezAfu1EZArqwSbx595uHGJQeHMdDOdAPD/SFTdZrgOO5V2lRcNEnFFEnHl2WDsDpHZLPhzyQYQ3Jr0vQ09LWJtyuLJt7tFX+vbW0eTkq5WicX4tjUvC1OaO3acZijZfKMNwwQqCxxvkHQ+gWd7qHPdsfgC0GdNN5iG2yujbF7eH2s518XEWcSW1e94n7/DjnIwrdakDd7SBTsnRJ91vVURF5oDhSZDd1919hsU2f373TooOlL4wLgeA== 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=5dRhSJ3oBJQBVUlqj5VfPN0hjJAZvzIOoEY2pmzfQbM=; b=v5UnG0iWcdd1cSL5TbfiDGyZni587UYAlvEHrNw3as9k9o6f2ttvDWWwKDeCG3Pf1nLZY7HDJMn1HPBHqcHx1si9rwKc6nCydRTp5Xg022soNK/pHiBzpFbqQBLVcHaX06tC70HwonJFo31LXM5r03dQNvv7a1qWGj+88v7ouhbenRREMSBrdDoPyzrQnXbr4pNGgobixzUn39wW3v94bvai6KMf7CPbzDRyl0mqqK/sytlgQXSZhCOSDZdnJ5NgOP4PksrWYkB0ol5JY+rrjt9tIVVbKbnzoftRihoTtWL7nhypL5iiFb6iYi/cyCKrPWVrwDgQ7L1ckuN31fYHuQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5dRhSJ3oBJQBVUlqj5VfPN0hjJAZvzIOoEY2pmzfQbM=; b=iTjYyF7DDXNjKJ25OfJG3xoojaqF8cnX3FmIX9Q42jvqn8JdCtblyAU+L9ebUihELc2Cf09SsJ9ktj/aqqFFlohDcGF7fniRdmcVBMoeVtHd5dRVtUGNZGqIRZsF24OXowFMUFm8M8G0pV+wo9njD18TEax2jvM30OVHuvmtwyM= Received: from AM0PR02CA0005.eurprd02.prod.outlook.com (2603:10a6:208:3e::18) by PA1PR06MB10114.eurprd06.prod.outlook.com (2603:10a6:102:4ee::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:01 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::8b) by AM0PR02CA0005.outlook.office365.com (2603:10a6:208:3e::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.20 via Frontend Transport; Mon, 22 Sep 2025 08:02:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:00 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 2/8] systemd.bbclass: add ${sysconfdir}/systemd/user to search path Date: Mon, 22 Sep 2025 08:01:45 +0000 Message-ID: <20250922080151.3483394-3-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0636 (UTC) FILETIME=[2BA1EAC0:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|PA1PR06MB10114:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e9d2356-b34f-42d7-7adc-08ddf9ae4ef7 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|376014|82310400026|36860700013|43062017; X-Microsoft-Antispam-Message-Info: ebDKrS2544bSG5k0CBnLFYV6ukwgSDPo7i1V75oFBI2UZvgAZK6aySmJkQunldHy/p7X9mNYQLsUQskjTjkYDn20DF39d74X9YdKk878+MZEUI5hTVvgjvykyd0XpVtdw0SQr581J76OaONP1PFpVwg+akEYhRZwgN42XTREss+5bndtBOhL23xSSoF9MD72HverYBDdO4ymzYONcFsbdKzD+nk85ZC9XEhf1XeY/EoLivlx+qCQ0udaxBdtobrhDgPh2Ooy0dMNtKwHDyGUa/Li0SikggYjlJggGYLu+pvrf/0w0O19mb/09Tt5LYnkIzPLG9dc0jzqpN68dudBYjJQ53e2CUQGedCwrmp6LAXvYRjMwUnW/t99OlKosvwgFUix4KOlFYM5kEw6Q64iyPcax3vL9w7UHa+g8GTck0d6m2e5Xs194wi0lGN40I5zFU1gOfz2Y6YonBHo6kd92U3/ErRNDeLZQ4ZLRZKRp7o98GBD+mJg2o7vLhKckrlFByRYAtypCnrzV6MFuBG7+if3JBbTZfuKhnKSgTGtmX5oPQSGmaEsH8QXOQUnJQaszGdBfn1WxwrhkaQiQI725RZJTWEN4WalUWtDRpFQzexQHYZnjB+maq5ka355/g2WFL5VlINnlkZleCye/WxFbGU/6pFq65Z1b/SrQTelGt8M7MsgmjE1nAh6rocVVLNnxuyhaqL//CoPOtXN3YT2FQbr2/X8JgB5S0RYxrk5orBhzHaMTQpvObzYgSykbQVKS8CbhSOkWDzsBOWLtYJsr8TVcWbdE7n5HO11oPqsQr9Bo2JqUlqWvzlHLfer1vTNd35SRuuzJVUPI8ItvqZjHwDONnpWPf1jkA8Ax+ZHZ6GVQvE2t6aPmA7b6ICVo/xWpYpCGml+lU+NGrkDe7kwjUK+LsvLpKA5Ip63hSZPyqjj5ovT4vhD80wH/2eq/lWyL0Kdgkp9KVMXWzCH+kiFbc61roqN38K90jaw2Sv1EdEGT+fFnzmBgflyQFK8fr28AXPZCEaYGkd0uuPBv6PFcPcMiCpJDd0zvwb17MRREFF4nETzoEAE8OQceZo8i4jB8V42vOotRmmrVIT3mamtsRbGtk+one9Z3BFioIpcQkEsjF4X48HC+yfcXxwDkPb0FO09AxOOxWdhN8L6Ck/FYIMT1hnJAb5pt6gxq22Gp2sPAMUk+zhYIB4NzQLPb1n/mP7eX/m0GN0kow1jI8Om8yNWclPLlvbYRjyg+q0CVIACZGKC86698dTqjSzU9glTICFcGXBYlCeIiV/ErDZBXmiMhrQEDS169lrp4RxEdI/2ftoGjapjyrtWKCFmWmm4zj0p1WpR+cclzSD+Qr0mhEnr5QGatO7CsOLWdoqyTDadW5axvCVbt+cqUCPihO+F4mB5HcoiPfnwpnqMAen42RPk+B0QmY1t1TyOt0ObbPZSaXimtXDLeIOMiHvBhvhbuK6lu4BX6CO7RYGblQcGNbLuPyp00AwsZ05Wd5M642OzZ7tFjOO7ThW5irPScE91Sxvk2SiP19Yj6wYRLGh4Sw== X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(61400799027)(376014)(82310400026)(36860700013)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:00.0606 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e9d2356-b34f-42d7-7adc-08ddf9ae4ef7 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR06MB10114 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223838 From: Artur Kowalski We already search for system units ${sysconfdir}/systemd/system but we don't search for user units in corresponding directory under ${sysconfdir}. Keep the behaviour consistent so that both unit types are searched in ${systemd_{system,user}_unitdir} and ${sysconfdir}/systemd/{system,user}. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit df1cdf1bf4cd7d9f17c6a02538057ccfc2efba64) --- meta/classes-recipe/systemd.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 0f7e3b5a08..4cc23018c7 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -150,7 +150,10 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): - searchpaths = [oe.path.join(d.getVar("sysconfdir"), "systemd", "system"),] + searchpaths = [ + oe.path.join(d.getVar("sysconfdir"), "systemd", "system"), + oe.path.join(d.getVar("sysconfdir"), "systemd", "user"), + ] searchpaths.append(d.getVar("systemd_system_unitdir")) searchpaths.append(d.getVar("systemd_user_unitdir")) systemd_packages = d.getVar('SYSTEMD_PACKAGES') From patchwork Mon Sep 22 08:01:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70705 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 ACD5ECAC5AD for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.5]) by mx.groups.io with SMTP id smtpd.web11.46843.1758529004058666349 for ; Mon, 22 Sep 2025 01:16:44 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=a1Jlxek5; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 40.107.162.5, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pAGW+p+b+pyU/9S0SkqIOUEFPIAfe1KoKUNkgK+av8En8Ms7mtyIhxGpzoXcyvIN718eCOZAdbPNUd8LX2JGeAkPCH0ZgEBVLbJyV3mLzysb7v2DpoW2gAGyF125OSw5EMwh5+kTBi9cugrJMloS/fyyd8xprRnzRHK8bsGDeijSnkERiyyTIIHCxBEQsUMTzP8WN6rMS3E+VaR5yGoRDTQZ5eQSJN5JXzDdJTrrWVWAmeO+hzygvnLQ5+00ZFtKPn6183aJqBADvM1O+78Z9swKuQbf9XeYyvYkYHBRCiZgiT1zYC3PndRxUFRJfqAC2rpcmhiUun6mpocwalAUdw== 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=2E1jr241eo2lIm0J1Dd3vm4tBG67+m7if6UrS9KoQVA=; b=wS0NeBM5YCw/knFqszC7+vvlDRjcJdfeziayjE0smp3xBonBg5rYy53jWnEm1FM14TBXyJlN7oocO8wxWJmWe2GcTd+wi2MnrvSTKlapAzin+ThJC2diSi5JscsxOqjCuEHh7I+JiMsRtJm2QvyRJ7AlFqu/vRqiFvvzA0Sw/SpRsYkf4cAWlShZP+G4YK+LYLG5DDRBvZwPHsGd6ei9RDMJjIu0arlE0rB2Yrk2ut6wlYAsD64R2maS44w5CQ0e1Plgq8X5np1xbNCj3muwZobPWgwWAn18qfKU+dlFAWdhHvTH7XIRc4WM7uKhDdyp0psZV9ImK16UAWwp21u6UQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2E1jr241eo2lIm0J1Dd3vm4tBG67+m7if6UrS9KoQVA=; b=a1Jlxek56cwr5qeR0iZ6DAxZTf8b0WKi+3GmyJA9sfwS3HWrCiYVG/bqFG1DoZtmaU8nzTFsNDgApj0XWySdMxmyOIJZ7AFB6VHedWAXfE5FZQ0AIGGGeyak/+iCkdSZwQDErHTP/qWcdJuDFCXMkEs+Z/XJtVmz9bnwQAtlpb0= Received: from AM0PR02CA0028.eurprd02.prod.outlook.com (2603:10a6:208:3e::41) by GV1PR06MB9271.eurprd06.prod.outlook.com (2603:10a6:150:1aa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:01 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::c0) by AM0PR02CA0028.outlook.office365.com (2603:10a6:208:3e::41) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.20 via Frontend Transport; Mon, 22 Sep 2025 08:02:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:01 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 3/8] systemd.bbclass: factor out service lookup logic into separate function Date: Mon, 22 Sep 2025 08:01:46 +0000 Message-ID: <20250922080151.3483394-4-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0667 (UTC) FILETIME=[2BA6A5B0:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|GV1PR06MB9271:EE_ X-MS-Office365-Filtering-Correlation-Id: 78bce787-fa4d-4623-1d82-08ddf9ae4fad X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|61400799027|376014|43062017; X-Microsoft-Antispam-Message-Info: CIsgjDdX53xw2S54wHWhIT3mluaI8KFsNelg2j05OY1IvNznAjE8/1d9NqKDTV91TlXFlVdPmdKyIa1Dz7p3TPTUIfvXlnts9s1D267pdJf6KHa6N0eq+Qagj0xNt8jwDOrjWyvLKDGMU4hCFz3wSmomt269KyTGGlV/6UzyydWHEcRQK9uyhhxBowvg+/WZXgG08RrPfaW+yK0xNoAl/9Dw5JrdpDnsRL/lUekx47K8m7czjtaRn2zl39K15vhvoksof8GiRLTImusieBu1q+R6MR2tl6fqJ7R2TMqK/xRRWPmXmRpHXYoRHGnmqF0cfsc12Q11cyyjeoRADRTJ0DoIFvNcar1SGe1gLtBIXxF5KZUmqRJTtAnjMbi0NQK8x14g5QjVxU626fvRA7BmaIdmeR90/zeKFB83F7VILkcGr+T5cU2LJTLMs40iu5x8+4ikhLYNHZALHirZj4MTsRZXwsww+ZLodv1bkwC2/CYNarh0C6Pq3d4l2xt7o8NNVj41EHpBA2ld7UO8/HsjY8e9p5Tplwf7vaOPTto7dKnCq7qCG8GATf5Fqe83MOKA/Bd83HfmEBT4tjKENGjloSF0PBIennOxJF0WOnu3joWC0zklEvJVxAV3gvJxvTy5BS+DHpdOoli8f3aS0c5VWFunFxhFSUboYfeNy2qmp2YdEc3DVNsEf9Hh0Y8bJ9jbGvKTwwOzhUYu1+EZCOckCePMnDNJ9EDGZCB2wAtzOzFeYv5UW82hMxx1MIojzCxZ2xDMiuHjGWHDqoz5Mz8QR5HdejAPLgQDK7xqQswvn24hs48AOG4qj4GehIQ2I4L1JFlBa4p7wXQ4TfA0X1AH9+UvENiXX7ayBi5mglC5q/QF8qNoVN8o0pxyK0JTcjKI5IFaqgNZV3O3kPLT5ykISjeYKiIjEs1RcuwhysD97pwc4GaTiCkBf8S64+LpYd3qsWzcF9r4h0WGNZc+NNUtKocs6luGz57ayZ0cjVtmPN79hakPiwlyTpAvkfjQXMZWiQrh5YXZEPHKiX3ngoawJec0X26MnJOF1Z70P0tVIfR/gth+hVoVUYfN/wmxLxgEHgCbfgJm6mlIrYQuw/xKaaJvO8mJe9Wz4m6r802sG8kT+r3v1kixam4JfZEeikgXLztCjIuoDom3U3mQYMU6z03hVbueB8T5yguJwNjJKjBV3BYlSRcyRpYDwHaTCGaHaFx0QjsHzMUv3w2dgxhDwRXBPdUDJcCThDFjxtNuMx+Q+VN6hudavQ5e9ac0Fl8pWMdUo3tYu+4yWlQjzsrt28fDa1YTFp8miVB6kJiT397aYbTToZ3SB94AMSjMW2wrl3CY9lJnvP1pIRX2RzDRwq/FpkpboEiCatQeubP1pqPWX5f44OjdLI8jTHip/nSWWUIwiSmiSijaxVCXj3d+OSdVXWVMND28HbqbGUVFEOxqdvvkCQAm5ss8aZ5W1lretQ+gBm3+J5AX/el0Zn/+z+6g2+fwdBCsmiO1Noy0LjWNv885xLZmDNadxekhB2u0KhbmKLW7wF1DnmnNuWYjQg== X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(61400799027)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:01.2509 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 78bce787-fa4d-4623-1d82-08ddf9ae4fad X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR06MB9271 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223837 From: Artur Kowalski Factor out the logic into systemd_service_path(). This will be needed by following commits to avoid code duplication. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit d383e18138050490f3dcb95377f63a2a31c3149f) --- meta/classes-recipe/systemd.bbclass | 41 ++++++++++++++++------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 4cc23018c7..3f6c8bc131 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -68,6 +68,28 @@ systemd_populate_packages[vardeps] += "systemd_prerm systemd_postinst" systemd_populate_packages[vardepsexclude] += "OVERRIDES" +def systemd_service_path(service, searchpaths, d): + path_found = '' + + # Deal with adding, for example, 'ifplugd@eth0.service' from + # 'ifplugd@.service' + base = None + at = service.find('@') + if at != -1: + ext = service.rfind('.') + base = service[:at] + '@' + service[ext:] + + for path in searchpaths: + if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): + path_found = path + break + elif base is not None: + if os.path.exists(oe.path.join(d.getVar("D"), path, base)): + path_found = path + break + + return path_found, base + python systemd_populate_packages() { import re import shlex @@ -162,24 +184,7 @@ python systemd_populate_packages() { # scan for all in SYSTEMD_SERVICE[] for pkg_systemd in systemd_packages.split(): for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split(): - path_found = '' - - # Deal with adding, for example, 'ifplugd@eth0.service' from - # 'ifplugd@.service' - base = None - at = service.find('@') - if at != -1: - ext = service.rfind('.') - base = service[:at] + '@' + service[ext:] - - for path in searchpaths: - if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): - path_found = path - break - elif base is not None: - if os.path.exists(oe.path.join(d.getVar("D"), path, base)): - path_found = path - break + path_found, base = systemd_service_path(service, searchpaths, d) if path_found != '': systemd_add_files_and_parse(pkg_systemd, path_found, service, keys) From patchwork Mon Sep 22 08:01:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70706 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 AB15FCAC5AA for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from DU2PR03CU002.outbound.protection.outlook.com (DU2PR03CU002.outbound.protection.outlook.com [52.101.65.18]) by mx.groups.io with SMTP id smtpd.web11.46839.1758528986796945297 for ; Mon, 22 Sep 2025 01:16:27 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=S0U9vIcw; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.65.18, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rve1InA6eFOMPL5EMhmHc5/CymN8Q4J4WHxfSVCqO3X5lwSJ9QUxDAJT+zrHkLI87POKPg3l4uF7rEixyKBgpGmR7f/g6/fOjhZhJetw6/xi8lvcSuTNQfwHlHKDgR1kgpCjzUpWM8LaqbR01rRnHFuBfjqbRTXURNljuQPyUxyi6hH/k/k/Zckc48gSZQVR4GkuvNkPe2DNovcYaf7qwMpMG7cAyG7bmdNjGWSYobZaGsRoJTufn/PuN8QEVoiHaV/eZ9+zz1kDYTs6I9AWJ6zFfMWdEaPUTAvTAxwanEpVAQOZx5hsNbEmuiSzq3Atq7tjB2HDbPgcL0tKhddMLQ== 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=xPXnUhRlOn8KfQ+fh6FMvp9DUIUzEfepMeilanDAfD8=; b=WV8u6UUEDc/Cx6hi6tH5djZGRfCdzXSCV6zC0NNXQLBhSx0bLUVzU1KCA6N6ASAVxuSf1an1mO+b98oJaOAFF3JMrm6FJvvHEmlw48tRtuRf5aNWSOQHQ7nGfgROjxMPtnWNKUcXZrkrFFnsxSnnaEqWVGLqPNmWpjK7k3qxTc4fca5kMgYjeGwEiEEV49aiIY5b9i9ChJK6PPOe6e2hktGdA4MKCBvVq3KwfV1tkZmXGgShLi67OJfZp2dDM/WLp3xFStNWk2Ny58OxvIYF8ERsEnT54gVNBWRpyfRQdPGthv3AmdBQ8zUAbo7wMkeR3aeKasymsOMRevT+ZZk+og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xPXnUhRlOn8KfQ+fh6FMvp9DUIUzEfepMeilanDAfD8=; b=S0U9vIcwB3Y6GSzKlFzeE9Qv0Puc8igH4X4zmgMv+4r3g1SVaeMeri610x1zvvDs2vqzi9h08zqMRPWmKfgnfx1PHgu26jN4yHj7Q2qpUzKkDQEfE4vslTKKFfCNXaOz5+HBaXeqWwfqGMrmjQ0wN+8WeoQRZnlI7i9UVTS3t94= Received: from AM0PR02CA0019.eurprd02.prod.outlook.com (2603:10a6:208:3e::32) by GV2PR06MB10156.eurprd06.prod.outlook.com (2603:10a6:150:2fc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.17; Mon, 22 Sep 2025 08:02:01 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::83) by AM0PR02CA0019.outlook.office365.com (2603:10a6:208:3e::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.19 via Frontend Transport; Mon, 22 Sep 2025 08:02:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:01 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 4/8] systemd.bbclass: introduce systemd_service_searchpaths() Date: Mon, 22 Sep 2025 08:01:47 +0000 Message-ID: <20250922080151.3483394-5-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0714 (UTC) FILETIME=[2BADD1A0:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|GV2PR06MB10156:EE_ X-MS-Office365-Filtering-Correlation-Id: d3e29a63-9cc1-49a5-090d-08ddf9ae4fed X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|61400799027|376014|43062017; X-Microsoft-Antispam-Message-Info: S36EcpmMjqz7VWpfDbC+a/eSECRkxhf9wfeibDlZ4l55s+SIbndOYU/KNOdwnbFjyqmAz//6nkKCc48f8Obji8rGUSckpADggyWyW2ksMkCA6UftSL8s8zOfNjKh+dN69fasL33cRUcQ8jFJaFELpVLnQmsJpvTCqLrYQCjdFaenc4g/jC9Y68wTQQb5ou3YKkxftxVPfRjbvY6Ak5xDvsxPNyIyWtyyesEC57GSyEBaUb8xTzx1aPqIGxfbsqibSflxu8aIBWsmneBS4OaySlshyHfMwdsQ9ZgoJKhSbBqAS1udDGArZH8ouB9rAA/pDjwzaiimFWYzcuJZekIpqKM8ruA0rSG/5N78nxy9zyZ07UvvTorYJ+iIpEn1ej6a6sX/X70iAP7zCYiaGf3CIbIcawmxCj0hWhQqB/XfGsq7cXZm0dyRGW6UrUvOL5WqLA1yaIPGx/gxJ85ZGy478VDR80T3UxAD9nckVpJlTBTet39mSCrgEw0QcUFGW7u33NG1cAYzXLv5AkaqhAX7EgOTikA/KGnkBP4f4GjeW/u/AOcTD7zKn7uLZHA35Sv5gb/QPyVLyqiVaJFbPwHo1oDLp/XuJuxLts2Vuyhxqz+nYrsFH18jd+teS2Ec6WQa4/1c7QKPv/qqMhZXL98JVvG8alBku9gqJgezwtVjnGupR+mDD8/j6IbXDr7tUe+zMyDYVyAfy2OeqIGvA55aYb3luQ7PhDydg9/8q5Uvz7ba1PtGEgx39h1fZQr0cC/q3fQzNdGr71VdV9DSObkAcvvtEaSZgM/8Q1KFLFJMGHLfHT3gZG9v0ozuqlMfAR9s/32u07svd9txwzPuSaclJ4xwYgXXdcD3Zv/yGKkF7djSoN9meXfR5LPquKGbnAK/mwNBV6fWc9/BqNlpmUWXis1lYp5gntepHDZrsnntw0Naq3+vU9nODX+54eomios3vETKM4pJV5W2V+LZMz3ycKNHkOnoyDeGZVPOikgayhsLdGsT5avUtBbT6zi/hc1PEVL+PQ1ZgOsAd+Vje415X7WLLK8eqFVBaGuBabSUDkfeR84zhgPPPY1tz769y5nXL2auITGas/LGaNK/P/03LIKTVYafFGzfGZQKieKoxgupW4tGbp3+XxypotsssDqav0ry0K+mVyh3uFEybG6Mcn7yC/E+8WAO7hoORmrvzrwoicYJWJ5cyZcc+fQhao/9R4Mrbu+zK9cFtkC38su9BEswnQfDy3AI53Lm/2enU4/y+w7cD3nbgXNrODyyftriH9gEihMJxHx5OJ0rQrT5SmeyvPdG9RrqFExD1AC+cUuU4ATmcn6QcP9jQP5FYbeoI9Zfr3ALC/CsrpueXAruMj3qG0SnhsJ6J65o3w7noO28QVSXMOUjkWrASkmuD2ywLS59y1XKOz3MOlyGBMFiJpqHQmAxyms73/a+Xdt0EhV9TxwDZZqhoJ85ZS8Xf2qK2dyrdOs6+TpZrAS/QZHR2JjaJ98Kkemp81CPzrU/SeuM4LtSnw1M/VzoXYsvyHZugImn6+0J21xUWnJPirC9ZbXybLtihOv+059MTRIFN48= X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(61400799027)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:01.6699 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d3e29a63-9cc1-49a5-090d-08ddf9ae4fed X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR06MB10156 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223836 From: Artur Kowalski systemd_service_searchpaths accepts boolean value indicating whether we are dealing with system or user units and returns search paths accordingly. Previously search path list was created in systemd_check_services() but following commits will introduce additional places. The systemd_service_searchpaths helper function is meant to reduce code duplication. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit 9a89d36932dda306b3c2cf10771647eabc267769) --- meta/classes-recipe/systemd.bbclass | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 3f6c8bc131..ccbfc36121 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -90,6 +90,18 @@ def systemd_service_path(service, searchpaths, d): return path_found, base +def systemd_service_searchpaths(user, d): + if user: + return [ + oe.path.join(d.getVar("sysconfdir"), "systemd", "user"), + d.getVar("systemd_user_unitdir"), + ] + else: + return [ + oe.path.join(d.getVar("sysconfdir"), "systemd", "system"), + d.getVar("systemd_system_unitdir"), + ] + python systemd_populate_packages() { import re import shlex @@ -172,12 +184,9 @@ python systemd_populate_packages() { # Check service-files and call systemd_add_files_and_parse for each entry def systemd_check_services(): - searchpaths = [ - oe.path.join(d.getVar("sysconfdir"), "systemd", "system"), - oe.path.join(d.getVar("sysconfdir"), "systemd", "user"), - ] - searchpaths.append(d.getVar("systemd_system_unitdir")) - searchpaths.append(d.getVar("systemd_user_unitdir")) + searchpaths = systemd_service_searchpaths(False, d) + searchpaths.extend(systemd_service_searchpaths(True, d)) + systemd_packages = d.getVar('SYSTEMD_PACKAGES') keys = 'Also' From patchwork Mon Sep 22 08:01:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70715 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 E183DCAC5B8 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from DB3PR0202CU003.outbound.protection.outlook.com (DB3PR0202CU003.outbound.protection.outlook.com [52.101.84.28]) by mx.groups.io with SMTP id smtpd.web11.46850.1758529025065698531 for ; Mon, 22 Sep 2025 01:17:05 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=U1f+4s+1; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.84.28, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oYIYNHmURrOQ1AWklwP7VyDp1bawnt0nO/sTQwpE938FAcppKo65LtrwKwH1nFJqROia6LByYV9T4feuC/9MbKJMVAJqbe/vf7E4UGTLUx/kDM6QfY1R4mUkMTDlhkxXA212Oozky5w0B4KftqvEthF0U8izbSSh/XV39zQigVA86tJFtmKUd9pEjduWtafkeigvWlt5a0QAmujNrdy5gNHlegh4/hmmodl0Glb1LsgqXdXDtRzlF4+Jhh8MLiYWcHpuh2YxM5d9ONHS65r72iN6sHOz3WrvLgtL8/GFoj6m3nX1nqJzPTa28C8Mex0HrVyVpZG1rl0sGrYUIoWqtg== 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=2dUukTcVdgJD9gZEFnyo7uiWOt4VVVGZ7pIfN5S1vpw=; b=CW0mdntqRnVmK18JlqpH+xYJEiq9E9d2AIbU2z/hMeVjc1dl+w9rGQOC0epZMH/IdrcJGOETvYXIQ1q5WddlgrpPiW+3bOYZEiPHsYs1+Ny2nCqebES2UGc+3eklSuFEgxBSQrhqY9ayGq45YCrietQaEmP7HZV2hHuFGCjJQHlQMV9ceLqfVRRcg+TsFgCPMwEiimE1UJTCSgqujWX9j2wtqtqEGrgKt5XAQksbzYXQUVqYPKCNk7tsJE6i+dHYaDRKtO8ieg2Ttd9TtCHzvB1o5yzd0FZK1rB8R0WRNS+Gl3uckri9izSMGBiWoF6+qKd2OYPjPPFP57NB8vALzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2dUukTcVdgJD9gZEFnyo7uiWOt4VVVGZ7pIfN5S1vpw=; b=U1f+4s+1wYXW4k9Xvimi2gAm4I5s1Qsv4Nbr8yKmG5YPTw67AlyXEzKLa8usuS2ghMH2unZd9puY4ijwFXY3SO76Ahs26e276ahSz79XOnidAdpntMqj2jDgmh4c9++2XL4OMqtgZNzkTXPexKfY2Cgrf/VAuRD2l8Kl//oqjxE= Received: from AM0PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:208:3e::17) by DB9PR06MB7881.eurprd06.prod.outlook.com (2603:10a6:10:290::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:02 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::2e) by AM0PR02CA0004.outlook.office365.com (2603:10a6:208:3e::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.19 via Frontend Transport; Mon, 22 Sep 2025 08:02:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:02 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 5/8] systemd.bbclass: properly handle user units in systemd_create_presets Date: Mon, 22 Sep 2025 08:01:48 +0000 Message-ID: <20250922080151.3483394-6-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0746 (UTC) FILETIME=[2BB2B3A0:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|DB9PR06MB7881:EE_ X-MS-Office365-Filtering-Correlation-Id: e6a9f9a8-44ef-45c5-adb5-08ddf9ae5067 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|61400799027|43062017; X-Microsoft-Antispam-Message-Info: Z6aeB85gAyF8n+QuuTb1PQggEkQYMVUnO/1aMVPL+68TYwxtNpKmPvZZGkSnReZcIFSaiPXeMnKRfslfN246PcugL1JRlx6+OH46AEd4AtGIAXrQahtk+BYqmVp4kkl6zM+XVSmcDxr48r2Q76/wfWBPiNnV9OFeHUjij/4cUtEJKm+t0SkI9Grl2Vua9ycngj1KOzcTsG+6wpG10r13FsjyX9lYfKt+z5oNedFHZb56iP0kxWtYkkAMOp0kGMkA4z9nJQCg0y/QW8qKB3hgAccl5mRUeaZcIwNrirp8QG1L/pcJjwPm9P6ag5mHt0/IKQf//Ixy66YFKwX+C71+iepcFJz7yED4donxIN4bSgv/GX6TAzZIinQgDjU+J1Ye0wmvSzpbykTQDZi1MAThN8EWS+ErBIxNpUXy1R+fKiwYwbfBvAmdur+nl+ctPUgpAdfnwZvQ84zee8Zbck0GdbSwZDF23/x4LtqfhATMh1/nVHAgZyX+euTjlyhK1LbSc1dboNWRVuWD7C0VgA7NfR/E/ro5rAY90B9FohYeXcNXclQLq8tOdxkUWEDJgGZoT4W0bp3RCCLDHhwOID3M+6xH0B7yBcalqdGDdICqK4xr0utZOZ11Hlh/ZueiAjApe0uMYnEsvOsUCE4Vh5V9XSCEWO7iu5cxoPbRNB9HHIA9RCWeygViZspKcygtFHirRnsQfz8zcoVe7+tXi+gavQmOJDAE22L/UKMJ8oeYEQVGzVoXauEi60Hb1hrx+psk11Af5WovzLh+xVNxJegdnp8XmTgYWQC6dWvXcnca1HOtOS8LqsZ806gpoREgtFtF/Xzuegpsi246Mrab7LJnH9Xz+cfq1wf3sJjT5zBt2qPVc8/osx3oFjBQJbmHwQL55Qf2kte1TLkXPya0ZQs8rtP/8/pfz1oNNh2IgpZnfZZPMmlwFeYkq7FCa0pnhXBdLfezAPIhnN8PMAxJHXgwKmp475PcBXQzm3aizDz8uY0yYobrME3tBHVtmKrhyhNtVxmWLa5QUOzTkzOufz4uhw6uU28H+Wo5cC2ducJey9m4VZOv3cnF1M2bBPzAWVCL/Zcx65twQ8i2Kv07eAb5br8+O0m2OYXvFwLsdgd27I9/QAJvJh63gu6RGWmsI0GAkmiqvj7QR/soA1OsHsvJP2us9w9JAj77xFxzD/HEg+6x/NsSo8UsHpINUCWR9spKCSy7zk5axWdB+9c1YctyyRXfoNUVywrIpvt7C6rDenVaH592ae1UmCEcdv8aB/PTLNs2XGzQzykdagSjA7HbKjp+FT81fwdiLk/Qf03qYxwBn+8z/927vCCRMhdlhmSivbxslgoSA0pMT9eSfV+S1nIdTT+f5gm754Eu2elFnP/lQkUTgtPsCjfVL8sdI4hzCNmfE3F0VzwUDKpgsaybKcCEEaZ9FeKatj6V2DG4ebhd5B5YzSVcyiew+zd5hA96JDkoCND38G9mPDeTgDy0z4DBMw8Tv+jZe1fCLoEW8lZ1/J6nvsbyQ+rMuxmDdL8JcBeESUu2R37+kKPgjNBt+AU0asuZsXa8scw0jA98UDY= X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(61400799027)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:02.4731 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e6a9f9a8-44ef-45c5-adb5-08ddf9ae5067 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR06MB7881 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223841 From: Artur Kowalski Previously user units were handled the same way as system units, that is all preset files were created in system-preset directory, but user presets should be in user-preset directory. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit 0218542d80723ec314a648af8e9649806c3a51aa) --- meta/classes-recipe/systemd.bbclass | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index ccbfc36121..3cffe95d04 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -102,6 +102,12 @@ def systemd_service_searchpaths(user, d): d.getVar("systemd_system_unitdir"), ] +def systemd_service_exists(service, user, d): + searchpaths = systemd_service_searchpaths(user, d) + path, _ = systemd_service_path(service, searchpaths, d) + + return path != '' + python systemd_populate_packages() { import re import shlex @@ -201,13 +207,27 @@ python systemd_populate_packages() { bb.fatal("Didn't find service unit '{0}', specified in SYSTEMD_SERVICE:{1}. {2}".format( service, pkg_systemd, "Also looked for service unit '{0}'.".format(base) if base is not None else "")) - def systemd_create_presets(pkg, action): - presetf = oe.path.join(d.getVar("PKGD"), d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg) + def systemd_create_presets(pkg, action, user): + # Check there is at least one service of given type (system/user), don't + # create empty files. + needs_preset = False + for service in d.getVar('SYSTEMD_SERVICE:%s' % pkg).split(): + if systemd_service_exists(service, user, d): + needs_preset = True + break + + if not needs_preset: + return + + prefix = "user" if user else "system" + presetf = oe.path.join(d.getVar("PKGD"), d.getVar("systemd_unitdir"), "%s-preset/98-%s.preset" % (prefix, pkg)) bb.utils.mkdirhier(os.path.dirname(presetf)) with open(presetf, 'a') as fd: for service in d.getVar('SYSTEMD_SERVICE:%s' % pkg).split(): + if not systemd_service_exists(service, user, d): + continue fd.write("%s %s\n" % (action,service)) - d.appendVar("FILES:%s" % pkg, ' ' + oe.path.join(d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg)) + d.appendVar("FILES:%s" % pkg, ' ' + oe.path.join(d.getVar("systemd_unitdir"), "%s-preset/98-%s.preset" % (prefix, pkg))) # Run all modifications once when creating package if os.path.exists(d.getVar("D")): @@ -217,7 +237,8 @@ python systemd_populate_packages() { systemd_generate_package_scripts(pkg) action = get_package_var(d, 'SYSTEMD_AUTO_ENABLE', pkg) if action in ("enable", "disable"): - systemd_create_presets(pkg, action) + systemd_create_presets(pkg, action, False) + systemd_create_presets(pkg, action, True) elif action not in ("mask", "preset"): bb.fatal("SYSTEMD_AUTO_ENABLE:%s '%s' is not 'enable', 'disable', 'mask' or 'preset'" % (pkg, action)) systemd_check_services() From patchwork Mon Sep 22 08:01:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70713 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 D997BCAC5B1 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from AS8PR04CU009.outbound.protection.outlook.com (AS8PR04CU009.outbound.protection.outlook.com [52.101.70.8]) by mx.groups.io with SMTP id smtpd.web11.46848.1758529019536126596 for ; Mon, 22 Sep 2025 01:16:59 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=VyVMw/k8; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.70.8, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qIBb8TJDL9E+Fh4MMuF3PgFhao6w16D2ZYQorpV98xMIaOTQqfrAOI9ivUci82W7+gC3N7msORrO+FgGpqPxVdaE6MyTirFQvC+coVvwd4MYePgusfUTeKsDzHl397SQUdxHMxQpP8kK5PGxEgm/X26Wom5NqST2oCe/bGf5/KzIMKU65mmt9wjMm9QlUpIJu2riFy8ja2Ue3RHSPuVfhvKpeB6Bypa6EyRJP22Y8Ksedy/MMyHo14OoH/bFDTO2Su7DlpedIajQvcecVsRkUfofxIEnXG6p2+3EhdxcV7+4FtDu4beEdT32WqZM0X9untz4yebhP0m5ma3JLqKDFA== 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=EBQ8+3DcU1CNkJas/uZ4vwbFb9c2p0UpqsbPII0YRP4=; b=G77OzfgvZP03D3khk3SB2W5vJtTBdHnd/JobMqCRs2l0vvi9mG65YHQnRl6GZ4J6JYCYgPdWNsHEac9qTTodO0hE+tBaUF1cn1NmjomNSgsbvxyz0sDnvnp36G3o921ENt2fgWieJfiwxte2ntTdo1Meis6O31pdyUFtQqg6IwuZPWglwpnZeF60ZgppTC9cK6r9Ll/+ay1faqgWcrXIIC3W+k2FU27UEho89VIAYGOcFXgQ26VwHvzJzXhzkiVqHiQKKhaUyQ7OtPyEDK/S9h/SHJDIA91abHNK2TdHHTZAqu7p88u+1IYr/HTeIJs6nRXa6sVDeJE2VklR1SCilQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EBQ8+3DcU1CNkJas/uZ4vwbFb9c2p0UpqsbPII0YRP4=; b=VyVMw/k8+uBuFVXeGaTao/HoL+am0iVKpsrWqGqsYJEvkXfV5HAdBisMQ5nUxbE+HYTD/q9KAC3U1lupoVSbPA4Ww2spZ24dRNyGlqhaqjlyOhmyxeuULHtHGaLx9zd5nr2767yIKhSMlCUVIzs1nMwPo2n2KQXsvT3g+kyGH9U= Received: from AM0PR02CA0012.eurprd02.prod.outlook.com (2603:10a6:208:3e::25) by AM7PR06MB6817.eurprd06.prod.outlook.com (2603:10a6:20b:18e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:03 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::e0) by AM0PR02CA0012.outlook.office365.com (2603:10a6:208:3e::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.19 via Frontend Transport; Mon, 22 Sep 2025 08:02:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:03 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 6/8] systemd.bbclass: update postinst and prerm hooks Date: Mon, 22 Sep 2025 08:01:49 +0000 Message-ID: <20250922080151.3483394-7-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0792 (UTC) FILETIME=[2BB9B880:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|AM7PR06MB6817:EE_ X-MS-Office365-Filtering-Correlation-Id: ee00659b-f656-45fa-a270-08ddf9ae50ca X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|61400799027|82310400026|43062017; X-Microsoft-Antispam-Message-Info: Rzy7JYOJ7+cnIrytN12yl5UxyzVzH4asaWpbxBIW2WPUp9WWqgSvOr3+C3OxpQHzrICJCQY9u8VDMFepPKLvE154XLPtDSBnVVtGnv4Ud1JQWaLOGnKOTxsfMzZ/8dJBEv3W5PggGqA/+MhtiUiqx4Zb7rEs2cZ/X10/zskpMhk9tskRns35AunrLn472oyWFRA3ZGaYUr1mQLS55tax27AatJv8oSuxnvUYNzeiD3jxHvvqowp0mKno7JZEKRjt3Rzs8CmJVsqNTtwIWTQQGqzjfO0XDsjyJ0Oe8XBLD1VmvsGg33Qgh1paZVzGFw0+5cC7T1eOG41m+magU3D4VYSnlZ3Zf2fuiclPyPzCiey7JN5Ab3WsDL2zMFypKfe6dWYn15UR3gID4qabzcjyjh6jYfBhZGhFRDkhzWdgwz3wWlk+57IzeXzfDOthe55gJGytZu7i1Iy3yqOsWpRLhF69xen5LYjJl2ikddarmk7FgGUvINJL9zKkTH/rAo++YhdwftcheAw27O+HAJWduosw46rf6UyDt/hgR7EwFd3/zXnYPUt311UhsCnSXP5qD4zvqvNUX3swOCzdVc236PHmHiOXHcfg/jNuxsgUCJHVA+1AOq3ztweHrzwEGvW/8GM2zZ7sM08skMkeILvW88q0ckArYq4da2xAg/QY65yua4pNN5IDOZaxkE2M+3RclBwoo+aAkE6uRIxmecB0VcFdGWEfL3bpAnRisn9MjCAUIeTTj9+wKNZgvqQV7WSz+E/w5XG0EG3ETxxCzIQfjzQNRsyEoX4ZKoa1+hFYenrPHBVCu5uUVfi/3U9l28zKedWqsCKR8fQBXLcwyu/KJdpAI0Qjys1v/6eIioAutfhFUA7h78HL2/mWJjvVVU9E4+0HHS/Bk0M/6y4kYQ6dHnWRqBdxDWEo4pcOg3JtOBvtJAuhwRq62ywkGHt9K1RDsIcYgZufw3MUNkbSGJnNvNpjXT6+CpomGxXgqhmxnWV0BRsEH6XBR024DhifiiB2vTvojU5Cn6U+u6i5bYujTUaO1Oz/ZrpVEBXB4O4B2xn+4BFo20G46xNBnv50B+ZnkttVgA+hNXkVv0kUtk8w5wWgGaRc9G6U8bQVD/H2gFiA/BgV9X8SppuH3nshX6EZlkbXTT8xxOOwENtwg3MBqterw49Le3rBaKasL4cZNblMWOXgdUlZ/XcspAmCWQvEK5PJgDIFjiXsfh5PBcoUIuAPcPMab38R0euDcnwvCUeiN7K86huOVUr0gDljxR5Sd8W/lbYBDvx5qZ2SqXyaMTS+E7sL+qCbhEOjzPAmpoNxKmNQfK6hyK5VPs9bE2qjn7cZpWoA2uuCFvocusIE8dA2T+0GPJIas6p5vblofkyyYHeKNkEr8/Et+Lu60gmh+7hIkZtkWqAaan+c9eU936KzkkxMjzpe0/ufgCv2c6u73L4JaNSf/MXKXIQOuv/zbigfC6kI6WUz7RE0xOeBdnC+lSocDeSpdi2PfHOclz8cRJJikZiX5xoXmyLbKho2J4TpX6reJ5Z+CTSvDqV/1w== X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(61400799027)(82310400026)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:03.1216 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee00659b-f656-45fa-a270-08ddf9ae50ca X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR06MB6817 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223840 From: Artur Kowalski Since SYSTEMD_SERVICE_ESCAPED may contain both system and user services we need to filter out user services in call to systemctl. Introduce helper systemd_filter_services() which takes space-separated list of services and returns services of requested type. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit ec548b274d56b2c7a2663b70200df95a49e7452c) --- meta/classes-recipe/systemd.bbclass | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 3cffe95d04..d827ec813c 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -37,17 +37,19 @@ if systemctl >/dev/null 2>/dev/null; then fi if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then - for service in ${SYSTEMD_SERVICE_ESCAPED}; do + for service in ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}; do systemctl ${OPTS} enable "$service" done fi if [ -z "$D" ]; then systemctl daemon-reload - systemctl preset ${SYSTEMD_SERVICE_ESCAPED} + [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ + systemctl preset ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then - systemctl --no-block restart ${SYSTEMD_SERVICE_ESCAPED} + [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ + systemctl --no-block restart ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} fi fi fi @@ -56,9 +58,10 @@ fi systemd_prerm() { if systemctl >/dev/null 2>/dev/null; then if [ -z "$D" ]; then - systemctl stop ${SYSTEMD_SERVICE_ESCAPED} - - systemctl disable ${SYSTEMD_SERVICE_ESCAPED} + if [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ]; then + systemctl stop ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} + systemctl disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} + fi fi fi } @@ -108,6 +111,9 @@ def systemd_service_exists(service, user, d): return path != '' +def systemd_filter_services(services, user, d): + return ' '.join(service for service in services.split() if systemd_service_exists(service, user, d)) + python systemd_populate_packages() { import re import shlex From patchwork Mon Sep 22 08:01:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70711 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 C842FCAC5B5 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from DB3PR0202CU003.outbound.protection.outlook.com (DB3PR0202CU003.outbound.protection.outlook.com [52.101.84.43]) by mx.groups.io with SMTP id smtpd.web11.46868.1758529093626566746 for ; Mon, 22 Sep 2025 01:18:13 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=Teh5rKPP; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.84.43, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rMTW7bxj7cjEVLB2XzLaE8iLfeHepkk/cP/DORFOWrKlfdSN4khyCwop/nIlXcG44T2foJ4WZZ2XjECIMTaQ0y217N/bk2e/v92RGNH2bOOQfuQhMM1oBm385Zh5xs76HXgIO1I3YCNqy2sUI2IEnoNsSGWEg+McvAHgD3gs1KxYy3i1YLlFYMmNDEVWZ66IVVCUCnhO/gaK4z9O3kNE7PixVdMbvjf6AB1EK522NHKvyQFEgnuMPfQOPLh/JojWfBP53/JL+/VibPpubcmJ6XjLjLktaLtGFvv+48W55tzzI7VcKkOwOBMyQejJE2ZV95MuFrnUrRn4jOVx5C4KQw== 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=AFTcbskdfhTh2zHfXbuiZ3JcDnhy5hRk604BBZ1IbIM=; b=qBF/Gw7xYnDTrsp+VZpP6GhNptVIBCvatLbum2XVIX1/VzAEaOcx2QpG/4+XhCAAA49UOQjtwcCLCzhXFbeoQiOlMWqYC6PQpwIgW+MO7MgB5/CWVyFv0Aa93WfWH0ycV1Ta8vEsqEuT/UCU2Vbrxast4cEzEcSfx+VaC1w3m418xLTaXR7sBS+Moa6eEmDLRtzuQzdlmf+PU0lwf+7iVFRTyWlIldFKwBkBBWnboPh8IlHJ3oE8tJddWqiSdh6qx1U2e18MCLUgWD2n4VlYSk3MaSz39UoVhaDIG2bGYxtjlUD6LQuRKQhH6V0mMAv5v6ULaPrqYntISJol8XCupw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AFTcbskdfhTh2zHfXbuiZ3JcDnhy5hRk604BBZ1IbIM=; b=Teh5rKPPzhobLSTd6fiAd7fPmGDUagxkQgHNBFCVc3uKdF+5cbX+PsuEB1KIN7z9lu6smct1/HffSbC0WXbbuqeUT7kcIFBD2yTYe+HsjYRxyl0kxkq9qpmCrvQWSu3FGCLTj03F0qCfpFAj/UJyYul0d61Kpuo40khl+kqXxMk= Received: from AM0PR02CA0010.eurprd02.prod.outlook.com (2603:10a6:208:3e::23) by DUZPR06MB9058.eurprd06.prod.outlook.com (2603:10a6:10:4b2::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:03 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::6d) by AM0PR02CA0010.outlook.office365.com (2603:10a6:208:3e::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.20 via Frontend Transport; Mon, 22 Sep 2025 08:02:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:03 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 7/8] systemd.bbclass: support user units in postinst and prerm hooks Date: Mon, 22 Sep 2025 08:01:50 +0000 Message-ID: <20250922080151.3483394-8-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0839 (UTC) FILETIME=[2BC0E470:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|DUZPR06MB9058:EE_ X-MS-Office365-Filtering-Correlation-Id: b2df38d7-7d4a-444f-5291-08ddf9ae50f0 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|61400799027|376014|43062017; X-Microsoft-Antispam-Message-Info: gS5Wi80xQpXYKD6IfH0VfLDJfgIjhuyRQESgbJeptaVhu/PuDIyJMR9BKL8Zti6tGPfolG2eCkCo8JtWoD4MfXEtNiG/YSqDXlaZtxQZt9MjVQ6AQC8SEpppLhj1Z0nTRBFjfJb859lfM8eUU6Z3qMDJiyXWga/LVQRlv0+Owv630AoWIDK4tceqwC8eaUrWuhp0N0H+Yl8GWJGKOiea4MFlI0dLTnnEgLyNirMPQQnQ9m6QafaIk/LGMdEjuWM46jSNewrkNSmA4X58mkxbqeh1fexUicxIVg9iFWbHtUnN1aDVEnSGVhLdt9kglgSsvWvGqq1vcJF3FplBkEh9gaMrA303sEgg6ktqwS0k3ZtKPJV28d6vRaw12ANcqqz+rxjutooSa/5pL3mQd9o3E+y1vuAe/uOLNTSM/w485tnp+tP2QA32nQuyUN0YKOmYYgrJdGCu97ldEXq3BZ0G8q7mgYaqf2W8YwjDdqcsQhgJedZu6MVkF8i4jKNewkR8O64Q2f8pFxwlcTFQ8b8mHyb5kRhz3AaHifxPrhiZpej32jqH5jFf/xtFNTPaUQzr3sl7tbJJamUSug9ttQoguu8Vatdp0FLqDXloMPyRm74EmUVW7JU0wJ97lhzO85JcNhz/3qdxbvfzNp7xOXWWnpDxOXtNd/sNumpnjNAp1ReYH8KPfxrXVnDYKCblnBVbwVmmgaW8lUkPKbg3neKa8Dq12UdxB55sWAzdMNMIxqZx6FYBWIQTt9Zc/uIgBgKdo0A0fqzb8vEfFIr/nCK7RkdOaZgjSPOkx0SvTwM4gX08jNuoDDQHN6De2ryNSMaYvrOhy6uuXCyHPKdsbTX5DvfoY96BEhDgkr5G4KyTBA1pouPXavIIiWMKmoH9O4wNoMQpwmqNU8yy6lW8sxZBCxeegZ0EjLivQ4YHgF6NHM1GplF9AxR2GEPrU91RPbxDQQgfqjUiC6JPX29MAeC3J427+4RVgIVh4/dPYAQXj4eV+Z3YF9eEqQyB6snTmcFuRpQVRTr27knXGP8WzpJb8pqVU1nYBZJiBDoKxR6Cb6A5JXNR4ZuQYyagM9sv6Vz4ZN8S93pCAU5c+H9nEu/2DsOOIMVpbYB6B1Q8RYtSeFsmZfD1hZqM8DFoozXE3HSyc7IKni4Tx/J0N0OcZlVyojFPKXNv3MIafgqPaAV58S+4XCqxB7cwO+t9hQYEo+oOshMBL7yHpYaZd3P6xCELhTv3/68nB5qKEwOhVpu5NVANr9napYAclHnE+FnWetO+HT8MsupN2Gd/kL+VzZ5mD/0RWO9E1TvZ7DEKu5dCd+0/To980dcbmxt5o7UnmSxLeS/Ojd4OtpLw+x2gNW5AqQQ9QQd6sC9jR+N9koTVnR9/ZOybbcj+49mz00wQWyhkynaN/TRvHWXgmNBW5BajYNRoF/n8WaH4D1V3scF4moJmoaV6QwBkhe2wLxWk9jfhPfNg/RASZ3aXgLsTT1KJ0/h0/cu9JCT6D/uhNM3hQ0+wvtGsWed5lNPlwesjbI23W7yJrMntNvH3wUfxJJaYF20TkUBLbNbWOXUo1FXNWL4= X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(61400799027)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:03.3693 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b2df38d7-7d4a-444f-5291-08ddf9ae50f0 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR06MB9058 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223844 From: Artur Kowalski Handle user units in a manner similar to system units where possible. Not everything is supported by systemd, but systemd limitations only affect runtime package management - during update user services are not reloaded/restart and each user must re-login or manually restart services. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit ce62b88d8f71368e356b6409ada46a34a6017ddf) --- meta/classes-recipe/systemd.bbclass | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index d827ec813c..a9ffc33c45 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass @@ -40,14 +40,24 @@ if systemctl >/dev/null 2>/dev/null; then for service in ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}; do systemctl ${OPTS} enable "$service" done + + for service in ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}; do + systemctl --global ${OPTS} enable "$service" + done fi if [ -z "$D" ]; then + # Reload only system service manager + # --global for daemon-reload is not supported: https://github.com/systemd/systemd/issues/19284 systemctl daemon-reload [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ systemctl preset ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} + [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}" ] && \ + systemctl --global preset ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)} + if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then + # --global flag for restart is not supported by systemd (see above) [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ systemctl --no-block restart ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} fi @@ -62,6 +72,10 @@ if systemctl >/dev/null 2>/dev/null; then systemctl stop ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} systemctl disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} fi + + # same as above, --global flag is not supported for stop so do disable only + [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}" ] && \ + systemctl --global disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)} fi fi } From patchwork Mon Sep 22 08:01:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70714 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 E7946CAC5B9 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from DU2PR03CU002.outbound.protection.outlook.com (DU2PR03CU002.outbound.protection.outlook.com [52.101.65.49]) by mx.groups.io with SMTP id smtpd.web10.46602.1758529079746341634 for ; Mon, 22 Sep 2025 01:18:00 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@leica-geosystems.com header.s=selector1 header.b=JdECwK2c; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: leica-geosystems.com, ip: 52.101.65.49, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H3Zgaxng2q0qLDTT/12gTsO8jPhhfEAzna5D5mmtFaJOx90DG9OkwL0+WVa3AWd5Qhie7i+KmdYP8QN+vu8uK2v/BSrZ47aQd6ZMi4U0CgYAIbWVx9kk1Nf6xQqtkYgOQ46Ippcp7S5trfiK+Orx4qCN2ok2Z8CnTzTGj8ggtKYWlmxNzEJIFJMQLfXODOqIigWymFQPxzL0jxulGMvUZhlKN+kj4cRxCuhreuQyy8JEInNrEn9sWFBrw5LMI8jd0v8+m+71bAmg3rbT09bRSnB81SIIZZm4iSjEk/gtrxRaq0q0ee6PdNToMmOE20tiIKx3oRqg4jiqH+LEyYf0eg== 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=yRW5DW+tbxxer+0sIp8DPfucml4mgpurM5SKxkbS3VM=; b=NNzScbZZuJbya0CbNHijodgDdTNdKBiJ9FiEhXLETDETXIiMdOi3qnCd7b3rcViBQwE+AAQV6lLgb5BKaC/qGqXwSWqpIe4j0PyfIwl9k5o7OtTyC+qJ3udjvkc2bny8NnWYL7cUm6qgkjv018qVMQDhCsaWdvq7nPOxgiKcyA9NB6brqI+SsJ7wMhDBnjqh+blCwrNnMIwrIXZrxKOZJ4GrO/ji35jzsTc4aZcCHyUpNhTQ7t8hwg+a3pA3+p+IV4S7k18J+E8Q563/18OMXzofnoOs4+IcxlIyjuhSMdYktVnPnzfw0T1VbGdKKJ6FO6sdKpKhVdpxANQgKF2j7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.99) smtp.rcpttodomain=lists.openembedded.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yRW5DW+tbxxer+0sIp8DPfucml4mgpurM5SKxkbS3VM=; b=JdECwK2cP7ASerIkVuuQFrxvIoDuX3cXyTCWKgfmVy5xi1+ZRZPqa9TDm+Ev43xwtMNCby1/yKtcZZ0H0L2y62ielwifxujpxxUpti7e+dkO4ZTf9XQVdQKBG4yMQrtaxhr0bKL6dkAVYLRPo8yw9BfV3gDwKjevFSLLLQHQbAk= Received: from AM0PR02CA0024.eurprd02.prod.outlook.com (2603:10a6:208:3e::37) by VI1PR06MB9072.eurprd06.prod.outlook.com (2603:10a6:800:119::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.19; Mon, 22 Sep 2025 08:02:04 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::af) by AM0PR02CA0024.outlook.office365.com (2603:10a6:208:3e::37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.20 via Frontend Transport; Mon, 22 Sep 2025 08:02:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.99) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.99 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.99; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.99) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Mon, 22 Sep 2025 08:02:04 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.61.228.61]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Mon, 22 Sep 2025 10:01:58 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: bsp-development.geo@leica-geosystems.com, Artur Kowalski , Richard Purdie Subject: [PATCH 8/8] image.bbclass: enable systemd user services Date: Mon, 22 Sep 2025 08:01:51 +0000 Message-ID: <20250922080151.3483394-9-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> References: <20250922080151.3483394-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 08:01:58.0933 (UTC) FILETIME=[2BCF3C50:01DC2B97] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00027A65:EE_|VI1PR06MB9072:EE_ X-MS-Office365-Filtering-Correlation-Id: c4361506-6b5d-4c98-3e02-08ddf9ae5152 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|61400799027|43062017; X-Microsoft-Antispam-Message-Info: fMDLojDORnN2dHTC8YGlIHKJqZyRtPQyCewwqUwrPlrROq1zP2S4iZRp4z+UpnntwdGYhtGStWaFd2JA7zOHfKRYBVnk2ay5PGGe3MTLZnkYmh10nugEKfGgq1TRxFCI0bqf5S8sHBlDdmDvGvP/mqgxfXCXyV6V06DAko3/HkysaGNpYNqfGoSTVY+PkuGxD1NS0WJ99cTov2xc6tgHdqKSyRElUoA82fyfj1+7q7YKLslvlKzFN89ks0sziLHlrECpr1RR6Bu+5Ui8yokzkkKsp0s2Cv/uf+E75PW1Cn0QD73+4NC0TAA7P9eMCLppe0W0znJDRucdrkSDX8JEygtHiLFSxPDeedrJK6T3XZF8O9mS6jPDRLV3cIlkl1ycfYwea3N8fYWfzsJ5bwg/17TaCODfMfb2OXWAGSrKKupawz3xI6XPAzlUT10BUyzi3WBlxc+cG0/cX7HP4V2Y5gSb+9snThtD7p3h3aqxkKgDIBmqc49XYbFR8csB4wI9vFt2lCF8NfjnyfyfhjDeOEDhsjvvVXhfGopjcE/joLx6PeoiZp+sECKdXPavTCxGi6TenwFByxFHzS9NTcGIlGaHOs/LKo/KGiwvzKJxWyt2uI7xG0Y03jCCeX971wtUqtIs+N4SGyM+Bd01eG/3wVejmkhdcjTeqd/HNz+erDMRiITMR3T1gXObizxW+on01FZfh7pJIxaVg1NNNIRwXDdwMUcCV+erKQnDIX9FjShAafGpZfwZ+r0Br4CpQnNSkFi4MP+r+wbe1c9lEB5yDtdmVUKNTzloysLmcqgaJFeWRwoUTXxunmkxFD5j0Ry7XFGByjrYn6fkfvsuV7iXjwdeTHniUCzQZJ+5C2A+J5DjLDjWzWnEYQgX19kXB1DSKnnfxBULFJ9PItuBBx4zlD6myP+f9w6m+OnaRHJYDK2C+B0+sGAwYodkuCE98jmU9B/FZICPoFhCwke2dX6xGRS9uCWsvIzApHOhwBk8imH27C7rRTCde3dls1bymQKBEXBS0WBsSLOH5cL+dGrC3g32cYSw139nn68YTMltqJmAtpFGieGT35DQgi/IBGuse5WXPORAw8h4fvHBQib3+jtUAxop+ubkvqJQToE0RkqYj1lxnns7dvV8WW3lN2fdj0x0vWSbwiwPgHU/8r31vgd/jWaE0N2EIMuR34tVUQXF/LQqg2ae/Wvpt6y9ORa3m5LnWEQXicgOKPE6Yh/jADeEwqLa6E59nzDhMQ2xIFMi9jIUmFx0dwMcWCi3qJkbxYzg2hsR7pY/Biy39vORe/4dG7SEWECeqO5BKUO7ZngPjQFMrItZRpf6p/ImeUChRNDjwrLnzh2oX3zG3w6A9t0MQ9Nd0s3JFcQKVA7o3uH+ycN+UQDOq02NvLgDt7tRms83vzjMrB+XzCcIWRS7la71RolZu3qVXrl+Ejcmk3mhkt2eyPlj7IcEwiKjoAEDgn+XDSjmA/81cHGUSdyp8BrPwTVghKBIFNXqSmrqTvwQGnB5Hq3+nsA9/ri5atwSDMefDdTyarmna1LAPdNX3EHKhb2XCEJRWuGtkauGdIA= X-Forefront-Antispam-Report: CIP:193.8.40.99;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:hexagon.com;PTR:ahersrvdom51.leica-geosystems.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(61400799027)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 08:02:04.0105 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4361506-6b5d-4c98-3e02-08ddf9ae5152 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a;Ip=[193.8.40.99];Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR06MB9072 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Sep 2025 17:54:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223843 From: Artur Kowalski Run systemctl preset-all with --global flag so user unit's are enabled the same way system units are. Signed-off-by: Artur Kowalski Signed-off-by: Richard Purdie (cherry picked from commit cdc3b3028f6d71788b5fdd99436f69fbf18f613e) --- meta/classes-recipe/image.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass index 1f0ee1861e..0c3b396857 100644 --- a/meta/classes-recipe/image.bbclass +++ b/meta/classes-recipe/image.bbclass @@ -670,6 +670,7 @@ reproducible_final_image_task () { systemd_preset_all () { if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + systemctl --root="${IMAGE_ROOTFS}" --global --preset-mode=enable-only preset-all fi }