[coreboot-gerrit] New patch to review for coreboot: 2814089 documentation: begin documenting our use of git submodules

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Feb 5 23:40:05 CET 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8371

-gerrit

commit 2814089fbbb41847aa41d2b768e3819632bba019
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Thu Feb 5 23:36:32 2015 +0100

    documentation: begin documenting our use of git submodules
    
    git submodules have some surprising behaviour, and we make full
    of it.  Start building a canonical resource for that so developers
    can spend their time on better things than on fighting git.
    
    Change-Id: I5aa721e9b0acb2912a057858fd23a1d59d845ed1
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 documentation/submodules.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/documentation/submodules.txt b/documentation/submodules.txt
new file mode 100644
index 0000000..07c3598
--- /dev/null
+++ b/documentation/submodules.txt
@@ -0,0 +1,46 @@
+Use of git submodules in coreboot
+=================================
+coreboot uses git submodules to keep certain parts of the tree separate,
+with two major use cases:
+
+First, we use a vendor tool by nvidia for systems based on their SoC
+and since they publish it through git, we can just import it into our
+tree using submodules.
+
+Second, lots of boards these days require binaries and we want to keep
+them separate from coreboot proper to clearly delineate shiny Open Source
+from ugly blobs.
+Since we don't want to impose blobs on users who really don't need them,
+that repository is only downloaded and checked out on explicit request.
+
+Handling submodules
+-------------------
+For the most part, submodules should be automatically checked out on the
+first execution of the coreboot Makefile.
+
+To manually fetch all repositories (eg. when you want to prepare the tree
+for archiving, or to use it without network access), run
+
+    $ git submodule update --init --checkout
+
+This also checks out the binaries below `3rdparty/`
+
+Mirroring coreboot
+------------------
+When running a coreboot mirror to checkout from, for full operating, you
+should also mirror the blobs and nvidia-cbootimage repository, and place
+them in the same directory as the coreboot repository mirror.
+
+That is, when residing in coreboot's repository, `cd ../blobs.git`
+should move you to the blobs repository.
+
+With that, no matter what the URL of your coreboot repository is, the
+git client (of a sufficiently new version) is able to pick up the other
+repositories transparently.
+
+Minimum requirements
+--------------------
+git needs to be able to handle relative paths to submodule repositories,
+and it needs to know about non-automatic submodules.
+
+For these features, we require git version 1.7.6.1 or newer.



More information about the coreboot-gerrit mailing list