[PATCH wayland 3/3] doc: Provide a fallback solution when Publican is not found

Pekka Paalanen ppaalanen at gmail.com
Thu Nov 15 03:01:44 PST 2012


On Wed, 14 Nov 2012 14:18:23 -0200
Tiago Vignatti <tiago.vignatti at intel.com> wrote:

> It provides a simple HTML solution from DocBook.
> 
> Signed-off-by: Tiago Vignatti <tiago.vignatti at intel.com>
> ---
>  configure.ac            |   13 ++++++++++++-
>  doc/Wayland/Makefile.am |    5 ++++-
>  2 files changed, 16 insertions(+), 2 deletions(-)

Hi Tiago,

I tried building the docs at least, I applied your 7+3 patches from the
list. I needed the following patch to make it go through without
warnings:

diff --git a/doc/Wayland/Makefile.am b/doc/Wayland/Makefile.am
index 8386942..b6c933a 100644
--- a/doc/Wayland/Makefile.am
+++ b/doc/Wayland/Makefile.am
@@ -37,13 +37,9 @@ en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/proto
 # the output methods.
 en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/index.xml $(srcdir)/doxygen-to-docbook.xsl
 	$(AM_V_GEN)$(MKDIR_P) en-US/images
-	$(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/xml/wayland-client_8h.xml \
-		$(top_srcdir)/doc/doxygen/
 	$(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/doxygen/xml/combine.xslt \
 		$(top_srcdir)/doc/doxygen/xml/index.xml > \
 		$(top_srcdir)/doc/doxygen/xml/clientAPI.xml
-	$(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/wayland-client_8h.xml \
-		$(top_srcdir)/doc/doxygen/xml
 	$(AM_V_GEN)$(XSLTPROC) $(srcdir)/doxygen-to-docbook.xsl \
 		$(top_builddir)/doc/doxygen/xml/clientAPI.xml > en-US/WaylandClientAPI.xml
 
@@ -71,7 +67,7 @@ Wayland: $(doc_targets)
 	$(AM_V_GEN)$(mkdir_p) $(srcdir)/Wayland/en-US/html/
 	$(AM_V_GEN)cp -rf $(srcdir)/en-US/images/ $(srcdir)/Wayland/en-US/html/
 	$(AM_V_GEN)$(XMLLINT) --xinclude $(builddir)/en-US/Wayland.xml > $(builddir)/en-US/resolved.xml
-	$(AM_V_GEN)$(XSLTPROC) /usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml/docbook.xsl $(builddir)/en-US/resolved.xml > $(srcdir)/Wayland/en-US/html/index.html
+	$(AM_V_GEN)$(XSLTPROC) http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl $(builddir)/en-US/resolved.xml > $(srcdir)/Wayland/en-US/html/index.html
 endif
 
 CLEANFILES = en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(doc_targets)

I'm not sure if that's right or not, but seems to work for me.

I'm a bit worried about all the mv'ing and cp'ing into srcdirs.

In the final html file, Chapter 4, Client API, the dt-lists collapse
into a single unformatted paragraph. Looks like a missing CSS stylesheet
(definition?).

> 
> diff --git a/configure.ac b/configure.ac
> index a451948..f423991 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -53,6 +53,12 @@ AC_ARG_ENABLE([documentation],
>  	      [],
>  	      [enable_documentation=yes])
>  
> +AC_ARG_ENABLE([publican],
> +	      [AC_HELP_STRING([--disable-publican],
> +		              [Disable building the documentation with Publican])],
> +	      [],
> +	      [enable_publican=yes])
> +
>  AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes)
>  
>  AC_ARG_WITH(icondir, [  --with-icondir=<dir>    Look for cursor icons here],
> @@ -84,7 +90,12 @@ if test "x$enable_documentation" = "xyes"; then
>  		AC_MSG_ERROR([Documentation build requested but doxygen not found. Install doxygen or disable the documentation using --disable-documentation])
>  	fi
>  
> -	AC_PATH_PROG(PUBLICAN, publican)
> +	# fallback to xmllint + a XSLT xsltproc when publican is lacking
> +	if test "x$enable_publican" = "xyes"; then
> +		AC_PATH_PROG(PUBLICAN, publican)

If publican is not found, there is no error.

Forgetting --disable-publican, and not having publican installed, leads
to empty XMLLINT, which causes the build to attempt to run the command
'xinclude'. Quite confusing. ;-)

> +	else
> +		AC_PATH_PROG(XMLLINT, xmllint)

XMLLINT and XSLTPROC are actually hard requirements in this branch,
would need to be checked, too.

> +	fi
>  
>  	if test "x$PUBLICAN" != "x"; then
>  		PUBLICAN_VERSION=`$PUBLICAN -v | cut -d'=' -f2`
> diff --git a/doc/Wayland/Makefile.am b/doc/Wayland/Makefile.am
> index 6c328ea..8386942 100644
> --- a/doc/Wayland/Makefile.am
> +++ b/doc/Wayland/Makefile.am
> @@ -68,7 +68,10 @@ Wayland: $(doc_targets)
>  	@touch Wayland
>  else
>  Wayland: $(doc_targets)
> -	$(AM_V_GEN)mkdir -p $(srcdir)/Wayland
> +	$(AM_V_GEN)$(mkdir_p) $(srcdir)/Wayland/en-US/html/
> +	$(AM_V_GEN)cp -rf $(srcdir)/en-US/images/ $(srcdir)/Wayland/en-US/html/
> +	$(AM_V_GEN)$(XMLLINT) --xinclude $(builddir)/en-US/Wayland.xml > $(builddir)/en-US/resolved.xml
> +	$(AM_V_GEN)$(XSLTPROC) /usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml/docbook.xsl $(builddir)/en-US/resolved.xml > $(srcdir)/Wayland/en-US/html/index.html
>  endif
>  
>  CLEANFILES = en-US/ProtocolSpec.xml en-US/ProtocolInterfaces.xml en-US/WaylandClientAPI.xml $(doc_targets)


Thanks,
pq


More information about the wayland-devel mailing list