core/pkg-infra: download git submodules if the package wants them

Add a new package variable that packages can set to specify that they
need git submodules.

Only accept this option if the download method is git, as we can not get
submodules via an http download (via wget).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Aleksandar Simeonov <aleksandar@barix.com>
Tested-by: Matt Weber <matt@thewebers.ws>
Reviewed-by: Matt Weber <matt@thewebers.ws>
Tested-By: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2016-07-01 11:01:19 +02:00 committed by Peter Korsgaard
parent f109e7eeb5
commit ec3e057f79
3 changed files with 13 additions and 3 deletions

View File

@ -76,6 +76,7 @@ export BR_NO_CHECK_HASH_FOR =
define DOWNLOAD_GIT
$(EXTRA_ENV) $(DL_WRAPPER) -b git \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
$(if $($(PKG)_GIT_SUBMODULES),-r) \
$(QUIET) \
-- \
$($(PKG)_SITE) \

View File

@ -468,6 +468,14 @@ ifndef $(2)_SITE_METHOD
endif
endif
# Do not accept to download git submodule if not using the git method
ifneq ($$($(2)_GIT_SUBMODULES),)
ifneq ($$($(2)_SITE_METHOD),git)
$$(error $(2) declares having git sub-modules, but does not use the \
'git' method (uses '$$($(2)_SITE_METHOD)' instead))
endif
endif
ifeq ($$($(2)_SITE_METHOD),local)
ifeq ($$($(2)_OVERRIDE_SRCDIR),)
$(2)_OVERRIDE_SRCDIR = $$($(2)_SITE)

View File

@ -21,15 +21,16 @@ set -e
main() {
local OPT OPTARG
local backend output hfile quiet
local backend output hfile recurse quiet
# Parse our options; anything after '--' is for the backend
while getopts :hb:o:H:q OPT; do
while getopts :hb:o:H:rq OPT; do
case "${OPT}" in
h) help; exit 0;;
b) backend="${OPTARG}";;
o) output="${OPTARG}";;
H) hfile="${OPTARG}";;
r) recurse="-r";;
q) quiet="-q";;
:) error "option '%s' expects a mandatory argument\n" "${OPTARG}";;
\?) error "unknown option '%s'\n" "${OPTARG}";;
@ -82,7 +83,7 @@ main() {
# If the backend fails, we can just remove the temporary directory to
# remove all the cruft it may have left behind. Then we just exit in
# error too.
if ! "${OLDPWD}/support/download/${backend}" ${quiet} "${tmpf}" "${@}"; then
if ! "${OLDPWD}/support/download/${backend}" ${quiet} ${recurse} "${tmpf}" "${@}"; then
rm -rf "${tmpd}"
exit 1
fi