Message ID | 20200913185708.1681279-1-ddstreet@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [resend] configure: actually disable 'git_update' mode with --disable-git-update | expand |
Cc'ing Daniel as this is related to 'GIT submodules' which he maintains: $ scripts/get_maintainer.pl -f scripts/git-submodule.sh "Daniel P. Berrangé" <berrange@redhat.com> (odd fixer:GIT submodules) On 9/13/20 8:57 PM, Dan Streetman wrote: > The --disable-git-update configure param sets git_update=no, but > some later checks only look for the .git dir. This changes the > --enable-git-update to set git_update=yes but also fail if it > does not find a .git dir. Then all the later checks for the .git > dir can just be changed to a check for $git_update = "yes". > > Also update the Makefile to skip the 'git_update' checks if it has > been disabled. > > This is needed because downstream packagers, e.g. Debian, Ubuntu, etc, > also keep the source code in git, but do not want to enable the > 'git_update' mode; with the current code, that's not possible even > if the downstream package specifies --disable-git-update. > > Signed-off-by: Dan Streetman <ddstreet@canonical.com> > --- > Resend; this was sent twice before: > https://lists.nongnu.org/archive/html/qemu-trivial/2020-07/msg00180.html Which was v2, > https://lists.nongnu.org/archive/html/qemu-devel/2020-07/msg08243.html probably v3, so this is v4. Please don't post new patches as reply to previous versions, because they'll likely get unnoticed (for developers who use threaded view of their mail folder). > > Makefile | 15 +++++++++------ > configure | 23 ++++++++++++++--------- > 2 files changed, 23 insertions(+), 15 deletions(-) > > diff --git a/Makefile b/Makefile > index 2ed19310cf7..712aaf8b53b 100644 > --- a/Makefile > +++ b/Makefile > @@ -38,6 +38,8 @@ git-submodule-update: > > .PHONY: git-submodule-update > > +# If --disable-git-update specified, skip these git checks > +ifneq (no,$(GIT_UPDATE)) > git_module_status := $(shell \ > cd '$(SRC_PATH)' && \ > GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \ > @@ -45,7 +47,12 @@ git_module_status := $(shell \ > ) > > ifeq (1,$(git_module_status)) > -ifeq (no,$(GIT_UPDATE)) > +ifeq (yes,$(GIT_UPDATE)) > +git-submodule-update: > + $(call quiet-command, \ > + (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh update $(GIT_SUBMODULES)), \ > + "GIT","$(GIT_SUBMODULES)") > +else > git-submodule-update: > $(call quiet-command, \ > echo && \ > @@ -54,11 +61,7 @@ git-submodule-update: > 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 > > diff --git a/configure b/configure > index 4231d56bcc0..2e0e2adc587 100755 > --- a/configure > +++ b/configure > @@ -346,7 +346,7 @@ then > git_submodules="$git_submodules tests/fp/berkeley-testfloat-3" > git_submodules="$git_submodules tests/fp/berkeley-softfloat-3" > else > - git_update=no > + git_update="" > git_submodules="" > > if ! test -f "$source_path/ui/keycodemapdb/README" > @@ -1577,7 +1577,12 @@ for opt do > ;; > --with-git=*) git="$optarg" > ;; > - --enable-git-update) git_update=yes > + --enable-git-update) > + git_update=yes > + if test ! -e "$source_path/.git"; then > + echo "ERROR: cannot --enable-git-update without .git" > + exit 1 > + fi > ;; > --disable-git-update) git_update=no > ;; > @@ -1974,7 +1979,7 @@ python="$python -B" > if test -z "$meson"; then > if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.55.1; then > meson=meson > - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then > + elif test $git_update = 'yes' ; then > meson=git > elif test -e "${source_path}/meson/meson.py" ; then > meson=internal > @@ -2052,7 +2057,7 @@ fi > # Consult white-list to determine whether to enable werror > # by default. Only enable by default for git builds > if test -z "$werror" ; then > - if test -e "$source_path/.git" && \ > + if test "$git_update" = "yes" && \ > { test "$linux" = "yes" || test "$mingw32" = "yes"; }; then > werror="yes" > else > @@ -4175,10 +4180,10 @@ EOF > fdt=system > else > # have GIT checkout, so activate dtc submodule > - if test -e "${source_path}/.git" ; then > + if test "$git_update" = "yes" ; then > git_submodules="${git_submodules} dtc" > fi > - if test -d "${source_path}/dtc/libfdt" || test -e "${source_path}/.git" ; then > + if test -d "${source_path}/dtc/libfdt" || test "$git_update" = "yes" ; then > fdt=git > mkdir -p dtc > fdt_cflags="-I${source_path}/dtc/libfdt" > @@ -5126,7 +5131,7 @@ case "$capstone" in > "" | yes) > if $pkg_config capstone; then > capstone=system > - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then > + elif test "$git_update" = "yes" ; then > capstone=git > elif test -e "${source_path}/capstone/Makefile" ; then > capstone=internal > @@ -6126,7 +6131,7 @@ case "$slirp" in > "" | yes) > if $pkg_config slirp; then > slirp=system > - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then > + elif test "$git_update" = "yes" ; then > slirp=git > elif test -e "${source_path}/slirp/Makefile" ; then > slirp=internal > @@ -6460,7 +6465,7 @@ if test "$cpu" = "s390x" ; then > roms="$roms s390-ccw" > # SLOF is required for building the s390-ccw firmware on s390x, > # since it is using the libnet code from SLOF for network booting. > - if test -e "${source_path}/.git" ; then > + if test "$git_update" = "yes" ; then > git_submodules="${git_submodules} roms/SLOF" > fi > fi >
diff --git a/Makefile b/Makefile index 2ed19310cf7..712aaf8b53b 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,8 @@ git-submodule-update: .PHONY: git-submodule-update +# If --disable-git-update specified, skip these git checks +ifneq (no,$(GIT_UPDATE)) git_module_status := $(shell \ cd '$(SRC_PATH)' && \ GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \ @@ -45,7 +47,12 @@ git_module_status := $(shell \ ) ifeq (1,$(git_module_status)) -ifeq (no,$(GIT_UPDATE)) +ifeq (yes,$(GIT_UPDATE)) +git-submodule-update: + $(call quiet-command, \ + (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh update $(GIT_SUBMODULES)), \ + "GIT","$(GIT_SUBMODULES)") +else git-submodule-update: $(call quiet-command, \ echo && \ @@ -54,11 +61,7 @@ git-submodule-update: 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 diff --git a/configure b/configure index 4231d56bcc0..2e0e2adc587 100755 --- a/configure +++ b/configure @@ -346,7 +346,7 @@ then git_submodules="$git_submodules tests/fp/berkeley-testfloat-3" git_submodules="$git_submodules tests/fp/berkeley-softfloat-3" else - git_update=no + git_update="" git_submodules="" if ! test -f "$source_path/ui/keycodemapdb/README" @@ -1577,7 +1577,12 @@ for opt do ;; --with-git=*) git="$optarg" ;; - --enable-git-update) git_update=yes + --enable-git-update) + git_update=yes + if test ! -e "$source_path/.git"; then + echo "ERROR: cannot --enable-git-update without .git" + exit 1 + fi ;; --disable-git-update) git_update=no ;; @@ -1974,7 +1979,7 @@ python="$python -B" if test -z "$meson"; then if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.55.1; then meson=meson - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then + elif test $git_update = 'yes' ; then meson=git elif test -e "${source_path}/meson/meson.py" ; then meson=internal @@ -2052,7 +2057,7 @@ fi # Consult white-list to determine whether to enable werror # by default. Only enable by default for git builds if test -z "$werror" ; then - if test -e "$source_path/.git" && \ + if test "$git_update" = "yes" && \ { test "$linux" = "yes" || test "$mingw32" = "yes"; }; then werror="yes" else @@ -4175,10 +4180,10 @@ EOF fdt=system else # have GIT checkout, so activate dtc submodule - if test -e "${source_path}/.git" ; then + if test "$git_update" = "yes" ; then git_submodules="${git_submodules} dtc" fi - if test -d "${source_path}/dtc/libfdt" || test -e "${source_path}/.git" ; then + if test -d "${source_path}/dtc/libfdt" || test "$git_update" = "yes" ; then fdt=git mkdir -p dtc fdt_cflags="-I${source_path}/dtc/libfdt" @@ -5126,7 +5131,7 @@ case "$capstone" in "" | yes) if $pkg_config capstone; then capstone=system - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then + elif test "$git_update" = "yes" ; then capstone=git elif test -e "${source_path}/capstone/Makefile" ; then capstone=internal @@ -6126,7 +6131,7 @@ case "$slirp" in "" | yes) if $pkg_config slirp; then slirp=system - elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then + elif test "$git_update" = "yes" ; then slirp=git elif test -e "${source_path}/slirp/Makefile" ; then slirp=internal @@ -6460,7 +6465,7 @@ if test "$cpu" = "s390x" ; then roms="$roms s390-ccw" # SLOF is required for building the s390-ccw firmware on s390x, # since it is using the libnet code from SLOF for network booting. - if test -e "${source_path}/.git" ; then + if test "$git_update" = "yes" ; then git_submodules="${git_submodules} roms/SLOF" fi fi
The --disable-git-update configure param sets git_update=no, but some later checks only look for the .git dir. This changes the --enable-git-update to set git_update=yes but also fail if it does not find a .git dir. Then all the later checks for the .git dir can just be changed to a check for $git_update = "yes". Also update the Makefile to skip the 'git_update' checks if it has been disabled. This is needed because downstream packagers, e.g. Debian, Ubuntu, etc, also keep the source code in git, but do not want to enable the 'git_update' mode; with the current code, that's not possible even if the downstream package specifies --disable-git-update. Signed-off-by: Dan Streetman <ddstreet@canonical.com> --- Resend; this was sent twice before: https://lists.nongnu.org/archive/html/qemu-trivial/2020-07/msg00180.html https://lists.nongnu.org/archive/html/qemu-devel/2020-07/msg08243.html Makefile | 15 +++++++++------ configure | 23 ++++++++++++++--------- 2 files changed, 23 insertions(+), 15 deletions(-)