Werner Zeh has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/36750 )
Change subject: payloads/external/GRUB2: Check for existing grub2 directory ......................................................................
payloads/external/GRUB2: Check for existing grub2 directory
When 'make clean' is executed and there is no source code cloned for GRUB2 in payloads/external/GRUB2/grub2 (so GRUB2 has never been used on this tree) an error message is thrown: "fatal: cannot change to 'grub2': No such file or directory"
This error happens when there is no grub2 directory and is caused by line 20 in payloads/external/GRUB2/Makefile where a shell command is used to check the state of the git repo for grub2. Thought the target for this code (checkout) is not executed by 'make clean' the shell evaluates the command as part of the Makefile sourcing and encounters a missing directory.
This patch fixes this error by checking for the project directory before the git status of the repo is evaluated.
Change-Id: Ieaa919e1ee5ec2a1ec3c840fa07a6ec16d230e88 Signed-off-by: Werner Zeh werner.zeh@siemens.com --- M payloads/external/GRUB2/Makefile 1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/36750/1
diff --git a/payloads/external/GRUB2/Makefile b/payloads/external/GRUB2/Makefile index 20afdc3..f13c128 100644 --- a/payloads/external/GRUB2/Makefile +++ b/payloads/external/GRUB2/Makefile @@ -17,7 +17,8 @@ echo " GIT GRUB2 $(NAME-y)" test -d $(project_dir) || git clone $(project_git_repo) $(project_dir) git -C $(project_dir) fetch -ifeq ("$(shell git -C $(project_dir) status --ignored=no --untracked-files=no --porcelain)",) +ifeq ("$(shell test -d $(project_dir) && \ + (git -C $(project_dir) status --ignored=no --untracked-files=no --porcelain))",) git -C $(project_dir) checkout -f $(TAG-y) else echo "WARNING: index/tree not clean, skipping update / force checkout."
Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36750 )
Change subject: payloads/external/GRUB2: Check for existing grub2 directory ......................................................................
Patch Set 1: Code-Review+2
Patrick Georgi has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/36750 )
Change subject: payloads/external/GRUB2: Check for existing grub2 directory ......................................................................
Patch Set 1: Code-Review+2
Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/36750 )
Change subject: payloads/external/GRUB2: Check for existing grub2 directory ......................................................................
payloads/external/GRUB2: Check for existing grub2 directory
When 'make clean' is executed and there is no source code cloned for GRUB2 in payloads/external/GRUB2/grub2 (so GRUB2 has never been used on this tree) an error message is thrown: "fatal: cannot change to 'grub2': No such file or directory"
This error happens when there is no grub2 directory and is caused by line 20 in payloads/external/GRUB2/Makefile where a shell command is used to check the state of the git repo for grub2. Thought the target for this code (checkout) is not executed by 'make clean' the shell evaluates the command as part of the Makefile sourcing and encounters a missing directory.
This patch fixes this error by checking for the project directory before the git status of the repo is evaluated.
Change-Id: Ieaa919e1ee5ec2a1ec3c840fa07a6ec16d230e88 Signed-off-by: Werner Zeh werner.zeh@siemens.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/36750 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Michael Niewöhner Reviewed-by: Patrick Georgi pgeorgi@google.com --- M payloads/external/GRUB2/Makefile 1 file changed, 2 insertions(+), 1 deletion(-)
Approvals: build bot (Jenkins): Verified Patrick Georgi: Looks good to me, approved Michael Niewöhner: Looks good to me, approved
diff --git a/payloads/external/GRUB2/Makefile b/payloads/external/GRUB2/Makefile index 20afdc3..f13c128 100644 --- a/payloads/external/GRUB2/Makefile +++ b/payloads/external/GRUB2/Makefile @@ -17,7 +17,8 @@ echo " GIT GRUB2 $(NAME-y)" test -d $(project_dir) || git clone $(project_git_repo) $(project_dir) git -C $(project_dir) fetch -ifeq ("$(shell git -C $(project_dir) status --ignored=no --untracked-files=no --porcelain)",) +ifeq ("$(shell test -d $(project_dir) && \ + (git -C $(project_dir) status --ignored=no --untracked-files=no --porcelain))",) git -C $(project_dir) checkout -f $(TAG-y) else echo "WARNING: index/tree not clean, skipping update / force checkout."