[PATCH] qemu.nsi: Install Sphinx documentation

Peter Maydell posted 1 patch 5 years, 8 months ago
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-clang@ubuntu passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200306134751.2572-1-peter.maydell@linaro.org
Maintainers: Stefan Weil <sw@weilnetz.de>
qemu.nsi | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
[PATCH] qemu.nsi: Install Sphinx documentation
Posted by Peter Maydell 5 years, 8 months ago
The old qemu-doc.html is no longer built, so update the Windows
installer to install the new Sphinx manual sets.

We install all five of the manuals, even though some of them
(notably the user-mode manual) will not be very useful to Windows
users, because skipping some of them would mean broken links
in the top level 'index.html' page.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I've tested this (building it via the fedora docker image
and installing into a Windows VM) but I don't know anything
much about the installer so there might be neater ways to do it...

NB: I didn't realize that patchew included a test of building
the Windows installer, so until we get this (or some variant)
into master I'm afraid patchew will be emailing failure reports
to every submitted patchseries. Sorry about that :-(
---
 qemu.nsi | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/qemu.nsi b/qemu.nsi
index 0c29ba359cd..1a0112265b0 100644
--- a/qemu.nsi
+++ b/qemu.nsi
@@ -177,9 +177,20 @@ SectionEnd
 !ifdef CONFIG_DOCUMENTATION
 Section "Documentation" SectionDoc
     SetOutPath "$INSTDIR"
-    File "${BINDIR}\qemu-doc.html"
+    File "${BINDIR}\index.html"
+    SetOutPath "$INSTDIR\interop"
+    FILE /r "${BINDIR}\interop\*.*"
+    SetOutPath "$INSTDIR\specs"
+    FILE /r "${BINDIR}\specs\*.*"
+    SetOutPath "$INSTDIR\system"
+    FILE /r "${BINDIR}\system\*.*"
+    SetOutPath "$INSTDIR\tools"
+    FILE /r "${BINDIR}\tools\*.*"
+    SetOutPath "$INSTDIR\user"
+    FILE /r "${BINDIR}\user\*.*"
+    SetOutPath "$INSTDIR"
     CreateDirectory "$SMPROGRAMS\${PRODUCT}"
-    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\qemu-doc.html" "" "$INSTDIR\qemu-doc.html" 0
+    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\index.html" "" "$INSTDIR\index.html" 0
 SectionEnd
 !endif
 
@@ -227,7 +238,12 @@ Section "Uninstall"
     Delete "$INSTDIR\qemu-io.exe"
     Delete "$INSTDIR\qemu.exe"
     Delete "$INSTDIR\qemu-system-*.exe"
-    Delete "$INSTDIR\qemu-doc.html"
+    Delete "$INSTDIR\index.html"
+    RMDir /r "$INSTDIR\interop"
+    RMDir /r "$INSTDIR\specs"
+    RMDir /r "$INSTDIR\system"
+    RMDir /r "$INSTDIR\tools"
+    RMDir /r "$INSTDIR\user"
     RMDir /r "$INSTDIR\keymaps"
     RMDir /r "$INSTDIR\share"
     ; Remove generated files
-- 
2.20.1


Re: [PATCH] qemu.nsi: Install Sphinx documentation
Posted by Philippe Mathieu-Daudé 5 years, 8 months ago
On 3/6/20 2:47 PM, Peter Maydell wrote:
> The old qemu-doc.html is no longer built, so update the Windows
> installer to install the new Sphinx manual sets.
> 
> We install all five of the manuals, even though some of them
> (notably the user-mode manual) will not be very useful to Windows
> users, because skipping some of them would mean broken links
> in the top level 'index.html' page.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I've tested this (building it via the fedora docker image
> and installing into a Windows VM) but I don't know anything
> much about the installer so there might be neater ways to do it...
> 
> NB: I didn't realize that patchew included a test of building
> the Windows installer, so until we get this (or some variant)
> into master I'm afraid patchew will be emailing failure reports
> to every submitted patchseries. Sorry about that :-(
> ---
>   qemu.nsi | 22 +++++++++++++++++++---
>   1 file changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/qemu.nsi b/qemu.nsi
> index 0c29ba359cd..1a0112265b0 100644
> --- a/qemu.nsi
> +++ b/qemu.nsi
> @@ -177,9 +177,20 @@ SectionEnd
>   !ifdef CONFIG_DOCUMENTATION
>   Section "Documentation" SectionDoc
>       SetOutPath "$INSTDIR"

Now that we have multiple files installed, I'd move them into a separate 
directory: ${INSTDIR}/docs/ seems appropriate. Can be done later.

> -    File "${BINDIR}\qemu-doc.html"
> +    File "${BINDIR}\index.html"
> +    SetOutPath "$INSTDIR\interop"
> +    FILE /r "${BINDIR}\interop\*.*"
> +    SetOutPath "$INSTDIR\specs"
> +    FILE /r "${BINDIR}\specs\*.*"
> +    SetOutPath "$INSTDIR\system"
> +    FILE /r "${BINDIR}\system\*.*"
> +    SetOutPath "$INSTDIR\tools"
> +    FILE /r "${BINDIR}\tools\*.*"
> +    SetOutPath "$INSTDIR\user"
> +    FILE /r "${BINDIR}\user\*.*"
> +    SetOutPath "$INSTDIR"

The last SetOutPath seems alone (copy/paste mistake I suppose).
Otherwise looks good.

>       CreateDirectory "$SMPROGRAMS\${PRODUCT}"
> -    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\qemu-doc.html" "" "$INSTDIR\qemu-doc.html" 0
> +    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\index.html" "" "$INSTDIR\index.html" 0
>   SectionEnd
>   !endif
>   
> @@ -227,7 +238,12 @@ Section "Uninstall"
>       Delete "$INSTDIR\qemu-io.exe"
>       Delete "$INSTDIR\qemu.exe"
>       Delete "$INSTDIR\qemu-system-*.exe"
> -    Delete "$INSTDIR\qemu-doc.html"
> +    Delete "$INSTDIR\index.html"
> +    RMDir /r "$INSTDIR\interop"
> +    RMDir /r "$INSTDIR\specs"
> +    RMDir /r "$INSTDIR\system"
> +    RMDir /r "$INSTDIR\tools"
> +    RMDir /r "$INSTDIR\user"
>       RMDir /r "$INSTDIR\keymaps"
>       RMDir /r "$INSTDIR\share"
>       ; Remove generated files
> 


Re: [PATCH] qemu.nsi: Install Sphinx documentation
Posted by Peter Maydell 5 years, 8 months ago
On Fri, 6 Mar 2020 at 14:32, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> On 3/6/20 2:47 PM, Peter Maydell wrote:
> > The old qemu-doc.html is no longer built, so update the Windows
> > installer to install the new Sphinx manual sets.
> >
> > We install all five of the manuals, even though some of them
> > (notably the user-mode manual) will not be very useful to Windows
> > users, because skipping some of them would mean broken links
> > in the top level 'index.html' page.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> > I've tested this (building it via the fedora docker image
> > and installing into a Windows VM) but I don't know anything
> > much about the installer so there might be neater ways to do it...
> >
> > NB: I didn't realize that patchew included a test of building
> > the Windows installer, so until we get this (or some variant)
> > into master I'm afraid patchew will be emailing failure reports
> > to every submitted patchseries. Sorry about that :-(
> > ---
> >   qemu.nsi | 22 +++++++++++++++++++---
> >   1 file changed, 19 insertions(+), 3 deletions(-)
> >
> > diff --git a/qemu.nsi b/qemu.nsi
> > index 0c29ba359cd..1a0112265b0 100644
> > --- a/qemu.nsi
> > +++ b/qemu.nsi
> > @@ -177,9 +177,20 @@ SectionEnd
> >   !ifdef CONFIG_DOCUMENTATION
> >   Section "Documentation" SectionDoc
> >       SetOutPath "$INSTDIR"
>
> Now that we have multiple files installed, I'd move them into a separate
> directory: ${INSTDIR}/docs/ seems appropriate. Can be done later.
>
> > -    File "${BINDIR}\qemu-doc.html"
> > +    File "${BINDIR}\index.html"
> > +    SetOutPath "$INSTDIR\interop"
> > +    FILE /r "${BINDIR}\interop\*.*"
> > +    SetOutPath "$INSTDIR\specs"
> > +    FILE /r "${BINDIR}\specs\*.*"
> > +    SetOutPath "$INSTDIR\system"
> > +    FILE /r "${BINDIR}\system\*.*"
> > +    SetOutPath "$INSTDIR\tools"
> > +    FILE /r "${BINDIR}\tools\*.*"
> > +    SetOutPath "$INSTDIR\user"
> > +    FILE /r "${BINDIR}\user\*.*"
> > +    SetOutPath "$INSTDIR"
>
> The last SetOutPath seems alone (copy/paste mistake I suppose).
> Otherwise looks good.

No, it's deliberate. I wanted to put the output path back
to what it was at the start of this section, because I
wasn't sure if any of the commands below this point
implicitly depended on it.

> >       CreateDirectory "$SMPROGRAMS\${PRODUCT}"
> > -    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\qemu-doc.html" "" "$INSTDIR\qemu-doc.html" 0
> > +    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\index.html" "" "$INSTDIR\index.html" 0
> >   SectionEnd
> >   !endif

thanks
-- PMM

Re: [PATCH] qemu.nsi: Install Sphinx documentation
Posted by Philippe Mathieu-Daudé 5 years, 8 months ago
On 3/6/20 3:54 PM, Peter Maydell wrote:
> On Fri, 6 Mar 2020 at 14:32, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>>
>> On 3/6/20 2:47 PM, Peter Maydell wrote:
>>> The old qemu-doc.html is no longer built, so update the Windows
>>> installer to install the new Sphinx manual sets.
>>>
>>> We install all five of the manuals, even though some of them
>>> (notably the user-mode manual) will not be very useful to Windows
>>> users, because skipping some of them would mean broken links
>>> in the top level 'index.html' page.
>>>
>>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>>> ---
>>> I've tested this (building it via the fedora docker image
>>> and installing into a Windows VM) but I don't know anything
>>> much about the installer so there might be neater ways to do it...
>>>
>>> NB: I didn't realize that patchew included a test of building
>>> the Windows installer, so until we get this (or some variant)
>>> into master I'm afraid patchew will be emailing failure reports
>>> to every submitted patchseries. Sorry about that :-(
>>> ---
>>>    qemu.nsi | 22 +++++++++++++++++++---
>>>    1 file changed, 19 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/qemu.nsi b/qemu.nsi
>>> index 0c29ba359cd..1a0112265b0 100644
>>> --- a/qemu.nsi
>>> +++ b/qemu.nsi
>>> @@ -177,9 +177,20 @@ SectionEnd
>>>    !ifdef CONFIG_DOCUMENTATION
>>>    Section "Documentation" SectionDoc
>>>        SetOutPath "$INSTDIR"
>>
>> Now that we have multiple files installed, I'd move them into a separate
>> directory: ${INSTDIR}/docs/ seems appropriate. Can be done later.
>>
>>> -    File "${BINDIR}\qemu-doc.html"
>>> +    File "${BINDIR}\index.html"
>>> +    SetOutPath "$INSTDIR\interop"
>>> +    FILE /r "${BINDIR}\interop\*.*"
>>> +    SetOutPath "$INSTDIR\specs"
>>> +    FILE /r "${BINDIR}\specs\*.*"
>>> +    SetOutPath "$INSTDIR\system"
>>> +    FILE /r "${BINDIR}\system\*.*"
>>> +    SetOutPath "$INSTDIR\tools"
>>> +    FILE /r "${BINDIR}\tools\*.*"
>>> +    SetOutPath "$INSTDIR\user"
>>> +    FILE /r "${BINDIR}\user\*.*"
>>> +    SetOutPath "$INSTDIR"
>>
>> The last SetOutPath seems alone (copy/paste mistake I suppose).
>> Otherwise looks good.
> 
> No, it's deliberate. I wanted to put the output path back
> to what it was at the start of this section, because I
> wasn't sure if any of the commands below this point
> implicitly depended on it.

Ah good point.

As this patch unbreaks patchew:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>>>        CreateDirectory "$SMPROGRAMS\${PRODUCT}"
>>> -    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\qemu-doc.html" "" "$INSTDIR\qemu-doc.html" 0
>>> +    CreateShortCut "$SMPROGRAMS\${PRODUCT}\User Documentation.lnk" "$INSTDIR\index.html" "" "$INSTDIR\index.html" 0
>>>    SectionEnd
>>>    !endif
> 
> thanks
> -- PMM
> 


Re: [PATCH] qemu.nsi: Install Sphinx documentation
Posted by Peter Maydell 5 years, 8 months ago
On Fri, 6 Mar 2020 at 15:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> On 3/6/20 3:54 PM, Peter Maydell wrote:
> > On Fri, 6 Mar 2020 at 14:32, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> >>
> >> On 3/6/20 2:47 PM, Peter Maydell wrote:
> >>> The old qemu-doc.html is no longer built, so update the Windows
> >>> installer to install the new Sphinx manual sets.
> >>>
> >>> We install all five of the manuals, even though some of them
> >>> (notably the user-mode manual) will not be very useful to Windows
> >>> users, because skipping some of them would mean broken links
> >>> in the top level 'index.html' page.
> >>>
> >>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> As this patch unbreaks patchew:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Thanks. Stefan, I've applied this to master as it unbreaks
one of the patchew configs, but feel free to let me know if
there are changes you'd like me to make and I'll send a
followup patch.

-- PMM