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: Simon Tournier <zimon.toutoune <at> gmail.com>
Subject: bug#67240: closed (Re: bug#67240: 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 bug report

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

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 67240 <at> debbugs.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: 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

[Message part 3 (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 4 (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 6 (text/plain, inline)]
Cheers,
simon

This bug report was last modified 187 days ago.

Previous Next


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