qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 3/3] nsis installer: Fix mouse-over descriptions for emulator


From: John Snow
Subject: Re: [PATCH 3/3] nsis installer: Fix mouse-over descriptions for emulators
Date: Mon, 7 Mar 2022 14:31:03 -0500

On Sat, Mar 5, 2022 at 5:57 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> We use the nsis.py script to write out an installer script Section
> for each emulator executable, so the exact set of Sections depends on
> which executables were built.  However the part of qemu.nsi which
> specifies mouse-over descriptions for each Section still has a
> hard-coded and very outdated list (with just i386 and alpha).  This
> causes two problems.  Firstly, if you build the installer for a
> configuration where you didn't build the i386 binaries you get
> warnings like this:
>   warning 6000: unknown variable/constant "{Section_i386}" detected, ignoring 
> (macro:_==:1)
>   warning 6000: unknown variable/constant "{Section_i386w}" detected, 
> ignoring (macro:_==:1)
> (this happens in our gitlab CI jobs, for instance).
> Secondly, most of the emulators in the generated installer don't have
> any mouseover text.
>
> Make nsis.py generate a second output file which has the necessary
> MUI_DESCRIPTION_TEXT lines for each Section it creates, so we can
> include that at the right point in qemu.nsi to set the mouse-over
> text.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I opted to put the logic into the Python script, which I think
> many QEMU contributors understand, rather than investigating
> whether NSIS installer script magic might for instance allow
> us to write out only one file rather than two, since I think
> very few of us understand the NSIS installer...

Makes sense.

Python bits:

Reviewed-by: John Snow <jsnow@redhat.com>


> ---
>  qemu.nsi        |  5 +----
>  scripts/nsis.py | 13 ++++++++++++-
>  2 files changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/qemu.nsi b/qemu.nsi
> index a44d2be32a2..aa93adee396 100644
> --- a/qemu.nsi
> +++ b/qemu.nsi
> @@ -228,10 +228,7 @@ SectionEnd
>  ; Descriptions (mouse-over).
>  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
>      !insertmacro MUI_DESCRIPTION_TEXT ${SectionSystem}  "System emulation."
> -    !insertmacro MUI_DESCRIPTION_TEXT ${Section_alpha}  "Alpha system 
> emulation."
> -    !insertmacro MUI_DESCRIPTION_TEXT ${Section_alphaw} "Alpha system 
> emulation (GUI)."
> -    !insertmacro MUI_DESCRIPTION_TEXT ${Section_i386}   "PC i386 system 
> emulation."
> -    !insertmacro MUI_DESCRIPTION_TEXT ${Section_i386w}  "PC i386 system 
> emulation (GUI)."
> +!include "${BINDIR}\system-mui-text.nsh"
>      !insertmacro MUI_DESCRIPTION_TEXT ${SectionTools} "Tools."
>  !ifdef DLLDIR
>      !insertmacro MUI_DESCRIPTION_TEXT ${SectionDll}   "Runtime Libraries 
> (DLL)."
> diff --git a/scripts/nsis.py b/scripts/nsis.py
> index 383bef70332..462d6cac3b6 100644
> --- a/scripts/nsis.py
> +++ b/scripts/nsis.py
> @@ -33,7 +33,9 @@ def main():
>          subprocess.run(["make", "install", "DESTDIR=" + destdir + 
> os.path.sep])
>          with open(
>              os.path.join(destdir + args.prefix, "system-emulations.nsh"), "w"
> -        ) as nsh:
> +        ) as nsh, open(
> +            os.path.join(destdir + args.prefix, "system-mui-text.nsh"), "w"
> +        ) as muinsh:
>              for exe in sorted(glob.glob(
>                  os.path.join(destdir + args.prefix, "qemu-system-*.exe")
>              )):
> @@ -49,6 +51,15 @@ def main():
>                          arch, exe
>                      )
>                  )
> +                if arch.endswith('w'):
> +                    desc = arch[:-1] + " emulation (GUI)."
> +                else:
> +                    desc = arch + " emulation."
> +
> +                muinsh.write(
> +                    """
> +                !insertmacro MUI_DESCRIPTION_TEXT ${{Section_{0}}} "{1}"
> +                """.format(arch, desc))
>
>          for exe in glob.glob(os.path.join(destdir + args.prefix, "*.exe")):
>              signcode(exe)
> --
> 2.25.1
>




reply via email to

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