From patchwork Tue Sep 15 09:32:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 5465 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 15 Sep 2026 11:33:29 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-pj1-f62.google.com (mail-pj1-f62.google.com [209.85.216.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68F9XR4Q001435 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 15 Sep 2026 11:33:28 +0200 Received: by mail-pj1-f62.google.com with SMTP id 98e67ed59e1d1-38e1118e4absf7650754a91.0 for ; Tue, 15 Sep 2026 02:33:28 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1789464795; cv=pass; d=google.com; s=arc-20260327; b=V1WkVQoQgGD7v77OX6pl5mLk5KVG/6zc2eqLkyHA0TFs0dfWaPvRDOa3Nvdxw916kt dD2lrsPGq1Yj7mMJhW1CTFjjMan8KkQRskdn0hUf4bB5V7dGnwTQq5g9tS+R9YirmYCp sLDwPJcJYhQzsc+4oYYNR8Jf9Tnp6vOyP/WDChXlREwdznlqmIK+/24+m6rvFyBwhhfA rOliG+bMv96oyJ///Es2kflQr+6/5bLNo2y2KNacFqeXvMMG29Dw+zD1wAoKO70PYLY+ 7vTI9bDWI0/4ohvYqdyCGG4LUoP1GllKCciE1x79JpAvxEHcYkKwZgNPbtuN8L3t73f3 qj8Q== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=VC6d3eg/xuRdp4DWPKwQPCtk4E94tRzCkPem2/JIRf4=; fh=7MS4ff/zK+D78i0hq2yonOzgmh30Cs74e25tJGH/BD4=; b=MqUoH3wMyalYo6qGLqj++KxHI1OLZF5ZNTa91bFQBr3371ACoBxBwmgm7dDWh482iZ yAAgXX7CdZMWAD31dOMXqTR86+RkOt+SC2qHESI7JzpZK+tl6jeKLmfAcA2oJE9w1our hKu0Uk9zf2AmwTM/21D+JVlOckY62V7AOPCJpza2a9zWZ2DLR1ebcGguFzV5QEx6jHUb aIh63BJB2iSgG56Mh1bFc5+xbrzeF9HGVIqqtkn04jEpA3YHdR4r+nV1yRSr6NpMw9Yh Nbo0YBS2F4TXhRYNDoKVXqJmStZIA2i3tmVNpSvgneprJ3ucBqLQQ1iCDtM4CG9U+0oJ SBSw==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=N3MQxahr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::3 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1789464795; x=1790069595; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=VC6d3eg/xuRdp4DWPKwQPCtk4E94tRzCkPem2/JIRf4=; b=gC4YENfOo9TKZgCNy/EGi53h2JNJaOYSnN9ja2VFm6MOpY+65X+UfEWPXUfTaD3mRi HBYMTgGYQT2t0KPSX2K2GkAMLZpE8grzqZ26yH1B0uqLfoQyWSlz2Vlws5XjQg4kNsia Zcc+zsK47JEZFwRElB/AbMXFp5xT+fGqEKMXF7+2GgSCJhWYaKSXPsydd7lkKqQgb7nP BKI2UWB8OaJjRqOh7qqwgUe9gj+c/ZJnuzvNwQh7EOvmDbkThUvqwCKxfWZQR6196JlS W81hx5ZDi4UtYRFlmtFN8pHMOTFXDaa7aAiyizp0xYInEClPFiCo76sFieNeWrgrFbXt 8CIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789464795; x=1790069595; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=VC6d3eg/xuRdp4DWPKwQPCtk4E94tRzCkPem2/JIRf4=; b=OPtwaS2I5LNExm7HIrmQRFp+puNEoDBEzcJLsM+mQEw8DNYdBjRK7AyjWkSMZg6tDV YCSd4OfAdu+JxwTu2f+ZDunpPpRyRkL7a+8AxetHNqYMCnIVfrXiGTOQLthKgDTo+S0R /hyEz5q3yfyral/6tZrettLuNxsOufz/CN6SK7vP1wKpzUdUcPzjSYD+SWWO1F+WgBWR Ok5gDlEK+0gwcK+gbQDpCaO6rW9+gZrlNXwhGktBzfl/lwM/g8r0RfkMiG87H0hfXBTk pOBOelUl3SJUVZAIJaRGTsVFWchGa++r7dJ/JkGQE7+ahZr7M47MeU6kJh3Rbi4hQr1Y WW+g== X-Forwarded-Encrypted: i=3; AKwUvBxfFZkr1fe4dZEPDjg9SYXbRtmKEWoIqm0/eayNAD8AP7NBxlI7JLaFNwqutsXUEJxBZmSIg6U=@isar-build.org X-Gm-Message-State: AFuF++mxgnm+afxi6CuqH9M1yi9rqQuvSiCLn0ZHCA7Q8bHxQRKGJqVu QuEErd2PGYYo1Llx+ngyyedaWuzTrhVr3d6+SIT9waajSXECr6NZCdk/ X-Received: by 2002:a17:90b:2d85:b0:39d:f247:bab with SMTP id 98e67ed59e1d1-39df2470c15mr9828851a91.6.1789464794631; Tue, 15 Sep 2026 02:33:14 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLde8E83yJXKLmJUT1g5emSXwI/uwUUGjvqGk76hAGSqgIQ==" Received: by 2002:a17:903:3885:b0:2d6:f73c:5202 with SMTP id d9443c01a7336-2dd0dbd6304ls81556715ad.0.-pod-prod-06-us; Tue, 15 Sep 2026 02:33:11 -0700 (PDT) X-Received: by 2002:a17:903:f86:b0:2d1:134:b86e with SMTP id d9443c01a7336-2dd6c5cc385mr127473345ad.2.1789464790926; Tue, 15 Sep 2026 02:33:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1789464790; cv=pass; d=google.com; s=arc-20260327; b=IzAUprv6gXYQWufZwGcl7Y/3eZo7dDa9KVnJON8d9+gD9LagwsLRQ5kp+tBPCouiTK DXXJQ5vUOVZgR5CIS0oeR5ej6G9M2ud14xQVlNetPrUQUSFMTNDbGwBob/ok4J3hRYd2 rc9tNnGTxJ0GGiN3PkKJsFWB/aZsLAw4mBXZMgQxoAMIFYpXviEPftcMmMttMtHUPxWR u0sAzb1TZ6RmwPNWEYID4KCoQ6REmzR2GrSUYjLFLVG/FMw//jgKjxxbowKiOKZ7zoZh s3LhlgcoOt8IF96HG9ZKdGtXT0Pfla8IWrckuX2ksV+heTF56l6w6ee3Nwa84v3vSVjJ rspA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=F/qs+LSCPwQ0YY4u3MzuC5JsJS3CdAkOz+Jts2ZQv1U=; fh=2vPEtVRFZgJExMSCfX53nKBFsjiPYp/60rbGy5S5Mwo=; b=kFpRMS6NB8oAsrWLQbXjwdk2sPuPeGRX0rXNDeDMxSh5hAnphm8xz4MtlP60/RCSte r2n+BvSqGnshLtwKFIZRZiBqP2vhkby8xOMSXaFWWn62RPWdESoqsE25K6gUKRjQKwX/ e9Vzk5HhOvQBl11jywGxUXfc4CVX7vZC11az0tgsjxqEZZCeyy5a7Yg/8sILMjWjl/MJ 7XNbjh9Kkv5dcp8FYZf6R0i+HxzbwSmANuB7mZl740JP24zkJL0wqD1wC1KXGUWzPnm+ 6X1OV5Q6KdO1rohhqgdNNAWR8d+HSZuU/44trdRFahwanMudX6zl4kUyDgPHF2OMYsx7 00Gw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=N3MQxahr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::3 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c201::3]) by gmr-mx.google.com with ESMTPS id d9443c01a7336-2dd46815476si3800635ad.4.2026.09.15.02.33.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 02:33:10 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::3 as permitted sender) client-ip=2a01:111:f403:c201::3; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WM2qpnViT3tDOfzRD4znB/y7wDdFX3r5H1QZ5Fg2WixyFTV82aNxtR1aH/TxkZN1WXDY3RkWvXsya7Ib9UUfQjiZ15zS5Evbvl6dzGR8Is7Cd0ir/CNXsL3uP+s7IhUywNXcr+NrIlnygZD8meWGauUiUvFMKwBMgIznJ2hCupTYHPcVQtCDCjDYgCFMN6iENRHfIbUQBFATfW+EFk/4fAUzeWHJco3e0IBLZxUZn8oCKG3KawZRAAiA8hb0BG4XqsN/+0KscajjklqAXRLC53B5PLPKHttCg7qLFmIXOB6S270OOXPZrtZ7tM46PEHAxYpSud57Z6TCeIQdwIwN5w== 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=F/qs+LSCPwQ0YY4u3MzuC5JsJS3CdAkOz+Jts2ZQv1U=; b=mcicq58wC4RtIFp5bEysg1vdB87mH1He5B8/SuAdWzZUh2uFAvab7v4fiRi1qUfaSnQCrbanmweJdBjtISF0kyDuS+1p8KkDBnlkQlu/SrZpDOISxk2h5zvpVfAZyaDtUJ+7FoCdJdtvX5WHwkejM0nh0U46JSHx+ESMqVOiQGieTswIi8krZSbZgiPBYfxxPzwOjE9PVZhmSKHP3/llKltaGqwgEHd+quT7T+XfXr4/jRKUKbC0ydoyoIXy9Buc0JWVTEPP+gbdigmIOwT4lEIk5y2HzcoUqGseDdkcOpgcVyxoWhrqOd04DI9VPemPavDFCdLGUlYDUvB09tpYNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by AM0PR10MB3508.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:15f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.13; Tue, 15 Sep 2026 09:33:08 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%6]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 09:33:08 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 4/4] rootfs: manually purge locales instead of using localepurge Date: Tue, 15 Sep 2026 11:32:58 +0200 Message-ID: <20260915093258.1818604-5-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260915093258.1818604-1-felix.moessbauer@siemens.com> References: <20260915093258.1818604-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0089.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cd::18) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|AM0PR10MB3508:EE_ X-MS-Office365-Filtering-Correlation-Id: 6dbadbd1-a0f9-40a8-5903-08df130c59fe X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|1800799024|23010399003|366016|6133799003|56012099006|11063799006|55112099003|22082099003|18002099003|10067099003; X-Microsoft-Antispam-Message-Info: /XwNT3suQEyYz/AqsZAPKHpN3FZ6OtTjmMDvismWyWqwON0hGAskHEsM5Chi0sg5AeZhuIirhsfO1uFs4b77JsarxLM8DcrdLQNnmc343BYifrJEYZ9CzeCnww4JymolFVTBNoSkjIeEM1x93zIIRK4L69392BAwLfTn1By7tjrr0wnV9Nk2YYSShpbNMHMt3iqbVSfSSWIY6lZXC5gx+wcSmKLB5Xo2WHQS0NQ0RiMWj/KlKDoRUU5Npk/3RTrjFSfEEmufoo7xa4TSn2ztzmyRlahmF1csiDx3UojaIvmCtPzTbR5FDcAy3dYYp2+MpgK+53itkZezq2wqDAqnOWlc2tqYoVBrrd8blJIBMzNMxM5YyNo9KE/cBR6+RT89/zau0f0k3oBAnQADfeLKoO6ckqRmyfIcFxs47Ow+sFfqyE/MsvwFe31qFU6SSvyfFspvYmHnmPYhrukTLad+jQev+YBjWZU4mqJr35mSFJIyq8CUJTcN1A18nqCaJkLpkxGbgiTjcalLSrZKtxLpA73FMocDiU0QBbRcvPquFmBuX5ZTujzosxciwNqQVdoyUOt4xKmGjSDkyOz9HPUToxxGkR+uf8PeP97HXFcmSK71iv+y6ZvdqOsQtE4XfwCsNVBEzSKvrC0NF9WwkTfhCoegxaLluCUonxtm51GSqXM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(23010399003)(366016)(6133799003)(56012099006)(11063799006)(55112099003)(22082099003)(18002099003)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: tmP6QJpEFHZKVTEUnoaJTt+NeU+E5EKMrZiuow70y5yXeBB7MluUL3tgxxZct5CzpfyOV/rE9Ow2f0Ck+RmAJug9Od8E6VNBhnIyAukg3kdU/lfifndglPoqB3Wl7HDVyT0q9fO2PZo2l6uJpVVefsYZL68rh8DyF+c1nli+DCk1XdpUm29fLFbXlYOUahl+pKyWdCDF6g/sjEHr5+J4TibVGhAzT2hUjpUT8T2YC0HSHe7aYCDmeB3RmEhZnjHxgSNi8sLeOdiMaWdiA0C4VBh8Txxig8julYaCtdrwy6bRU8wBIG4kTKa4NH9qiIh1IpcgSodJ14Rl+GGkgjXOyeMJaKjgA3YeGp/2ITy1/pKFXxkoc56i9plf5gFbaEoHWnB3w0NBUx/GuK2dZ6F9wubJX7nILgIfCJEEq5B24hOzCTFc998eENdjk8SVUF6Pk1sGMYwxuzJA4NYUMUEc8wjscGEmigqOfCqTSwknGb9tOkX718EQjse7Yfk3wHpwZ71quCdwRAZsObsjyNMWNDDPOi7xMcWoJv9NI4JyorLTY2I9g/BeqnILr79F0jwaIaPcZ2tpUy0uPQpa+eiKSrxD7nvyZB0jOxN9vNcq27gX+L9lDy6DyzGEaCjh9KpgeBft8UR7KdnrL6I92s4yNkjF+AEXsihRTr3EwJjUwHQVe26/XUUEXcyig+3DLoobYT4zK1Ki9SvwlL/a1ii6hf13tgiWLWG1O10OUwDJ7y34noCzwu47Ar4MWKOZefRA6D8eDkvtMFtcubKzax1FqA3qT/pUPnaKJAYrRjN6JR3zuq7cLgtFSl8GnKtxoBWzE2TVsHUMBRVaoIKCIFZkQQu8ayPxqcG1GFmk0+4lJA7HjwHrFDMREG1aXON0+niI0kuRTNv9wUVRhhnE+nGdWIhe7TUTU9RAeKIfLXVlsst6R6BVV2oj4ACJC8XfYjdZe95OVoGOdF0vu80B2UY/1FijuxYuDVGYbpFdp8/mI/rk3BQrAkGMCGUgaGmO2U/yZk3GROEcAgUTB5ZimwOe8aHSnjDnru+mcbKjZvL+/BFzmMjkOLM42PHBTgS7KT2JrS+2liBC7bud0qDqQPeozO8SSwmbZhVtGwoZtQOcYgsKBxaYRZqVKW0BSm6LAurElIpco0IF64ctgnEr+cuM8QQM2x6EjHroQMHndyY9ufHiA8SA1DmzT7CQ2ne9wW3qUCr3QVEX106VS8Zk98zR49QynYirTigKMfyri5Cp7EvWpqMCV+9fR8lUqp7av694gWQkTVp/U8o1bFI9vnfns7n7jFTnq+OR7/RclsLn/iKBxmrgzUJ92N2H5iCJxGWcq5CeCxeppIooEQJb3BIQE/Iahaanq2KV+a+n7qbvMfppXOFbguUg1169TOVEfMLqyimpLlxCh4MNKDgi4mg6iKTzlWbSFr8XhIBDPuZ28qVSP0DDLD+aqZHcbwhrwhRq6UhIxk7TcnjJRmFzjdovmLsW1Sd3LkjN4ll+Yk90lmFzpvF0+l34YTem5UnQZHDEX5Pi1ykZUhx7UGkvwH+8E4CBUDVzoSLOWrEuv8oZaFERZLO2LbaS/T/RtkjCj7vlcPKb0wtqsOOkJpY8rmNxL3H/DE4N//oU7+Voa1NYgKpu8yYAXULKScfU59NFyN/KhL1fmYJTVrX/HS0hPoKWs5155NzCllMtw5CePDWOheE73eLvuoDk3ZeAsi1B64zwe71KjgHL1OqHLbi7K2RDcBXqYhllw/UA6fdiHojGbc3uhv2bXDHRz1EJ8WmYmRF01iIg/LH+ X-MS-Exchange-AntiSpam-MessageData-1: xSPaRbLNtJz6O2Jvcp/DIk8g0v0+vR1Sk+o= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6dbadbd1-a0f9-40a8-5903-08df130c59fe X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 09:33:08.1322 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: d5ogDtLUiD6ToHSSf3MXXFcwpLv1SVPmY6pBC4ehex0uHgysiXUQd0g58fKEwMvxfupRuPDc0vnhpg5VDZmu8ZJcidNSaKoeP/YfKMzISPE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3508 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=N3MQxahr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::3 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Using localepurge is problematic as this package first needs to be installed and later removed from the rootfs again. This is time consuming and leaves traces in the rootfs. Instead, we use a dpkg config to not extract the files belonging to locales we don't want to install. This has the additional benefit of extracting less, making the overall rootfs install faster. As we no longer install the localepurge package, less needs to be downloaded and no traces are left in the rootfs. Signed-off-by: Felix Moessbauer --- .../image-locales-extension.bbclass | 143 ++++++++++-------- 1 file changed, 79 insertions(+), 64 deletions(-) diff --git a/meta/classes-recipe/image-locales-extension.bbclass b/meta/classes-recipe/image-locales-extension.bbclass index 66f3ac8c..02e6fb19 100644 --- a/meta/classes-recipe/image-locales-extension.bbclass +++ b/meta/classes-recipe/image-locales-extension.bbclass @@ -21,84 +21,108 @@ def get_locale_gen(d, sep='\n'): for i in locale_gen.split('\\n') if i.strip()))) -def get_nopurge(d): +def get_locale_dirs(d): + # Directory names below /usr/share/locale that shall be kept, derived from + # the language and language_territory parts of LOCALE_GEN. locale_gen = d.getVar("LOCALE_GEN") or "" - return '\n'.join(sorted(set(i.strip() - for j in locale_gen.split('\\n') - if j.strip() - for i in (j.split()[0].split("_")[0], - j.split()[0].split(".")[0], - j.split()[0])))) - -ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT += "image_install_localepurge_download" -image_install_localepurge_download[weight] = "40" -image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}" -image_install_localepurge_download() { - run_privileged_heredoc <<'EOF' - set -e - ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS') if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else '')} - chroot ${ROOTFSDIR} \ - /usr/bin/apt-get ${ROOTFS_APT_ARGS} -o Debug::NoLocking=1 --download-only localepurge -EOF -} + return sorted(set(i + for j in locale_gen.split('\\n') + if j.strip() + for i in (j.split()[0].split("_")[0], + j.split()[0].split(".")[0]))) + +def get_locale_path_include(d): + lines = [] + for name in get_locale_dirs(d): + lines.append("path-include=/usr/share/locale/%s" % name) + lines.append("path-include=/usr/share/locale/%s/*" % name) + return "\n".join(lines) + +# Configure dpkg to only unpack the requested locales, so unneeded locale files +# are never installed. This runs before any package is installed into the image. +# Locale files that the bootstrap already installed are cleaned up here as well. +ROOTFS_CONFIGURE_COMMAND += "image_configure_locale_filter" +image_configure_locale_filter[weight] = "5" +image_configure_locale_filter() { + cat<<__EOF__ > ${WORKDIR}/locale.dpkg-filter +path-exclude=/usr/share/locale/* +path-include=/usr/share/locale/locale.alias +${@get_locale_path_include(d)} +__EOF__ -ROOTFS_INSTALL_COMMAND += "image_install_localepurge_install" -image_install_localepurge_install[weight] = "700" -image_install_localepurge_install[network] = "${TASK_USE_NETWORK_AND_SUDO}" -image_install_localepurge_install() { + run_privileged_heredoc <<'EOSUDO' + set -e - # Generate locale and localepurge configuration: - cat<<__EOF__ > ${WORKDIR}/locale.gen -${@get_locale_gen(d)} -__EOF__ + mkdir -p '${ROOTFSDIR}/etc/dpkg/dpkg.cfg.d' + cat '${WORKDIR}/locale.dpkg-filter' \ + > '${ROOTFSDIR}/etc/dpkg/dpkg.cfg.d/50isar-locales' + + # Drop locale files the bootstrap installed that are not requested. + if [ -d '${ROOTFSDIR}/usr/share/locale' ]; then + keep=' locale.alias ${@' '.join(get_locale_dirs(d))} ' + for entry in '${ROOTFSDIR}'/usr/share/locale/*; do + [ -e "$entry" ] || continue + name=$(basename "$entry") + case "$keep" in + *" $name "*) ;; + *) rm -rf "$entry" ;; + esac + done + fi +EOSUDO +} + +# Preseed the debconf selection and generate the requested locales up front, +# before any package is installed, so package maintainer scripts find working +# locales. +ROOTFS_CONFIGURE_COMMAND += "image_configure_locale_debconf" +image_configure_locale_debconf[weight] = "5" +image_configure_locale_debconf() { cat<<__EOF__ > ${WORKDIR}/locale.debconf locales locales/locales_to_be_generated multiselect ${@get_locale_gen(d, ', ')} locales locales/default_environment_locale select ${LOCALE_DEFAULT} +__EOF__ + cat<<__EOF__ > ${WORKDIR}/locale.gen +${@get_locale_gen(d)} __EOF__ cat<<__EOF__ > ${WORKDIR}/locale.default LANG=${LOCALE_DEFAULT} -__EOF__ - cat<<__EOF__ > ${WORKDIR}/locale.nopurge -#USE_DPKG -MANDELETE -DONTBOTHERNEWLOCALE -#SHOWFREEDSPACE -#QUICKNDIRTYCALC -#VERBOSE -${@get_nopurge(d)} __EOF__ - # Install configuration into image: run_privileged_heredoc <<'EOSUDO' set -e ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), '')} - localepurge_state='i' - if chroot '${ROOTFSDIR}' dpkg -s localepurge 2>/dev/null >&2 - then - echo 'localepurge was installed (leaving it installed later)' - else - localepurge_state='p' - echo 'localepurge was not installed (removing it later)' - # track additional packages that will be installed, as these packages might be - # in the suggested set of other packages and by that need to be explicitly removed - localepurge_pkgs=$(chroot '${ROOTFSDIR}' apt-get ${ROOTFS_APT_ARGS} -s localepurge 2>&1 | sed -n 's/^Inst \([^ ]*\) .*/\1/p') - chroot '${ROOTFSDIR}' apt-get ${ROOTFS_APT_ARGS} localepurge - fi - - cat '${WORKDIR}/locale.gen' >> '${ROOTFSDIR}/etc/locale.gen' cat '${WORKDIR}/locale.default' > '${ROOTFSDIR}/etc/default/locale' - cat '${WORKDIR}/locale.nopurge' > '${ROOTFSDIR}/etc/locale.nopurge' cat '${WORKDIR}/locale.debconf' > '${ROOTFSDIR}/tmp/locale.debconf' - # Enter image and trigger locales config and localepurge: + # Enable the requested locales by uncommenting them in /etc/locale.gen + while read -r locale; do + [ -n "$locale" ] || continue + sed -i "/$locale/s/^# *//" '${ROOTFSDIR}/etc/locale.gen' + done < '${WORKDIR}/locale.gen' + chroot '${ROOTFSDIR}' /bin/sh <<'EOSH' set -e - echo 'running locale debconf-set-selections' debconf-set-selections /tmp/locale.debconf - rm -f '/tmp/locale.debconf' + rm -f /tmp/locale.debconf +EOSH +EOSUDO +} + +# The systemd locale.conf symlink can only be created once systemd is installed. +ROOTFS_INSTALL_COMMAND += "image_configure_locales" +image_configure_locales[weight] = "100" +image_configure_locales() { + run_privileged_heredoc <<'EOSUDO' + set -e + + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), '')} + + chroot '${ROOTFSDIR}' /bin/sh <<'EOSH' + set -e SYSTEMD_VERSION=$(dpkg-query \ --showformat='${source:Upstream-Version}' \ @@ -112,15 +136,6 @@ __EOF__ echo 'reconfigure locales' dpkg-reconfigure -f noninteractive locales - - echo 'running localepurge' - localepurge EOSH - - if [ "$localepurge_state" = 'p' ] - then - echo removing localepurge... - chroot '${ROOTFSDIR}' apt-get purge --yes $localepurge_pkgs - fi EOSUDO }