GNU bug report logs - #67240
dev: “make” of Guix fails, non-existent .git/hooks directory

Previous Next

Package: guix;

Reported by: Simon Tournier <zimon.toutoune <at> gmail.com>

Date: Fri, 17 Nov 2023 16:13:01 UTC

Severity: normal

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#67240: closed (dev: “make” of
 Guix fails, non-existent .git/hooks directory)
Date: Tue, 12 Nov 2024 07:08:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 12 Nov 2024 16:06:21 +0900
with message-id <87cyj16idu.fsf <at> gmail.com>
and subject line Re: bug#67240: dev: “make” of Guix fails, non-existent .git/hooks directory
has caused the debbugs.gnu.org bug report #67240,
regarding dev: “make” of Guix fails, non-existent .git/hooks directory
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
67240: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67240
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: dev: “make” of Guix fails, non-existent
 .git/hooks directory
Date: Fri, 17 Nov 2023 16:46:59 +0100
[Message part 3 (text/plain, inline)]
Hi,

On a very fresh install of a system, I have just cloned the Guix
repository then run the dance ./bootstrap, ./configure and make.  It
fails because:

--8<---------------cut here---------------start------------->8---
cp: cannot create regular file '.git/hooks/pre-push': No such file or directory
make[2]: *** [Makefile:7454: .git/hooks/pre-push] Error 1
make[2]: Leaving directory '/home/simon/src/guix/guix'
make[1]: *** [Makefile:6137: all-recursive] Error 1
make[1]: Leaving directory '/home/simon/src/guix/guix'
make: *** [Makefile:4253: all] Error 2
--8<---------------cut here---------------end--------------->8---

In the file Makefile.am, nothing check that the directory .git/hooks
exists before copying to it.  By default, it does not seem created.  At
least, it was not with a fresh clone using Git from Guix revision
fc6bdaa.

I propose this patch attached.

[p.patch (text/x-diff, inline)]
diff --git a/Makefile.am b/Makefile.am
index cbc3191dfc..6e9a22fae5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1170,6 +1170,7 @@ cuirass-jobs: $(GOBJECTS)
 # Git auto-configuration.
 .git/hooks/pre-push: etc/git/pre-push
 	$(AM_V_at)if test -d .git; then \
+	mkdir -p .git/hooks; \
 	cp etc/git/pre-push .git/hooks/pre-push; \
 	fi
 
[Message part 5 (text/plain, inline)]
Cheers,
simon
[Message part 6 (message/rfc822, inline)]
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: 67240-done <at> debbugs.gnu.org
Subject: Re: bug#67240: dev: “make” of Guix fails,
 non-existent .git/hooks directory
Date: Tue, 12 Nov 2024 16:06:21 +0900
Hi,

Simon Tournier <zimon.toutoune <at> gmail.com> writes:

> Hi,
>
> On a very fresh install of a system, I have just cloned the Guix
> repository then run the dance ./bootstrap, ./configure and make.  It
> fails because:
>
> cp: cannot create regular file '.git/hooks/pre-push': No such file or directory
> make[2]: *** [Makefile:7454: .git/hooks/pre-push] Error 1
> make[2]: Leaving directory '/home/simon/src/guix/guix'
> make[1]: *** [Makefile:6137: all-recursive] Error 1
> make[1]: Leaving directory '/home/simon/src/guix/guix'
> make: *** [Makefile:4253: all] Error 2
>
> In the file Makefile.am, nothing check that the directory .git/hooks
> exists before copying to it.  By default, it does not seem created.  At
> least, it was not with a fresh clone using Git from Guix revision
> fc6bdaa.

It should, according to [0]:

"When you initialize a new repository with git init, Git populates the
hooks directory with a bunch of example scripts, many of which are
useful by themselves [...]"

I believe 'git clone' calls 'git init' under the hood.

[0] https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks.html

It also appears to do that, even using the older Guix commit you
provided:

$ guix time-machine -q --commit=fc6bdaa -- shell --pure git nss-certs \
  -- git clone https://git.savannah.gnu.org/git/guix.git /tmp/guix
$ ls /tmp/guix/.git/
branches/  config  description	HEAD  hooks/  index  info/  logs/  objects/  packed-refs  refs/

As you can see; the 'hooks' directory is there.

> I propose this patch attached.
>
> diff --git a/Makefile.am b/Makefile.am
> index cbc3191dfc..6e9a22fae5 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1170,6 +1170,7 @@ cuirass-jobs: $(GOBJECTS)
>  # Git auto-configuration.
>  .git/hooks/pre-push: etc/git/pre-push
>  	$(AM_V_at)if test -d .git; then \
> +	mkdir -p .git/hooks; \
>  	cp etc/git/pre-push .git/hooks/pre-push; \
>  	fi

If you could come up with a reproducer, I don't mind applying such a
change, but so far it seems unnecessary?

I'm tentatively closing this old report.

-- 
Thanks,
Maxim


This bug report was last modified 186 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.