diff mbox series

qemu.nsi: Install Sphinx documentation

Message ID 20200306134751.2572-1-peter.maydell@linaro.org
State Accepted
Commit 373c7068dd610e97f0b551b5a6d0a27cd6da4506
Headers show
Series qemu.nsi: Install Sphinx documentation | expand

Commit Message

Peter Maydell March 6, 2020, 1:47 p.m. UTC
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(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé March 6, 2020, 2:32 p.m. UTC | #1
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

>
Peter Maydell March 6, 2020, 2:54 p.m. UTC | #2
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
Philippe Mathieu-Daudé March 6, 2020, 3:02 p.m. UTC | #3
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

>
Peter Maydell March 9, 2020, 5:26 p.m. UTC | #4
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
diff mbox series

Patch

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