From nobody Sun Feb 8 22:49:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+47572+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47572+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1568883156; cv=none; d=zoho.com; s=zohoarc; b=gSDhE5ejCloLUmo2R2QLyg+o/nyNY6zM7+5NyfQz2WJTqspfKWcAODvny9q/5kfZS9CmwATMtLqw0tWzWrc8/KeIQh/6727hafFjkSFC00V7wbjTB8PDsWPfyj62MYj33H0G4GrMjaTCbKhaHz4nOQoa1AxcMbVOaacxnYLevqo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568883156; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=hDYaJl1Y0VGva7jMudaOOfdB9d2P11wqtcwPHO60I6k=; b=WG3IoRuYdzTGyOnT1C3qLIrj9qYzbJMZrGTCFCk790NY7I08a4pzypFOrxBI8X7mmHJs2tsMe+zv53/Q7G5CtkTHY9E0Cg09w4lv4KxH3ZoaJBvdj201NzZIW4L1IMFNZPQ6OkrFfFmBtk1PVtlRCOwZc/g/NxqgLd/cLuAiCMw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47572+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1568883156155566.9301466359747; Thu, 19 Sep 2019 01:52:36 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Zs8gYY1788612xA38jXdDkPv; Thu, 19 Sep 2019 01:52:35 -0700 X-Received: from mga05.intel.com (mga05.intel.com []) by groups.io with SMTP; Thu, 19 Sep 2019 01:52:34 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Sep 2019 01:52:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,523,1559545200"; d="scan'208";a="177984982" X-Received: from unknown (HELO chingjex-MOBL.gar.corp.intel.com) ([10.5.246.26]) by orsmga007.jf.intel.com with ESMTP; 19 Sep 2019 01:52:33 -0700 From: "Cheng, Ching JenX" To: devel@edk2.groups.io Cc: Amy Chan , Bob Feng , Liming Gao , Pete Batard Subject: [edk2-devel] [PATCH v3 2/2] Add VS2019 Support on ToolSetup Batches Date: Thu, 19 Sep 2019 16:52:26 +0800 Message-Id: <20190919085226.15500-3-ching.jenx.cheng@intel.com> In-Reply-To: <20190919085226.15500-1-ching.jenx.cheng@intel.com> References: <20190919085226.15500-1-ching.jenx.cheng@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ching.jenx.cheng@intel.com X-Gm-Message-State: b90SieJBXY8yJWVRji6PYQP9x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1568883155; bh=5zk47Gw0Ykl1wVsMXjZnu38FFrRCs48EelPFDq04Jt4=; h=Cc:Date:From:Reply-To:Subject:To; b=tbSAnO2Mc1ABQY6qM4r4ckyNu5rjN3SgsyvzCxKIYfwpuZkKuqNwXSzYLoB6QyqpVYV sWjZ8yQCmYg966a7ctzn6i84OAvGO5kUzr78aDc0a7snBRk7IzxIC+FDb8QJMDY2Ez/Us h7nGBWya4GhM5lrVbPeGNe7Mi+JBnVTZwxk= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2182 Inorder to support VS2019, we add VS2019 config process in Setup Batch Files, Because VS2019 and VS2017 could using same vswhere.exe to detect the InstallationPath, So we add the -version as the parameter of vswhere to get the correct VS2017/VS2019's InstallationPath v3: In BaseTools\set_vsprefix_envs.bat, move WINSDK10_PREFIX setting into VCToolsInstallDir check condition. Cc: Amy Chan Cc: Bob Feng Cc: Liming Gao Signed-off-by: Ching JenX Cheng Reviewed-by: Liming Gao Reviewed-by: Pete Batard --- BaseTools/get_vsvars.bat | 37 ++++++++++++++++++++++++++++++------- BaseTools/set_vsprefix_envs.bat | 86 +++++++++++++++++++++++++++++++++++++= ++++++++++++++++++++++++++++++++++++------------- BaseTools/toolsetup.bat | 16 +++++++++++++--- edksetup.bat | 6 ++++-- 4 files changed, 120 insertions(+), 25 deletions(-) diff --git a/BaseTools/get_vsvars.bat b/BaseTools/get_vsvars.bat index 9f3759b2a9..3beb113be2 100644 --- a/BaseTools/get_vsvars.bat +++ b/BaseTools/get_vsvars.bat @@ -10,15 +10,21 @@ @echo off set SCRIPT_ERROR=3D0 if "%1"=3D=3D"" goto main +if /I "%1"=3D=3D"VS2019" goto VS2019Vars if /I "%1"=3D=3D"VS2017" goto VS2017Vars if /I "%1"=3D=3D"VS2015" goto VS2015Vars if /I "%1"=3D=3D"VS2013" goto VS2013Vars if /I "%1"=3D=3D"VS2012" goto VS2012Vars =20 :set_vsvars -for /f "usebackq tokens=3D1* delims=3D: " %%i in (`%*`) do ( - if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\vcvars3= 2.bat" -) +if defined VCINSTALLDIR goto :EOF + call %* > vswhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( + if /i "%%i"=3D=3D"installationPath" ( + call "%%j\VC\Auxiliary\Build\vcvars32.bat" + ) + ) + del vswhereInfo goto :EOF =20 :read_vsvars @@ -42,19 +48,36 @@ REM (Or invoke the relevant vsvars32 file beforeh= and). =20 :main if defined VCINSTALLDIR goto :done + :VS2019Vars + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools"= ( + call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -versi= on 16,17 + ) else ( + call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" -version 16,17 + ) + ) + if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( + if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" ( + call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16= ,17 + ) else ( + call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" -version 16,17 + ) + ) + if /I "%1"=3D=3D"VS2019" goto ToolNotInstall + :VS2017Vars if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" ( if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools"= ( - call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools + call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -versi= on 15,16 ) else ( - call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" + call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Instal= ler\vswhere.exe" -version 15,16 ) ) if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" ( - call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" -products Microsoft.VisualStudio.Product.BuildTools + call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15= ,16 ) else ( - call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" + call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\v= swhere.exe" -version 15,16 ) ) if /I "%1"=3D=3D"VS2017" goto ToolNotInstall diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.= bat index 81686f5b63..6dff25d930 100644 --- a/BaseTools/set_vsprefix_envs.bat +++ b/BaseTools/set_vsprefix_envs.bat @@ -3,7 +3,7 @@ @REM however it may be executed directly from the BaseTools project fold= er @REM if the file is not executed within a WORKSPACE\BaseTools folder. @REM -@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2016-2019, Intel Corporation. All rights reserved.
@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM @@ -18,6 +18,7 @@ set SCRIPT_ERROR=3D1 goto :EOF =20 :main +if /I "%1"=3D=3D"VS2019" goto SetVS2019 if /I "%1"=3D=3D"VS2017" goto SetVS2017 if /I "%1"=3D=3D"VS2015" goto SetVS2015 if /I "%1"=3D=3D"VS2013" goto SetVS2013 @@ -107,27 +108,86 @@ if defined VS140COMNTOOLS ( ) if /I "%1"=3D=3D"VS2015" goto SetWinDDK =20 +:SetVS2019 +if not defined VS160COMNTOOLS ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools"= ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > v= swhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( + if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" + ) + del vswhereInfo + ) else ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" -version 16,17 > vswhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( + if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" + ) + del vswhereInfo + ) + ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswher= e.exe" ( + if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" = -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswher= eInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( + if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" + ) + del vswhereInfo + ) else ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" = -version 16,17 > vswhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( + if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" + ) + del vswhereInfo + ) + ) else ( + if /I "%1"=3D=3D"VS2019" goto ToolNotInstall + goto SetWinDDK + ) +) + +if defined VCToolsInstallDir ( + if not defined VS2019_PREFIX ( + set "VS2019_PREFIX=3D%VCToolsInstallDir%" + ) + if not defined WINSDK10_PREFIX ( + if defined WindowsSdkVerBinPath ( + set "WINSDK10_PREFIX=3D%WindowsSdkVerBinPath%" + ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=3D%ProgramFiles(x86)%\Windows Kits\10\bin\" + ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=3D%ProgramFiles%\Windows Kits\10\bin\" + ) + ) +) + :SetVS2017 if not defined VS150COMNTOOLS ( if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" ( if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools"= ( - for /f "usebackq tokens=3D1* delims=3D: " %%i in (`"%ProgramFiles(x8= 6)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.Visu= alStudio.Product.BuildTools`) do ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > v= swhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" ) + del vswhereInfo ) else ( - for /f "usebackq tokens=3D1* delims=3D: " %%i in (`"%ProgramFiles(x8= 6)%\Microsoft Visual Studio\Installer\vswhere.exe"`) do ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.= exe" -version 15,16 > vswhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" ) + del vswhereInfo ) ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswher= e.exe" ( if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" ( - for /f "usebackq tokens=3D1* delims=3D: " %%i in (`"%ProgramFiles%\M= icrosoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStu= dio.Product.BuildTools`) do ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" = -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswher= eInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" ) + del vswhereInfo ) else ( - for /f "usebackq tokens=3D1* delims=3D: " %%i in (`"%ProgramFiles%\M= icrosoft Visual Studio\Installer\vswhere.exe"`) do ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" = -version 15,16 > vswhereInfo + for /f "usebackq tokens=3D1* delims=3D: " %%i in (vswhereInfo) do ( if /i "%%i"=3D=3D"installationPath" call "%%j\VC\Auxiliary\Build\v= cvars32.bat" ) + del vswhereInfo ) ) else ( if /I "%1"=3D=3D"VS2017" goto ToolNotInstall @@ -139,14 +199,14 @@ if defined VCToolsInstallDir ( if not defined VS2017_PREFIX ( set "VS2017_PREFIX=3D%VCToolsInstallDir%" ) -) -if not defined WINSDK10_PREFIX ( - if defined WindowsSdkVerBinPath ( - set "WINSDK10_PREFIX=3D%WindowsSdkVerBinPath%" - ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( - set "WINSDK10_PREFIX=3D%ProgramFiles(x86)%\Windows Kits\10\bin\" - ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( - set "WINSDK10_PREFIX=3D%ProgramFiles%\Windows Kits\10\bin\" + if not defined WINSDK10_PREFIX ( + if defined WindowsSdkVerBinPath ( + set "WINSDK10_PREFIX=3D%WindowsSdkVerBinPath%" + ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=3D%ProgramFiles(x86)%\Windows Kits\10\bin\" + ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=3D%ProgramFiles%\Windows Kits\10\bin\" + ) ) ) =20 diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat index 395694fa09..61ebf4ae09 100755 --- a/BaseTools/toolsetup.bat +++ b/BaseTools/toolsetup.bat @@ -3,7 +3,7 @@ @REM however it may be executed directly from the BaseTools project fold= er @REM if the file is not executed within a WORKSPACE\BaseTools folder. @REM -@REM Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
@REM (C) Copyright 2016 Hewlett Packard Enterprise Development LP
@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @@ -42,6 +42,12 @@ if /I "%1"=3D=3D"/?" goto Usage set FORCE_REBUILD=3DTRUE goto loop ) + if /I "%1"=3D=3D"VS2019" ( + shift + set VS2019=3DTRUE + set VSTool=3DVS2019 + goto loop + ) if /I "%1"=3D=3D"VS2017" ( shift set VS2017=3DTRUE @@ -176,7 +182,9 @@ IF NOT exist "%EDK_TOOLS_PATH%\set_vsprefix_envs.bat" ( @echo. goto end ) -if defined VS2017 ( +if defined VS2019 ( + call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2019 +) else if defined VS2017 ( call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2017 ) else if defined VS2015 ( call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2015 @@ -444,7 +452,7 @@ goto end =20 :Usage @echo. - echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | For= ceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2017] [VS2015]= [VS2013] [VS2012]" + echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | For= ceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2019] [VS2017]= [VS2015] [VS2013] [VS2012]" @echo. @echo base_tools_path BaseTools project path, BASE_TOOLS_PATH = will be set to this path. @echo edk_tools_path EDK_TOOLS_PATH will be set to this path. @@ -457,12 +465,14 @@ goto end @echo VS2013 Set the env for VS2013 build. @echo VS2015 Set the env for VS2015 build. @echo VS2017 Set the env for VS2017 build. + @echo VS2019 Set the env for VS2019 build. @echo. =20 :end set REBUILD=3D set FORCE_REBUILD=3D set RECONFIG=3D +set VS2019=3D set VS2017=3D set VS2015=3D set VS2013=3D diff --git a/edksetup.bat b/edksetup.bat index 5f6028deff..024f57a4b7 100755 --- a/edksetup.bat +++ b/edksetup.bat @@ -1,7 +1,7 @@ @REM @file @REM Windows batch file to setup a WORKSPACE environment @REM -@REM Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
@REM (C) Copyright 2016 Hewlett Packard Enterprise Development LP
@REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM @@ -133,6 +133,7 @@ if defined CYGWIN_HOME ( :cygwin_done if /I "%1"=3D=3D"Rebuild" shift if /I "%1"=3D=3D"ForceRebuild" shift +if /I "%1"=3D=3D"VS2019" shift if /I "%1"=3D=3D"VS2017" shift if /I "%1"=3D=3D"VS2015" shift if /I "%1"=3D=3D"VS2013" shift @@ -141,7 +142,7 @@ if "%1"=3D=3D"" goto end =20 :Usage @echo. - @echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Re= build] [ForceRebuild] [VS2017] [VS2015] [VS2013] [VS2012]" + @echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Re= build] [ForceRebuild] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012]" @echo. @echo Reconfig Reinstall target.txt, tools_def.txt and bui= ld_rule.txt. @echo Rebuild Perform incremental rebuild of BaseTools bi= naries. @@ -150,6 +151,7 @@ if "%1"=3D=3D"" goto end @echo VS2013 Set the env for VS2013 build. @echo VS2015 Set the env for VS2015 build. @echo VS2017 Set the env for VS2017 build. + @echo VS2019 Set the env for VS2019 build. @echo. @echo Note that target.template, tools_def.template and build_rules.tem= plate @echo will only be copied to target.txt, tools_def.txt and build_rule.t= xt --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47572): https://edk2.groups.io/g/devel/message/47572 Mute This Topic: https://groups.io/mt/34197618/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-