configure: remove --with-git= option

The scenario for which --with-git= was introduced was to use a SOCKS proxy
such as tsocks.  However, this was back in 2017 when QEMU's submodules
used the git:// protocol, and it is not as important when using the
"smart HTTP" backend; for example, neither "meson subprojects download"
nor scripts/checkpatch.pl obey the GIT environment variable.

So remove the knob, but test for the presence of git in the configure and
git-submodule.sh scripts, and suggest using --with-git-submodules=validate
+ a manual invocation of git-submodule.sh when git does not work.  Hopefully
in the future the GIT environment variable will be supported by Meson.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
master
Paolo Bonzini 2023-05-25 12:36:28 +02:00
parent 47a90a51a9
commit 50cfed80ec
5 changed files with 13 additions and 19 deletions

View File

@ -53,7 +53,7 @@ Makefile: .git-submodule-status
git-submodule-update: git-submodule-update:
ifneq ($(GIT_SUBMODULES_ACTION),ignore) ifneq ($(GIT_SUBMODULES_ACTION),ignore)
$(call quiet-command, \ $(call quiet-command, \
(GIT="$(GIT)" "$(SRC_PATH)/scripts/git-submodule.sh" $(GIT_SUBMODULES_ACTION) $(GIT_SUBMODULES)), \ (GIT=git "$(SRC_PATH)/scripts/git-submodule.sh" $(GIT_SUBMODULES_ACTION) $(GIT_SUBMODULES)), \
"GIT","$(GIT_SUBMODULES)") "GIT","$(GIT_SUBMODULES)")
endif endif

8
configure vendored
View File

@ -751,8 +751,6 @@ for opt do
;; ;;
--enable-fdt=*) fdt="$optarg" --enable-fdt=*) fdt="$optarg"
;; ;;
--with-git=*) git="$optarg"
;;
--with-git-submodules=*) --with-git-submodules=*)
git_submodules_action="$optarg" git_submodules_action="$optarg"
;; ;;
@ -791,7 +789,7 @@ fi
case $git_submodules_action in case $git_submodules_action in
update|validate) update|validate)
if test ! -e "$source_path/.git"; then if test ! -e "$source_path/.git" || ! has git; then
echo "ERROR: cannot $git_submodules_action git submodules without .git" echo "ERROR: cannot $git_submodules_action git submodules without .git"
exit 1 exit 1
fi fi
@ -892,7 +890,6 @@ Advanced options (experts only):
--python=PYTHON use specified python [$python] --python=PYTHON use specified python [$python]
--ninja=NINJA use specified ninja [$ninja] --ninja=NINJA use specified ninja [$ninja]
--smbd=SMBD use specified smbd [$smbd] --smbd=SMBD use specified smbd [$smbd]
--with-git=GIT use specified git [$git]
--with-git-submodules=update update git submodules (default if .git dir exists) --with-git-submodules=update update git submodules (default if .git dir exists)
--with-git-submodules=validate fail if git submodules are not up to date --with-git-submodules=validate fail if git submodules are not up to date
--with-git-submodules=ignore do not update or check git submodules (default if no .git dir) --with-git-submodules=ignore do not update or check git submodules (default if no .git dir)
@ -1699,7 +1696,7 @@ fi
####################################### #######################################
# generate config-host.mak # generate config-host.mak
if ! (GIT="$git" "$source_path/scripts/git-submodule.sh" "$git_submodules_action" "$git_submodules"); then if ! (GIT=git "$source_path/scripts/git-submodule.sh" "$git_submodules_action" "$git_submodules"); then
exit 1 exit 1
fi fi
@ -1709,7 +1706,6 @@ echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo >> $config_host_mak echo >> $config_host_mak
echo all: >> $config_host_mak echo all: >> $config_host_mak
echo "GIT=$git" >> $config_host_mak
echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
echo "GIT_SUBMODULES_ACTION=$git_submodules_action" >> $config_host_mak echo "GIT_SUBMODULES_ACTION=$git_submodules_action" >> $config_host_mak

View File

@ -4011,7 +4011,6 @@ summary(summary_info, bool_yn: true, section: 'Directories')
# Host binaries # Host binaries
summary_info = {} summary_info = {}
summary_info += {'git': config_host['GIT']}
summary_info += {'python': '@0@ (version: @1@)'.format(python.full_path(), python.language_version())} summary_info += {'python': '@0@ (version: @1@)'.format(python.full_path(), python.language_version())}
summary_info += {'sphinx-build': sphinx_build} summary_info += {'sphinx-build': sphinx_build}
if config_host.has_key('HAVE_GDB_BIN') if config_host.has_key('HAVE_GDB_BIN')

View File

@ -29,14 +29,12 @@
--extra-cflags="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection" \ --extra-cflags="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection" \
--with-suffix="qemu-kvm" \ --with-suffix="qemu-kvm" \
--firmwarepath=/usr/share/qemu-firmware \ --firmwarepath=/usr/share/qemu-firmware \
--with-git=meson \
--with-git-submodules=update \ --with-git-submodules=update \
--target-list="x86_64-softmmu" \ --target-list="x86_64-softmmu" \
--block-drv-rw-whitelist="qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle,gluster" \ --block-drv-rw-whitelist="qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle,gluster" \
--audio-drv-list="" \ --audio-drv-list="" \
--block-drv-ro-whitelist="vmdk,vhdx,vpc,https,ssh" \ --block-drv-ro-whitelist="vmdk,vhdx,vpc,https,ssh" \
--with-coroutine=ucontext \ --with-coroutine=ucontext \
--with-git=git \
--tls-priority=@QEMU,SYSTEM \ --tls-priority=@QEMU,SYSTEM \
--disable-attr \ --disable-attr \
--disable-auth-pam \ --disable-auth-pam \

View File

@ -12,7 +12,7 @@ maybe_modules="$@"
# if --with-git-submodules=ignore, do nothing # if --with-git-submodules=ignore, do nothing
test "$command" = "ignore" && exit 0 test "$command" = "ignore" && exit 0
test -z "$GIT" && GIT=git test -z "$GIT" && GIT=$(command -v git)
cd "$(dirname "$0")/.." cd "$(dirname "$0")/.."
@ -21,19 +21,14 @@ update_error() {
echo echo
echo "Unable to automatically checkout GIT submodules '$modules'." echo "Unable to automatically checkout GIT submodules '$modules'."
echo "If you require use of an alternative GIT binary (for example to" echo "If you require use of an alternative GIT binary (for example to"
echo "enable use of a transparent proxy), then please specify it by" echo "enable use of a transparent proxy), please disable automatic"
echo "running configure by with the '--with-git' argument. e.g." echo "GIT submodule checkout with:"
echo
echo " $ ./configure --with-git='tsocks git'"
echo
echo "Alternatively you may disable automatic GIT submodule checkout"
echo "with:"
echo echo
echo " $ ./configure --with-git-submodules=validate" echo " $ ./configure --with-git-submodules=validate"
echo echo
echo "and then manually update submodules prior to running make, with:" echo "and then manually update submodules prior to running make, with:"
echo echo
echo " $ scripts/git-submodule.sh update $modules" echo " $ GIT='tsocks git' scripts/git-submodule.sh update $modules"
echo echo
exit 1 exit 1
} }
@ -57,6 +52,12 @@ then
exit 1 exit 1
fi fi
if test -n "$maybe_modules" && test -z "$GIT"
then
echo "$0: unexpectedly called with submodules but git binary not found"
exit 1
fi
modules="" modules=""
for m in $maybe_modules for m in $maybe_modules
do do