From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CAN01-YQB-obe.outbound.protection.outlook.com (mail-yqbcan01on2112.outbound.protection.outlook.com [40.107.116.112]) by sourceware.org (Postfix) with ESMTPS id 7873B385840C for ; Tue, 12 Mar 2024 16:00:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7873B385840C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7873B385840C Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.116.112 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1710259237; cv=pass; b=ZUv/UXUmzGZoYU/TOia5BtnIGuqqy30kTNcjBfjnl+OCUusZ5btn1ennH5h/r8BgvGd0E0NXYvFSMaajy86usbCKLZ82gsRdB60IjFaUJ2S7L5Q0cVpme7HTT8Tnt69Ns6kvlSpvQoTA4zZLTyCL6Q56l5x8QYTayPfDgscDB3Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1710259237; c=relaxed/simple; bh=ytK491rZVb52XoAJwGZc390/kT1jUJeS6TZ3gyiQ0oE=; h=DKIM-Signature:Message-ID:Date:From:Subject:To:MIME-Version; b=fsiFfHMUsQuf0x5V+Jo55vkJSZjAgDdUF/fSF8YLOrgmAW+M5bfR5MIqIXxuGUs1bJ3mgyFBhGecv478hsUnwC9FPQH0VL63ni2VauZn0Vx5JiKlyLpbDae6YtxBuDKIYDYcZfvay4jilYo6Dwkk1dz5k2TKQe2rmJQCc+EXULI= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RCkG9gmgU2t9nPcVjm7Rfe6VZ7j2OF77H2epmnEKpfvmx6fjzr07A2lJ1LBJH6aWriB5bvoJBwwyTu9kETvzjnf6eRiODxaH38vRzNXQDZ3OpNWvTafFpHpU35k6eDxokBtkNhfo3c/0fwCwLI8Xz03SFK+Z3Ow9rWrN/cex7Nl/erYIE1ZEoRueuVr8HjcBd8GQwEYGznxUf4TpUV2QjKQIXzt7uohyRrICUieO8K9YyNEfTU82MU2zitCWHCNc4fiRnfnYWzf4D1HRk8LSa6wo1agaizCc1P3DVfA5gV3AEMYcqeiYRqjCyzYopgfY2YICvPC7UiZsmdbtEdZPhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=3wAhZj1wskoqm14uOZR/H6p25vh/MzcNfJE1PJyxIWc=; b=Nc399UiqldbLA5xxIevj+oAA5cdB/VTwXrw+bR4xeK3C3lpTEvL442iBc5r1dmeonGbwu3XC5fcPkvinxosLBfiPuKaKtQSX/Fq2gGyeZrsybygOpwLqkSUGTC0V2VOKzFwXXeUxIDqJkxXNdL96F9KlHO2y/CG3c/jvuSA+lPngzk6mEU+0toPiUb6dKA9Xx7S1nP66GtITZ1gHOr2dqVtiCgEMYqLjc2p0oXXAeFD/9+nMSJy2HEQ1vJletGbleLFLCMe+3+8UId1KLCuSErkFLxpC96F4/HblnPF6pTZQuDCiNShHBUFftRKw14M1P8ZkoaXPwEDi5bqgx2xCkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3wAhZj1wskoqm14uOZR/H6p25vh/MzcNfJE1PJyxIWc=; b=IaIj7qw3lvEEsGeVuiWM+GVFbhZ+vi3aie7WMXFoUd73piIsGsL9Pqsf1OYXV4qC2kbi1vcAwTFFZ47LLFo93BDBX0Y9SsGIe+IdUCpT1RjiVNBDMGUbsVwqOrwaiyWpktpj2MBoYC/B2k9C4P+d/bwaEUWcWNONtJtPaxf2VRRtVrbyD7DjjUBmYi2Bu6uPOjIPP1ioj9x6nyNe2tZTuSd4isX1uED1RERB6MF+Ozwaj9I4rwygL7YXMA3n0iZYrR88jyu6ZG4jE4cGjq/mb1lg+UocHHHXzlBSIJk73CElvf5uKpnhNFMjF1Lb7oyUE6ePGRca9/DYCzak+vXnDg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) by YQXPR01MB6041.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:3e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 16:00:32 +0000 Received: from YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1]) by YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM ([fe80::3f0e:8077:5724:81b1%5]) with mapi id 15.20.7386.015; Tue, 12 Mar 2024 16:00:32 +0000 Message-ID: <75976ed0-ecfc-4abc-9ce7-3188059d4169@efficios.com> Date: Tue, 12 Mar 2024 12:00:30 -0400 User-Agent: Mozilla Thunderbird From: Simon Marchi Subject: Re: [PATCH 2/8] autoregen.py: fix a pyright `reportConstantRedefinition` warning To: =?UTF-8?Q?Arsen_Arsenovi=C4=87?= References: <20240311190341.235331-1-simon.marchi@efficios.com> <20240311190341.235331-3-simon.marchi@efficios.com> <871q8f7jx5.fsf@aarsen.me> Content-Language: fr Cc: buildbot@sourceware.org In-Reply-To: <871q8f7jx5.fsf@aarsen.me> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YQBPR0101CA0053.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:1::30) To YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5520:EE_|YQXPR01MB6041:EE_ X-MS-Office365-Filtering-Correlation-Id: 7680391c-bda1-42cc-6850-08dc42ad8b9d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MIi7GZ1td+gKUeeJesi+DbEVf1dvbx1aaom22InZN1dra2z/ALiLzttikNTzHv3oh6PIAx4ucTaarVBGEL1TwT0q9ZYmMcXGLZ+D3sPFxK3ou/W9ASX+pKAer4lRIeXwzML04W2sRiGPhcN0WX2o4o1csqR95DqCAGfJMzyvi8nRI/su1xdvQUzuVSvEKRboxkvcRy77mO7x1i+JQidtbSNwYCp9VVR0jWwImApejpknYEOyRXc083RitHLW1zOwBwYBzpyzFQZWyNHJvyTwspaqjQv8VR3LOBs3oir9Yw9riINt6pPy1pG67UR5IoymuA4LbZfjoS4a9dem0VL0A8X/oc7gwTEMLHzN/s81v/7eZ/w4TERuOdm6+LI3gZahLSREstegCYDnMVXtG91UQH1uHHbnr/B/jkuoVfCHsuu7mgPWxetA+1cIZIRVLfRItIQCRZ672H/61Ls1FihRq2Ny3UKul5/JROgm60NMHSX3XUAprPm4us6rSRFBbPWy3JcbxmBMpahl+w7HN+Q/yCS7Sd9fi7c8GmpfRVhIEnTgQF2E/d4r3eNrQ+DGn/Cu35e2Weh39njj8tRFwEi584INVSRiJ3Q4wlO3uHo5C/6ZNXtcsUdLKb28lKhv+yuWQt+3oXzQ6BQU3zCCv7oN4kZBZbzud1iClkwZFP1nQlo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkhFQ2dLSEJ2cXdBYkVQbmlSUWswK3pIWUY4M0d0OXRrQmRFTFRML2pyNWtn?= =?utf-8?B?TTJxQjVLV2dBL3pMSld4MHp2dUR1dHFCN0F5M21DU0Mvdm1Ocm5SMllxMGli?= =?utf-8?B?SzVnODlZbE5ad3NSdG5XSEhua3VXa3NlU0RySUo1aWlUenk2N2dOSTc4Q2xF?= =?utf-8?B?T2IwSTl3dnl1Rnd1c1oxK3kxcC9qelBVMzlPVVFkemZhUlZZbTI4T1FrcnNZ?= =?utf-8?B?TkV4cXBMd1VueCtvOGdMVUh0TzF1a2l1MWZMZlh2Lzhkem10cCt2SXZBZ29u?= =?utf-8?B?WThLNWFVaURBOCtlR08vWVdkb0JRNGxBSEVaNi9lcGtOTm9BZmQvbEJuTjhk?= =?utf-8?B?VGdHLzVQa1ZNbXlva1ZMZWFvTmp6MlNKVVNMOENnUDVQdTFzdFd1SXZTV1RF?= =?utf-8?B?SVN2RDI2eDhUdXc1QVdYTlBJa0NleUo3d201TkFoZVl6dlJaZFI1SU9QSHZ5?= =?utf-8?B?SDBKbmVpczY2ZnlwTG5tNWsvQjBzOHpZL2dISEtvdlFmZ1paTCs4d1d4SXZn?= =?utf-8?B?RHU0ZU9seWhrNXlOem5XQnVUWVhrZHFiN0tSNHhCVTRGeVpmOGtVdG5Eb0pV?= =?utf-8?B?RFQ0Tm53VzcxSVN3MjRZUTFpYkJVaU1PL0hvTTlYQ1kvL1YvZlpDeGJLQkNM?= =?utf-8?B?QldMdmk3blhidGF3NzltZUovQXYxZE1BTVVzaGxQSUdkZllpSFZvMjRmZmRD?= =?utf-8?B?b3M3MzhNckd1Q1k3M05mNlZWbUdUUmM4a3VRWnY1a0RpQVdURDlGZUUzU04w?= =?utf-8?B?Y1dpV2RUa0o3d3Rrc09YTmV0SVArcTNMMmNBVkFLZmgxczNmK2piYllaL1Bu?= =?utf-8?B?eWtGSE1NQ1VnVGl1R05TMXlsUHkyc1UvdEZ0aW55Wm1DaHoxQUNrSzh0TE1q?= =?utf-8?B?eFhuNWc4eVNCaEhsdk9neSt0NUdlcy9sMVZNd3JTRW1Mb2g2ZFRhRVdVTlRl?= =?utf-8?B?Rmp2a0d3dDZBZzVNeXNMbkczaGR0QzNxVEhXZjNIOFI2VGZCSVVaa29WVUZW?= =?utf-8?B?dFdHaU03K2diN3BjS0JPb2srcjNWS1BGV2R6ZW1hazNJeGZwaHlDME9wMmVR?= =?utf-8?B?TTI2UUcrNkNINzhmRHZCVW1VQ1R3T3BsdWpoMmphUFZKb3pVUWpwYWtOc1hL?= =?utf-8?B?WFpzbTJSZ0lGa3FhM1E2OTlvS0EyblRuVWc1NmQwYmUyaU5TRTdnTXNRa0dG?= =?utf-8?B?L1VqcXQ5NXVRT3JjOVUwcndTSEs4N2xNQ2cyazJjdnZDYkZFZ000UlJYY2R1?= =?utf-8?B?SER0ZVhYOGFGTWl2QjkrYXFYRWYwbnRGb3lhaHUxVGo4K04vYlVuRlBFNzRJ?= =?utf-8?B?VXJuL0VqNTBDSmRVaHJDYzNTbjEzT2t2N1FqR3NVNG5kdHVOQWJpQmlNaHlO?= =?utf-8?B?S2ZFNVc4c0V0b1dWS1g3aUZ1MjhWMnc4eThiTXU1Rk9NUncySk1WQm82SUJt?= =?utf-8?B?NENiUmh6ZTBXanJnRzg0MGdIRDlRRFZVNkJpQ25PNTlJREtOV3NXNC8vY0N5?= =?utf-8?B?eTQrK3RMblp5VTl0c1RpOWVYVmQ3b0hCN1gwaEsreVVndzFMZ1pWSEljdzlC?= =?utf-8?B?cTZPQ29pamVxemxZbEgvRGtDK0NIc1FoUmNRU2s3RHNMMnR4UzlMcmhPYmhC?= =?utf-8?B?OWZVVEsxWTdrdC9idlk1YnAwOThHUDZta2QzbW9qL1FmbjlTaUdjUjNGeDZ1?= =?utf-8?B?NE1jOUp3RHZFR1pkay9PeTk5RzdOWXZvVERkQXhHUE8wL0doOW9PMjV4bTdl?= =?utf-8?B?WG9DSitsOW5hQ0oxbytRaGxaV3Mya0NIaXBrTGJYSjk3M1NzTkRSSVFkeEw0?= =?utf-8?B?WkVoa3V3MnZya0haZE9uRm0xQ1ZFclZlcXN0RENTNUVPNHpKVXdYb1ducjFP?= =?utf-8?B?VnVOdFRLZG1DZlIwaUhzQlpjUFAxUmtlcjhybWZ0TkhTcXZJTXcvREJsYWs2?= =?utf-8?B?ZXE3T0g4V21vTFBvUWJZZDVDZy9WTkV5UDZ0NS96M3g5NS9NNkhyTzZzK3E3?= =?utf-8?B?OEV0dUtNSnNwcXJYYWFXNjBUYkJxaEljWnNOVjRaMkwrN3NDbWFObFlteXIx?= =?utf-8?B?b3dUTXBrTnc5Ti9OaE9YVXVxd3FtRUhGY1o4ckxMME5qY1FtbkJ5ekwzN29I?= =?utf-8?Q?D5S6XH0CcWktEU/ktC05Do011?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7680391c-bda1-42cc-6850-08dc42ad8b9d X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5520.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 16:00:32.0340 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nkx5LvN9sBP2Q+01wDfi12Y+NB9JbDIhUV/1nc944PwydvtWzxqPLCfT54j661YIUnp1ZW5hmHctFCrtZBusWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQXPR01MB6041 X-Spam-Status: No, score=-3038.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 3/12/24 07:39, Arsen Arsenović wrote: > Hi, > > Simon Marchi writes: > >> Not a big deal, and this is certainly opinionated, but pyright tells me: >> >> /home/smarchi/src/builder/builder/containers/autoregen.py >> /home/smarchi/src/builder/builder/containers/autoregen.py:24:1 - error: "ENV" is constant (because it is uppercase) and cannot be redefined (reportConstantRedefinition) >> >> Switch to a syntax that avoids redefinition of the variable. >> --- >> builder/containers/autoregen.py | 15 +++++++++------ >> 1 file changed, 9 insertions(+), 6 deletions(-) >> >> diff --git a/builder/containers/autoregen.py b/builder/containers/autoregen.py >> index 861a2ce79ef5..feee5878cac7 100755 >> --- a/builder/containers/autoregen.py >> +++ b/builder/containers/autoregen.py >> @@ -21,12 +21,15 @@ AUTOHEADER_BIN = next(name for name in autoheader_names if shutil.which(name)) >> >> # autoconf-wrapper and automake-wrapper from Gentoo look at this environment variable. >> # It's harmless to set it on other systems though. >> -ENV = f'WANT_AUTOCONF={AUTOCONF_BIN.split("-", 1)[1]} ' >> -ENV += f'WANT_AUTOMAKE={AUTOMAKE_BIN.split("-", 1)[1]} ' >> - >> -ENV += f" AUTOCONF={AUTOCONF_BIN} " >> -ENV += f" ACLOCAL={ACLOCAL_BIN} " >> -ENV += f" AUTOMAKE={AUTOMAKE_BIN}" >> +ENV = " ".join( >> + ( >> + f'WANT_AUTOCONF={AUTOCONF_BIN.split("-", 1)[1]}', >> + f'WANT_AUTOMAKE={AUTOMAKE_BIN.split("-", 1)[1]}', >> + f"AUTOCONF={AUTOCONF_BIN}", >> + f"ACLOCAL={ACLOCAL_BIN}", >> + f"AUTOMAKE={AUTOMAKE_BIN}", >> + ) >> +) > > This is somewhat unimportant, but the following is also valid Python: > ENV = ( > f'WANT_AUTOCONF={AUTOCONF_BIN.split("-", 1)[1]} ' > f'WANT_AUTOMAKE={AUTOMAKE_BIN.split("-", 1)[1]} ' > f"AUTOCONF={AUTOCONF_BIN} " > f"ACLOCAL={ACLOCAL_BIN} " > f"AUTOMAKE={AUTOMAKE_BIN}" > ) Personal preference, I prefer to use " ".join instead of embedding the space in all but the last element. > More importantly, we should maybe use shlex or such due to potential > spaces in here? (not that whatever is invoked by this script won't > break with those..) For now, the values the _BIN variables can have are known not to contain spaces, they come from the _NAME arrays. > Though, if I am correct, we could also just use subprocess.runs env= > parameter to put up a modified env. Yeah that makes more sense. See patch below that implements this. >From bf7ce70b29f662c48281ce031f10adcb16e53898 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 12 Mar 2024 11:49:35 -0400 Subject: [PATCH] autoregen.py: pass environment through subprocess.run's env parameter Arsen pointed out that a better way to pass the environment to the subprocess (one that is not vulnerable to space splitting, for instance) is to use subprocess.run's env parameter. - Define a new EXTRA_ENV dict with the environment variables we want to add to the current process' environment, when running subprocesses - Copy the current process' environment into ENV - Augment ENV with EXTRA_ENV - Use EXTRA_ENV when logging the environment variables --- builder/containers/autoregen.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/builder/containers/autoregen.py b/builder/containers/autoregen.py index ac16f54f6caa..8afc168ea811 100755 --- a/builder/containers/autoregen.py +++ b/builder/containers/autoregen.py @@ -22,15 +22,15 @@ AUTOHEADER_BIN = next(name for name in AUTOHEADER_NAMES if shutil.which(name)) # autoconf-wrapper and automake-wrapper from Gentoo look at this environment variable. # It's harmless to set it on other systems though. -ENV = " ".join( - ( - f'WANT_AUTOCONF={AUTOCONF_BIN.split("-", 1)[1] if "-" in AUTOCONF_BIN else ""}', - f'WANT_AUTOMAKE={AUTOMAKE_BIN.split("-", 1)[1] if "-" in AUTOMAKE_BIN else ""}', - f"AUTOCONF={AUTOCONF_BIN}", - f"ACLOCAL={ACLOCAL_BIN}", - f"AUTOMAKE={AUTOMAKE_BIN}", - ) -) +EXTRA_ENV = { + "WANT_AUTOCONF": AUTOCONF_BIN.split("-", 1)[1] if "-" in AUTOCONF_BIN else "", + "WANT_AUTOMAKE": AUTOMAKE_BIN.split("-", 1)[1] if "-" in AUTOMAKE_BIN else "", + "AUTOCONF": AUTOCONF_BIN, + "ACLOCAL": ACLOCAL_BIN, + "AUTOMAKE": AUTOMAKE_BIN, +} +ENV = os.environ.copy() +ENV.update(EXTRA_ENV) # Directories we should skip entirely because they're vendored or have different @@ -48,11 +48,12 @@ SKIP_DIRS = [ def run_shell(cmd: str): print(f"+ {cmd}") res = subprocess.run( - f"{ENV} {cmd}", + f"{cmd}", shell=True, encoding="utf8", stdout=sys.stdout, stderr=sys.stderr, + env=ENV, ) res.check_returncode() @@ -62,7 +63,7 @@ run_shell(f"{AUTOMAKE_BIN} --version") run_shell(f"{ACLOCAL_BIN} --version") run_shell(f"{AUTOHEADER_BIN} --version") -print(f"Environment: {ENV}") +print(f"Extra environment: {EXTRA_ENV}") config_folders: list[Path] = [] base-commit: 3e013842366735c373ef19ec6dfc4a33d6f9c473 -- 2.44.0