On Wed, Nov 12, 2014 at 8:30 PM, Daniel P. Berrange <berrange(a)redhat.com> wrote:
The API docs generators were broken by the header file
re-organization. Specifically
* html/libvirt-libvirt.html was empty (and should be deleted)
* Makefile.am didn't install html/libvirt-libvirt-*.html
* hvsupport.html was mostly empty
* sitemap.html.in didn't list the new html/*.html files
---
docs/Makefile.am | 17 +++++++--
docs/apibuild.py | 1 -
docs/hvsupport.pl | 101 +++++++++++++++++++++++++++++----------------------
docs/sitemap.html.in | 48 ++++++++++++++++++++++--
4 files changed, 115 insertions(+), 52 deletions(-)
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 9de3406..910bfef 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -25,9 +25,20 @@ DOC_SOURCE_DIR=../src
DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt
-apihtml = \
- html/index.html \
- html/libvirt-libvirt.html \
+apihtml = \
+ html/index.html \
+ html/libvirt-libvirt-domain.html \
+ html/libvirt-libvirt-domain-snapshot.html \
+ html/libvirt-libvirt-event.html \
+ html/libvirt-libvirt-host.html \
+ html/libvirt-libvirt.html \
+ html/libvirt-libvirt-interface.html \
+ html/libvirt-libvirt-network.html \
+ html/libvirt-libvirt-nodedev.html \
+ html/libvirt-libvirt-nwfilter.html \
+ html/libvirt-libvirt-secret.html \
+ html/libvirt-libvirt-storage.html \
+ html/libvirt-libvirt-stream.html \
html/libvirt-virterror.html
apipng = \
diff --git a/docs/apibuild.py b/docs/apibuild.py
index 797a7a5..7549a63 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -21,7 +21,6 @@ debugsym=None
# C parser analysis code
#
included_files = {
- "libvirt.h": "header with general libvirt API definitions",
"libvirt-domain.h": "header with general libvirt API
definitions",
"libvirt-domain-snapshot.h": "header with general libvirt API
definitions",
"libvirt-event.h": "header with general libvirt API definitions",
diff --git a/docs/hvsupport.pl b/docs/hvsupport.pl
index 6d8ed9c..96720eb 100755
--- a/docs/hvsupport.pl
+++ b/docs/hvsupport.pl
@@ -12,7 +12,17 @@ my $srcdir = shift @ARGV;
my $symslibvirt = "$srcdir/libvirt_public.syms";
my $symsqemu = "$srcdir/libvirt_qemu.syms";
my $symslxc = "$srcdir/libvirt_lxc.syms";
-my $drivertable = "$srcdir/driver.h";
+my @drivertable = (
+ "$srcdir/driver-hypervisor.h",
+ "$srcdir/driver-interface.h",
+ "$srcdir/driver-network.h",
+ "$srcdir/driver-nodedev.h",
+ "$srcdir/driver-nwfilter.h",
+ "$srcdir/driver-secret.h",
+ "$srcdir/driver-state.h",
+ "$srcdir/driver-storage.h",
+ "$srcdir/driver-stream.h",
+ );
my %groupheaders = (
"virHypervisorDriver" => "Hypervisor APIs",
@@ -182,41 +192,44 @@ $apis{virDomainMigrateConfirm3Params} = "1.1.0";
# and driver struct fields. This lets us later match
# update the driver impls with the public APis.
-open FILE, "<$drivertable"
- or die "cannot read $drivertable: $!";
-
# Group name -> hash of APIs { fields -> api name }
my %groups;
my $ingrp;
-while (defined($line = <FILE>)) {
- if ($line =~ /struct _(vir\w*Driver)/) {
- my $grp = $1;
- if ($grp ne "virStateDriver" &&
- $grp ne "virStreamDriver") {
- $ingrp = $grp;
- $groups{$ingrp} = { apis => {}, drivers => {} };
- }
- } elsif ($ingrp) {
- if ($line =~ /^\s*vir(?:Drv)(\w+)\s+(\w+);\s*$/) {
- my $field = $2;
- my $name = $1;
-
- my $api;
- if (exists $apis{"vir$name"}) {
- $api = "vir$name";
- } elsif ($name =~ /\w+(Open|Close)/) {
- next;
- } else {
- die "driver $name does not have a public API";
+foreach my $drivertable (@drivertable) {
+ open FILE, "<$drivertable"
+ or die "cannot read $drivertable: $!";
+
+ while (defined($line = <FILE>)) {
+ if ($line =~ /struct _(vir\w*Driver)/) {
+ my $grp = $1;
+ if ($grp ne "virStateDriver" &&
+ $grp ne "virStreamDriver") {
+ $ingrp = $grp;
+ warn "[$ingrp]";
+ $groups{$ingrp} = { apis => {}, drivers => {} };
+ }
+ } elsif ($ingrp) {
+ if ($line =~ /^\s*vir(?:Drv)(\w+)\s+(\w+);\s*$/) {
+ my $field = $2;
+ my $name = $1;
+
+ my $api;
+ if (exists $apis{"vir$name"}) {
+ $api = "vir$name";
+ } elsif ($name =~ /\w+(Open|Close)/) {
+ next;
+ } else {
+ die "driver $name does not have a public API";
+ }
+ $groups{$ingrp}->{apis}->{$field} = $api;
+ } elsif ($line =~ /};/) {
+ $ingrp = undef;
}
- $groups{$ingrp}->{apis}->{$field} = $api;
- } elsif ($line =~ /};/) {
- $ingrp = undef;
}
}
-}
-close FILE;
+ close FILE;
+}
# Finally, we read all the primary driver files and extract
@@ -290,43 +303,43 @@ foreach my $src (@srcs) {
# have a bit of manual fixup todo with the per-driver versioning
# and support matrix
-$groups{virDriver}->{apis}->{"openAuth"} =
"virConnectOpenAuth";
-$groups{virDriver}->{apis}->{"openReadOnly"} =
"virConnectOpenReadOnly";
-$groups{virDriver}->{apis}->{"domainMigrate"} =
"virDomainMigrate";
+$groups{virHypervisorDriver}->{apis}->{"openAuth"} =
"virConnectOpenAuth";
+$groups{virHypervisorDriver}->{apis}->{"openReadOnly"} =
"virConnectOpenReadOnly";
+$groups{virHypervisorDriver}->{apis}->{"domainMigrate"} =
"virDomainMigrate";
my $openAuthVers = (0 * 1000 * 1000) + (4 * 1000) + 0;
-foreach my $drv (keys %{$groups{"virDriver"}->{drivers}}) {
- my $openVersStr =
$groups{"virDriver"}->{drivers}->{$drv}->{"connectOpen"};
+foreach my $drv (keys %{$groups{"virHypervisorDriver"}->{drivers}}) {
+ my $openVersStr =
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"connectOpen"};
my $openVers;
if ($openVersStr =~ /(\d+)\.(\d+)\.(\d+)/) {
$openVers = ($1 * 1000 * 1000) + ($2 * 1000) + $3;
}
# virConnectOpenReadOnly always matches virConnectOpen version
-
$groups{"virDriver"}->{drivers}->{$drv}->{"connectOpenReadOnly"}
=
-
$groups{"virDriver"}->{drivers}->{$drv}->{"connectOpen"};
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"connectOpenReadOnly"}
=
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"connectOpen"};
# virConnectOpenAuth is always 0.4.0 if the driver existed
# before this time, otherwise it matches the version of
# the driver's virConnectOpen entry
if ($openVersStr eq "Y" ||
$openVers >= $openAuthVers) {
-
$groups{"virDriver"}->{drivers}->{$drv}->{"connectOpenAuth"}
= $openVersStr;
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"connectOpenAuth"}
= $openVersStr;
} else {
-
$groups{"virDriver"}->{drivers}->{$drv}->{"connectOpenAuth"}
= "0.4.0";
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"connectOpenAuth"}
= "0.4.0";
}
}
# Another special case for the virDomainCreateLinux which was replaced
# with virDomainCreateXML
-$groups{virDriver}->{apis}->{"domainCreateLinux"} =
"virDomainCreateLinux";
+$groups{virHypervisorDriver}->{apis}->{"domainCreateLinux"} =
"virDomainCreateLinux";
my $createAPIVers = (0 * 1000 * 1000) + (0 * 1000) + 3;
-foreach my $drv (keys %{$groups{"virDriver"}->{drivers}}) {
- my $createVersStr =
$groups{"virDriver"}->{drivers}->{$drv}->{"domainCreateXML"};
+foreach my $drv (keys %{$groups{"virHypervisorDriver"}->{drivers}}) {
+ my $createVersStr =
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"domainCreateXML"};
next unless defined $createVersStr;
my $createVers;
if ($createVersStr =~ /(\d+)\.(\d+)\.(\d+)/) {
@@ -338,9 +351,9 @@ foreach my $drv (keys
%{$groups{"virDriver"}->{drivers}}) {
# the driver's virCreateXML entry
if ($createVersStr eq "Y" ||
$createVers >= $createAPIVers) {
-
$groups{"virDriver"}->{drivers}->{$drv}->{"domainCreateLinux"}
= $createVersStr;
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"domainCreateLinux"}
= $createVersStr;
} else {
-
$groups{"virDriver"}->{drivers}->{$drv}->{"domainCreateLinux"}
= "0.0.3";
+
$groups{"virHypervisorDriver"}->{drivers}->{$drv}->{"domainCreateLinux"}
= "0.0.3";
}
}
@@ -367,7 +380,7 @@ in.
EOF
-foreach my $grp (sort { $a cmp $b } keys %groups) {
+ foreach my $grp (sort { $a cmp $b } keys %groups) {
print "<h2><a name=\"$grp\">", $groupheaders{$grp},
"</a></h2>\n";
print <<EOF;
<table class="top_table">
diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index 1e91869..fad5358 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -291,12 +291,52 @@
-->
<ul>
<li>
- <a href="html/libvirt-libvirt.html">libvirt</a>
- <span>core interfaces for the libvirt library</span>
+ <a
href="html/libvirt-libvirt-domain.html">Domain</a>
+ <span>domain APIs for the libvirt library</span>
</li>
<li>
- <a
href="html/libvirt-virterror.html">virterror</a>
- <span>error handling interfaces for the libvirt
library</span>
+ <a
href="html/libvirt-libvirt-domain-snapshot.html">Domain snapshot</a>
+ <span>domain snapshot APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a href="html/libvirt-virterror.html">Error</a>
+ <span>error handling APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-event.html">Event</a>
+ <span>event APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a href="html/libvirt-libvirt-host.html">Host</a>
+ <span>host APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-interface.html">Interface</a>
+ <span>interface APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-network.html">Network</a>
+ <span>network APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a href="html/libvirt-libvirt-nodedev.html">Node
device</a>
+ <span>node device APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a href="html/libvirt-libvirt-nwfilter.html">Network
filter</a>
+ <span>network filter APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-secret.html">Secret</a>
+ <span>secret APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-storage.html">Storage</a>
+ <span>storage APIs for the libvirt library</span>
+ </li>
+ <li>
+ <a
href="html/libvirt-libvirt-stream.html">Stream</a>
+ <span>stream APIs for the libvirt library</span>
</li>
<li>
<a href="hvsupport.html">Driver support</a>
--
2.1.0
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Make rpm fails with error:
GEN devhelp/libvirt-libvirt.html
cp: cannot stat './html/libvirt-libvirt.html': No such file or directory
make[3]: *** [distdir] Error 1
I guess, references of libvirt-libvirt.html were not removed from
docs/Makefile.am
Following patch fixes it (But I am not sure if it is the right way to go):
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 910bfef..5485ee9 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -31,7 +31,6 @@ apihtml = \
html/libvirt-libvirt-domain-snapshot.html \
html/libvirt-libvirt-event.html \
html/libvirt-libvirt-host.html \
- html/libvirt-libvirt.html \
html/libvirt-libvirt-interface.html \
html/libvirt-libvirt-network.html \
html/libvirt-libvirt-nodedev.html \
@@ -51,7 +50,6 @@ devhelphtml = \
devhelp/libvirt.devhelp \
devhelp/index.html \
devhelp/general.html \
- devhelp/libvirt-libvirt.html \
devhelp/libvirt-virterror.html
css = \
@@ -269,7 +267,6 @@ $(addprefix $(srcdir)/,$(devhelphtml)):
$(srcdir)/libvirt-api.xml $(devhelpxsl)
python_generated_files = \
- $(srcdir)/html/libvirt-libvirt.html \
$(srcdir)/html/libvirt-libvirt-lxc.html \
$(srcdir)/html/libvirt-libvirt-qemu.html \
$(srcdir)/html/libvirt-virterror.html \
--
Nehal J Wani