[Buildroot] [PATCH 9/9] Add support for cloning Linux git trees

Grant Likely grant.likely at secretlab.ca
Thu Oct 16 23:09:13 UTC 2008


On Thu, Oct 16, 2008 at 3:14 PM, Bernhard Reutner-Fischer
<rep.dot.nop at gmail.com> wrote:
> On Thu, Oct 16, 2008 at 02:33:01PM -0600, Grant Likely wrote:
>>From: Grant Likely <grant.likely at secretlab.ca>
>>
>>Add an option in Linux advanced configuration to clone a git repository
>>directly (without a snapshot tarball).
>>
>>---
>>
>>This patch depends on the earlier patch to add the variable
>>$(LINUX26_VERSION_MOD) because the value of $(LINUX26_VERSION) is set
>>to 'git' here, but the kernel could report just about any version string.

Hi Bernhard, thanks for the comments.  Replies below.

>>+if BR2_LINUX26_GIT
>>+config BR2_LINUX26_GIT_URL
>>+      string "git URL"
>>+      default "file:///path/to/git/tree/linux-2.6/"
>>+      help
>>+        URL to git repository
>>+
>>+        Any git URL works here, but you may find it more efficient to
>>+        clone from a tree on the same local filesystem using the file:///
>>+        protocol.  The file:/// protocol allows git to hardlink to the
>>+        respository database which is faster and is requires less disk
>>+        space.
>>+
>>+config BR2_LINUX26_GIT_BRANCH
>>+      string "git branch"
>>+      default "master"
>>+      help
>>+        Name of branch to use in get repository
>>+endif
>>+
>> # -----------------------------------------------
>>
>> menu "Patches"
>>@@ -418,6 +447,7 @@ config BR2_LINUX26_VERSION
>>       default "2.6.22.10" if BR2_LINUX_2_6_22_10
>>       default "$(BR2_KERNEL_CURRENT_VERSION)"if BR2_LINUX_2_6_STABLE
>
> looking at the URI of this file. No wonder.

Umm, I don't know what you are referring to here.  Are you referring
to using 'git' as the value of BR2_LINUX26_VERSION instead of the full
URL?

>>       default $(BR2_CUSTOM_LINUX26_VERSION) if BR2_LINUX26_CUSTOM
>>+      default "git" if BR2_LINUX26_GIT
>>
>> menu "Linux Kernel Configuration"
>>


>>@@ -218,6 +219,14 @@ ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION))
>>       mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR)
>> endif
>>       touch $@
>>+else
>>+$(LINUX26_DIR)/.unpacked:
>>+      @echo "*** Cloning kernel git tree"
>>+      git clone --depth 1 $(BR2_LINUX26_GIT_URL) $(LINUX26_DIR)
>>+      cd $(LINUX26_DIR) && \
>>+              git reset --hard origin/$(BR2_LINUX26_GIT_BRANCH)
>>+      touch $@
>>+endif # BR2_LINUX26_GIT
>
> I've done something like this for libtool, and i *think* that i will not
> waste _that_ much bandwith over and over again. Not my call, though.

It should be okay.  Using the --depth flag keeps the download size to
the bear minimum.  Using it on current mainline results in ~100MB of
git repo (as opposed to ~50MB for a bz2 tarball and ~300MB for a full
git clone).  Also, in the help text I recommend to use a local git
tree to keep clone bandwidth costs to a minimum.

>>@@ -499,6 +508,9 @@ linux-status:
>
> linux-status. If you have make, you most likely have grep, too.
>
>>       @echo BR2_LINUX26_CUSTOM=$(BR2_LINUX26_CUSTOM)
>>       @echo BR2_CUSTOM_LINUX26_PATCH_SITE=$(BR2_CUSTOM_LINUX26_PATCH_SITE)
>>       @echo BR2_CUSTOM_LINUX26_PATCH=$(BR2_CUSTOM_LINUX26_PATCH)
>>+      @echo BR2_LINUX26_GIT=$(BR2_LINUX26_GIT)
>>+      @echo BR2_LINUX26_GIT_URL=$(BR2_LINUX26_GIT_URL)
>>+      @echo BR2_LINUX26_GIT_BRANCH=$(BR2_LINUX26_GIT_BRANCH)
>>       @echo BR2_LINUX_BSP_PATCH=$(BR2_LINUX_BSP_PATCH)
>>       @echo BR2_PACKAGE_LINUX_USE_KCONFIG=$(BR2_PACKAGE_LINUX_USE_KCONFIG)
>>       @echo BR2_PACKAGE_LINUX_USE_DEFCONFIG=$(BR2_PACKAGE_LINUX_USE_DEFCONFIG)
>>

I had mostly just been following the existing lead.  I can drop this
change if it is preferred.

Cheers,
g.


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.



More information about the buildroot mailing list