From patchwork Mon Sep 22 09:00:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70709 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 C72A5CAC5B3 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.57]) by mx.groups.io with SMTP id smtpd.web10.47298.1758531647844223549 for ; Mon, 22 Sep 2025 02:00: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=XPDWvSPx; 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.57, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hRlyImmBvAPEhGyoyZucBmdOwC5N1aD45XTqAa9jg4JxrBD7Dxwkn0R6DRlmwCKPKAc1rlpZY3dS5CSUoEOKzCbos7XL0iHWkA4Nc5oINL5vmdAN9+xpUj0IslGf7wftImdzP31pWOuKgjghZeb5fhc89zf1aQFaPC4t+e/TGxXzP6Qw+l5QhRuZE0rN0Q/pclzZQ7B85MgdUUpCgAFkazEVXS6fT3DgkerlxnGg7JZAYfpRoTMayuJojgCEkIFzPR22rwm+A6CZZPhaXRQB76IMteBmdiznahRZkG+FIvhmBRbckhl0mmbZfEYVxUYYfzSdBK5Y252laA3GLR44zA== 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=hjPrmNhRrX+Hro3CFbQkTEuZ6suEqOI1vsX//By+xPw+VAYQVApCyc8hSrrnZId0SpTkvJCssWbBynDKujuBToR2IYMdvGkfelrNQb6pKULyXU9lR5EGv2L8kA65yVZN/xozmglzXd1JKILvy3ErWKpEa4X3KbbK4Tmt3WulW1Qu+Eu/j1/7MUui8dwfJ+NGZA+tPdpiIgSrDefDCQqmexDIPzNQFnkflvDyLx7AMImt+rXSNwngP2rg4NEqdsInjEWedC0d8BkbjD668gm8CX7iTrGv/lFNgIp2KdAd7BGvR0pKon+6hDahLgBviJ8fmKd8NQ45urKUrkrLqcVMLA== 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=XPDWvSPxViiZqGKQhr/7ZuZDqCZX/e/1/j08ApDMWmKaWmu2y3of/hq2Fu4iavfD38GU0eD9EUTFejcyJ9Y7LLockylTUwA96AaH2B7HBTy+SWoFIwI0VR+Y6MDEpJRHu8zIslo0JS+5eodF4FZuzvYOGBpT9gDEvf6qSJPwero= Received: from DUZPR01CA0009.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::16) by AM8PR06MB7123.eurprd06.prod.outlook.com (2603:10a6:20b:1d9::22) 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 09:00:43 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::b0) by DUZPR01CA0009.outlook.office365.com (2603:10a6:10:3c3::16) 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 09:00:45 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:43 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 1/8] systemd-systemctl: add support for --global flag Date: Mon, 22 Sep 2025 09:00:33 +0000 Message-ID: <20250922090040.2859103-2-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0822 (UTC) FILETIME=[60360660:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM8PR06MB7123:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f34aa84-ddfe-40f3-031a-08ddf9b68347 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: gH47unEPd+0D6RutsY9pKEOwVkma6Qgx83RttWztLR+JpI7LI9s7/sLk1rzmC0mMmaolh+8oSMtqniHd9UQ+FjvHB/IkkVhvwtHiempn5LHB6XuqnJiJlRahXI+8HGsxyAXKa1CIb2VxtjtW7N1bCP03gnBSxSQLWgfma4cGR4FNniu9NbP9TBNcYb1qfBKOUpB8BRHUpSo4ARsrMaDDW3blI0gRjqvyr19rUjeNP4fAT8a5qs3dhx/f5ST9OEktaDW9TTCq0r6CPiJWOTUyCHVwVwzLy07eHGmqvSkN3ClKE9+NY6/54i4UbkBkvGdZHRMc+RtchlRkRL7yFh3iBBMlETDIR3VTXBg9XMWVROk+jbEBK0HLQPo3rwQJHB5aH0R3uZMc4idzSfYsHSB5/+opt3jIE8bygCniKzyp8q/GAIAZSKZ1KVVWobWO8n2bgDYpKyBDyyHwFTu0qHTzwtHdQwt3ytNPjDgap7zqtixXPPGTqoJYoMji9VlvisHdsrXoFjYlCW2iivFv2Abb+SnThu1Ycdu5FD2zKQjbgbwdtkaVPz7lMRkvv3Ttm95wbu9i/twk0dXD4XELCttZ8QgVGkkhoOy23TXCgzUgrLUUSfdWYkusfSxynjCPoD15zbndoip7TnCqJP8lJRRV8Jka7oy680pdSiugXD4Qv0ztkRfNwY5Ak4uN9HIh7YZsntWCwyDZMIRPrhKpcY4PVXU7aq6MEHbuu+zrZTkOz/yzfNjqVG0d/kiNbiRiRGHVtyeXIqgtNzXDkSCID5bRcwV8w4rUr21uREZC5bW0ltweFpr0jPFODCdjASeXjM6q1AIFjx000czFFO+m4xv4Bk+b4qNcthYjqJzzD572hjBAVkmXGMKqWKI/xfFRlifvnxy7ykgWJ03HzdgA1/5lh4QeQFEkaxxA8kYylBOg0q0Wa6AakjLArCG3Ahyx5jOcLXbSw9SBf9yuRQZUDvjWBCdFOkntxp/XJEvKBFiNjtoZC7orVznkKlZ2XtJVL7oIEMyTdFAT+bLgV2zatACN+d4vNzfRSFl0GWINWpbZKZSndjCqK6x1/xdp5dfSqPrrxHt9zSmL+oCZ1QOwP3XVlix9vUnqw5Pr9q+CxnfStQ7lcO2oh6LMNXg4xWuzDgK6qbAyTw4Fd384G7GqkAm0Wb298+TZ2l/iRmOUcwv2LrdND9fINN0VU6XXQsuOVGb4YAarf3u/E1CHnZm35aM9hF6O+xn7Ri17DAEIUO08rfqs6mYCnIbaa+QD27bd+ticOOz6z0HBAmWNLn+3XcniMQXElap8uP5Bv4ukKgXogfXcFia6hz0EDqceKWtwWC6qfQKxJ1I12AFF8GKbSUApRYtXW7GqpOYj5swO0us005+gVLZw07p2lL1sbrzgza30dibmC0zWxRhkFw54YU/RqPOhtwBZBqpo6E3ZoJru/t8ovgjTxQut548HSretz3svYQRxHS94LVCFVzk1SbRnViTG2oBuv9EZ3HifKCuOeggkF2QvlgC8bNWbc287VN3PRzO64d/5nEB/e7xSJYBlTMEkvrMa8/WKehJSydLW+Yw= 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 09:00:43.7673 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2f34aa84-ddfe-40f3-031a-08ddf9b68347 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR06MB7123 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/223846 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 09:00:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70710 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 C7A95CAC5B4 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.20]) by mx.groups.io with SMTP id smtpd.web10.47299.1758531648163413876 for ; Mon, 22 Sep 2025 02:00: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=giX1/73V; 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.20, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KXW80I2XRpEkPO5ZZx79mo9+e5RM0MdVGimdwHE1c+csTYyuQ5Bdow2ac6jwdll0GE5hbVir+mBqlo9RQ7C+uB2P5MMB8mw/z4QEgnmsMpQCclf4cWq3qUjhhjBMY5eEJlyzpD+yF7p5hZ0kNbePaqsQZu+srfqyG5n3mfFzmaPwJZVz3lgSorLd2MJej0aHeIuLcu66mautJCikpUt55zz/DOgZq3CHAzywDbn2ncBU9ka/bQrMwwT0N5oIjhCwsSJfoRVz1vZKEVjxH+7y0T9Avqvgb5pFeFKKZl6iZc1JCliO8VsIo0XX2+TF8p+2eC3kREPyZyfOVf3P1Frwtg== 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=AaH035YJrBO5yO0S96MgVcR0Y3DlGTlXJlxxrx55+xF9/OH5CF+v8FZOmbuCVpCwAGE3gZSoVtkDsPcuzT3Wq9tm/1MfKGpuE69BWvGghhnHfqz0XWszThcsXEci26iw09cqXZiohbqL+NQyw9pJzff6lr/3+S+U5W1MnUknyjgt7EFAZPDuAyYQJ8jaCC5TrIhNDBjxuW3bJTw4rsKvADFbzPrAuVNI70ZtLsmKhxzvzH97JSIn0ADYH4/+jNo8Le4CRTjci0LCWBx+MskBb6ozeiHNfTuD7rznhFXfeuiAmBGfQJ8Mx3AecKaJPiTigmT/ziBVZG5X97EHB/7pqA== 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=giX1/73VZEpJllgnGWctWUFjDT29XwBquo3pyl8DPkyyC0HeHZhCMUoutS5sybf/QilsLVOZ1yR55F/YwiQBnLvXMzghkBF2fFvUylsLGfxcYK/YMfQJ1/eUjD9TysnOauU0r8iVk+xroFSg7UoM2K6w4iiFpX+sVKn+M+P0WKE= Received: from DUZPR01CA0012.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::14) by DBAPR06MB6837.eurprd06.prod.outlook.com (2603:10a6:10:1a8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.20; Mon, 22 Sep 2025 09:00:44 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::e3) by DUZPR01CA0012.outlook.office365.com (2603:10a6:10:3c3::14) 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 09:01: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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:44 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 2/8] systemd.bbclass: add ${sysconfdir}/systemd/user to search path Date: Mon, 22 Sep 2025 09:00:34 +0000 Message-ID: <20250922090040.2859103-3-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0853 (UTC) FILETIME=[603AC150:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|DBAPR06MB6837:EE_ X-MS-Office365-Filtering-Correlation-Id: 1129686d-c5f4-4a7a-fb5a-08ddf9b683a1 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|61400799027|36860700013|376014|43062017; X-Microsoft-Antispam-Message-Info: D6yr8EJsyQdGkD87XSevrEPL/6x+NbhryNcuAEQy1NF3jmjKeyhETxUMcD5DHJ6zr41rf7CKdLNKPGV4kRO9HtbaeFeC6thzJbznabQGyrqEAVv8lodkQNjRKT+KE2vzYgh50YezG2aDgauFG3IrnHg60cGd5TcTQ1u8VIt1fnxYt8TOLF6g9SshCGQ5BZ2b5AnjxHd3WZCtSv46VuORcbVqLpa0iA2vg+oxXwsM83teGcb1ud8LQCOqbSLVaRNncRM9rlLbQ+YzFOOOIrZymKUhpEypIeEwsWAQtfnoFfmGZiV4cqAjU/KN/8gAKhQes4iDRIv3ZJUcmb+yWdR81rhqKeMnVPxvh0NaRqnOwoFMNMHEM4lT6DZaUEgr+cgKBRJUYezWhZuM6psvcRYylVBl9QM1yJYyVEWx7qo02LIHQBM1ONysAWstQxcIpcNGOzfJHHVBOEpAuYO9KXefxDoE+mZahWHMVOtCapTRlJfiuH6+MXEEa4z9gv0IW844ty5HXdKDO6MNComch1Soj9oF48V8keADn6LnjJemzaVqeQxW3pxd4HjLE83oygm7AW6K/Ufg1VCdGhJ+YLdBwMXxE+meKaMzoWuB7Aup9TU/sGSFoU5VlZ5dmJbOdiAILDBHqVa5XQ/JxgGTnN1pDLlACaawWpZSXFngfBLYBemRdE81cQhE+iGpFKP3Pr7UM8ky3wlLya2fWVAXInFfWGoVTLrDOoNYXZtq6EU8ebyMdPaGTNu7MkLDlsuy/FJorAptmRj2oTI6V3XHQ/f5/KVlysR5NKksfQ3noSvcz0d/nlnmj159nbVZ/wYGQFrhjJpziPDATBw703GWmzCGqEOuC/ctqJMMiRx7OvFvPsYa8tKiJau+1igL7N9TIerfqWHbQvGU8Ka8UT/afg5t9G7w8KUt7Ko8DcAuxoE1RPdzfGM/kA/l/SxqnhBid6AQ2VuWwZASBlll8JTpgLUrkCJ+FdpEyr+gAY6J3r4qq4ledxoD9DmWr9GmZfYJ46P7CFE+bI120sBaUpZdpFyf3XlBGGNP3kpnUPzlKfdAekeYtt6azz5ky5ly2Iv99F0vRltfIuosYbVllfASnVRe0/MiP6AzwrAUR+Dja+wT9TdiwBB5bWmKs1fgA0KISenOwKdbKFq21IKEopdNZ9dZyVGmfZcy8ZQHDo/IO3sByN/25AnWOgGbpTvWScJ45op/eHwwc7a0Z/5Q0owl1p/ey/HH2RsbWsjTdJfK4QgbgzAFbNQ31HwmGGN/WTX0fiKALClyIBdO+H4INNIj/1H19XJfpoyj6eJLHk+csUP6qmazA0kM1L7u7o9ClYAd2e7DBfuWmx3o34HRsnRXsQqPD/Ko2kdHebCVYxZAny0I3x+itZ4e30L1T0y0I8obCTnrf5SCrOgL714czA5i9CJ6sZ+Z8wgHFa5cJN/hY1IEA1Wd42BiwBpY/d0S80sBhPnt1urW5UxTU4UxO4bSRUzZ5iZDChEgVRt33Ngt5OKnBei4RSlBWB7IEVv1kVshfn8ZbVlb1yH/g5qpZPMb+lwJyQ== 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)(61400799027)(36860700013)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:44.3609 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1129686d-c5f4-4a7a-fb5a-08ddf9b683a1 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR06MB6837 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/223847 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 09:00:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70708 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 AA2B3CA100F 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.42]) by mx.groups.io with SMTP id smtpd.web11.47556.1758531649665426756 for ; Mon, 22 Sep 2025 02:00:49 -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=nH8kYWEu; 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.42, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RPEaXsi85BCwCUZPZ4vLbpzw6XX/dx7uudLTYe5bVBKlEmWhkFBZ+QvHzBfLwDcmaO6c2kOm+Efb02woDn1XxFa0w9C3wlfqaRPjA5pVJPprwtJtXFtkb+3e0iNbQ10M4lNGf+/EbWlu6URJhBBwKs28kZw9R2EgJ4b+ey8pW4SnsISdWbna0nO+m627DtKS1Bv8IOtG3Us3Ix4bxgtsJgt4sQJFmzDPfE24PZQGQ1xuSe3Zj2cq9miybyDl0UTYgzTpHDarMBkubHF+viTszUSzsBh3AMhekKRnq3cK3RtM5csLCjozHHHWS2/TFBX6noFDyO6PqSB0WCQuEkqQ+Q== 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=XF8CX3Dva02jd8+VJhEpSdzxRGoCHn4M6bab6eqKMbrr+rRkeCY//RaDEmmls1e9hP+qMFpT58edDLkjcEe66K7+8syFAl95xnUjY/gQ46Yzwm8xGxKtPsIqvBaqXKUJpwLCkVHmYwxjjBfwZs4WNK4jrPio3eWi59KAjAWxpZwXdOxk/NKj5lRZv1Arbu1KNy5TE33mkLaNOufLnEJVgYtDrJcO1sFgfySzgv+4qUc0+dYI3gpsLVN8ZLK7ZkD3FPlc4jadPnlbOK+oIg+E0m/v1mQhGtuBXWFLCIY62FWTRxBtpIASzEdUrjjIh0YSqVTnxJMb4DpRb7YG4s1FRQ== 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=nH8kYWEu9eGIyDULSnQ8KUJ1/djYc/lVmKIugPsgYPFf9P6viZ3Szmi0rEgM6yKHm/N8yTTD8l8nLMEAj0ASkQ7u5+eWnERh+LIlxJCm9coS8WjBWe/2C56d6C18YWGVebPQLBQlEjTT5XBeOIV9yT7yMF/3G0LAXRWrEP0ZtBg= Received: from DUZPR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::11) by AM8PR06MB7635.eurprd06.prod.outlook.com (2603:10a6:20b:362::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.18; Mon, 22 Sep 2025 09:00:45 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::b6) by DUZPR01CA0007.outlook.office365.com (2603:10a6:10:3c3::11) 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 09:00:43 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:45 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 3/8] systemd.bbclass: factor out service lookup logic into separate function Date: Mon, 22 Sep 2025 09:00:35 +0000 Message-ID: <20250922090040.2859103-4-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0868 (UTC) FILETIME=[603D0B40:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM8PR06MB7635:EE_ X-MS-Office365-Filtering-Correlation-Id: 7452e9d5-d6c0-4807-2484-08ddf9b68455 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|61400799027|43062017; X-Microsoft-Antispam-Message-Info: Zb09Ln3k0jp1g7/pgflxvAnb6Dfl8Kll876KHb9WoNBh6gxgMer5cZ0mzLUJSShp31eluVTUqcKPlpHhqsxT2PCA5ak2u3xjrDhudLTYkOgBBK7ANGRN6HnBorIaMHSI1aNLoTYWW44/Xvcgkqp9PjTu3wc8YpsBIHzRl91DUUw2Ew8NLNtXTf3ub2D1vOGBXnEK809ndmNSM6DlTkpSPH3NKGD13Qn2wjBryVIxG0klkblRjtEVJx415NO33B3RuKv/pIK8NNtamWUNWiJ0vToOwg5u5I8vofStK7xBWKTQczLKz0bvB6DlrJbNHEj2FUVxMYBOk2KT9H18oV1kYqI2EAlcnKmnD4CiKMJQga12iYGRkfHt8bN67H60AkcGgRaEVo4vuZ5UCXrG4uIWwS2YNxOJtvHodrL4+TjFG6SJT1XVvhGUFV5VXKjOU7QZJhA56rtWSHeHW9nZcnxyYgN2mneVnKOMtH6NbEfYf4kb92HNYLFJffm+Mf5ae5K9cYNJRdkeGUfogvAQL1LQldBXmGbYika79E4Wofe7AKiZswNGBF2Njikh90jidTwagB0VxLakneQ+cbtQZMY6zccwpSwbgPT+fEj+30FrBMvEtWi69hJDcWRMsKEL35ejdewqtD5OT6Fbr/5UKdlTAhBuko7b/7EnmCEoTgWWTU04YxHv3tqqvDNapv90b94kKHCuou7J4OVRDFe7I1TmLx1DCer9rGOiNW1ZqIQw+O4HcHzh2yWwX+xGIhLfwJanjywa+kErNX3ZvpttUqFhpsBw4WbEytvCTphOYIE7W0DYEYKpwZbzjL0qkXv6ODZmjQQ/x69jTetKAIE2ciE88L9+J+xj4FsgDyZc6xStvWflZTlLiSg3A+Gy8PJqXNxSpkUFG4md8cpOO0X695WojvpXovvBwp+Rl3Pd2YUiwkkJDUhZJju8JtAzlBlanSp5brWCX6vfr/57pPu2wDZI8o0dB1jemL1m/a8N8EsM+F96HKLV2zUw6AwSK3YMr1aCV0gfDwBIz+VM+IZ12hlh5cI4Zaw+eNC6TGHrhliObm2bbNZVHrVOrlPMSQzbq3gbPQZb/fADE03zyWQBhZmLs3BZnzs6wyzHsm9AhpbFWgZoamwFDOHR4MIUFB8ChzSRyJSdyea0pxUMw+7Gc2H1Bpbh41Z/GORWvFDXztktNow+jMrJHdoLSClE9HSIBwSCzxftzhKVgluGwI6NjEArU8rXTWjP9e2tD4D6uAwo40uT/Zo0ELlmjaoAc84wtD6eCF94yLeU5vQYC0NHBbD5T+a6Q/TIUwVY7bjMBQVBi7u/58pqqdebBD2P3YvT+3d1Z7lAhT9uhdJJT9W91bmXiaIa7vN2nVbT+olj3D0jwveesvENQhtNeDqC7Djtu0e/+Wyko7eh3s3th3WbbLA9bE1mT44/AemecSl7XSleaTFCeiAqavQQaF9wHpWI8ixveeElqVvu/EHpA9rN9BU4sqwSZZaBdiIE++jqRvLEk2VH0BQlmK2a6B4DX7RxHdHBHNYPOn6I7qZlWCoWl3gDjg== 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)(376014)(82310400026)(36860700013)(61400799027)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:45.5378 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7452e9d5-d6c0-4807-2484-08ddf9b68455 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR06MB7635 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/223850 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 09:00:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70712 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 D628ACAC5B7 for ; Mon, 22 Sep 2025 17:54:41 +0000 (UTC) Received: from DUZPR83CU001.outbound.protection.outlook.com (DUZPR83CU001.outbound.protection.outlook.com [52.101.66.28]) by mx.groups.io with SMTP id smtpd.web11.47555.1758531649117739307 for ; Mon, 22 Sep 2025 02:00:49 -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=MYT2SPpJ; 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.66.28, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D4XQ1Pfpp3rB8X3WOSPOhzPsuYZklIOWRcBZdip9H0azhKTsJXhvNgoWLLvOyg2ybC3tLS60OKY6IwC+U5tU6nnFneTCFXaopCZyALt2QZgOlhkmZe3UaQBOPDtPxbpUEfLOsxF6DX8tAf7qnU0SEN1hQuxFU5xXvTScqQb1vLX2ZAsut7Yq8bYxbSi2duxeklLMu13ZVuEBogdgOjPAt5tYHCCBJ7o0DvTepa74xVug8AGuAiUYA8QjVu/PZ0qtIqrjmUH3BnpavMWDfgyExNtUir21QwRHHhyV/2bMSY492f+rXP5mlkB20LNMaUP+nmvbPg4ymnuMVGUAA2fzzA== 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=H7LqbddAtJz0O+9bW5aU3NCI+JfhO++1B93iFbn18rmcxkNtyqH6aAfXOCRF866XUIy+zdfmSDqf+uCmR/02xf7ZniHavYfWV3e+js1uLC/vtgN/pgJARti8TyQuG0YmwfKV8ID1c6CXG8Vp3fAMuvXWRm2sQPuB383/e0j6xXmW4BFCmGd+GYZoDZT3KWqXaC5KAsybQsYUzJzx4abGSlos3JKrNSf9XhEW9TMHJIphUNQjVAqsnlsk/IHuBi1A32iLojpdteYY1YTik5Akb7Rxq8REfILV9MMHw7gMcZBJy7TlX/HcSExPDMATrAydzZbj5TWv7hCjIKivJ0xEKA== 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=MYT2SPpJZDl9yXSCEuPlO44jTgIGQJvt4bPMBXd6eTHhPXiwjS14f+4H00Z6wKPsxR2Fkk9+1u/aEHM8ijUxeWQWQWiL4FRoahVQU1wzZz1U5ii3XybsxSe4KMIOaqjIK96llcgw765+CeVKlI8uOTeJ3uOhau/W2pxa0mDfLeM= Received: from DUZPR01CA0003.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::15) by AM9PR06MB7170.eurprd06.prod.outlook.com (2603:10a6:20b:2d3::16) 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 09:00:46 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::b8) by DUZPR01CA0003.outlook.office365.com (2603:10a6:10:3c3::15) 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 09:00:43 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:45 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 4/8] systemd.bbclass: introduce systemd_service_searchpaths() Date: Mon, 22 Sep 2025 09:00:36 +0000 Message-ID: <20250922090040.2859103-5-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0900 (UTC) FILETIME=[6041ED40:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM9PR06MB7170:EE_ X-MS-Office365-Filtering-Correlation-Id: ab697ae1-5647-4cd4-2545-08ddf9b68491 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|61400799027|43062017; X-Microsoft-Antispam-Message-Info: pmP+oAMLgX5PJoWOjT+xaGvpKXSY/ii6IWYzQpzG3M+x+LlzhfLwpK+ZEv21XYAz+jKlQyznTHMqaWpMhpKneibnZE2m948r2adeU49oAvztZ9+Ye90GzwfDvbLbDSkWOrTuOtAtOZRrhcLaxDdOQI3XaeRGrkzBQVGg4zQ2y3HVZBN0G/0m6AHWPAK86cqF5yP+O+F/lRQZTrcEfUjmsaQrYs5z3nxuHWs6eGvza9ONB6mq3MGI5mPgiSHHIFlNiN1srblAvzhAHvsisPBLBPTHEU6CxK6wCYjuE3m5GJ3yVcjWJy+cH1BANSiLkCz7AJBckgUlHIwwjeJhiixdd4Jd9J4z8xOBS5AQ6os2Y1SjS7C6XxnD0TNDLEnIplwbCOnMClSQoisNBSaQz/jb863og7+nFeXYO9JOGOqhF2cKamVFqE7obOB1CTNenn/c8xFLB8oqrpJUJR44GXrf/bcws7kbtyPPUby0Q5EFXE4pLVR9PEjEHiioAnJAXqEdrB6YlcIcGxFM4+TC3vbndH2NXUdUIQpdxX3Aml9M214h2swHJsBEibAEJUOaeUYtn3rEAfMljANw8QyrpmwHqy7AiR8wfh7rF8AZ1/bOLESL8o9ILabJXETf2Dh8ObonOD21sU8rgimtlPkwAy8khsgdShkv4yyMokmU633pRHXEbiccqEDr9L4EHj1u++/MGYaKsggm2KccQ+fU1BGWtWIhUbrCZ22QdlZhYGPHcH2FBaE7POO9zVJ/qcACM2kVXJHq7Ux2iiKDBiqbORB2IDGfONfeTNE/slxkKdcO1Xo5cFiDLZ3Y9lEvV8FToLRenF4QuceGLKRTVQsDQzx8Fknu7Sd8T6WFXJWEFzjcRN6r0XOvInMf8Mhw86YE9AwWcdVVh3a1YLuA744RmQMjdE8wHwU9i+mrN46P4upb8sD4jkU01jxtHEkQ06JoCbeqRATVPsAS0qKSyLgqF8v+FhSWyNGwMrh/9d4g4d9jc40expk5AOrbqDTe7HmRD9qvFp9reaTfONZvs7YroTLZjoH+buFPjkj9e+7HBK3GoNoUkUFHVzrQbnNwT9Hm6mJcl8wFe3cprGamDhNdcFp6bMJ+1t0lktyKoKvQV50N7zt7jWiB17+Yd408sJ9mAhaieS9P3DSECEWJVYpx8l+M3ITulDocprOXuxKCsBD+iCqOCdZNkcLnS50twNtnsNnFLZiwlIJ8ZS3qBkOGu4vM7RU2sAw6tCN5VxKsimqmzPh5JDfx70Smy0pryrdKbI6uZfxpwmUqU4CKJJTZuoG0EFrKVA2yFSpT+utwTwwHdCreXGY0L4s4Prd9Gov5i9Ok4BCQce3QoYgeaWznWzjeNo9WnOQYA5Zkm6/AocUoYnADIjdu65S87/CPsm3tVZgVgL4EKQo+TV+XJ1Na463ggQJ1EVoqOT9bZeJ0o+kgcDuxPas30RVa1oZxDBq8iJhEJ8eNZWfdBeq2k+aFTUD8nuwLpKGLYtmfF1dB7rhaajA5m/ABeEnUSx/jlQXdvF8R4OFCZXBQtTt8UoZUS4AibpCwwRf1whftFmJ51OFunrc= 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)(376014)(82310400026)(36860700013)(61400799027)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:45.9311 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ab697ae1-5647-4cd4-2545-08ddf9b68491 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR06MB7170 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/223849 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 09:00:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70720 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 E62FBCAC592 for ; Mon, 22 Sep 2025 17:54:51 +0000 (UTC) Received: from GVXPR05CU001.outbound.protection.outlook.com (GVXPR05CU001.outbound.protection.outlook.com [52.101.83.60]) by mx.groups.io with SMTP id smtpd.web11.47559.1758531650734246001 for ; Mon, 22 Sep 2025 02:00:51 -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=khR6gOBM; 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.83.60, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nieTPxmzGFAeG19211KAl49StK3Fdnw0bQb9R/d9T5ZgKM/IOFoNC1/ArPqeEryLs7XuVHt+2IZvRkgVAM9wIUTVopNL+f6KGzQJjVzuHIMEdcrXTcw8GdITlwm2pOhXhroTqiDfh3qx/b1QAwstweq1IG8PiOe+sYlWusn2Q93rORksUygAXD8h0f2oDjUIl3r9a5JiTsWnKLX0cVPSw+Crey+o/MNOOQqMQGZaec58tb3w337UBnIlUQrKrY/Bkh3kUq7gqi0ejf4HEY82z+z5FINshT7obevCN7l4IfqM2TWSq0cdm3MznPw53GZ7N+d1+eNcOJ94QUQC3gbQSA== 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=Ig1qJC5HNUlK91KeJm30Z5JZyUifMPme5TLnvnZPsLRrZEd6xREp8tSgI80OXy8tRILC+PD0hb4V44gKG8GdFFhcn00/kOw9u0C+0hxppl+lOFIZzyBO4kF4sjviwMRVe/kp5Vk3lwtrOoqu8QrsBt9Py5Q8A6pkqUah4Vt0FpMONv0qhGDC6/NXu5wEbxmqlJYXXO15glvDDnXizt9+qDpDptUsQj4nEbHxLHoV0Rgxf0DjiRbQYeVX6fKPUErd7oyL20CgRL1TczBhdcSsanXR8tOfMQpsluciWibHtsYBJTT+GlSsiyYMm8kasaHwn9mCQrnAM3rJmp5W5cyQ0w== 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=khR6gOBMfdIAM7SdK5atv0VfzoH2pUFDtJQxBX1O3031SXl9cMakEY5O8h/2mXbMMHYalY4MeKnYHvViHCr+cl2iocqh3yXjUZq4rqnk2jQlrxpeFVrJk1doBJ87hbRKHqK2h2CjxffhZCxvjByWOE7iSKJSpGBFYQvBf1PJInA= Received: from DUZPR01CA0012.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::14) by AM7PR06MB6612.eurprd06.prod.outlook.com (2603:10a6:20b:18e::18) 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 09:00:46 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::a6) by DUZPR01CA0012.outlook.office365.com (2603:10a6:10:3c3::14) 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 09:01:05 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:46 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 5/8] systemd.bbclass: properly handle user units in systemd_create_presets Date: Mon, 22 Sep 2025 09:00:37 +0000 Message-ID: <20250922090040.2859103-6-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0931 (UTC) FILETIME=[6046A830:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM7PR06MB6612:EE_ X-MS-Office365-Filtering-Correlation-Id: 26265cc9-98f7-4f3d-0202-08ddf9b684bb 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|36860700013|82310400026|376014|43062017; X-Microsoft-Antispam-Message-Info: fU9shU3PD/jtFJ8KbDFyOovcZ0o1GpSgoW4Uo4Uc88HeNpvzwYY8UN/lcd359VWm/awFTSzuKqPTEyqUZid17OgzP6fIdAc+DYIHkSRroDr10MgoZ7/sNbFHD7BZx15zc9CAxEJI6ZNs4iy+Gu65zMp6JJWH+0vRAn4ebR+1pj8xvBJbCQrw6XLFtE/YGoT+aupya9ua9RwzOYunbL7JvJdhyRUhSdqj+Rhuqv0PmrxK8F27IU3N7SZjlqpv5faKSqwNxy2yHdw7Qhozw1KObt8UV4KurX7WFc5tRPYSPkb1qiv8Vj1cj4nekSvESpxrreaxbtKzsaZFVjfcDWHL/2n7tFVWet68mTcwIvZUqxBp1wAt+ZYxaMtkHZLiRLD1w2KFSDQM2TkEHnxvtokNUFG6MWNp5ZLlzpVNGupUk0WdvIOuSAc/p82tiVpGooLAewjQTY8+N/KzyXi6ATar182edeO/fZRIO3psjhD+6l5MtFvKn7kPLgApYiEKMz4NmjgENBSJc6rZ6bfWGsl9Z/9ez803oZZrLlW/6k0i/nc5RnDLvG3GbcT7/z4oFiOVSUr6BS6LvL7+R79EXrVvdah463BjPyNzW8aCU0dWgUOhixK+v4k/zvXTjHXpdQpmRapB6B6OfbnZ8WnZWjrBaVVyhiJrzO5cqeES9v1FsDCc0ikXFL5i6Oax/J0NvtBe/kmDRLvnQi/298vN5N53HsyfddN4ajtQ/n1xL3Na1039fdttVSlkon4eSAcMfz70PrLIPluOJCivQhghNrS+mcUGwcWca1cW2ao5GYiKl8MRNQmaLKtG3ltXs1m1yD2i2Fy6QDL+spwK8nSLGjUn+xz8VZV7l4rPRcpTd9cvsV5N65APRWbdGZYrWS4HQ/T1DFi/svOboNX6q5TrGMe110Vkoe88S4Ttz7YzptuJkmJDkXgJWWPRus4lFG6APEZupsHKgZAnVcGwGQ6LjiLNFgJqk6ZH1SIcBwtZRqPFJ9He4j7xFqIbp4pKFHFakdj1SLAv1HwrLTMti2sk72uuIvBLH6Cf47JXpbjhThPb0wgFE9rVUqGR42HIx8jFtz2Moyj21CCAq23k3k0qOjr/11JeZBz05Yzw2sS7o9e1kjSysvnO9uzbaqZbEWZVsEB3UAsin3jJcsRhY01DVMxmJnBylN0MQNkc6WZkQksiWZbiQzawqmbUiFPR99iHQTCA0LpAW72mK+0qTRIKA9uuGeTnBRkOQfFeMSBOEONiHh7B0/h+2z+6yOUuu3L/ZnJhxnGFf9PM7eiA5g76Vm9E1U5IY9wFo68clYRgGYi6iqGIh+6dhbKobuz+lPbXdgHlyidHTp+5jud7ww0QGLt13OzEdliBmCwmx9hD4I13MCSgvFx3RwC1XUOWeoj6Dr0sUVr43Ohj1x0NGT+DrhdTsljxgByTAx7b640wMzzDm/iPio8Tse0/mK9eS09gwmSAGmKBD9zrD6ECJ4qidhhBTJaFuFxKXF/HjPGkexLi1klr/iwKdc5SLGZLCSeM2mlaQOZaUBdRDsQTRYklSNCt+vzoYn89S6SbIH4X4sC7zD0= 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)(36860700013)(82310400026)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:46.2056 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 26265cc9-98f7-4f3d-0202-08ddf9b684bb 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR06MB6612 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:51 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223852 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 09:00:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70717 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 E10A4CAC5AA for ; Mon, 22 Sep 2025 17:54:51 +0000 (UTC) Received: from GVXPR05CU001.outbound.protection.outlook.com (GVXPR05CU001.outbound.protection.outlook.com [52.101.83.10]) by mx.groups.io with SMTP id smtpd.web11.47558.1758531650337198188 for ; Mon, 22 Sep 2025 02:00:50 -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=q4nt0Zmn; 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.83.10, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eOI2ChaQWFgSbM1JQSKX6bDBIJD4EgqAEsxELWAUCQnU4JNcAIqPHBz+a2lEMZ3orAUFJGO2KDDAGubeod20Gdxl4mp88CItsVb9+CUKPdgOER/3sUQ9Fpn1SowuJqY1xQEslUvmQv1Ewctb0Xu8cNoJG3GGhzTitZNqct9IKqTD5UH2PViuunD5wpsllpPlq5MI935wktXjmS1WVBbSuEfZjsAMqi3EAWBsDGSLxeJy5YQ6hqOxw++th+vVf078PQkPqJaqxnGTjFYWyYzV2XHv6CzDiJ2OqglRuwxKRBGXDrsZxkecXylCYgVNZokIMvXFo5tUtMgaDMa5WU2FZQ== 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=MgejKU/YW2O0ncJ9rFgo3M1rnrrMHPJw7/MKg2fXgFRUxDA0uWnhY2/JN96/7oiBcls3PgFwYKQWq/SvSuIRDa+Pn1xowvqPTqCT01ed6R72TroRHGMU5Ss16TCAAF4T9R9inJakWBh5Xa6JVOPRi8lVCYFzi/DNuWiy6S9CftICLvgG6GFM4mHZFZ5W0MJ6NNxP2AHviZU03RQCWHIu1N/2G+r1ELwg7fJqPicqVuJ34fvS39/MJRQ7bXdru99dinubJ49ey+0XDcw/BxuQkSLua6czasslYWTqvNBPvWHuauzKCww/pfJ87Da3VnThxkTASMTMCJU1ymOgSWktMQ== 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=q4nt0ZmnkJ36/lw1d78FmLvQGcfHP8O/eeH9g2/+mCRPHL1U1vKLpVVUkCVTreDFOLLZJv2D559lh5YuYsFXqBzsF6NMHkF6TP9rNO1Ck5tugvUYoethyNNtzpFmWpAW5AjnuW5gQ4xktOfJltG9ERoete9lG3om6BbhWhqih6k= Received: from DUZPR01CA0004.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::20) by VI0PR06MB9369.eurprd06.prod.outlook.com (2603:10a6:800:23e::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.16; Mon, 22 Sep 2025 09:00:47 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::c5) by DUZPR01CA0004.outlook.office365.com (2603:10a6:10:3c3::20) 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 09:00:46 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:46 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 6/8] systemd.bbclass: update postinst and prerm hooks Date: Mon, 22 Sep 2025 09:00:38 +0000 Message-ID: <20250922090040.2859103-7-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0947 (UTC) FILETIME=[60491930:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|VI0PR06MB9369:EE_ X-MS-Office365-Filtering-Correlation-Id: 7740bf41-3a3d-4a31-4533-08ddf9b68508 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|82310400026|61400799027|376014|43062017; X-Microsoft-Antispam-Message-Info: agJ9+wTBrLP8hDSymZsUuhespomUNy7ThXmV9XhGRdFpSM3rMiMeKnDUVGLHk6Vpr7GqR4p+PdlvBIF7ciEk0YgPhhFbzEgcsccZO+xtg+Nva6vVfBQzO8Bf/58Xl2xn3qVCx+2g/jPYWaM6vh79EE4BWOA2dp4GZXmFUxju4Wevbgcj6Or1qthNJGXndWUnG4ecl4phGPc9DRwBM7PW8fTQD4CiiA200VYVRooyvB8+Ux/ZAgD8Yt6TWSq0TPPu4iG5JZIUrZpo7lRSk3hCe2RJhoCUoE/Xk1Q7WwQ9O0UUDGU0Y1Yl+SAFkII019Lhf7vzGifPqj1Xk7SoWGtlUtkbxoR3QcYpfe4XJKiaL7KPMl9i8QI7o9kgrAyo7V2gK1PAKnviQkehRMFzvpCduAQA6kq7aQjTobG6GgXuubpNo86LumCtdhhi0aX5VfpCg7GTDaTV9JUes/AjgSx1mRvLhVlYL9Uve0eY7Lg6NZf1jdV5NHZLbSZGGODNbiCJYHF59AjnnrWxfmzLcclyYuhsGQBYJ0gzzlny0ZD/R9+EzIhK12Y9KclDkpsRTToAmqZeiNSsWDCia/tYiajEZp/LeANPe1gdZSqPeyMYudWv14I/IDLnkTGgslKG4Eyc0mETmh2fME15qJ9xPg1NnscQyEDLrnK8RlTYpgjNj/J6R0jZpBKU8YNuIBviS+tmp/GZ08DTZoiOYT0z23T0YZd3VXjokJBluRQbiQCGgGCdozKcejenp6d6PD752k12Ho5qPdTDfiJ5lRVYj07HBRNkf05XIH5lfvC6+KdHZnql3Zs4DxfYQBCYqhQo0W2B2Bn/yBqlCMlCswZ/jrXJAfjccdNvCyr95BTthw0GLDFNW4Vdi3DU+QDuGTWT+HyDsjo06XBK/6iDsxyyKVM1nwxwoBFDh9Ca81Kk4q7/m+EyQZeyGF6BsEzVFd47LWI3cFcdzwM5lpzKv57jktkg75PmSh1XMe/AebKhRhil/qx0f4PxlXedb4UE5UzEUZKkrf9sx8Xcz+ZmteKoPwnMb+9yUE2D7L/oP+jaIafp3YgiKaBj/X824va1vVkMxk1QSImDjNflqj8ki4bA3GYzn3SbHBjm+bXUxQ1+/3eBDKqJSdxhdLsRJWR2JsyOzQbZG1gl+NFAT9j3vB7UpawFfbAu8cNwDNVUU0Sg7fUZeo57uZ6Iy8neiBhBugVcbh7Sixtxr/11V/RnuLAoYImF57vuiaFfN6PKLrPbOady8IUj9zVCHPiftWkXk8e2Btel7KZS0dzgPJH1xHOPf0otG+clhox1YR+7nSfe5y01l+Ld2ZMISXZAhiDdFPzoc99dDwSlxymH1R1gAihNPo5QYoca4Cro5ZYlC/584IpnTCPW+/OLGqHN/cAAJxSdeuJLLdMKxNm3jfElZ3n4bLvxsRZyVlaHlo+iVvLsiz5Mt5EywTln+XY2iFUC3icDRnJr81AAdspQPiM1cdrV0/dhp83c810+U8NEQ8vU0POC3T0PSefuSh41Eu0taEyI3ol47GGNnG5Y3SgRTpQMu/q9FA== 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)(82310400026)(61400799027)(376014)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:46.7119 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7740bf41-3a3d-4a31-4533-08ddf9b68508 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR06MB9369 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:51 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223851 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 09:00:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70719 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 EDC3CCAC5B1 for ; Mon, 22 Sep 2025 17:54:51 +0000 (UTC) Received: from AS8PR04CU009.outbound.protection.outlook.com (AS8PR04CU009.outbound.protection.outlook.com [52.101.70.14]) by mx.groups.io with SMTP id smtpd.web10.47301.1758531651826544688 for ; Mon, 22 Sep 2025 02:00:52 -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=SGKasbsF; 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.14, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fy1iHIzMEo36gmOa3olpYtxnbZrTix9gnrU8pI7GUn3vRZPjQCvidoH937XBixu81Na7STT1EEx4azwF5bCUpgghpUCbI4dagfvL7qn5JCcEC4agSyicN1CbporL+qQaj5QDuzOAxheV5VT5V7LcHRVrYR5TOa3QmM0Ds5IAI2J6PaCaquo1kXdFCIztLnOhzqOYTvAd97pfdR5ubMS74V8zZJws9FwaYB+WaT93T1QVSLc3+t0nJqReWTjbQnDJ+m+ItL0MmWmT9ue2kGpPlnM6VM50+cVZotmWImMRiydnBHSdaB8batrtLaDtfkeDCW1Pv3uQ7CWiJvQTTOivfA== 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=pWc1sXfAFiT+uazQ9OtI5JHjaMEOXsGf7c/1aVCnx/ynAHwicsUQ+gC2D4gCoOu5IW0olKvhJdtT1Z+0CnbCPefe4KEIgISmchguwU+hgzUGJetEqfWFcbOutbB/sy/CFVvH1Y/wh1cCHSOZEFMub+orHNCEEBe2PYVMrqZrA9pVwdjgX4CMdQsCl2/tKG+HxBcn+8pFesGJV+N1nnQwEv3VpkP38t054Sac2ODtem7+aUSGgEZBEOikL5bj4YiKU+sdERL0cH4zmUC7/IREM3FQnBoj/vGMD2hfW7E6YmSUFSDlLv3gN2RxS3D5t6PhTRg5QNsAqRtsCg8U3knOmQ== 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=SGKasbsF5O8xbdpfSboKHorf1mtBWVTsDXxVTfyun9caJ3Tfk7lbgSdU5zcntiWsUL7+GFhksoxMCztL8QTzxZZLNY8jdmJuIQuBfpqXHfZfurFZir7Mm0XlpSX9WOAnpkDYNIAxwkdf7Ao2+iit7Z3I25gLhKo40W8PNi3ogm8= Received: from DUZPR01CA0003.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::15) by AM9PR06MB8083.eurprd06.prod.outlook.com (2603:10a6:20b:389::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 09:00:47 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::9e) by DUZPR01CA0003.outlook.office365.com (2603:10a6:10:3c3::15) 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 09:00:45 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:47 +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 11:00:42 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 7/8] systemd.bbclass: support user units in postinst and prerm hooks Date: Mon, 22 Sep 2025 09:00:39 +0000 Message-ID: <20250922090040.2859103-8-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:42.0978 (UTC) FILETIME=[604DD420:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM9PR06MB8083:EE_ X-MS-Office365-Filtering-Correlation-Id: 6bd71236-5f1c-439c-6f0f-08ddf9b68576 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: z7CHQJZA5V/L1F0y6d07cutaYRPjTknBBpbZhyYf4tY7hzf/P68qqHhAOhs8xvz2JdajJFhNY3VCoUblJI5avXoNs9hlXqhE2S4pnwNSAg2AgP56vSWdeXv59iXtj4AW9rDntgfbrNHzjS9fttt9qbDVr/86FTLTiezshEkOz4Es7o0KhBHJOSgfpsl+1hhjGcagoLQReBatRMB3v5k7BLxeUp148zdoIKPor5fVEFbxw2ywc9508iXc9eUiApsKUWT2CmESL1qo1FRIffvMpkTmZndgrCTHx+KuAUjBSbuxL5hfBipIE512OSAU34Sx2slhDvjcXdXJ6kYR4OsP/8RkmAIGXdY0ft8Blh4EPnwDcVCnpxgEV6OhMp6ysKieXZ8M1xPA7mN5gE0iqY2GHJHeJ0ZBBuVJEim3kd0UNjwWBCIJhdlIAwR/CvdhUVAC3rRrB1SZusYFRMQyVNQJY16R4+mnCSz8XhMIIpJdHQQ3umGk8cYyb3ng1oWWtKr9RL8dSvjoaoEZKCB1aaet+qu6kJck49HcnAwkO7W4G0BwyhC0nqqGxyH4Gw91IkVr+SbtkgW14ymmQglt0teJkGpZPnzOU/0opw4/936OaQx80ShGrHZq8UVKNNRILmFa3QI6sZuOtfnv282rTKsDItSLIhPIb+awc+NBXC00mpzXE2d4A1PKf+zhATxje+PKRGui3PnKDiKf/ci9RtS+vs5c5YX2rpkPYKhMGmFrw3wpqVx0mJvWtpZOHOPc68U3hfYWEYhAiTHNZXj/1wmbeNK26/koS+kxH7P3nLAUPdHy2iBa+BvgjiiXgYmdi09ar3cvOn9Dqexq1xf2YPFNV6UHfAW0xb4No04gECamkNlQKurix16+9N8Lcvivd+89ltduZjH2mCPVEulSIK1n1syl9AUEQTqqZrXs+RGg9NpzISGjo38pGsRW9JX40lMYOUcy42Tm2BX1eLY3eMVtxGQJuljoy37MiBnAe9MBKwchaW7ETYwmtOVo3/Cyz3UY1CtJTTC8yaCNDoIpNvzPLQ/hvME+g+xdCIJGkVXDkMN5EsUGyJooqp4518I4+W1u3B+MbWJHJIyCz2U4azyjdRPKe1xojcDjTacGxPMYG9lYxNIyaYGYWyUh9SeE01CwTB1pNDEkhiEvBojcz4YjQ+bEVKHRKEi+jm/DsT1NLxZCLQaxjeswVjmVnJxpp4uTFTGigp5Dv1loDkcvVUQFyFcKbjEjPr9h5arxEXIqccG2fcRhz37rKJXk5XRwOpGq3fIPYmIT9Nu0j3YjJxzAi8GpWg7pJ+mcJ+ioh5hJWKhpyEgQf6vTrWRHXJgrwXk7kSbUV1QkQKjNhqCW3Ut5bTosM3jq9TwrKwuBQaF1CT3TiNMX56ik7QerSz5W23w83vSmIx8v01x50GwKF/hnx19PLgxBe2JjtPK+n/uUWcund2rCbJ+H6CN5gd4QBjR0dq9/MCrfEDVpn4x+twfEl6TRFEgcUsUpWUzRUmvfzB3dGOBX2Jm/C3cU/AJpFMSTx29ZVnyKBPL0BJEuos75jwBxLWulLNiFUSLmIglOWf8= 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 09:00:47.4338 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6bd71236-5f1c-439c-6f0f-08ddf9b68576 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR06MB8083 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:51 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223854 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 09:00:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jiegu X-Patchwork-Id: 70718 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 EDA0ACAC5AD for ; Mon, 22 Sep 2025 17:54:51 +0000 (UTC) Received: from OSPPR02CU001.outbound.protection.outlook.com (OSPPR02CU001.outbound.protection.outlook.com [40.107.159.6]) by mx.groups.io with SMTP id smtpd.web11.47560.1758531651070120252 for ; Mon, 22 Sep 2025 02:00:51 -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=qCRZIPO/; 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.159.6, mailfrom: jie.gu@leica-geosystems.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eIT4oVKCTigAbNfvVZlPD2E07V3dUC+glNGkPXJbrC1AjUU2tdnPWQHFIPeEuzP7+lnA5jXWGNA1DKdvD2fixddsa+f6v3Erh2xG9vgLj4I6m8TKVXR46plUOotjfTXA+YGfymreKa/ZoTZ2eP+4oxb3kyFzHm6r+RGT1yH2/+QZAeRNFA5uTOix6gIurZ/gVKfIkzA95jCBgyt0jWvbrkguISDTAGZxulQBv0JVr1Zqs82LcdJ6zVqLo88Y2tsQlVfeQWWwgvTM4uHXnrjDAC8C7aFFdx92n5dKrld4V6/wxvnpGKA+TKe1hNkdERYayQRLLw9erqFlDoIWz2yImw== 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=eto2gZBRyrP3IFlx5gmTtUxBgxxBvsSyZIu8g/ddpoWEMP/GBmaxmESVUA583lsS8GAMBfjrRxc3X4WJE72suQisTZ0m3KDAaURcJtQcy/wWGc3QYQD/62si8SQFjXdlWDC8PeFPOBp16e7Zl+ru5fK+7yMycar4C1JjUkBXMTzOKS/QtRRHlvybvz0zgAY8QUWKGA7+67bmsQnHCukm/0vvgUEWg2TLwHDib8xwupKTLr+jWSEhYk/XWAKXRfzmzB1Tmtw14VtpANYfg3hvEBtlMG2wHnfTmZDTRqs3tU95/nKFjS2mQU5GKSBok/TaIJk5yeTovy1z9NXBxl+GNg== 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=qCRZIPO/H2NnlRXWXdwTinUjqVgnXMiGbWpGV3W7BrzXAaF+0dv5fDw8aMDrRgv+aYG6xK0cah6mHi0Ev8IzgqRmsFwXGKhAZCZ4xQcyZ+FKXObHcAw7P83cA5UFjxezYw2/LPuozpxsNX5ZlxsXGa9qT/P6/QcEttjEFeQdfyA= Received: from DUZPR01CA0003.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c3::15) by AM9PR06MB7218.eurprd06.prod.outlook.com (2603:10a6:20b:2cd::23) 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 09:00:48 +0000 Received: from DU2PEPF00028D02.eurprd03.prod.outlook.com (2603:10a6:10:3c3:cafe::39) by DUZPR01CA0003.outlook.office365.com (2603:10a6:10:3c3::15) 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 09:00:45 +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 DU2PEPF00028D02.mail.protection.outlook.com (10.167.242.186) 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 09:00:47 +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 11:00:43 +0200 From: jiegu To: openembedded-core@lists.openembedded.org CC: jie.gu@leica-geosystems.com.cn, Artur Kowalski , Richard Purdie Subject: [scarthgap][PATCH v2 8/8] image.bbclass: enable systemd user services Date: Mon, 22 Sep 2025 09:00:40 +0000 Message-ID: <20250922090040.2859103-9-jie.gu@leica-geosystems.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> References: <20250922090040.2859103-1-jie.gu@leica-geosystems.com> MIME-Version: 1.0 X-OriginalArrivalTime: 22 Sep 2025 09:00:43.0056 (UTC) FILETIME=[6059BB00:01DC2B9F] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D02:EE_|AM9PR06MB7218:EE_ X-MS-Office365-Filtering-Correlation-Id: 03dbf9fc-bc0a-4e53-3fbb-08ddf9b685c1 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|61400799027|36860700013|43062017; X-Microsoft-Antispam-Message-Info: LbEVJEnTVZm7x/ZEAWdHhy0KxFqDtZV4VEuypH2fsjq5g9+0kwBFV/ItNOGDEi7HL/xzDosRRAFBx/WJjipvMasnDUsSvD2BZUceIaGllAH6zZrSwY9/jdnbDgvqK73TmWJ2ux+ayFKIux2dqFw59Y4EtKQMbR4K4tDqMDOsD7OhAecSQHhnxwSfHJEj8urtV+VK00azHn3CpKJhUCJSrqbxKyFML/cNRlW+PQjvdQfD98W4N9y/IVrrTWgKwlVm8jtGnawrSYwHMSNFjQbbmWYPMP4JVu7mk3DjrHohN+rrzU+8uNLPZCH9SlC31gu2u6cN2iJgDO74gbKd/BWQNWjprQpqkFWA5TpYX8kGH+Ji91Co+YmS7YIpw8WQ1o5U0BtVCFeyKdyoq+X71H8f5HJN7S/DAfZRMfkJ+RQbjfLBBG0mJhxcjYqjJ66e7rBKzSZNXjirw20ttOBZQRqWJjc0No4ekAUbGkBuV5/LUjkQGJ6uqHPUUmoSfLTPPayt1rzubCXWRQk6YLGsphMgYp6cdq10KiDJgMKUkjE3s9nGmQZqLP6+62pfRLLSmZcdCnK6MbjiCMETbp6p8b08lgdWqUbzyfKh1vdkTeB5zsgpZG1k3/BqhQ2Z+gIIMO1AJBI6NHv9wzVJTp2h8rKfIGdrA96RchJJtrPQ7lC5OUAV5/a1T4CCi9IntDkKzRdXdvWeNR0oClInoDx8gGGHySdprjSds+DlsvLjzcdAYBXlQ2/R9YQI7LwK9UrWOLqUoO03tU1jWRfTEiRVUTQUK8oqjHxUAfl5/zjaITclutF0MzAt8FcgAi7E7M1RRGEdMgMzrSjgf5iBg4yvh3yByI25zlViiJGJXZCGKx3/mJsXumy+1eYa1XMqKJwAG/kd1BgPCTZKQq9RGJUqWHJKi8WNrHxYCr/oQWu1h21QWRnMmt3Jk0fQr/vAXu62+nuA8HwopEmV91AJBzEeQudMMeubnIf2rsyTm6RESn6KLJaH8Ik4azPD/957aFA8FNI6UWd2/RhYJEw0WRz+ycm4KNt0uT8HSu5Rq7/U7k4f3oPDTxEkr/+BzJPCT6KgLoPDXJCmEerOwe8Cd/Q35oTG9mC4B8cMflwWmFcSt4rt37hL6LTDTGbU/YFrLjyFeBowjdcvlR35wNDDSutN+dgqP/VDk2negWhpdzH5rcpjZvr+pum6LC32IWJSf/Va8fya8KUGF+q0C0ElPv2XlwlFx/VHOol6FRz4yH2oRBMyTP1jc6Pc2/2agSEV4KeN/rIWDCWZVdbcBIHnqOJPBT2HN/jL0BGScoZDABkvhmDj5YWQo3AKQF82WENgXRY6EUAvQu2HEfA/wUJHFEHTCtSIhhfpcrglTouAse6F4odqKWbyvve6KQAAD5dP+IVydz5OkSlmbwgpwN89YBJHtVxuo6cIr/ig0w+g2qyNrx/DNtv7cTJIoClCQ61Hwc1tajsWw0P0qhYvcDh/TRcwNC2OIw5CZLng4ygSFT9kG7s+oxHIQHGe6c4SsruUD6YdGNld9M0QshIpgmzbM1WRA1+Md8bgfH4CB6INidTDukoQPCs= 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)(376014)(82310400026)(61400799027)(36860700013)(43062017);DIR:OUT;SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2025 09:00:47.9237 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 03dbf9fc-bc0a-4e53-3fbb-08ddf9b685c1 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: DU2PEPF00028D02.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR06MB7218 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:51 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/223853 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 }