Message ID | 20210824134641.154-1-lstipakov@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [Openvpn-devel,v2] Add building man page on Windows | expand |
Hi, I smoke-tested this on Linux and it does not break anything (docutils installed or not). Results of Windows testing below. Il 24/08/21 16:46, Lev Stipakov ha scritto: > From: Lev Stipakov <lev@openvpn.net> > > Use rst2html to build html from rst. Ignore errors, > this is not fatal and affects only MSI build. > > Modify MSVC GitHub Actions to install python3/rst2html > and add html man page to artifacts. > > Signed-off-by: Lev Stipakov <lev@openvpn.net> > --- > v2: > - change implementation to support GitHub Actions > > .github/workflows/build.yaml | 9 +++++++++ > build/msvc/msvc-generate/Makefile.mak | 9 ++++++++- > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml > index 5d7dd37b..4cb2f4cc 100644 > --- a/.github/workflows/build.yaml > +++ b/.github/workflows/build.yaml > @@ -206,6 +206,14 @@ jobs: > - name: Add MSBuild to PATH > uses: microsoft/setup-msbuild@v1 > > + - name: Set up Python > + uses: actions/setup-python@v2 > + with: > + python-version: '3.x' > + > + - name: Install rst2html > + run: python -m pip install --upgrade pip rst2html > + > - name: Restore artifacts, or run vcpkg, build and cache artifacts > uses: lukka/run-vcpkg@main > with: > @@ -227,3 +235,4 @@ jobs: > path: | > ${{ matrix.plat }}-Output/${{env.BUILD_CONFIGURATION}}/*.exe > ${{ matrix.plat }}-Output/${{env.BUILD_CONFIGURATION}}/*.dll > + doc/openvpn.8.html > diff --git a/build/msvc/msvc-generate/Makefile.mak b/build/msvc/msvc-generate/Makefile.mak > index 59fc9f0e..4924a6ce 100644 > --- a/build/msvc/msvc-generate/Makefile.mak > +++ b/build/msvc/msvc-generate/Makefile.mak > @@ -11,7 +11,10 @@ OUTPUT_PLUGIN=$(SOURCEBASE)/include/openvpn-plugin.h > INPUT_PLUGIN_CONFIG=version.m4.in > OUTPUT_PLUGIN_CONFIG=version.m4 > > -all: $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) > +INPUT_MAN=$(SOURCEBASE)/doc/openvpn.8.rst > +OUTPUT_MAN=$(SOURCEBASE)/doc/openvpn.8.html > + > +all: $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) $(OUTPUT_MAN) > > $(OUTPUT_MSVC_VER): $(INPUT_MSVC_VER) $(CONFIG) > cscript //nologo msvc-generate.js --config="$(CONFIG)" --input="$(INPUT_MSVC_VER)" --output="$(OUTPUT_MSVC_VER)" > @@ -22,7 +25,11 @@ $(OUTPUT_PLUGIN_CONFIG): $(INPUT_PLUGIN_CONFIG) > $(OUTPUT_PLUGIN): $(INPUT_PLUGIN) $(OUTPUT_PLUGIN_CONFIG) > cscript //nologo msvc-generate.js --config="$(OUTPUT_PLUGIN_CONFIG)" --input="$(INPUT_PLUGIN)" --output="$(OUTPUT_PLUGIN)" > > +$(OUTPUT_MAN): $(INPUT_MAN) > + -FOR /F %i IN ('where rst2html.py') DO python3 %i "$(INPUT_MAN)" "$(OUTPUT_MAN)" This line breaks at least if Python 3 was installed with Chocolatey[1]: choco install python The problem is that there's no "python3" binary in PATH. There is a "python" binary though. If I change the line above to say "python" I get a HTML man-page out. Maybe "python3" is gone from the latest Python packages? If not, I can have a look at what Chocolatey is doing when installing the Python package. > + > clean: > -del "$(OUTPUT_MSVC_VER)" > -del "$(OUTPUT_PLUGIN)" > -del "$(OUTPUT_PLUGIN_CONFIG)" > + -del "$(OUTPUT_MAN)" > [1] <https://community.chocolatey.org/packages/python/3.9.6>
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5d7dd37b..4cb2f4cc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -206,6 +206,14 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install rst2html + run: python -m pip install --upgrade pip rst2html + - name: Restore artifacts, or run vcpkg, build and cache artifacts uses: lukka/run-vcpkg@main with: @@ -227,3 +235,4 @@ jobs: path: | ${{ matrix.plat }}-Output/${{env.BUILD_CONFIGURATION}}/*.exe ${{ matrix.plat }}-Output/${{env.BUILD_CONFIGURATION}}/*.dll + doc/openvpn.8.html diff --git a/build/msvc/msvc-generate/Makefile.mak b/build/msvc/msvc-generate/Makefile.mak index 59fc9f0e..4924a6ce 100644 --- a/build/msvc/msvc-generate/Makefile.mak +++ b/build/msvc/msvc-generate/Makefile.mak @@ -11,7 +11,10 @@ OUTPUT_PLUGIN=$(SOURCEBASE)/include/openvpn-plugin.h INPUT_PLUGIN_CONFIG=version.m4.in OUTPUT_PLUGIN_CONFIG=version.m4 -all: $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) +INPUT_MAN=$(SOURCEBASE)/doc/openvpn.8.rst +OUTPUT_MAN=$(SOURCEBASE)/doc/openvpn.8.html + +all: $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) $(OUTPUT_MAN) $(OUTPUT_MSVC_VER): $(INPUT_MSVC_VER) $(CONFIG) cscript //nologo msvc-generate.js --config="$(CONFIG)" --input="$(INPUT_MSVC_VER)" --output="$(OUTPUT_MSVC_VER)" @@ -22,7 +25,11 @@ $(OUTPUT_PLUGIN_CONFIG): $(INPUT_PLUGIN_CONFIG) $(OUTPUT_PLUGIN): $(INPUT_PLUGIN) $(OUTPUT_PLUGIN_CONFIG) cscript //nologo msvc-generate.js --config="$(OUTPUT_PLUGIN_CONFIG)" --input="$(INPUT_PLUGIN)" --output="$(OUTPUT_PLUGIN)" +$(OUTPUT_MAN): $(INPUT_MAN) + -FOR /F %i IN ('where rst2html.py') DO python3 %i "$(INPUT_MAN)" "$(OUTPUT_MAN)" + clean: -del "$(OUTPUT_MSVC_VER)" -del "$(OUTPUT_PLUGIN)" -del "$(OUTPUT_PLUGIN_CONFIG)" + -del "$(OUTPUT_MAN)"