Non-recursive Git checkout with submodules breaks SWH download

OpenSubmitted by Timothy Sample.
Details
2 participants
  • Ludovic Courtès
  • Timothy Sample
Owner
unassigned
Severity
important
T
T
Timothy Sample wrote on 20 May 2021 17:50
(address . bug-guix@gnu.org)
87a6opl804.fsf@ngyro.com
Hi!

When trying to recover the ‘non-sequencer’ source from SWH, Guix fails
with a hash mismatch:

expected hash: 1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx
actual hash: 1xrrczqx4ll276g449nqiq0ip6lpika9hs4z4xgxaa6ayw60v29f

The reason is that the checkout includes submodules, and the way that
Guix treats submodules differs from the way that SWH treats them. Note
that this is not a recursive checkout (which is also broken, but more
clearly a “known limitation”). In particular, Guix leaves the submodule
as an empty directory, while SWH turns it into a symlink pointing to the
submodule’s commit hash:

$ readlink ./f20fa6babec52bbf703bad6c1c92fa845b781f7e/lib/ntk
1e3f5106d404562902bed2983403301db24a3f78

This is clearly a rare edge case, but it should be pretty easy to fix.
Perhaps it’s as easy as just opening “.gitmodules” and replacing the
symlink at each submodule path with an empty directory.


-- Tim
L
L
Ludovic Courtès wrote on 29 May 2021 23:04
control message for bug #48540
(address . control@debbugs.gnu.org)
878s3x5k1r.fsf@gnu.org
severity 48540 important
quit
?