Makefile | 11 +++++++++++ configure | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-)
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 ++++++++-
2 files changed, 19 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 ce5a2d0105..2e3b5fc145 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
--
2.13.6
On 10/26/2017 10:04 AM, Daniel P. Berrange wrote: > 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 Clean :) > > make: *** [Makefile:31: git-submodule-update] Error 1 > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Makefile | 11 +++++++++++ > configure | 9 ++++++++- > 2 files changed, 19 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 ce5a2d0105..2e3b5fc145 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 > >
On 27/10/17 00:33, Philippe Mathieu-Daudé wrote: > On 10/26/2017 10:04 AM, Daniel P. Berrange wrote: >> 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 > > Clean :) > >> >> make: *** [Makefile:31: git-submodule-update] Error 1 >> >> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> What tree did you apply on top of? Does not apply for me :-/ -- Alexey
On Fri, Oct 27, 2017 at 03:10:17PM +1100, Alexey Kardashevskiy wrote: > On 27/10/17 00:33, Philippe Mathieu-Daudé wrote: > > On 10/26/2017 10:04 AM, Daniel P. Berrange wrote: > >> 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 > > > > Clean :) > > > >> > >> make: *** [Makefile:31: git-submodule-update] Error 1 > >> > >> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > > > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > > What tree did you apply on top of? Does not apply for me :-/ Oh sorry, I forgot that it was on-top of my previously sent patch: https://lists.gnu.org/archive/html/qemu-devel/2017-10/msg05054.html Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 27/10/17 00:04, Daniel P. Berrange wrote: > 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 ++++++++- > 2 files changed, 19 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)" && \ I'd love to see this warning when $GIT_UPDATE!=no too. Now it is: GIT ui/keycodemapdb dtc ./scripts/git-submodule.sh: 36: ./scripts/git-submodule.sh: cannot create .git-submodule-status: Read-only file system Makefile:40: recipe for target 'git-submodule-update' failed Other than that, looks nice, thanks for fixing it. -- Alexey
© 2016 - 2025 Red Hat, Inc.