diff mbox series

pkg-generic: host variant use git submodules if target variant does

Message ID 20210113221014.687702-1-yann.morin.1998@free.fr
State Accepted
Headers show
Series pkg-generic: host variant use git submodules if target variant does | expand

Commit Message

Yann E. MORIN Jan. 13, 2021, 10:10 p.m. UTC
When a package has both a target and a host variant, and uses git
submodules, and the host variant is downloaded before the targt one, we
end up with the generated archive missing the submodules.

This happens in exactly one package in our tree: c-capnproto.

Weirdly enough, the issue was not caught until after we changed the way
we generate tar archives from git downloads.

Propagate the git submodule setting from the target variant to the host
variant, unless the host variant explicitly opted-out.

Fixes:
    http://autobuild.buildroot.org/results/2de9c6c8ce83569d18cc7140ebc60d6fe1aadcbf/

Reported-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
 package/pkg-generic.mk | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Arnout Vandecappelle Jan. 13, 2021, 10:33 p.m. UTC | #1
On 13/01/2021 23:10, Yann E. MORIN wrote:
> When a package has both a target and a host variant, and uses git
> submodules, and the host variant is downloaded before the targt one, we
> end up with the generated archive missing the submodules.
> 
> This happens in exactly one package in our tree: c-capnproto.
> 
> Weirdly enough, the issue was not caught until after we changed the way
> we generate tar archives from git downloads.

 Applied to master after adding this explanation:

    This issue was not caught before because after a few days, the full
    sources are added to sources.buildroot.net. So when the hash check
    fails, the full tarball is simply downloaded from there.

 Thanks!

 Regards,
 Arnout

> 
> Propagate the git submodule setting from the target variant to the host
> variant, unless the host variant explicitly opted-out.
> 
> Fixes:
>     http://autobuild.buildroot.org/results/2de9c6c8ce83569d18cc7140ebc60d6fe1aadcbf/
> 
> Reported-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
> ---
>  package/pkg-generic.mk | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index c46c742352..357a4ce453 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -567,6 +567,12 @@ ifneq ($$(filter bzr cvs hg,$$($(2)_SITE_METHOD)),)
>  BR_NO_CHECK_HASH_FOR += $$($(2)_SOURCE)
>  endif
>  
> +ifndef $(2)_GIT_SUBMODULES
> + ifdef $(3)_GIT_SUBMODULES
> +  $(2)_GIT_SUBMODULES = $$($(3)_GIT_SUBMODULES)
> + endif
> +endif
> +
>  # Do not accept to download git submodule if not using the git method
>  ifneq ($$($(2)_GIT_SUBMODULES),)
>   ifneq ($$($(2)_SITE_METHOD),git)
>
Peter Korsgaard Jan. 18, 2021, 8:09 p.m. UTC | #2
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > When a package has both a target and a host variant, and uses git
 > submodules, and the host variant is downloaded before the targt one, we
 > end up with the generated archive missing the submodules.

 > This happens in exactly one package in our tree: c-capnproto.

 > Weirdly enough, the issue was not caught until after we changed the way
 > we generate tar archives from git downloads.

 > Propagate the git submodule setting from the target variant to the host
 > variant, unless the host variant explicitly opted-out.

 > Fixes:
 >     http://autobuild.buildroot.org/results/2de9c6c8ce83569d18cc7140ebc60d6fe1aadcbf/

 > Reported-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>


Committed to 2020.02.x and 2020.11.x, thanks.
diff mbox series

Patch

diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index c46c742352..357a4ce453 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -567,6 +567,12 @@  ifneq ($$(filter bzr cvs hg,$$($(2)_SITE_METHOD)),)
 BR_NO_CHECK_HASH_FOR += $$($(2)_SOURCE)
 endif
 
+ifndef $(2)_GIT_SUBMODULES
+ ifdef $(3)_GIT_SUBMODULES
+  $(2)_GIT_SUBMODULES = $$($(3)_GIT_SUBMODULES)
+ endif
+endif
+
 # Do not accept to download git submodule if not using the git method
 ifneq ($$($(2)_GIT_SUBMODULES),)
  ifneq ($$($(2)_SITE_METHOD),git)