From: "Daniel P. Berrange" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Alexey Kardashevskiy" <aik@ozlabs.ru>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Daniel P. Berrange" <berrange@redhat.com>
Subject: [Qemu-devel] [PATCH v2 3/4] build: allow automatic git submodule updates to be disabled
Date: Fri, 27 Oct 2017 14:14:11 +0100 [thread overview]
Message-ID: <20171027131412.18830-4-berrange@redhat.com> (raw)
In-Reply-To: <20171027131412.18830-1-berrange@redhat.com>
Some people building QEMU use VPATH builds where the source directory is on a
read-only volume. In such a case 'scripts/git-submodules.sh update' will always
fail and users are required to run it manually themselves on their original
writable source directory.
While this is already supported, it is nice to give users a command line flag
to configure to permanently disable automatic submodule updates, as it means
they won't get hard to diagnose failures from git-submodules.sh at an arbitrary
later date.
This patch thus introduces a flag '--disable-git-update' which will prevent
'make' from ever running 'scripts/git-submodules.sh update'. It will still run
the 'status' command to determine if a submodule update is needed, but when it
does this it'll simply stop and print a message instructing the developer what
todo. eg
$ ./configure --target-list=x86_64-softmmu --disable-git-update
...snip...
$ make
GEN config-host.h
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GIT submodule checkout is out of date. Please run
scripts/git-submodule.sh update ui/keycodemapdb
from the source directory checkout /home/berrange/src/virt/qemu
make: *** [Makefile:31: git-submodule-update] Error 1
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
Makefile | 11 +++++++++++
configure | 9 ++++++++-
scripts/git-submodule.sh | 9 +++++++++
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 4c9d0eaef2..cefb75dc8d 100644
--- a/Makefile
+++ b/Makefile
@@ -26,12 +26,23 @@ ifeq (0,$(MAKELEVEL))
)
ifeq (1,$(git_module_status))
+ifeq (no,$(GIT_UPDATE))
+git-submodule-update:
+ $(call quiet-command, \
+ echo && \
+ echo "GIT submodule checkout is out of date. Please run" && \
+ echo " scripts/git-submodule.sh update $(GIT_SUBMODULES)" && \
+ echo "from the source directory checkout $(SRC_PATH)" && \
+ echo && \
+ exit 1)
+else
git-submodule-update:
$(call quiet-command, \
(cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh update $(GIT_SUBMODULES)), \
"GIT","$(GIT_SUBMODULES)")
endif
endif
+endif
.git-submodule-status: git-submodule-update config-host.mak
diff --git a/configure b/configure
index 65765968f3..8a569e1770 100755
--- a/configure
+++ b/configure
@@ -267,8 +267,10 @@ stack_protector=""
if test -e "$source_path/.git"
then
+ git_update=yes
git_submodules="ui/keycodemapdb"
else
+ git_update=no
git_submodules=""
fi
git="git"
@@ -1297,11 +1299,15 @@ for opt do
;;
--with-git=*) git="$optarg"
;;
+ --enable-git-update) git_update=yes
+ ;;
+ --disable-git-update) git_update=no
+ ;;
*)
echo "ERROR: unknown option $opt"
echo "Try '$0 --help' for more information"
exit 1
- ;;
+ ;;
esac
done
@@ -5534,6 +5540,7 @@ echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
+echo "GIT_UPDATE=$git_update" >> $config_host_mak
echo "ARCH=$ARCH" >> $config_host_mak
diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
index 586ff32293..30fd83db55 100755
--- a/scripts/git-submodule.sh
+++ b/scripts/git-submodule.sh
@@ -48,6 +48,15 @@ update)
echo
echo " $ ./configure --with-git='tsocks git'"
echo
+ echo "Alternatively you may disable automatic GIT submodule checkout"
+ echo "with:"
+ echo
+ echo " $ ./configure --disable-git-update'"
+ echo
+ echo "and then manually update submodules prior to running make, with:"
+ echo
+ echo " $ scripts/git-sbumodule.sh update $modules"
+ echo
exit 1
fi
$GIT submodule status $modules > "${substat}"
--
2.13.6
next prev parent reply other threads:[~2017-10-27 13:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-27 13:14 [Qemu-devel] [PATCH v2 0/4] Various improvements to submodule handling Daniel P. Berrange
2017-10-27 13:14 ` [Qemu-devel] [PATCH v2 1/4] build: allow setting a custom GIT binary for transparent proxying Daniel P. Berrange
2017-10-28 1:53 ` Alexey Kardashevskiy
2017-10-28 20:45 ` Daniel P. Berrange
2017-10-29 1:47 ` Alexey Kardashevskiy
2017-10-29 7:57 ` Daniel P. Berrange
2017-10-29 14:08 ` Alexey Kardashevskiy
2017-10-29 16:29 ` Daniel P. Berrange
2017-10-29 23:49 ` Alexey Kardashevskiy
2017-10-30 7:52 ` Daniel P. Berrange
2017-10-31 3:30 ` Alexey Kardashevskiy
2017-10-27 13:14 ` [Qemu-devel] [PATCH v2 2/4] build: don't create temporary files in source dir Daniel P. Berrange
2017-10-28 5:25 ` Eric Blake
2017-10-28 6:37 ` Alexey Kardashevskiy
2017-10-27 13:14 ` Daniel P. Berrange [this message]
2017-10-28 5:28 ` [Qemu-devel] [PATCH v2 3/4] build: allow automatic git submodule updates to be disabled Eric Blake
2017-10-27 13:14 ` [Qemu-devel] [PATCH v2 4/4] build: don't fail if given a git submodule which does not exist Daniel P. Berrange
2017-10-28 1:27 ` Alexey Kardashevskiy
2017-10-28 5:58 ` Eric Blake
2017-10-28 5:34 ` [Qemu-devel] [PATCH v2 0/4] Various improvements to submodule handling Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171027131412.18830-4-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=aik@ozlabs.ru \
--cc=f4bug@amsat.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.