aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/qemu-build-info-manual.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/qemu-build-info-manual.patch')
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch201
1 files changed, 91 insertions, 110 deletions
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
index d57b26ea00..f2bee30ab0 100644
--- a/gnu/packages/patches/qemu-build-info-manual.patch
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -1,90 +1,29 @@
-From 07303a0a4daa83a0555ac4abad7a5d65584307ad Mon Sep 17 00:00:00 2001
+From 2793f47c066ed396b38893c10533202fceb1a05f Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Thu, 17 Sep 2020 13:28:19 -0400
-Subject: [PATCH] build: Build and install the info manual.
+Subject: [PATCH] build: Build and install a Texinfo version of the manual.
Take advantage of the Sphinx texinfo backend to generate a QEMU info
-manual. The texinfo format allows for more structure and info readers
+manual. The Texinfo format allows for more structure and info readers
provide more advanced navigation capabilities compared to manpages
readers.
-* configure (infodir): Add the --infodir option, which allows
+* configure (infodir): Add an --infodir option, which allows
configuring the directory under which the info manuals are installed.
-* docs/index.rst: Include the top level documents to prevent
-warnings (treated as errors by sphinx-build).
-* Makefile (sphinxdocs-info, $(MANUAL_BUILDDIR)/QEMU.texi)): New targets.
-(info): Depend on sphinxdocs-info.
-(install-doc): Install the info manual.
+* docs/meson.build (texi, info): New targets.
+
+Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
---
- Makefile | 13 +++++++++++--
- configure | 7 +++++++
- docs/index.rst | 2 ++
- 3 files changed, 20 insertions(+), 2 deletions(-)
+ configure | 7 ++++++-
+ docs/meson.build | 21 +++++++++++++++++++++
+ meson.build | 2 ++
+ 3 files changed, 29 insertions(+), 1 deletion(-)
-diff --git a/Makefile b/Makefile
-index 13dd708c..da78612d 100644
---- a/Makefile
-+++ b/Makefile
-@@ -864,12 +864,14 @@ endef
- # Note that we deliberately do not install the "devel" manual: it is
- # for QEMU developers, and not interesting to our users.
- .PHONY: install-sphinxdocs
--install-sphinxdocs: sphinxdocs
-+install-sphinxdocs: sphinxdocs sphinxdocs-info
- $(call install-manual,interop)
- $(call install-manual,specs)
- $(call install-manual,system)
- $(call install-manual,tools)
- $(call install-manual,user)
-+ $(INSTALL_DIR) "$(DESTDIR)$(infodir)"
-+ $(INSTALL_DATA) $(MANUAL_BUILDDIR)/QEMU.info "$(DESTDIR)$(infodir)"
-
- install-doc: $(DOCS) install-sphinxdocs
- $(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)"
-@@ -1067,6 +1069,13 @@ sphinxdocs: $(MANUAL_BUILDDIR)/devel/index.html \
- $(MANUAL_BUILDDIR)/tools/index.html \
- $(MANUAL_BUILDDIR)/user/index.html
-
-+# Build the complete info manual.
-+.PHONE: sphinxdocs-info
-+sphinxdocs-info: $(MANUAL_BUILDDIR)/QEMU.info
-+
-+$(MANUAL_BUILDDIR)/QEMU.texi: $(call manual-deps,*) $(wildcard $(SRC_PATH)/docs/*.rst)
-+ $(call build-manual,,texinfo)
-+
- # Canned command to build a single manual
- # Arguments: $1 = manual name, $2 = Sphinx builder ('html' or 'man')
- # Note the use of different doctree for each (manual, builder) tuple;
-@@ -1126,7 +1135,7 @@ docs/interop/qemu-ga-qapi.texi: qga/qapi-generated/qga-qapi-doc.texi
- @cp -p $< $@
-
- html: docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html sphinxdocs
--info: docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info
-+info: docs/interop/qemu-qmp-ref.info docs/interop/qemu-ga-ref.info sphinxdocs-info
- pdf: docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf
- txt: docs/interop/qemu-qmp-ref.txt docs/interop/qemu-ga-ref.txt
-
diff --git a/configure b/configure
-index 2acc4d14..3691bd2e 100755
+index 18c26e0389..d1ab2c19d1 100755
--- a/configure
+++ b/configure
-@@ -415,6 +415,7 @@ LDFLAGS_SHARED="-shared"
- modules="no"
- module_upgrades="no"
- prefix="/usr/local"
-+infodir="\${prefix}/share/info"
- mandir="\${prefix}/share/man"
- datadir="\${prefix}/share"
- firmwarepath="\${prefix}/share/qemu-firmware"
-@@ -987,6 +988,7 @@ if test "$mingw32" = "yes" ; then
- LIBS="-liberty $LIBS"
- fi
- prefix="c:/Program Files/QEMU"
-+ infodir="\${prefix}"
- mandir="\${prefix}"
- datadir="\${prefix}"
- qemu_docdir="\${prefix}"
-@@ -1087,6 +1089,8 @@ for opt do
+@@ -948,6 +948,8 @@ for opt do
static="yes"
QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
;;
@@ -93,47 +32,89 @@ index 2acc4d14..3691bd2e 100755
--mandir=*) mandir="$optarg"
;;
--bindir=*) bindir="$optarg"
-@@ -1780,6 +1784,7 @@ Advanced options (experts only):
+@@ -975,7 +977,7 @@ for opt do
+ --host=*|--build=*|\
+ --disable-dependency-tracking|\
+ --sbindir=*|--sharedstatedir=*|\
+- --oldincludedir=*|--datarootdir=*|--infodir=*|\
++ --oldincludedir=*|--datarootdir=*|\
+ --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
+ # These switches are silently ignored, for compatibility with
+ # autoconf-generated configure scripts. This allows QEMU's
+@@ -1540,6 +1542,7 @@ includedir="${includedir:-$prefix/include}"
+ if test "$mingw32" = "yes" ; then
+ mandir="$prefix"
+ datadir="$prefix"
++ infodir="$prefix"
+ docdir="$prefix"
+ bindir="$prefix"
+ sysconfdir="$prefix"
+@@ -1547,6 +1550,7 @@ if test "$mingw32" = "yes" ; then
+ else
+ mandir="${mandir:-$prefix/share/man}"
+ datadir="${datadir:-$prefix/share}"
++ infodir="${infodir:-$datadir/info}"
+ docdir="${docdir:-$prefix/share/doc}"
+ bindir="${bindir:-$prefix/bin}"
+ sysconfdir="${sysconfdir:-$prefix/etc}"
+@@ -1683,6 +1687,7 @@ Advanced options (experts only):
--smbd=SMBD use specified smbd [$smbd]
--with-git=GIT use specified git [$git]
--static enable static build [$static]
+ --infodir=PATH install info manual in PATH
--mandir=PATH install man pages in PATH
- --datadir=PATH install firmware in PATH$confsuffix
- --docdir=PATH install documentation in PATH$confsuffix
-@@ -6836,6 +6841,7 @@ echo "include directory $(eval echo $includedir)"
- echo "config directory $(eval echo $sysconfdir)"
- if test "$mingw32" = "no" ; then
- echo "local state directory $(eval echo $local_statedir)"
-+echo "Info manual directory $(eval echo $infodir)"
- echo "Manual directory $(eval echo $mandir)"
- echo "ELF interp prefix $interp_prefix"
- else
-@@ -7059,6 +7065,7 @@ echo "bindir=$bindir" >> $config_host_mak
- echo "libdir=$libdir" >> $config_host_mak
- echo "libexecdir=$libexecdir" >> $config_host_mak
- echo "includedir=$includedir" >> $config_host_mak
-+echo "infodir=$infodir" >> $config_host_mak
- echo "mandir=$mandir" >> $config_host_mak
- echo "sysconfdir=$sysconfdir" >> $config_host_mak
- echo "qemu_confdir=$qemu_confdir" >> $config_host_mak
-diff --git a/docs/index.rst b/docs/index.rst
-index 763e3d04..4f155b51 100644
---- a/docs/index.rst
-+++ b/docs/index.rst
-@@ -9,6 +9,7 @@ Welcome to QEMU's documentation!
- .. toctree::
- :maxdepth: 2
- :caption: Contents:
-+ :glob:
+ --datadir=PATH install firmware in PATH/$qemu_suffix
+ --localedir=PATH install translation in PATH/$qemu_suffix
+diff --git a/docs/meson.build b/docs/meson.build
+index ebd85d59f9..1243839461 100644
+--- a/docs/meson.build
++++ b/docs/meson.build
+@@ -114,4 +114,25 @@ if build_docs
+ alias_target('sphinxdocs', sphinxdocs)
+ alias_target('html', sphinxdocs)
+ alias_target('man', sphinxmans)
++
++ # Generate a Texinfo version of the QEMU manual.
++ makeinfo = find_program(['texi2any', 'makeinfo'])
++ if makeinfo.found()
++ sphinxtexi = custom_target(
++ 'QEMU manual generated texinfo source',
++ output: ['QEMU.texi', 'sphinxtexi.stamp'],
++ depfile: 'sphinxtexi.d',
++ command: [SPHINX_ARGS, '-Ddepfile=@DEPFILE@',
++ '-Ddepfile_stamp=@OUTPUT1@', '-b', 'texinfo',
++ meson.current_source_dir(), meson.current_build_dir()])
++ sphinxinfo = custom_target(
++ 'QEMU info manual',
++ input: sphinxtexi,
++ output: 'QEMU.info',
++ install: true,
++ install_dir: get_option('infodir'),
++ command: [makeinfo, '--no-split', '@INPUT0@', '--output=@OUTPUT@'])
++ alias_target('texi', sphinxtexi)
++ alias_target('info', sphinxinfo)
++ endif
+ endif
+diff --git a/meson.build b/meson.build
+index e3386196ba..d64a125ad9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -32,6 +32,7 @@ endif
+ qemu_confdir = get_option('sysconfdir') / get_option('qemu_suffix')
+ qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
+ qemu_docdir = get_option('docdir') / get_option('qemu_suffix')
++qemu_infodir = get_option('infodir') / get_option('qemu_suffix')
+ qemu_moddir = get_option('libdir') / get_option('qemu_suffix')
- system/index
- user/index
-@@ -16,3 +17,4 @@ Welcome to QEMU's documentation!
- interop/index
- specs/index
- devel/index
-+ *
+ qemu_desktopdir = get_option('datadir') / 'applications'
+@@ -1995,6 +1996,7 @@ else
+ summary_info += {'local state directory': 'queried at runtime'}
+ endif
+ summary_info += {'Doc directory': get_option('docdir')}
++summary_info += {'Info directory': get_option('infodir')}
+ summary_info += {'Build directory': meson.current_build_dir()}
+ summary_info += {'Source path': meson.current_source_dir()}
+ summary_info += {'GIT binary': config_host['GIT']}
--
-2.28.0
+2.30.1