From 54c18b66f669a243d43625ec39b2ddc55a28a056 Mon Sep 17 00:00:00 2001 From: Gurucharan Shetty Date: Wed, 31 Jul 2013 09:24:46 -0700 Subject: [PATCH] ovsdb-doc: Add ovsdb-doc to distribution tar ball. Certain platforms like xenserver do not have the latest python libraries that are needed by ovsdb-doc (which in-turn creates ovs-vswitchd.conf.db.5). When we run 'make dist' and copy over the tar ball to xenserver ddk environemt, we already include ovs-vswitchd.conf.db.5. But the absence of ovsdb-doc results in an attempt to regenerate ovs-vswitchd.conf.db.5 and that fails because of the missing python libraries. Instead of producing ovsdb-doc from ovsdb-doc.in dynamically, we statically provide ovsdb-doc and pass on the version information to it through the command line option --version. Signed-off-by: Gurucharan Shetty Acked-by: Ben Pfaff --- ovsdb/automake.mk | 6 ++---- ovsdb/{ovsdb-doc.in => ovsdb-doc} | 24 ++++++++++++++---------- vswitchd/automake.mk | 2 ++ 3 files changed, 18 insertions(+), 14 deletions(-) rename ovsdb/{ovsdb-doc.in => ovsdb-doc} (95%) diff --git a/ovsdb/automake.mk b/ovsdb/automake.mk index 448bbf740..3884d3ffd 100644 --- a/ovsdb/automake.mk +++ b/ovsdb/automake.mk @@ -89,10 +89,8 @@ BUILT_SOURCES += $(OVSIDL_BUILT) $(OVSIDL_BUILT): ovsdb/ovsdb-idlc.in # ovsdb-doc -EXTRA_DIST += ovsdb/ovsdb-doc.in -noinst_SCRIPTS += ovsdb/ovsdb-doc -DISTCLEANFILES += ovsdb/ovsdb-doc -OVSDB_DOC = $(run_python) $(builddir)/ovsdb/ovsdb-doc +EXTRA_DIST += ovsdb/ovsdb-doc +OVSDB_DOC = $(run_python) $(srcdir)/ovsdb/ovsdb-doc # ovsdb-dot EXTRA_DIST += ovsdb/ovsdb-dot.in ovsdb/dot2pic diff --git a/ovsdb/ovsdb-doc.in b/ovsdb/ovsdb-doc similarity index 95% rename from ovsdb/ovsdb-doc.in rename to ovsdb/ovsdb-doc index acca3751c..662ed974a 100755 --- a/ovsdb/ovsdb-doc.in +++ b/ovsdb/ovsdb-doc @@ -1,4 +1,4 @@ -#! @PYTHON@ +#! /usr/bin/python from datetime import date import getopt @@ -251,7 +251,7 @@ def tableToNroff(schema, tableXml): s += body return s -def docsToNroff(schemaFile, xmlFile, erFile, title=None): +def docsToNroff(schemaFile, xmlFile, erFile, title=None, version=None): schema = ovs.db.schema.DbSchema.from_json(ovs.json.from_file(schemaFile)) doc = xml.dom.minidom.parse(xmlFile).documentElement @@ -262,10 +262,13 @@ def docsToNroff(schemaFile, xmlFile, erFile, title=None): if title == None: title = schema.name + if version == None: + version = "UNKNOWN" + # Putting '\" p as the first line tells "man" that the manpage # needs to be preprocessed by "pic". s = r''''\" p -.TH "%s" 5 @VERSION@ "Open vSwitch" "Open vSwitch Manual" +.TH "%s" 5 "%s" "Open vSwitch" "Open vSwitch Manual" .\" -*- nroff -*- .de TQ . br @@ -281,7 +284,7 @@ def docsToNroff(schemaFile, xmlFile, erFile, title=None): .SH NAME %s \- %s database schema .PP -''' % (title, textToNroff(schema.name), schema.name) +''' % (title, version, textToNroff(schema.name), schema.name) tables = "" introNodes = [] @@ -357,8 +360,8 @@ where SCHEMA is an OVSDB schema in JSON format The following options are also available: --er-diagram=DIAGRAM.PIC include E-R diagram from DIAGRAM.PIC --title=TITLE use TITLE as title instead of schema name - -h, --help display this help message - -V, --version display version information\ + --version=VERSION use VERSION to display on document footer + -h, --help display this help message\ """ % {'argv0': argv0} sys.exit(0) @@ -367,22 +370,23 @@ if __name__ == "__main__": try: options, args = getopt.gnu_getopt(sys.argv[1:], 'hV', ['er-diagram=', 'title=', - 'help', 'version']) + 'version=', 'help']) except getopt.GetoptError, geo: sys.stderr.write("%s: %s\n" % (argv0, geo.msg)) sys.exit(1) er_diagram = None title = None + version = None for key, value in options: if key == '--er-diagram': er_diagram = value elif key == '--title': title = value + elif key == '--version': + version = value elif key in ['-h', '--help']: usage() - elif key in ['-V', '--version']: - print "ovsdb-doc (Open vSwitch) @VERSION@" else: sys.exit(0) @@ -392,7 +396,7 @@ if __name__ == "__main__": sys.exit(1) # XXX we should warn about undocumented tables or columns - s = docsToNroff(args[0], args[1], er_diagram, title) + s = docsToNroff(args[0], args[1], er_diagram, title, version) for line in s.split("\n"): line = line.strip() if len(line): diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk index 3d8ac6217..3a271c6a5 100644 --- a/vswitchd/automake.mk +++ b/vswitchd/automake.mk @@ -57,6 +57,7 @@ EXTRA_DIST += vswitchd/vswitch.gv vswitchd/vswitch.pic # vswitch schema documentation EXTRA_DIST += vswitchd/vswitch.xml +DISTCLEANFILES += $(srcdir)/vswitchd/ovs-vswitchd.conf.db.5 dist_man_MANS += vswitchd/ovs-vswitchd.conf.db.5 $(srcdir)/vswitchd/ovs-vswitchd.conf.db.5: \ ovsdb/ovsdb-doc vswitchd/vswitch.xml vswitchd/vswitch.ovsschema \ @@ -64,6 +65,7 @@ $(srcdir)/vswitchd/ovs-vswitchd.conf.db.5: \ $(OVSDB_DOC) \ --title="ovs-vswitchd.conf.db" \ --er-diagram=$(srcdir)/vswitchd/vswitch.pic \ + --version=$(VERSION) \ $(srcdir)/vswitchd/vswitch.ovsschema \ $(srcdir)/vswitchd/vswitch.xml > $@.tmp mv $@.tmp $@ -- 2.45.2