From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (EUR04-VI1-obe.outbound.protection.outlook.com [40.107.8.74]) by mx.groups.io with SMTP id smtpd.web11.6796.1578564615078787058 for ; Thu, 09 Jan 2020 02:10:15 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nxp.com header.s=selector2 header.b=S7rofSJc; spf=pass (domain: nxp.com, ip: 40.107.8.74, mailfrom: pankaj.bansal@nxp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A11Jr92u6vXZ2YDpeh4useod7dnt2isQsCXiwz6eXo7X/faXgMrJv/xl+I9v8Cewp2Gp7JmhAOIk5+kCkDfoyYM11LEYlFtXJR1xSgxkuUvIQzOMfJ+VfyF8Gt4DTnfadebapDcL1c7r7vVpR+pd2RU5YbjS4/k8bVCHDOUs/MovtBLhDkA8DkoHp/cM6K0Rr44Q74UBvIRJdpLo7VEhSrbXwT2aqE0WiwR2I2OEvZUgcbBo1yMolbZI+FALeBXqO3Gh1tNt1G0VVL/fDQ6FlB8aZrLFwHyzGCBci9eTUriUSZn46PP2VHDnsLQCw2Nh7e+7mCI8QlDW1/WxFWWLHw== 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=sOe532+yI4FWprsuZfGkaP1UTLvuZ3NLwl3CxwwIu1k=; b=l3yCy1WLLFFRNIj/imSVP63LXi/6iKD5HrSSrX7KHuoVzCFXQu7Ui+vyD+wgyHjPOA7cWv7e5VNsxfIFpPKxBz3v+ZE04ipmc4cpqJeKllAMsKdEKTUeyA9ZI4hIFL/cK5d8EYK9ayLOVp7BYBrq4WN0WcFlyyiOuJYpt+T+5npuK1bM57bfUh0QrQ0Ax95giEezayT/8yqqg0Uk6aQuFO58KT/FDODAo31ST2RVC9JW7SusBHwuEEINJqwQ3L4Ueyjq1KZ751vD//FJdv+BPCGLCBz/0Sd2Jd1f4n7gYvE0wKt+eDCLZur7FMmVhtMbV2si5lcvhG2HBgPeWf7IiA== 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=sOe532+yI4FWprsuZfGkaP1UTLvuZ3NLwl3CxwwIu1k=; b=S7rofSJcQRVgZ/g2AFoFHBKuNWD6/ql1GzCg8inECbsHTnF/TIMxlFUG45QRypy7qxu1Y9ElMRQKufZDxwA68Uw+YkxHLZ3kmj9Dfni3WFjg4aRzZnNUzkTPBe9hoGqC3prVHUFK+cHRKi4WUsCZJDIPXFUGOHT+O1C78AUH5DE= Received: from VI1PR0401MB2496.eurprd04.prod.outlook.com (10.168.65.10) by VI1PR0401MB2592.eurprd04.prod.outlook.com (10.168.65.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.10; Thu, 9 Jan 2020 10:10:12 +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.010; Thu, 9 Jan 2020 10:10:12 +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+0IAAAtYQ Date: Thu, 9 Jan 2020 10:10:12 +0000 Message-ID: References: <20200105180132.23306-1-pankaj.bansal@nxp.com> <08650203BA1BD64D8AD9B6D5D74A85D1615A0A5C@SHSMSX104.ccr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D1615A135B@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <08650203BA1BD64D8AD9B6D5D74A85D1615A135B@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.70] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: f85449fb-9d6e-4e41-9645-08d794ec1dc0 x-ms-traffictypediagnostic: VI1PR0401MB2592: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 02778BF158 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(396003)(39860400002)(136003)(366004)(346002)(376002)(13464003)(189003)(199004)(76116006)(2906002)(86362001)(4326008)(81166006)(8676002)(81156014)(110136005)(5660300002)(64756008)(66946007)(66556008)(66476007)(53546011)(186003)(26005)(6506007)(66446008)(9686003)(45080400002)(966005)(7696005)(316002)(55016002)(52536014)(478600001)(71200400001)(44832011)(33656002)(8936002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0401MB2592;H:VI1PR0401MB2496.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A: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: yAq6SQsKIbpXjxAT+Hts/fUWgvBQYPPqfxbhKYG55VEPXvmtLf91PT2QNld9zkdnN9o94CfS5WDpYz/sP/4vlAf+yJGYwMeKIkIgtslp9W8sdNNclLRmTSEbKsDtwzS1NU2nSCTPeMK2pHCwcMeqfyrs4xHwwRJldcCy7pMHK92MNuKVGQguAHXcTUyXdc36jHu5OSGm5c+4tzC4ehDBmqcux/3k/1q/VdnrvowJBQxPLKRQJaMsNyzEnfftIrfRlTSk35eH+ryefyn0Kwg8LL5W5WubYfOgfTP1owiNZkJdEFaH6OxvNR5RFR9rklLsYIlYzNsiC7zrOQv2UawpihNGR7dcx7LbeDY15TiFdDdVZqeSl48o1iEdbEWyb4hHXY5cztTrf0xCK3g+3vbglGE9bP6NTPQ9J0sMk5pkaXRJQR2vyWqEp5zicd2qKXh6FZn2v3zJTb/ScbVyrnRmk6pdS53mPr3jjRhgrUx/uKIIhF4bWnvhSRKa+USqDI8b5BysvcI1dra1bf7CBHGbtIcEgx2yn198l3vFUXG8m8TsmYb5NUXBb1N02j8phDWj x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f85449fb-9d6e-4e41-9645-08d794ec1dc0 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2020 10:10:12.7978 (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: OVikmgBZ5ScbnNpqntbQ+mw0yjd8tpQBo1HvzhIrj0qvoaCYIkYUBO+dECMIB2iLCvObT7/gfZgOth4dgvMTsw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2592 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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 =20 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%7C19b30bd4b7a842b5bcab= 08d794eae947%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63714160897548725= 3&sdata=3Dqq%2FYPydngaQUjvinGG5I46VRT4EMXH3j4tcIntBCBGI%3D&reserved= =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