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.
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.
It is the default but only for features that are explicitly enabled on the configure command line. For example sphinx will not be installed unless --enable-docs is present.
However, if in the future we remove the bundled dtc sources from the tarball, that might be an exception in that dtc would be downloaded anyway. To be clear, this is not something that is changed by this series.
Paolo
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
>