git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/5] Makefile: under "make dist", include the sha1collisiondetection submodule

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Dec 8, 2017, 22:29 UTC
Message-ID
<20171208223001.556-3-avarab@gmail.com>
In-Reply-To
<20171208223001.556-1-avarab@gmail.com>

Include the sha1collisiondetection submodule when running "make dist". Even though we've been shipping the sha1collisiondetection submodule[1] and using it by default if it's checked out[2] anyone downloading git as a tarball would just get an empty sha1collisiondetection/ directory.

Doing this automatically is a feature that's missing from git-archive, but in the meantime let's bundle this up into the tarball we ship. This ensures that the DC_SHA1_SUBMODULE flag does what's intended even in an unpacked tarball, and more importantly means we're building the exact same code from the same paths from git.git and from the tarball.

I am not including all the files in the submodule, only the ones git actually needs (and the licenses), only including some files like this would be a useful feature if git-archive ever adds the ability to bundle up submodules.

1. commit 86cfd61e6b ("sha1dc: optionally use sha1collisiondetection
   as a submodule", 2017-07-01)
2. cac87dc01d ("sha1collisiondetection: automatically enable when
   submodule is populated", 2017-07-01)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Makefile | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
diff --git a/Makefile b/Makefile
index dc886f8eda..3955b02b6a 100644
--- a/Makefile
+++ b/Makefile
@@ -2643,6 +2643,21 @@ dist: git-archive$(X) configure
 		$(GIT_TARNAME)/configure \
 		$(GIT_TARNAME)/version \
 		$(GIT_TARNAME)/git-gui/version
+ifdef DC_SHA1_SUBMODULE
+	@mkdir -p $(GIT_TARNAME)/sha1collisiondetection/lib
+	@cp sha1collisiondetection/LICENSE.txt \
+		$(GIT_TARNAME)/sha1collisiondetection/
+	@cp sha1collisiondetection/LICENSE.txt \
+		$(GIT_TARNAME)/sha1collisiondetection/
+	@cp sha1collisiondetection/lib/sha1.[ch] \
+		$(GIT_TARNAME)/sha1collisiondetection/lib/
+	@cp sha1collisiondetection/lib/ubc_check.[ch] \
+		$(GIT_TARNAME)/sha1collisiondetection/lib/
+	$(TAR) rf $(GIT_TARNAME).tar \
+		$(GIT_TARNAME)/sha1collisiondetection/LICENSE.txt \
+		$(GIT_TARNAME)/sha1collisiondetection/lib/sha1.[ch] \
+		$(GIT_TARNAME)/sha1collisiondetection/lib/ubc_check.[ch]
+endif
 	@$(RM) -r $(GIT_TARNAME)
 	gzip -f -9 $(GIT_TARNAME).tar
 
-- 
2.15.1.424.g9478a66081
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 17 of 27 in “SHA1DC fixes & fully moving to a git.git submodule”
  1. 0/4 SHA1DC fixes & fully moving to a git.git submoduleÆvar Arnfjörð Bjarmason, Nov 28, 2017
  2. 1/4 Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=autoÆvar Arnfjörð Bjarmason, Nov 28, 2017
  3. Jeff KingDec 5, 2017
  4. 2/4 sha1dc_git.h: re-arrange an ifdef chain for a subsequent changeÆvar Arnfjörð Bjarmason, Nov 28, 2017
  5. Jeff KingDec 5, 2017
  6. 3/4 Makefile: use the sha1collisiondetection submodule by defaultÆvar Arnfjörð Bjarmason, Nov 28, 2017
  7. Jeff KingDec 5, 2017
  8. Ævar Arnfjörð BjarmasonDec 5, 2017
  9. Junio C HamanoDec 5, 2017
  10. Ævar Arnfjörð BjarmasonDec 5, 2017
  11. Kevin DaudtDec 9, 2017
  12. Kevin DaudtDec 9, 2017
  13. Junio C HamanoDec 5, 2017
  14. 0/5 SHA1DC fixes & fully moving to a git.git submoduleÆvar Arnfjörð Bjarmason, Dec 8, 2017
  15. 1/5 Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=autoÆvar Arnfjörð Bjarmason, Dec 8, 2017
  16. 3/5 sha1dc_git.h: re-arrange an ifdef chain for a subsequent changeÆvar Arnfjörð Bjarmason, Dec 8, 2017
  17. 2/5 Makefile: under "make dist", include the sha1collisiondetection submoduleÆvar Arnfjörð Bjarmason, Dec 8, 2017
  18. Junio C HamanoDec 8, 2017
  19. Ævar Arnfjörð BjarmasonDec 8, 2017
  20. Junio C HamanoDec 19, 2017
  21. 4/5 Makefile: use the sha1collisiondetection submodule by defaultÆvar Arnfjörð Bjarmason, Dec 8, 2017
  22. Junio C HamanoDec 8, 2017
  23. Junio C HamanoDec 8, 2017
  24. Jeff KingDec 9, 2017
  25. Ævar Arnfjörð BjarmasonDec 8, 2017
  26. Kevin DaudtDec 9, 2017
  27. Jeff KingDec 5, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.