[libvirt] [PATCH v2 2/2] Add ability to generate man page describing key code names & values

Daniel P. Berrange berrange at redhat.com
Fri Mar 3 16:54:35 UTC 2017


Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 libvirt.spec.in       |  1 +
 mingw-libvirt.spec.in |  2 ++
 src/Makefile.am       | 42 +++++++++++++++++++++++++++++++++++++++---
 tools/virsh.pod       | 20 ++++++++++++++++++++
 4 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 7f3d18f..374d37f 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1759,6 +1759,7 @@ exit 0
 %{_mandir}/man8/libvirtd.8*
 %{_mandir}/man8/virtlogd.8*
 %{_mandir}/man8/virtlockd.8*
+%{_mandir}/man7/virkey*.7*
 
 %doc examples/polkit/*.rules
 
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index e088dc2..dec799b 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -259,6 +259,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
 %{mingw32_mandir}/man1/virt-admin.1*
 %{mingw32_mandir}/man1/virt-xml-validate.1*
 %{mingw32_mandir}/man1/virt-pki-validate.1*
+%{mingw32_mandir}/man7/virkey*.7*
 
 %files -n mingw32-libvirt-static
 %{mingw32_libdir}/libvirt.a
@@ -343,6 +344,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
 %{mingw64_mandir}/man1/virt-admin.1*
 %{mingw64_mandir}/man1/virt-xml-validate.1*
 %{mingw64_mandir}/man1/virt-pki-validate.1*
+%{mingw64_mandir}/man7/virkey*.7*
 
 %files -n mingw64-libvirt-static
 %{mingw64_libdir}/libvirt.a
diff --git a/src/Makefile.am b/src/Makefile.am
index 24c1a0e..a2b1b24 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -50,6 +50,8 @@ AM_LDFLAGS =	$(DRIVER_MODULES_LDFLAGS)			\
 		$(MINGW_EXTRA_LDFLAGS)				\
 		$(NULL)
 
+POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"
+
 EXTRA_DIST = $(conf_DATA)
 
 BUILT_SOURCES =
@@ -212,15 +214,51 @@ util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
 		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
 			$@-tmp && mv $@-tmp $@ || rm $@-tmp
 
+util/virkeycode-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
+			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
+	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycode-,,' \
+					      -e 's,\.pod,,'` && \
+		$(MKDIR_P) util/ && \
+		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
+		--lang pod --varname "Key code values for $$NAME" code-docs \
+		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
+			$@-tmp && mv $@-tmp $@ || rm $@-tmp
+
+util/virkeyname-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
+			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
+	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeyname-,,' \
+					      -e 's,\.pod,,'` && \
+		$(MKDIR_P) util/ && \
+		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
+		--lang pod --varname "Key name values for $$NAME" name-docs \
+		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
+			$@-tmp && mv $@-tmp $@ || rm $@-tmp
+
+util/virkey%.7: util/virkey%.pod
+	$(AM_V_GEN)$(POD2MAN) --section=7 $< $@-t1 && \
+	if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
+	sed \
+		-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
+		-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
+		< $@-t1 > $@-t2 && \
+	rm -f $@-t1 && \
+	mv $@-t2 $@
+
 KEYCODES = linux osx atset1 atset2 atset3 xt xtkbd usb win32 rfb
 KEYNAMES = linux osx win32
 
 KEYTABLES = $(KEYCODES:%=util/virkeycodetable_%.h) \
 	    $(KEYNAMES:%=util/virkeynametable_%.h)
 
+KEYPODS = $(KEYCODES:%=util/virkeycode-%.pod) \
+	  $(KEYNAMES:%=util/virkeyname-%.pod)
+KEYMANS = $(KEYPODS:%.pod=%.7)
+
+man7_MANS = $(KEYMANS)
+
 UTIL_SOURCES += $(KEYTABLES)
 BUILT_SOURCES += $(KEYTABLES)
-MAINTAINERCLEANFILES += $(KEYTABLES)
+MAINTAINERCLEANFILES += $(KEYTABLES) $(KEYMANS) $(KEYPODS)
 
 # Internal generic driver infrastructure
 NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
@@ -2797,8 +2835,6 @@ virtlogd.init: logging/virtlogd.init.in $(top_builddir)/config.status
 	    chmod a+x $@-t &&					\
 	    mv $@-t $@
 
-POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"
-
 virtlockd.8.in: locking/virtlockd.pod
 	$(AM_V_GEN)$(POD2MAN) --section=8 $< $@-t1 && \
 	if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 6c06ee0..c1a6015 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -2062,11 +2062,15 @@ The numeric values are those defined by the Linux generic input
 event subsystem. The symbolic names match the corresponding
 Linux key constant macro names.
 
+See L<virkeycode-linux(7)> and L<virkeyname-linux(7)>
+
 =item B<xt>
 
 The numeric values are those defined by the original XT keyboard
 controller. No symbolic names are provided
 
+See L<virkeycode-xt(7)>
+
 =item B<atset1>
 
 The numeric values are those defined by the AT keyboard controller,
@@ -2074,22 +2078,30 @@ set 1 (aka XT compatible set). Extended keycoes from B<atset1>
 may differ from extended keycodes in the B<xt> codeset. No symbolic
 names are provided
 
+See L<virkeycode-atset1(7)>
+
 =item B<atset2>
 
 The numeric values are those defined by the AT keyboard controller,
 set 2. No symbolic names are provided
 
+See L<virkeycode-atset2(7)>
+
 =item B<atset3>
 
 The numeric values are those defined by the AT keyboard controller,
 set 3 (aka PS/2 compatible set). No symbolic names are provided
 
+See L<virkeycode-atset3(7)>
+
 =item B<os_x>
 
 The numeric values are those defined by the OS-X keyboard input
 subsystem. The symbolic names match the corresponding OS-X key
 constant macro names
 
+See L<virkeycode-osx(7)> and L<virkeyname-osx(7)>
+
 =item B<xt_kbd>
 
 The numeric values are those defined by the Linux KBD device.
@@ -2097,17 +2109,23 @@ These are a variant on the original XT codeset, but often with
 different encoding for extended keycodes. No symbolic names are
 provided.
 
+See L<virkeycode-xtkbd(7)>
+
 =item B<win32>
 
 The numeric values are those defined by the Win32 keyboard input
 subsystem. The symbolic names match the corresponding Win32 key
 constant macro names
 
+See L<virkeycode-win32(7)> and L<virkeyname-win32(7)>
+
 =item B<usb>
 
 The numeric values are those defined by the USB HID specification
 for keyboard input. No symbolic names are provided
 
+See L<virkeycode-usb(7)>
+
 =item B<rfb>
 
 The numeric values are those defined by the RFB extension for sending
@@ -2115,6 +2133,8 @@ raw keycodes. These are a variant on the XT codeset, but extended
 keycodes have the low bit of the second byte set, instead of the high
 bit of the first byte. No symbolic names are provided.
 
+See L<virkeycode-rfb(7)>
+
 =back
 
 B<Examples>
-- 
2.9.3




More information about the libvir-list mailing list