On Sat, 27 May 2023, Paolo Bonzini wrote:
The behavior of --{enable,disable}-pypi is similar to that of
-Dwrapmode={default,nodownload} respectively. In particular,
in both cases a feature needs to be explicitly enabled for the
dependency to be downloaded.
So, use a single option to control both cases. Now, --enable-slirp
will trigger cloning and building of libslirp if the .pc file
is not found on the machine.
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
---
configure | 17 +++++++----------
subprojects/.gitignore | 3 +++
2 files changed, 10 insertions(+), 10 deletions(-)
create mode 100644 subprojects/.gitignore
diff --git a/configure b/configure
index 370e038e63d7..2f908660e4f1 100755
--- a/configure
+++ b/configure
@@ -266,7 +266,7 @@ bsd_user=""
plugins="$default_feature"
ninja=""
python=
-pypi="enabled"
+download="enabled"
Is this the default? Can it default to disabled so it won't download
anytihng unless asked to do that? By default it should just report if
something is missing and let the users decide how they want to install it.
Regards,
BALATON Zoltan
bindir="bin"
skip_meson=no
vfio_user_server="disabled"
@@ -756,9 +756,9 @@ for opt do
--with-git-submodules=*)
git_submodules_action="$optarg"
;;
- --disable-pypi) pypi="disabled"
+ --disable-download) download="disabled"
;;
- --enable-pypi) pypi="enabled"
+ --enable-download) download="enabled"
;;
--enable-plugins) if test "$mingw32" = "yes"; then
error_exit "TCG plugins not currently supported on Windows
platforms"
@@ -962,7 +962,7 @@ python="$(command -v "$python")"
# - venv is allowed to use system packages;
# - all setup can be performed offline;
# - missing packages may be fetched from PyPI,
-# unless --disable-pypi is passed.
+# unless --disable-download is passed.
# - pip is not installed into the venv when possible,
# but ensurepip is called as a fallback when necessary.
@@ -979,7 +979,7 @@ python="$python -B"
mkvenv="$python ${source_path}/python/scripts/mkvenv.py"
mkvenv_flags=""
-if test "$pypi" = "enabled" ; then
+if test "$download" = "enabled" ; then
mkvenv_flags="--online"
fi
@@ -1002,7 +1002,7 @@ meson="$(cd pyvenv/bin; pwd)/meson"
# Conditionally ensure Sphinx is installed.
mkvenv_flags=""
-if test "$pypi" = "enabled" -a "$docs" = "enabled" ; then
+if test "$download" = "enabled" -a "$docs" = "enabled" ; then
mkvenv_flags="--online"
fi
@@ -1942,11 +1942,8 @@ if test "$skip_meson" = no; then
rm -rf meson-private meson-info meson-logs
- # Prevent meson from automatically downloading wrapped subprojects when
missing.
- # You can use 'meson subprojects download' before running configure.
- meson_option_add "--wrap-mode=nodownload"
-
# Built-in options
+ test "$download" = "disabled" && meson_option_add "--wrap-mode=nodownload"
test "$bindir" != "bin" && meson_option_add "-Dbindir=$bindir"
test "$default_feature" = no && meson_option_add -Dauto_features=disabled
test "$static" = yes && meson_option_add -Dprefer_static=true
diff --git a/subprojects/.gitignore b/subprojects/.gitignore
new file mode 100644
index 000000000000..7560ebb0b1a0
--- /dev/null
+++ b/subprojects/.gitignore
@@ -0,0 +1,3 @@
+/packagecache
+
+/slirp