qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 03/13] meson: stop looking for 'sphinx-build-3'


From: Peter Maydell
Subject: Re: [PULL 03/13] meson: stop looking for 'sphinx-build-3'
Date: Thu, 2 Mar 2023 16:54:47 +0000

On Mon, 27 Feb 2023 at 17:58, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> From: John Snow <jsnow@redhat.com>
>
> Once upon a time, "sphinx-build" on certain RPM platforms invoked
> specifically a Python 2.x version, while "sphinx-build-3" was a distro
> shim for the Python 3.x version.
>
> These days, none of our supported platforms utilize a 2.x version, and
> those that still have 'sphinx-build-3' make it a symbolic link to
> 'sphinx-build'.  Not searching for 'sphinx-build-3' will prefer
> pip/venv installed versions of sphinx if they're available.
>
> This adds an extremely convenient ability to test document building
> ability in QEMU across multiple versions of Sphinx for the purposes of
> compatibility testing.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> Message-Id: <20230221012456.2607692-6-jsnow@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Hi. I've just noticed that this breaks incremental rebuilds:
meson.log says:


[Errno 21] Is a directory: '/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/docs/'
Unusable script '/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/docs/'
Program  found: NO

../../docs/meson.build:1:0: ERROR: Program '' not found or not executable

>  docs/meson.build              | 9 ++-------
>  meson_options.txt             | 2 +-
>  scripts/meson-buildoptions.sh | 1 +
>  3 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/docs/meson.build b/docs/meson.build
> index bbcdccce68a8..bb72c10ea8c5 100644
> --- a/docs/meson.build
> +++ b/docs/meson.build
> @@ -1,10 +1,5 @@
> -if get_option('sphinx_build') == ''
> -  sphinx_build = find_program(['sphinx-build-3', 'sphinx-build'],
> -                              required: get_option('docs'))
> -else
> -  sphinx_build = find_program(get_option('sphinx_build'),
> -                              required: get_option('docs'))
> -endif
> +sphinx_build = find_program(get_option('sphinx_build'),
> +                            required: get_option('docs'))
>
>  # Check if tools are available to build documentation.
>  build_docs = false
> diff --git a/meson_options.txt b/meson_options.txt
> index 6b0900205ea7..fc9447d267bf 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -12,7 +12,7 @@ option('pkgversion', type : 'string', value : '',
>         description: 'use specified string as sub-version of the package')
>  option('smbd', type : 'string', value : '',
>         description: 'Path to smbd for slirp networking')
> -option('sphinx_build', type : 'string', value : '',
> +option('sphinx_build', type : 'string', value : 'sphinx-build',
>         description: 'Use specified sphinx-build for building document')
>  option('iasl', type : 'string', value : '',
>         description: 'Path to ACPI disassembler')
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 5d969a94c08e..009fab151571 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -55,6 +55,7 @@ meson_options_help() {
>    printf "%s\n" '  --localstatedir=VALUE    Localstate data directory 
> [/var/local]'
>    printf "%s\n" '  --mandir=VALUE           Manual page directory 
> [share/man]'
>    printf "%s\n" '  --sphinx-build=VALUE     Use specified sphinx-build for 
> building document'
> +  printf "%s\n" '                           [sphinx-build]'
>    printf "%s\n" '  --sysconfdir=VALUE       Sysconf data directory [etc]'
>    printf "%s\n" '  --tls-priority=VALUE     Default TLS protocol/cipher 
> priority string'
>    printf "%s\n" '                           [NORMAL]'

I think this happens because the commit has changed the
default value of the '--sphinx-build' option, but if you're
doing an incremental rebuild then meson will get run with
the old default value (which is the empty string) and the
new meson.build doesn't expect that and falls over.

Manually rerunning configure fixes this, but ideally
incremental rebuilds should Just Work.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]