Richard W.M. Jones
2016-Jan-04 15:18 UTC
[Libguestfs] [PATCH 0/3] podwrapper: Generate consistent WARNING sections (RHBZ#1293527).
Fix for: https://bugzilla.redhat.com/show_bug.cgi?id=1293527 Note that patches 2/3 and 3/3 are dependent on each other, ie. applying 2/3 on its own will break the build. So I may combine these when applying the series. Rich.
Richard W.M. Jones
2016-Jan-04 15:18 UTC
[Libguestfs] [PATCH 1/3] podwrapper: Enforce that every manual page must have a DESCRIPTION section.
For every user command line tool (eg. guestfish or virt-cat) require
that the manual page has a DESCRIPTION section. This doesn't apply to
non-CLI man pages (eg. guestfs-perl, guestfs-faq).
---
podwrapper.pl.in | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/podwrapper.pl.in b/podwrapper.pl.in
index 771782e..37e3e84 100755
--- a/podwrapper.pl.in
+++ b/podwrapper.pl.in
@@ -218,6 +218,9 @@ die "$progname: $input: no output format specified.
Use --man and/or --html and
$name = basename ($input, ".pod") unless defined $name;
$section = 1 unless defined $section;
+# Is it a user command line tool?
+my $cli_tool = $section == 1 && $name !~ /^guestfs-/;
+
# Note that these @...@ are substituted by ./configure.
my $abs_top_srcdir = "@abs_top_srcdir@";
my $abs_top_builddir = "@abs_top_builddir@";
@@ -300,6 +303,8 @@ $content =~ s/^=(.*)/\n=encoding utf8\n\n=$1/m;
if ($strict_checks) {
# Verify sections present / not present.
+ die "$progname: $input: missing DESCRIPTION section\n"
+ if $cli_tool && $content !~ /^=head1 DESCRIPTION/m;
die "$progname: $input: missing AUTHOR or AUTHORS section\n"
unless $content =~ /^=head1 AUTHOR/m;
die "$progname: $input: missing SEE ALSO section\n"
--
2.5.0
Richard W.M. Jones
2016-Jan-04 15:18 UTC
[Libguestfs] [PATCH 2/3] podwrapper: Generate consistent WARNING sections (RHBZ#1293527).
---
podwrapper.pl.in | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 73 insertions(+), 2 deletions(-)
diff --git a/podwrapper.pl.in b/podwrapper.pl.in
index 37e3e84..fd7a502 100755
--- a/podwrapper.pl.in
+++ b/podwrapper.pl.in
@@ -47,6 +47,7 @@ podwrapper.pl - Generate libguestfs documentation from POD
input files
--man virt-foo.1 \
--html $(top_builddir)/website/virt-foo.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
@@ -182,6 +183,31 @@ patterns, in fact you can use any string as the pattern.
=cut
+my $warning = "not-set";
+
+=item B<--warning general>
+
+=item B<--warning ro-option>
+
+Add a standard warning section near the top of the manual page,
+warning the user not to use the tool in write mode or concurrently.
+
+There are two variations of the warning: The I<--warning ro-option>
+variation should be used with tools such as L<guestfish(1)> which have
+an I<--ro> option. The I<--warning general> variation should be
used
+with other tools that open the disk image for writes, with no
+read-only option.
+
+=item B<--warning custom>
+
+Use I<--warning custom> if there is already a warning section in the
+manual page.
+
+=item B<--warning safe>
+
+Use I<--warning safe> for tools which are safe, ie. only open disk
+images in read-only mode, or just don't need a warning section.
+
=back
=cut
@@ -200,7 +226,8 @@ GetOptions ("help|?" => \$help,
"section=s" => \$section,
"strict-checks!" => \$strict_checks,
"text=s" => \$text,
- "verbatim=s" => \@verbatims
+ "verbatim=s" => \@verbatims,
+ "warning=s" => \$warning,
) or pod2usage (2);
pod2usage (1) if $help;
@@ -221,6 +248,13 @@ $section = 1 unless defined $section;
# Is it a user command line tool?
my $cli_tool = $section == 1 && $name !~ /^guestfs-/;
+# Warning parameter is mandatory for user tools in section 1.
+if ($strict_checks && $cli_tool) {
+ die "$progname: $input: missing argument: --warning parameter is
missing or invalid\n"
+ unless $warning eq "general" || $warning eq
"ro-option" ||
+ $warning eq "custom" || $warning eq "safe";
+}
+
# Note that these @...@ are substituted by ./configure.
my $abs_top_srcdir = "@abs_top_srcdir@";
my $abs_top_builddir = "@abs_top_builddir@";
@@ -266,6 +300,7 @@ my $release = "$package_name-$package_version";
#print "name=$name\n";
#print "section=$section\n";
#print "date=$date\n";
+#print "warning=$warning\n";
# Read the input.
my $content = read_whole_file ($input);
@@ -318,9 +353,18 @@ if ($strict_checks) {
die "$progname: $input: GPL/LGPL should be specified using the
--license parameter, not included in the POD file\n"
if $content =~ /^This program is free software/ ||
$content =~ /^This library is free software/;
+ if ($warning eq "general" || $warning eq "ro-option" ||
+ $warning eq "safe") {
+ die "$progname: $input: WARNING is now added automatically using
the --warning parameter\n"
+ if $content =~ /^=head1 WARNING/m
+ }
+ elsif ($warning eq "custom") {
+ die "$progname: $input: missing WARNING section\n"
+ unless $content =~ /^=head1 WARNING/m;
+ }
}
-# Add standard LICENSE and BUGS sections.
+# Add standard LICENSE, BUGS and WARNING sections.
my $LGPLv2plus "This library is free software; you can redistribute it
and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -393,6 +437,25 @@ output into the bug report.
\=back
";
+my $warning_general +"Using C<$name>
+on live virtual machines, or concurrently with other
+disk editing tools, can be dangerous, potentially causing disk
+corruption. The virtual machine must be shut down before you use this
+command, and disk images must not be edited concurrently.";
+
+my $warning_ro_option +"Using C<$name> in write mode
+on live virtual machines, or concurrently with other
+disk editing tools, can be dangerous, potentially causing disk
+corruption. The virtual machine must be shut down before you use this
+command, and disk images must not be edited concurrently.
+
+Use the I<--ro> (read-only) option to use C<$name> safely if the
disk
+image or virtual machine might be live. You may see strange or
+inconsistent results if running concurrently with other changes, but
+with this option you won't risk disk corruption.";
+
$content .= "\n\n=head1 LICENSE\n\n";
foreach (@licenses) {
@@ -412,6 +475,14 @@ foreach (@licenses) {
$content .= "\n\n$reporting_bugs";
+if ($warning eq "general") {
+ $content =~ s/^=head1 DESCRIPTION/=head1
WARNING\n\n$warning_general\n\n=head1 DESCRIPTION/m or die;
+}
+elsif ($warning eq "ro-option") {
+ $content =~ s/^=head1 DESCRIPTION/=head1
WARNING\n\n$warning_ro_option\n\n=head1 DESCRIPTION/m or die;
+}
+# else do nothing for $warning "custom", "safe" or
"not-set"
+
# Output man page.
SUBMAN: {
package Podwrapper::Man;
--
2.5.0
Richard W.M. Jones
2016-Jan-04 15:18 UTC
[Libguestfs] [PATCH 3/3] podwrapper: Add --warning flag for manual pages of CLI tools (RHBZ#1293527).
This doesn't add --warning flags to the translated pages,
which is a bug to be fixed at some point.
---
.gitignore | 1 +
align/Makefile.am | 1 +
appliance/Makefile.am | 1 +
builder/Makefile.am | 2 ++
cat/Makefile.am | 4 ++++
customize/Makefile.am | 1 +
df/Makefile.am | 1 +
dib/Makefile.am | 1 +
diff/Makefile.am | 1 +
edit/Makefile.am | 1 +
edit/virt-edit.pod | 6 ------
fish/Makefile.am | 5 +++++
fish/guestfish.pod | 7 -------
fish/virt-copy-in.pod | 6 ------
fish/virt-tar-in.pod | 6 ------
format/Makefile.am | 1 +
fuse/Makefile.am | 2 ++
fuse/guestmount.pod | 5 -----
get-kernel/Makefile.am | 1 +
inspector/Makefile.am | 1 +
make-fs/Makefile.am | 1 +
p2v/Makefile.am | 3 +++
po-docs/language.mk | 4 ++++
rescue/Makefile.am | 1 +
rescue/virt-rescue.pod | 10 ---------
resize/Makefile.am | 1 +
sparsify/Makefile.am | 1 +
sysprep/Makefile.am | 1 +
test-tool/Makefile.am | 1 +
tools/Makefile.am | 49 ++++++++++++++++++++++++++++++++++++--------
v2v/Makefile.am | 2 ++
v2v/test-harness/Makefile.am | 1 +
32 files changed, 80 insertions(+), 49 deletions(-)
diff --git a/.gitignore b/.gitignore
index abc7f64..c58898c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -552,6 +552,7 @@ Makefile.in
/test-tool/libguestfs-test-tool.1
/test-tool/libguestfs-test-tool-helper
/test-tool/stamp-libguestfs-test-tool.pod
+/tools/stamp-virt-*.pod
/tools/virt-*.1
/v2v/.depend
/v2v/centos-6.img
diff --git a/align/Makefile.am b/align/Makefile.am
index 43cd4f9..04eea16 100644
--- a/align/Makefile.am
+++ b/align/Makefile.am
@@ -85,6 +85,7 @@ stamp-virt-alignment-scan.pod: virt-alignment-scan.pod
--man virt-alignment-scan.1 \
--html $(top_builddir)/website/virt-alignment-scan.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/appliance/Makefile.am b/appliance/Makefile.am
index f219f9b..d8fb15b 100644
--- a/appliance/Makefile.am
+++ b/appliance/Makefile.am
@@ -134,6 +134,7 @@ stamp-libguestfs-make-fixed-appliance.pod:
libguestfs-make-fixed-appliance.pod
--man libguestfs-make-fixed-appliance.1 \
--html $(top_builddir)/website/libguestfs-make-fixed-appliance.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/builder/Makefile.am b/builder/Makefile.am
index a2509d7..e036721 100644
--- a/builder/Makefile.am
+++ b/builder/Makefile.am
@@ -227,6 +227,7 @@ stamp-virt-builder.pod: virt-builder.pod
$(top_srcdir)/customize/customize-synop
--insert
$(top_srcdir)/customize/customize-synopsis.pod:__CUSTOMIZE_SYNOPSIS__ \
--insert $(top_srcdir)/customize/customize-options.pod:__CUSTOMIZE_OPTIONS__
\
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -366,6 +367,7 @@ stamp-virt-index-validate.pod: virt-index-validate.pod
--man virt-index-validate.1 \
--html $(top_builddir)/website/virt-index-validate.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/cat/Makefile.am b/cat/Makefile.am
index d91b2d6..e2fe84d 100644
--- a/cat/Makefile.am
+++ b/cat/Makefile.am
@@ -160,6 +160,7 @@ stamp-virt-cat.pod: virt-cat.pod
--man virt-cat.1 \
--html $(top_builddir)/website/virt-cat.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -170,6 +171,7 @@ stamp-virt-filesystems.pod: virt-filesystems.pod
--man virt-filesystems.1 \
--html $(top_builddir)/website/virt-filesystems.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -180,6 +182,7 @@ stamp-virt-log.pod: virt-log.pod
--man virt-log.1 \
--html $(top_builddir)/website/virt-log.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -190,6 +193,7 @@ stamp-virt-ls.pod: virt-ls.pod
--man virt-ls.1 \
--html $(top_builddir)/website/virt-ls.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/customize/Makefile.am b/customize/Makefile.am
index a8ceb25..66df686 100644
--- a/customize/Makefile.am
+++ b/customize/Makefile.am
@@ -161,6 +161,7 @@ stamp-virt-customize.pod: virt-customize.pod
$(top_srcdir)/customize/customize-s
--insert
$(top_srcdir)/customize/customize-synopsis.pod:__CUSTOMIZE_SYNOPSIS__ \
--insert $(top_srcdir)/customize/customize-options.pod:__CUSTOMIZE_OPTIONS__
\
--license GPLv2+ \
+ --warning general \
$<
touch $@
diff --git a/df/Makefile.am b/df/Makefile.am
index 6bbf88d..256263d 100644
--- a/df/Makefile.am
+++ b/df/Makefile.am
@@ -88,6 +88,7 @@ stamp-virt-df.pod: virt-df.pod
--man virt-df.1 \
--html $(top_builddir)/website/virt-df.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/dib/Makefile.am b/dib/Makefile.am
index ad1fd6a..5a3a7c7 100644
--- a/dib/Makefile.am
+++ b/dib/Makefile.am
@@ -121,6 +121,7 @@ stamp-virt-dib.pod: virt-dib.pod
--man virt-dib.1 \
--html $(top_builddir)/website/virt-dib.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/diff/Makefile.am b/diff/Makefile.am
index d3b5ff6..13e86c7 100644
--- a/diff/Makefile.am
+++ b/diff/Makefile.am
@@ -74,6 +74,7 @@ stamp-virt-diff.pod: virt-diff.pod
--man virt-diff.1 \
--html $(top_builddir)/website/virt-diff.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/edit/Makefile.am b/edit/Makefile.am
index cc46587..eb36142 100644
--- a/edit/Makefile.am
+++ b/edit/Makefile.am
@@ -77,6 +77,7 @@ stamp-virt-edit.pod: virt-edit.pod
--man virt-edit.1 \
--html $(top_builddir)/website/virt-edit.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
diff --git a/edit/virt-edit.pod b/edit/virt-edit.pod
index 0f6b16a..a4fa02b 100644
--- a/edit/virt-edit.pod
+++ b/edit/virt-edit.pod
@@ -16,12 +16,6 @@ Old-style:
virt-edit disk.img [disk.img ...] file
-=head1 WARNING
-
-You must I<not> use C<virt-edit> on live virtual machines. If you
do
-this, you risk disk corruption in the VM. C<virt-edit> tries to stop
-you from doing this, but doesn't catch all cases.
-
=head1 DESCRIPTION
C<virt-edit> is a command line tool to edit C<file> where each
C<file>
diff --git a/fish/Makefile.am b/fish/Makefile.am
index f365bc3..fc7c729 100644
--- a/fish/Makefile.am
+++ b/fish/Makefile.am
@@ -211,6 +211,7 @@ stamp-guestfish.pod: guestfish.pod guestfish-actions.pod
guestfish-commands.pod
--insert $(srcdir)/guestfish-commands.pod:__FISH_COMMANDS__ \
--insert $(srcdir)/guestfish-prepopts.pod:__PREPOPTS__ \
--license GPLv2+ \
+ --warning ro-option \
$<
touch $@
@@ -232,6 +233,7 @@ stamp-virt-copy-in.pod: virt-copy-in.pod
--man virt-copy-in.1 \
--html $(top_builddir)/website/virt-copy-in.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
@@ -242,6 +244,7 @@ stamp-virt-copy-out.pod: virt-copy-out.pod
--man virt-copy-out.1 \
--html $(top_builddir)/website/virt-copy-out.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -252,6 +255,7 @@ stamp-virt-tar-in.pod: virt-tar-in.pod
--man virt-tar-in.1 \
--html $(top_builddir)/website/virt-tar-in.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
@@ -262,6 +266,7 @@ stamp-virt-tar-out.pod: virt-tar-out.pod
--man virt-tar-out.1 \
--html $(top_builddir)/website/virt-tar-out.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/fish/guestfish.pod b/fish/guestfish.pod
index a9eeed6..c6f5663 100644
--- a/fish/guestfish.pod
+++ b/fish/guestfish.pod
@@ -18,13 +18,6 @@ guestfish - the guest filesystem shell
guestfish -d libvirt-domain -i
-=head1 WARNING
-
-Using guestfish in read/write mode on live virtual machines can be
-dangerous, potentially causing disk corruption. Use the I<--ro>
-(read-only) option to use guestfish safely if the disk image or
-virtual machine might be live.
-
=head1 DESCRIPTION
Guestfish is a shell and command-line tool for examining and modifying
diff --git a/fish/virt-copy-in.pod b/fish/virt-copy-in.pod
index 37d96df..8c56c0e 100644
--- a/fish/virt-copy-in.pod
+++ b/fish/virt-copy-in.pod
@@ -8,12 +8,6 @@ virt-copy-in - Copy files and directories into a virtual
machine disk image.
virt-copy-in -d domain file|dir [file|dir ...] /destination
-=head1 WARNING
-
-Using C<virt-copy-in> on live virtual machines can be dangerous,
-potentially causing disk corruption. The virtual machine must be
-shut down before you use this command.
-
=head1 DESCRIPTION
C<virt-copy-in> copies files and directories from the local disk into
diff --git a/fish/virt-tar-in.pod b/fish/virt-tar-in.pod
index 9ccad1d..8974b5e 100644
--- a/fish/virt-tar-in.pod
+++ b/fish/virt-tar-in.pod
@@ -10,12 +10,6 @@ virt-tar-in - Unpack a tarball into a virtual machine disk
image.
zcat data.tar.gz | virt-tar-in -d domain - /destination
-=head1 WARNING
-
-Using C<virt-tar-in> on live virtual machines can be dangerous,
-potentially causing disk corruption. The virtual machine must be shut
-down before you use this command.
-
=head1 DESCRIPTION
C<virt-tar-in> unpacks an uncompressed tarball into a virtual machine
diff --git a/format/Makefile.am b/format/Makefile.am
index b6f7ecf..cc0489b 100644
--- a/format/Makefile.am
+++ b/format/Makefile.am
@@ -73,6 +73,7 @@ stamp-virt-format.pod: virt-format.pod
--man virt-format.1 \
--html $(top_builddir)/website/virt-format.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
diff --git a/fuse/Makefile.am b/fuse/Makefile.am
index d15a2cf..1fad440 100644
--- a/fuse/Makefile.am
+++ b/fuse/Makefile.am
@@ -113,6 +113,7 @@ stamp-guestmount.pod: guestmount.pod
--man guestmount.1 \
--html $(top_builddir)/website/guestmount.1.html \
--license GPLv2+ \
+ --warning ro-option \
$<
touch $@
@@ -123,6 +124,7 @@ stamp-guestunmount.pod: guestunmount.pod
--man guestunmount.1 \
--html $(top_builddir)/website/guestunmount.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/fuse/guestmount.pod b/fuse/guestmount.pod
index 5369041..e7f37ae 100644
--- a/fuse/guestmount.pod
+++ b/fuse/guestmount.pod
@@ -10,11 +10,6 @@ guestmount - Mount a guest filesystem on the host using FUSE
and libguestfs
guestmount [--options] -d Guest -i [--ro] mountpoint
-=head1 WARNING
-
-You must I<not> use C<guestmount> in read-write mode on live
virtual
-machines. If you do this, you risk disk corruption in the VM.
-
=head1 DESCRIPTION
The guestmount program can be used to mount virtual machine
diff --git a/get-kernel/Makefile.am b/get-kernel/Makefile.am
index 85428a7..d807877 100644
--- a/get-kernel/Makefile.am
+++ b/get-kernel/Makefile.am
@@ -120,6 +120,7 @@ stamp-virt-get-kernel.pod: virt-get-kernel.pod
--man virt-get-kernel.1 \
--html $(top_builddir)/website/virt-get-kernel.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/inspector/Makefile.am b/inspector/Makefile.am
index 9a8f23d..127bf03 100644
--- a/inspector/Makefile.am
+++ b/inspector/Makefile.am
@@ -102,6 +102,7 @@ stamp-virt-inspector.pod: virt-inspector.pod
--man virt-inspector.1 \
--html $(top_builddir)/website/virt-inspector.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/make-fs/Makefile.am b/make-fs/Makefile.am
index 20545f9..f7d9734 100644
--- a/make-fs/Makefile.am
+++ b/make-fs/Makefile.am
@@ -68,6 +68,7 @@ stamp-virt-make-fs.pod: virt-make-fs.pod
--man virt-make-fs.1 \
--html $(top_builddir)/website/virt-make-fs.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/p2v/Makefile.am b/p2v/Makefile.am
index 7d722ab..624086f 100644
--- a/p2v/Makefile.am
+++ b/p2v/Makefile.am
@@ -132,6 +132,7 @@ stamp-virt-p2v.pod: virt-p2v.pod
--man virt-p2v.1 \
--html $(top_builddir)/website/virt-p2v.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -142,6 +143,7 @@ stamp-virt-p2v-make-disk.pod: virt-p2v-make-disk.pod
--man virt-p2v-make-disk.1 \
--html $(top_builddir)/website/virt-p2v-make-disk.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -152,6 +154,7 @@ stamp-virt-p2v-make-kickstart.pod:
virt-p2v-make-kickstart.pod
--man virt-p2v-make-kickstart.1 \
--html $(top_builddir)/website/virt-p2v-make-kickstart.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/po-docs/language.mk b/po-docs/language.mk
index 3d3dd6f..9319f86 100644
--- a/po-docs/language.mk
+++ b/po-docs/language.mk
@@ -108,6 +108,10 @@ guestfs.3: guestfs.pod guestfs-actions.pod
guestfs-availability.pod guestfs-stru
--insert $(srcdir)/guestfs-structs.pod:__STRUCTS__ \
$<
+# XXX --warning parameter is not passed, so no WARNING section is
+# generated in any translated manual. To fix this we need to expand
+# out all the %.1 pattern rules below.
+
guestfish.1: guestfish.pod guestfish-actions.pod guestfish-commands.pod
guestfish-prepopts.pod
$(PODWRAPPER) \
--no-strict-checks \
diff --git a/rescue/Makefile.am b/rescue/Makefile.am
index 9a91c6b..144a255 100644
--- a/rescue/Makefile.am
+++ b/rescue/Makefile.am
@@ -75,6 +75,7 @@ stamp-virt-rescue.pod: virt-rescue.pod
--man virt-rescue.1 \
--html $(top_builddir)/website/virt-rescue.1.html \
--license GPLv2+ \
+ --warning ro-option \
$<
touch $@
diff --git a/rescue/virt-rescue.pod b/rescue/virt-rescue.pod
index 45fe784..bb563bc 100644
--- a/rescue/virt-rescue.pod
+++ b/rescue/virt-rescue.pod
@@ -16,16 +16,6 @@ Old style:
virt-rescue [--options] disk.img [disk.img ...]
-=head1 WARNING
-
-You must I<not> use C<virt-rescue> on live virtual machines. Doing
so
-will probably result in disk corruption in the VM. C<virt-rescue>
-tries to stop you from doing this, but doesn't catch all cases.
-
-However if you use the I<--ro> (read only) option, then you can attach
-a shell to a live virtual machine. The results might be strange or
-inconsistent at times but you won't get disk corruption.
-
=head1 DESCRIPTION
virt-rescue is like a Rescue CD, but for virtual machines, and without
diff --git a/resize/Makefile.am b/resize/Makefile.am
index 0139e91..9b1e17c 100644
--- a/resize/Makefile.am
+++ b/resize/Makefile.am
@@ -122,6 +122,7 @@ stamp-virt-resize.pod: virt-resize.pod
--man virt-resize.1 \
--html $(top_builddir)/website/virt-resize.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/sparsify/Makefile.am b/sparsify/Makefile.am
index 78d75bd..68f7fe7 100644
--- a/sparsify/Makefile.am
+++ b/sparsify/Makefile.am
@@ -118,6 +118,7 @@ stamp-virt-sparsify.pod: virt-sparsify.pod
--man virt-sparsify.1 \
--html $(top_builddir)/website/virt-sparsify.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
diff --git a/sysprep/Makefile.am b/sysprep/Makefile.am
index 285deb5..b3ad3c3 100644
--- a/sysprep/Makefile.am
+++ b/sysprep/Makefile.am
@@ -188,6 +188,7 @@ stamp-virt-sysprep.pod: virt-sysprep.pod
sysprep-extra-options.pod sysprep-opera
--insert sysprep-operations.pod:__OPERATIONS__ \
--html $(top_builddir)/website/virt-sysprep.1.html \
--license GPLv2+ \
+ --warning general \
$<
touch $@
diff --git a/test-tool/Makefile.am b/test-tool/Makefile.am
index c63e4e5..f7d1c7f 100644
--- a/test-tool/Makefile.am
+++ b/test-tool/Makefile.am
@@ -47,6 +47,7 @@ stamp-libguestfs-test-tool.pod: libguestfs-test-tool.pod
--man libguestfs-test-tool.1 \
--html $(top_builddir)/website/libguestfs-test-tool.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 699c117..8296b37 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -39,24 +39,55 @@ bin_SCRIPTS = $(tools:%=virt-%)
# Manual pages and HTML files for the website.
-# XXX Bug in automake? If you list virt-tar.1 explicitly, then it
-# builds and installs the man pages. However if this is removed,
-# then the man pages are neither built nor installed.
-man_MANS = virt-tar.1 $(patsubst %,virt-%.1,$(filter-out tar,$(tools)))
+man_MANS = \
+ virt-list-filesystems.1 \
+ virt-list-partitions.1 \
+ virt-tar.1 \
+ virt-win-reg.1
-noinst_DATA = $(tools:%=$(top_builddir)/website/virt-%.1.html)
+virt-list-filesystems.1 $(top_builddir)/website/virt-list-filesystems.1.html:
stamp-virt-list-filesystems.pod
-virt-%.1: virt-%
+stamp-virt-list-filesystems.pod: virt-list-filesystems
$(PODWRAPPER) \
- --man $@ \
+ --man virt-list-filesystems.1 \
+ --html $(top_builddir)/website/virt-list-filesystems.1.html \
--license GPLv2+ \
+ --warning safe \
$<
+ touch $@
-$(top_builddir)/website/virt-%.1.html: virt-%
+virt-list-partitions.1 $(top_builddir)/website/virt-list-partitions.1.html:
stamp-virt-list-partitions.pod
+
+stamp-virt-list-partitions.pod: virt-list-partitions
+ $(PODWRAPPER) \
+ --man virt-list-partitions.1 \
+ --html $(top_builddir)/website/virt-list-partitions.1.html \
+ --license GPLv2+ \
+ --warning safe \
+ $<
+ touch $@
+
+virt-tar.1 $(top_builddir)/website/virt-tar.1.html: stamp-virt-tar.pod
+
+stamp-virt-tar.pod: virt-tar
+ $(PODWRAPPER) \
+ --man virt-tar.1 \
+ --html $(top_builddir)/website/virt-tar.1.html \
+ --license GPLv2+ \
+ --warning custom \
+ $<
+ touch $@
+
+virt-win-reg.1 $(top_builddir)/website/virt-win-reg.1.html:
stamp-virt-win-reg.pod
+
+stamp-virt-win-reg.pod: virt-win-reg
$(PODWRAPPER) \
- --html $@ \
+ --man virt-win-reg.1 \
+ --html $(top_builddir)/website/virt-win-reg.1.html \
--license GPLv2+ \
+ --warning custom \
$<
+ touch $@
# Tests.
diff --git a/v2v/Makefile.am b/v2v/Makefile.am
index db01574..af7b05e 100644
--- a/v2v/Makefile.am
+++ b/v2v/Makefile.am
@@ -247,6 +247,7 @@ stamp-virt-v2v.pod: virt-v2v.pod
--man virt-v2v.1 \
--html $(top_builddir)/website/virt-v2v.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
@@ -257,6 +258,7 @@ stamp-virt-v2v-copy-to-local.pod: virt-v2v-copy-to-local.pod
--man virt-v2v-copy-to-local.1 \
--html $(top_builddir)/website/virt-v2v-copy-to-local.1.html \
--license GPLv2+ \
+ --warning safe \
$<
touch $@
diff --git a/v2v/test-harness/Makefile.am b/v2v/test-harness/Makefile.am
index dd18d2c..cab9b70 100644
--- a/v2v/test-harness/Makefile.am
+++ b/v2v/test-harness/Makefile.am
@@ -143,6 +143,7 @@ stamp-virt-v2v-test-harness.pod: virt-v2v-test-harness.pod
--man virt-v2v-test-harness.1 \
--html $(top_builddir)/website/virt-v2v-test-harness.1.html \
--license LGPLv2+ \
+ --warning safe \
$<
touch $@
--
2.5.0
Apparently Analagous Threads
- [PATCH v2 0/3] options: Describe --key SELECTOR in a single file.
- [PATCH libguestfs 0/3] options: Describe --key SELECTOR in a single file.
- [p2v PATCH 0/4] More imports and fixes
- [PATCH] fuse: Add guestmount-cleanup program to handle unmounting (RHBZ#916780).
- [PATCH v2] fuse: Add guestunmount program to handle unmounting (RHBZ#916780)