From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (EUR03-VE1-obe.outbound.protection.outlook.com [40.107.5.73]) by mx.groups.io with SMTP id smtpd.web12.7539.1578645613537970065 for ; Fri, 10 Jan 2020 00:40:14 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nxp.com header.s=selector2 header.b=WWBw6bLA; spf=pass (domain: nxp.com, ip: 40.107.5.73, mailfrom: pankaj.bansal@nxp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ii5mIcAuV9CihbGzoiRjfB1/ickXd1wRGkPfiYTLwRhmQbuQ38/h1XBCUpiRHkDC9eIJ2knqcFtVkeT1FAeuTBT1rfjqhYKu39/kkexJhWspqm/2A3nNpHWMoC/2mZ2VXJFTq/wiw8urUnkADRecDRsMBg8tKhsXvSSL7RlpI0aAV76EdioSN/P3+OLJJZAxtgnD+A2Fr0S4biE+64PbWMtKyip4zbJHIWx6hnm9QuEe0gS3mtc5bRUnHuC4uQcSWgPMPFC+aeacXwkNADPOIl9yXTs7JEt8fiN0PK3gtVU2THSUvYfoq6/HbZHUtbGLs3xA2yCJEo8Zgj4b+wDbJw== 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-SenderADCheck; bh=eBpZjl2OxAtGKX8Qyfd+y2doSjVNVIURimPBHuS634c=; b=DRAz4CGWSCf4xG+tuNmsx07V/5r8Ws8tuWkgOu6Vhj0LxmVtRfRyafgNAKcqwvtA/Bd65pe81/I5q594QS6dbb6E1qf0N5CGsJ9EZ2BJsJOK9gDyTEGDhufa0QR+eYL21UxmD3fxMMIBDTJkvTJx3id8cgjh8RwXP/Rt+T8sjYzz7GrWqDMhJ9I3cCuxwkv5NF0t48DRsA/poZ55mBdvt7N5/AR/QxKyAT1zy4XmEQe/C7yqyx/V9TfWpddi0bEFMiIVT56s3SJPpWAHRhNN/9Xf6AgTowO9YcrXOuyqRnWO5fPLuqu9Fi3M9gKWU7meCO+fMT+8gpbuAjLcxN590Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eBpZjl2OxAtGKX8Qyfd+y2doSjVNVIURimPBHuS634c=; b=WWBw6bLA2Sz09fubcSGP8CEe85KWP4HGWdIRYU3xT6JKJLbG+dNUQmFyOJBZKJi3hUx50F6Ccv+vCmqD3ZYBrTjmfPm62rDbj2/KD97rTHgdt9Y92c8d+6GPi+SSvR6ipZZNotpidO+3qC/CMI/zFEATOAprFeMDIruEB0V6t5w= Received: from VI1PR0401MB2496.eurprd04.prod.outlook.com (10.168.65.10) by VI1PR0401MB2463.eurprd04.prod.outlook.com (10.168.61.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9; Fri, 10 Jan 2020 08:40:11 +0000 Received: from VI1PR0401MB2496.eurprd04.prod.outlook.com ([fe80::8823:663d:c6ed:cbd6]) by VI1PR0401MB2496.eurprd04.prod.outlook.com ([fe80::8823:663d:c6ed:cbd6%12]) with mapi id 15.20.2623.013; Fri, 10 Jan 2020 08:40:11 +0000 From: "Pankaj Bansal" To: "Feng, Bob C" , "devel@edk2.groups.io" CC: "Gao, Liming" Subject: Re: [PATCH] BaseTools: Retrieve git version info Thread-Topic: [PATCH] BaseTools: Retrieve git version info Thread-Index: AQHVw8Vzig5G4ZSN1UqM8VvoF9LNoKfh3RvwgAAPk1CAADG+0IAAAtYQgAFP7nCAACi6QA== Date: Fri, 10 Jan 2020 08:40:10 +0000 Message-ID: References: <20200105180132.23306-1-pankaj.bansal@nxp.com> <08650203BA1BD64D8AD9B6D5D74A85D1615A0A5C@SHSMSX104.ccr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D1615A135B@SHSMSX104.ccr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D1615A1AB5@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <08650203BA1BD64D8AD9B6D5D74A85D1615A1AB5@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pankaj.bansal@nxp.com; x-originating-ip: [92.120.1.71] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 20b1354a-8228-41d3-6873-08d795a8b47e x-ms-traffictypediagnostic: VI1PR0401MB2463: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 02788FF38E x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(136003)(39860400002)(346002)(376002)(396003)(366004)(199004)(189003)(13464003)(45080400002)(5660300002)(71200400001)(478600001)(316002)(66556008)(33656002)(86362001)(76116006)(66946007)(66446008)(64756008)(4326008)(110136005)(44832011)(81166006)(66476007)(81156014)(2906002)(52536014)(186003)(9686003)(53546011)(6506007)(8676002)(55016002)(26005)(7696005)(966005)(8936002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0401MB2463;H:VI1PR0401MB2496.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zooWpivyn0tjbx9GYML+70SBjSb9M89FFQGegcc0WDKYS/sHjxLMqWSHYaBrRZgAuLaQPrHkplgF80sR3Oth0PKlhbwTWLR0QaxWfKp8XNJ8I81lXNiTeRuuUfrxg5MEKATCFlc2dFk+DdkSRo9AHK55thE9NREAWEuUvDRLVTyZ1GkQ8ADW+HZT9Cjp6RymEKeQt+JmZU3Ec61cfOBvnem5SeCSXratdarn2X28oDNDRPpePiMvn3npL6wcFKsxOy/kb8jFgmmwy72NbFFExkz0TzD+c7CSYmaxjy4zcpMcBcbYIzibHsqAPZmd2s0c1KgmUtxmI2+XxK0kbPv5B+pAvv22KCDff43rfV881KxBQwolHDUObjNhsx6QYxYPGuhhu4XviFQygHfgv/t2m0pirrPjKQVcPRfRbLXeNzFK3V77C1t7GWt0wcGNNhF5dAH3CfNCc+MpufcPdBUExhGL7ttvJ8YrNydpqVaUEFHL9xW5KNeAR3dZz7Z3PzcGlQxLymmvw4CraHJpVruxDLFG1ranCRDBMHG7OtXhlF0= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20b1354a-8228-41d3-6873-08d795a8b47e X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jan 2020 08:40:11.0162 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wJ0Q9tg+ZowOxkZE0jD8zEwP6wz+xK5wJRnls3oz1FNRyTmYqjwO4B7ey/bXnz3FnybTvU9TSfyNBwolfnDRlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2463 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Bob, You are right. Ideal place for retrieving the git tag/commit info should be= a python script. That way it can be used in all build environments (linux/windows). Unfortunately I don't have much experience of python programming, which is = why I made changes in shell script. I have made these changes in such a way so as to not impact any exiting fun= ctionality and to not cause any build issues. I thought that applying these changes right now doesn't have any harm. When someday such changes are put in python script, we can remove these cha= nges from shell script. Regards, Pankaj Bansal -----Original Message----- From: Feng, Bob C =20 Sent: Friday, January 10, 2020 11:57 AM To: Pankaj Bansal ; devel@edk2.groups.io Cc: Gao, Liming Subject: RE: [PATCH] BaseTools: Retrieve git version info Hi Pankaj, With your example in previous mail, I understand the usage model. Thanks. What about adding a scripts in BaseTools/Scripts to implementing this funct= ion? I'd expect the build wrapper only have the simple logic of calling bui= ld.py. Thanks, Bob -----Original Message----- From: Pankaj Bansal [mailto:pankaj.bansal@nxp.com] Sent: Thursday, January 9, 2020 6:10 PM To: Feng, Bob C ; devel@edk2.groups.io Cc: Gao, Liming Subject: RE: [PATCH] BaseTools: Retrieve git version info Hi Bob, This OS environment variable is only defined up until the point build comma= nd is running. As soon as build command finishes, these OS environment variables also vani= sh. Regards, Pankaj Bansal -----Original Message----- From: Feng, Bob C Sent: Thursday, January 9, 2020 3:31 PM To: Pankaj Bansal ; devel@edk2.groups.io Cc: Gao, Liming Subject: RE: [PATCH] BaseTools: Retrieve git version info Hi Pankaj, I think if the firmware module need to show git version information, the ve= rsion information need to build into firmware binary but not set to OS envi= ronment variable. Thanks Bob -----Original Message----- From: Pankaj Bansal [mailto:pankaj.bansal@nxp.com] Sent: Thursday, January 9, 2020 3:09 PM To: Feng, Bob C ; devel@edk2.groups.io Cc: Gao, Liming Subject: RE: [PATCH] BaseTools: Retrieve git version info Hi Bob, Thanks for replying. Please see inline -----Original Message----- From: Feng, Bob C Sent: Thursday, January 9, 2020 11:43 AM To: Pankaj Bansal ; devel@edk2.groups.io Cc: Gao, Liming Subject: RE: [PATCH] BaseTools: Retrieve git version info Hi Pankaj, I would have some questions. Which module or tool will read WORKSPACE_GIT_= VERSION and PACKAGES_PATH_GIT_VERSION? -> Any driver or library can use this. I had tested this patch in Qemu afte= r adding these changes : index 0a1469550d..8e318f776f 100644 --- a/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c +++ b/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c @@ -18,6 +18,9 @@ #include #include +#define XPRINT(x) PRINT(x)^M +#define PRINT(x) #x^M +^M EFI_STATUS EFIAPI PlatformPeim ( @@ -98,6 +101,8 @@ PlatformPeim ( } BuildFvHob (PcdGet64 (PcdFvBaseAddress), PcdGet32 (PcdFvSize)); + DEBUG ((EFI_D_ERROR, "Edk2 version is %a\n",=20 + XPRINT(WORKSPACE_GIT_VERSION)));^M + DEBUG ((EFI_D_ERROR, "Edk2 platforms version is %a\n",=20 + XPRINT(PACKAGES_PATH_GIT_VERSION)));^M return EFI_SUCCESS; } diff --git a/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf b/ArmVirt= Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf index 46db117ac2..992e89b210 100644 --- a/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf +++ b/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf @@ -15,6 +15,10 @@ VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D PlatformPeiLib +[BuildOptions]^M + GCC:*_*_*_CC_FLAGS =3D +-DWORKSPACE_GIT_VERSION=3D"$(WORKSPACE_GIT_VERSION)"^M + GCC:*_*_*_CC_FLAGS =3D +-DPACKAGES_PATH_GIT_VERSION=3D"$(PACKAGES_PATH_GIT_VERSION)"^M +^M [Sources] PlatformPeiLib.c =20 PACKAGES_PATH can include multiple path separated by ";", looks this patch= can't handle such case. -> I did not know this information, maybe we can enhance this function for = handling ";" in PACKAGES_PATH ? I would need some time to work on it. I would really appreciate if any= body can help. Why is this function implemented in build wrapper? -> The purpose of this patch is to provide a user method to determine which= source code was booted? Or if a UEFI driver/application has been loaded in system from shell, = which was the commit version for that? This helps debugging in case we are provided logs of running system or= logs of driver/application.=20 Since a user can make a standalone driver/application using build comm= and, I added this function in build wrapper. Thanks, Bob -----Original Message----- From: Pankaj Bansal [mailto:pankaj.bansal@nxp.com] Sent: Sunday, January 5, 2020 8:41 PM To: devel@edk2.groups.io Cc: Pankaj Bansal ; Feng, Bob C ; Gao, Liming Subject: [PATCH] BaseTools: Retrieve git version info Retrieve git version info and save as environment variable These variables = can be used in modules to print the vesrion info when uefi boots. This helps in identifying the codebase from logs. Cc: Bob Feng Cc: Liming Gao Signed-off-by: Pankaj Bansal --- Notes: When i ran PatchCheck.py script on this patch i received two errors: 1. Line ending ('\n') is not CRLF 2. The commit message format is not valid: * Contributed-under! (Note: this must be removed by the code contribut= or!) =20 I have fixed the [2] but i have not fixed [1], as this file's line endi= ngs are already unix like. Please suggest if i need to change these to wind= ows like? BaseTools/BinWrappers/PosixLike/build | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/BaseTools/BinWrappers/PosixLike/build b/BaseTools/BinWrappers/= PosixLike/build index f3770eed42..f32796db5d 100755 --- a/BaseTools/BinWrappers/PosixLike/build +++ b/BaseTools/BinWrappers/PosixLike/build @@ -10,5 +10,23 @@ full_cmd=3D${BASH_SOURCE:-$0} # see https://eur01.safeli= nks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fmywiki.wooledge.org%2FBashFA= Q%2F028&data=3D02%7C01%7Cpankaj.bansal%40nxp.com%7C182153bf4eee4c093bb6= 08d795962069%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63714234433490419= 4&sdata=3DllmV5loUBDj%2Fzj71lYTUcGfITbGWe9oKh3Ks%2FXaebcA%3D&reserv= ed=3D0 for a d dir=3D$(dirname "$full_cmd") cmd=3D${full_cmd##*/} =20 +git_version() +{ + command -v git>/dev/null 2>&1 + if [ $? -eq 0 ] && [ -n "$1" ] + then + head_or_tag=3D`git -C $1 describe --always 2>/dev/null` + printf $head_or_tag + git -C $1 diff-index --ignore-submodules --exit-code HEAD>/dev/null + if [ $? -eq 1 ]; then + printf '%s' -dirty + fi + else + printf "unknown" + fi +} + +export WORKSPACE_GIT_VERSION=3D$(git_version $WORKSPACE) export=20 +PACKAGES_PATH_GIT_VERSION=3D$(git_version $PACKAGES_PATH) export PYTHONPATH=3D"$dir/../../Source/Python${PYTHONPATH:+:"$PYTHONPATH"}= " exec "${python_exe:-python}" "$dir/../../Source/Python/$cmd/$cmd.py" "$@" -- 2.17.1