This is an automated email from the git hooks/post-receive script.

guix_mirror_bot pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new bc4972662b make: Improve handling of git configuration.
bc4972662b is described below

commit bc4972662b4b38d902a55dffcff89aa8767aa02a
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Sat Feb 14 17:28:07 2026 +0900

    make: Improve handling of git configuration.
    
    Commit 427b8f960ec introduced a regression that broke building Guix in an
    isolated container.
    
    * configure.ac ($(GIT_HOOKS_DIR), $(GIT_HOOKS_DIR)/%)
    ($(GIT_CONFIG_FILE), $(GIT_HOOKS_DIR)/commit-msg): Guard against the cases
    where GIT_HOOKS_DIR or GIT_CONFIG_FILE variables are empty.
    
    Fixes: <https://issues.guix.gnu.org/80388>.
    Reported-by: Tomas Volf <[email protected]>
    Change-Id: I68645f93d9e1088902f6e0d2c8f97fe969d741c0
---
 Makefile.am | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 732dd9a2c8..c55ccb0e24 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@
 # Copyright © 2018 Oleg Pykhalov <[email protected]>
 # Copyright © 2018 Alex Vong <[email protected]>
 # Copyright © 2019, 2023 Efraim Flashner <[email protected]>
-# Copyright © 2020, 2021, 2023, 2025 Maxim Cournoyer <[email protected]>
+# Copyright © 2020, 2021, 2023, 2025, 2026 Maxim Cournoyer 
<[email protected]>
 # Copyright © 2021 Chris Marusich <[email protected]>
 # Copyright © 2021 Andrew Tropin <[email protected]>
 # Copyright © 2023 Clément Lassieur <[email protected]>
@@ -1271,25 +1271,32 @@ cuirass-jobs: $(GOBJECTS)
 
 if in_git_p
 # Git auto-configuration.
-GIT_HOOKS_DIR := $(shell git rev-parse --git-path hooks)
-GIT_CONFIG_FILE := $(shell git rev-parse --git-path config)
+
+# Note: the following git commands may fail and produce empty variables,
+# e.g. when working on a work tree in a container.
+GIT_HOOKS_DIR := $(shell git rev-parse --git-path hooks 2>/dev/null)
+GIT_CONFIG_FILE := $(shell git rev-parse --git-path config 2>/dev/null)
 $(GIT_HOOKS_DIR):
-       mkdir -p "$@"
+       if [ -n "$(GIT_HOOKS_DIR)" ]; then mkdir -p "$@"; fi
 
 $(GIT_HOOKS_DIR)/%: etc/git/% | $(GIT_HOOKS_DIR)/
-       cp "$<" "$@"
+       if [ -n "$(GIT_HOOKS_DIR)" ]; then cp "$<" "$@"; fi
 
 $(GIT_CONFIG_FILE): etc/git/gitconfig
-       git config --fixed-value --replace-all include.path \
-         ../etc/git/gitconfig ../etc/git/gitconfig
+       if [ -n "$(GIT_CONFIG_FILE)" ]; then \
+         git config --fixed-value --replace-all include.path \
+           ../etc/git/gitconfig ../etc/git/gitconfig; \
+       fi
 
 COMMIT_MSG_MAGIC = VGhpcyBpcyB0aGUgY29tbWl0LW1zZyBob29rIG9mIEd1aXg=
 $(GIT_HOOKS_DIR)/commit-msg: etc/git/commit-msg | $(GIT_HOOKS_DIR)
-       if test -f $@  && ! grep -qF $(COMMIT_MSG_MAGIC) $@; then \
-         mkdir -p [email protected] && mv $@ [email protected] && \
-       @ echo user commit-msg hook moved to [email protected]/commit-msg; \
-       fi; \
-       cp etc/git/commit-msg $@
+       if [ -n "$(GIT_HOOKS_DIR)" ]; then \
+         if test -f $@  && ! grep -qF $(COMMIT_MSG_MAGIC) $@; then \
+           mkdir -p [email protected] && mv $@ [email protected] && \
+           echo user commit-msg hook moved to [email protected]/commit-msg; \
+         fi && \
+         cp etc/git/commit-msg $@; \
+       fi
 
 # Convenience targets.
 GIT_HOOKS_SOURCE_FILES := $(shell find etc/git -type f -executable)

Reply via email to