From: Pavel Hrdina Date: Thu, 25 Jun 2020 12:33:22 +0000 (+0200) Subject: meson: docs/manpages: install man pages X-Git-Tag: v6.7.0-rc1~268 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=adfd1367f4e9e123bd5d5896ae347c5025ad8d46;p=thirdparty%2Flibvirt.git meson: docs/manpages: install man pages Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- diff --git a/docs/Makefile.am b/docs/Makefile.am index d17455f135..8fe0959bc2 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -16,129 +16,9 @@ ## License along with this library. If not, see ## . -# Sync with src/util/ -KEYCODES = linux osx atset1 atset2 atset3 xtkbd usb win32 qnum -KEYNAMES = linux osx win32 - -manpages_rst = \ - manpages/index.rst \ - $(NULL) -manpages1_rst = \ - manpages/virt-pki-validate.rst \ - manpages/virt-xml-validate.rst \ - manpages/virt-admin.rst \ - manpages/virsh.rst \ - $(NULL) -manpages7_rst = \ - $(KEYCODES:%=manpages/virkeycode-%.rst) \ - $(KEYNAMES:%=manpages/virkeyname-%.rst) \ - $(NULL) -manpages8_rst = $(NULL) -manpages_rst += \ - $(manpages1_rst) \ - $(manpages7_rst) \ - $(manpages8_rst) \ - $(NULL) -if WITH_LIBVIRTD -manpages8_rst += \ - manpages/libvirtd.rst \ - manpages/virtlockd.rst \ - manpages/virtlogd.rst \ - $(NULL) -else ! WITH_LIBVIRTD -manpages_rst += \ - manpages/libvirtd.rst \ - manpages/virtlockd.rst \ - manpages/virtlogd.rst \ - $(NULL) -endif ! WITH_LIBVIRTD -if WITH_HOST_VALIDATE - manpages1_rst += manpages/virt-host-validate.rst -else ! WITH_HOST_VALIDATE - manpages_rst += manpages/virt-host-validate.rst -endif ! WITH_HOST_VALIDATE -if WITH_LOGIN_SHELL - manpages1_rst += manpages/virt-login-shell.rst -else ! WITH_LOGIN_SHELL - manpages_rst += manpages/virt-login-shell.rst -endif ! WITH_LOGIN_SHELL -if WITH_SANLOCK - manpages8_rst += manpages/virt-sanlock-cleanup.rst -else ! WITH_SANLOCK - manpages_rst += manpages/virt-sanlock-cleanup.rst -endif ! WITH_SANLOCK -if WITH_QEMU - manpages1_rst += manpages/virt-qemu-run.rst -else ! WITH_QEMU - manpages_rst += manpages/virt-qemu-run.rst -endif ! WITH_QEMU -manpages_rst_html_in = \ - $(manpages_rst:%.rst=%.html.in) -manpages_html = \ - $(manpages_rst_html_in:%.html.in=%.html) - -man1_MANS = $(manpages1_rst:%.rst=%.1) -man7_MANS = $(manpages7_rst:%.rst=%.7) -man8_MANS = $(manpages8_rst:%.rst=%.8) - -%.1: %.rst - $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ - grep -v '^\.\. contents::' < $< | \ - sed -e 's|SYSCONFDIR|$(sysconfdir)|g' \ - -e 's|RUNSTATEDIR|$(runstatedir)|g' | \ - $(RST2MAN) --strict > $@ || { rm $@ && exit 1; } - -%.7: %.rst - $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ - grep -v '^\.\. contents::' < $< | \ - sed -e 's|SYSCONFDIR|$(sysconfdir)|g' \ - -e 's|RUNSTATEDIR|$(runstatedir)|g' | \ - $(RST2MAN) --strict > $@ || { rm $@ && exit 1; } - -%.8: %.rst - $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ - grep -v '^\.\. contents::' < $< | \ - sed -e 's|SYSCONFDIR|$(sysconfdir)|g' \ - -e 's|RUNSTATEDIR|$(runstatedir)|g' | \ - $(RST2MAN) --strict > $@ || { rm $@ && exit 1; } - -manpages/virkeycode-%.rst: $(top_srcdir)/src/keycodemapdb/data/keymaps.csv \ - $(top_srcdir)/src/keycodemapdb/tools/keymap-gen Makefile.am - $(AM_V_GEN)export NAME=`echo $@ | \ - sed -e 's,manpages/virkeycode-,,' -e 's,\.rst,,'` && \ - $(MKDIR_P) manpages/ && \ - $(RUNUTF8) $(PYTHON) $(top_srcdir)/src/keycodemapdb/tools/keymap-gen \ - code-docs \ - --lang rst \ - --title "virkeycode-$$NAME" \ - --subtitle "Key code values for $$NAME" \ - $(top_srcdir)/src/keycodemapdb/data/keymaps.csv $$NAME > $@ - -manpages/virkeyname-%.rst: $(top_srcdir)/src/keycodemapdb/data/keymaps.csv \ - $(top_srcdir)/src/keycodemapdb/tools/keymap-gen Makefile.am - $(AM_V_GEN)export NAME=`echo $@ | \ - sed -e 's,manpages/virkeyname-,,' -e 's,\.rst,,'` && \ - $(MKDIR_P) manpages/ && \ - $(RUNUTF8) $(PYTHON) $(top_srcdir)/src/keycodemapdb/tools/keymap-gen \ - name-docs \ - --lang rst \ - --title "virkeyname-$$NAME" \ - --subtitle "Key name values for $$NAME" \ - $(top_srcdir)/src/keycodemapdb/data/keymaps.csv $$NAME > $@ - -manpagesdir = $(HTML_DIR)/manpages -manpages_DATA = $(manpages_html) - schemadir = $(pkgdatadir)/schemas schema_DATA = $(wildcard $(srcdir)/schemas/*.rng) -manpages/%.html.in: manpages/%.rst - $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ - grep -v '^:Manual ' < $< | \ - sed -e 's|SYSCONFDIR|$(sysconfdir)|g' \ - -e 's|RUNSTATEDIR|$(runstatedir)|g' | \ - $(RST2HTML) --strict > $@ || { rm $@ && exit 1; } - check-html: $(XMLLINT) --nonet --noout html/*.html diff --git a/docs/manpages/libvirtd.rst b/docs/manpages/libvirtd.rst index 4125604f9a..c88e2dd7e1 100644 --- a/docs/manpages/libvirtd.rst +++ b/docs/manpages/libvirtd.rst @@ -131,29 +131,29 @@ FILES When run as *root* ------------------ -* ``SYSCONFDIR/libvirt/libvirtd.conf`` +* ``@SYSCONFDIR@/libvirt/libvirtd.conf`` The default configuration file used by libvirtd, unless overridden on the command line using the ``-f`` | ``--config`` option. -* ``RUNSTATEDIR/libvirt/libvirt-sock`` -* ``RUNSTATEDIR/libvirt/libvirt-sock-ro`` +* ``@RUNSTATEDIR@/libvirt/libvirt-sock`` +* ``@RUNSTATEDIR@/libvirt/libvirt-sock-ro`` The sockets libvirtd will use. -* ``SYSCONFDIR/pki/CA/cacert.pem`` +* ``@SYSCONFDIR@/pki/CA/cacert.pem`` The TLS **Certificate Authority** certificate libvirtd will use. -* ``SYSCONFDIR/pki/libvirt/servercert.pem`` +* ``@SYSCONFDIR@/pki/libvirt/servercert.pem`` The TLS **Server** certificate libvirtd will use. -* ``SYSCONFDIR/pki/libvirt/private/serverkey.pem`` +* ``@SYSCONFDIR@/pki/libvirt/private/serverkey.pem`` The TLS **Server** private key libvirtd will use. -* ``RUNSTATEDIR/libvirtd.pid`` +* ``@RUNSTATEDIR@/libvirtd.pid`` The PID file to use, unless overridden by the ``-p`` | ``--pid-file`` option. @@ -210,8 +210,8 @@ To start libvirtd, instructing it to daemonize and create a PID file: .. code-block:: # libvirtd -d - # ls -la RUNSTATEDIR/libvirtd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/libvirtd.pid + # ls -la @RUNSTATEDIR@/libvirtd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 @RUNSTATEDIR@/libvirtd.pid BUGS diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build new file mode 100644 index 0000000000..fb4e254a8f --- /dev/null +++ b/docs/manpages/meson.build @@ -0,0 +1,128 @@ +# docs_man_files +# each entry is a dictionary with following items: +# name - man page name (required) +# section - man page section (required) +# install - whether to build and install the man page (required) +# file - generated RST file (optional, default none) + +docs_man_files = [ + { 'name': 'index', 'section': '', 'install': false }, + + { 'name': 'virsh', 'section': '1', 'install': true }, + { 'name': 'virt-admin', 'section': '1', 'install': true }, + { 'name': 'virt-host-validate', 'section': '1', 'install': conf.has('WITH_HOST_VALIDATE') }, + { 'name': 'virt-login-shell', 'section': '1', 'install': conf.has('WITH_LOGIN_SHELL') }, + { 'name': 'virt-pki-validate', 'section': '1', 'install': true }, + { 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') }, + { 'name': 'virt-xml-validate', 'section': '1', 'install': true }, + + { 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': sanlock_dep.found() }, + { 'name': 'virtlockd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, + { 'name': 'virtlogd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, +] + +foreach name : keycode_list + rst_file = custom_target( + 'virkeycode-@0@.rst'.format(name), + input: keymap_src_file, + output: 'virkeycode-@0@.rst'.format(name), + command: [ + meson_python_prog, python3_prog.path(), keymap_gen_prog.path(), 'code-docs', + '--lang', 'rst', + '--title', 'virkeycode-@0@'.format(name), + '--subtitle', 'Key code values for @0@'.format(name), + '@INPUT@', name, + ], + capture: true, + build_by_default: true, + ) + + docs_man_files += { + 'name': 'virkeycode-@0@'.format(name), 'section': '7', 'install': true, 'file': rst_file, + } +endforeach + +foreach name : keyname_list + rst_file = custom_target( + 'virkeyname-@0@.rst'.format(name), + input: keymap_src_file, + output: 'virkeyname-@0@.rst'.format(name), + command: [ + meson_python_prog, python3_prog.path(), keymap_gen_prog.path(), 'name-docs', + '--lang', 'rst', + '--title', 'virkeyname-@0@'.format(name), + '--subtitle', 'Key name values for @0@'.format(name), + '@INPUT@', name, + ], + capture: true, + build_by_default: true, + ) + + docs_man_files += { + 'name': 'virkeyname-@0@'.format(name), 'section': '7', 'install': true, 'file': rst_file, + } +endforeach + +docs_man_conf = configuration_data() +docs_man_conf.set('SYSCONFDIR', sysconfdir) +docs_man_conf.set('RUNSTATEDIR', runstatedir) + +foreach data : docs_man_files + rst_in_file = '@0@.rst'.format(data['name']) + html_in_file = '@0@.html.in'.format(data['name']) + html_file = '@0@.html'.format(data['name']) + + if data.has_key('file') + rst_file = data['file'] + else + rst_file = configure_file( + input: rst_in_file, + output: '@0@.rst'.format(data['name']), + configuration: docs_man_conf, + ) + endif + + if data['install'] + man_file = '@0@.@1@'.format(data['name'], data['section']) + man_page = custom_target( + man_file, + input: rst_file, + output: man_file, + command: [ rst2man_prog, '--strict', '@INPUT@', '@OUTPUT@' ], + install: true, + install_dir: mandir / 'man@0@'.format(data['section']), + ) + endif + + html_in = custom_target( + html_in_file, + input: rst_file, + output: html_in_file, + command: [ rst2html_prog, '--strict', '@INPUT@' ], + capture: true, + ) + + custom_target( + html_file, + input: html_in, + output: html_file, + command: [ + meson_python_prog, + python3_prog.path(), + meson_html_gen_prog.path(), + xsltproc_prog.path(), + xmllint_prog.path(), + meson.build_root(), + docs_timestamp, + subsite_xsl, + '@INPUT@', + '@OUTPUT@', + 'manpages' / rst_in_file, + ], + depends: [ aclperms_gen ], + depend_files: [ page_xsl ], + install: true, + install_dir: docs_html_dir / 'manpages', + ) +endforeach diff --git a/docs/manpages/virtlockd.rst b/docs/manpages/virtlockd.rst index 1dc106d6fc..ea37b25d05 100644 --- a/docs/manpages/virtlockd.rst +++ b/docs/manpages/virtlockd.rst @@ -79,16 +79,16 @@ FILES When run as *root* ------------------ -* ``SYSCONFDIR/libvirt/virtlockd.conf`` +* ``@SYSCONFDIR@/libvirt/virtlockd.conf`` The default configuration file used by ``virtlockd``, unless overridden on the command line using the ``-f`` | ``--config`` option. -* ``RUNSTATEDIR/libvirt/virtlockd-sock`` +* ``@RUNSTATEDIR@/libvirt/virtlockd-sock`` The sockets ``virtlockd`` will use. -* ``RUNSTATEDIR/virtlockd.pid`` +* ``@RUNSTATEDIR@/virtlockd.pid`` The PID file to use, unless overridden by the ``-p`` | ``--pid-file`` option. @@ -130,8 +130,8 @@ To start ``virtlockd``, instructing it to daemonize and create a PID file: .. code-block:: # virtlockd -d - # ls -la RUNSTATEDIR/virtlockd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlockd.pid + # ls -la @RUNSTATEDIR@/virtlockd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 @RUNSTATEDIR@/virtlockd.pid BUGS ==== diff --git a/docs/manpages/virtlogd.rst b/docs/manpages/virtlogd.rst index c84ab2e621..edf8288230 100644 --- a/docs/manpages/virtlogd.rst +++ b/docs/manpages/virtlogd.rst @@ -80,16 +80,16 @@ FILES When run as *root* ------------------ -* ``SYSCONFDIR/libvirt/virtlogd.conf`` +* ``@SYSCONFDIR@/libvirt/virtlogd.conf`` The default configuration file used by ``virtlogd``, unless overridden on the command line using the ``-f`` | ``--config`` option. -* ``RUNSTATEDIR/libvirt/virtlogd-sock`` +* ``@RUNSTATEDIR@/libvirt/virtlogd-sock`` The sockets ``virtlogd`` will use. -* ``RUNSTATEDIR/virtlogd.pid`` +* ``@RUNSTATEDIR@/virtlogd.pid`` The PID file to use, unless overridden by the ``-p`` | ``--pid-file`` option. @@ -131,8 +131,8 @@ To start ``virtlogd``, instructing it to daemonize and create a PID file: .. code-block:: # virtlogd -d - # ls -la RUNSTATEDIR/virtlogd.pid - -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlogd.pid + # ls -la @RUNSTATEDIR@/virtlogd.pid + -rw-r--r-- 1 root root 6 Jul 9 02:40 @RUNSTATEDIR@/virtlogd.pid BUGS diff --git a/docs/meson.build b/docs/meson.build index b867876223..185cbc0683 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -297,6 +297,7 @@ subdir('internals') subdir('js') subdir('kbase') subdir('logos') +subdir('manpages') # This hack enables us to view the web pages