From c217f31d0bd59a9d63787a40b1995b08c8dc683b Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Mon, 23 May 2022 13:12:28 -0600 Subject: payloads/tianocore: Fix unclean working directory detection After commit ae48b42683 (payloads/tianocore: Init submodules), Tianocore's Makefile no longer detects an unclean working directory and thus always performs a `git checkout`, overwriting any uncommited changes made in the cloned sources. The change of "clean" to "dirty" effectively inverts the logic of the if-else condition, which would normally swap the two possible code paths of the branch. However, since `git status` outputs multiple lines, most of which do not contain "clean", the -v option (select non-matching lines) causes grep to always match at least 1 line and thus return success. This causes the if-else branch containing the `git checkout` to always be taken regardless of the state of the working tree, masking the issue of the inverted logic. Removing the -v option addresses both of these issues and restores the intended behavior of the if-else block. TEST: 1) Build coreboot successfully with the Tianocore UefiPayloadPkg option. 2) Make a change in the cloned Tianocore sources that results in an unclean working directory and check for the "Working directory not clean" message when building coreboot. Change-Id: Icd4952b40c147d0fba676089ced5a8b59b93ad50 Signed-off-by: Nicholas Chin Reviewed-on: https://review.coreboot.org/c/coreboot/+/64608 Tested-by: build bot (Jenkins) Reviewed-by: Martin L Roth --- payloads/external/tianocore/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'payloads') diff --git a/payloads/external/tianocore/Makefile b/payloads/external/tianocore/Makefile index 405af72f9dfa..e60a27938ae3 100644 --- a/payloads/external/tianocore/Makefile +++ b/payloads/external/tianocore/Makefile @@ -100,7 +100,7 @@ update: $(project_dir) echo " $(CONFIG_TIANOCORE_TAG_OR_REV) is not a valid git reference"; \ exit 1; \ fi; \ - if git status --ignore-submodules=dirty | grep -qv clean; then \ + if git status --ignore-submodules=dirty | grep -q clean; then \ echo " Checking out $(project_name) revision $(CONFIG_TIANOCORE_TAG_OR_REV)"; \ git checkout --detach $(CONFIG_TIANOCORE_TAG_OR_REV) -f; \ else \ -- cgit v1.2.3