git submodules have some surprising behaviour, and we make full use 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@georgi-clan.de> Reviewed-on: http://review.coreboot.org/8371 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 operation, 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.
 |