gnuboot-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 2/3] guix git authenticate: workaround broken command due to g


From: Denis 'GNUtoo' Carikli
Subject: [PATCH v1 2/3] guix git authenticate: workaround broken command due to guix/guile-git bug #66268.
Date: Tue, 26 Nov 2024 19:37:23 +0100

If we run the following commands:
    $ git clone https://git.savannah.gnu.org/git/gnuboot.git
    $ cd gnuboot
    $ git authenticate bf2b91df54aa71ecbfab891d32000ad2d6af6093 \
      "E23C 26A5 DEEE C5FA 9CDD  D57A 57BC 26A3 6871 16F6" \
      -k origin/keyring

We then end with the following issue:
    Authenticating commits bf2b91d to c85fbae (47 new commits)...
    guix git: error: commit c85fbae78f398d12d1df1f27b97e39838c4e08e3
    is not a descendant of introductory commit
    bf2b91df54aa71ecbfab891d32000ad2d6af6093

But first the bf2b91df54aa71ecbfab891d32000ad2d6af6093 commit ("Add
.guix-authorizations file for "guix git authenticate".") is the proper
introductory commit and everything else is fine too (it is signed by
the right key, the signature matches, all the history between bf2b91d
and c85fbae is linear and all the signatures also match fine.

The issue is that the introductory commit size is > 4KB and so this
trigger a bug in Guix and/or guile-git[1] where guix uses eq? to
compare commits and two commits are not equals with eq? if their hash
is the same but that they are > 4KB.

[1]https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66268

The workaround is then to substitute the introductory commit with the
one right after it and also to make sure that any commit in between
that introductory commit substitute and HEAD have a commit message and
or commit data and/or patch that is less than 4KB.

This issue also needs to be fixed upstream in Guix and/or guile-git
but we also need to workaround now as the fix could take time to reach
users as first the problem is not trivial to fix and even once fixed
in Guix, it would be best not to require to have to run git pull
(which can take a huge amount of time, probably hours) just to
authenticate the GNU Boot git repository.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
 manual/gnuboot.texi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/manual/gnuboot.texi b/manual/gnuboot.texi
index d5cd9eab..dd50d24a 100644
--- a/manual/gnuboot.texi
+++ b/manual/gnuboot.texi
@@ -851,14 +851,14 @@ command:
 
 @example
 $ guix git authenticate \
-bf2b91df54aa71ecbfab891d32000ad2d6af6093 \
+dde4223088cbfe8a347626638d32902ba2323b25 \
 "E23C 26A5 DEEE C5FA 9CDD  D57A 57BC 26A3 6871 16F6" \
 -k origin/keyring
 @end example
 
 It should then print the following text:
 @example
-guix git: successfully authenticated commit 
bf2b91df54aa71ecbfab891d32000ad2d6af6093
+guix git: successfully authenticated commit 
dde4223088cbfe8a347626638d32902ba2323b25
 @end example
 
 @xref{Invoking guix git authenticate,,,guix,GNU Guix manual} or
-- 
2.46.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]