<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Mon, 2010-10-11 at 06:04 -0700, Dan Nicholson wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">No, the issue is that the pdf and ps build (with fop) takes a long</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">time and most of the time I'm guessing people wouldn't want that to be</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">part of their build. This gives the opportunity to be much more fine</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">grained with the defaults.</FONT></TT><BR>
    <BR>
</BLOCKQUOTE>
I don't mind giving more flexibility, but it will generate a &quot;defaults&quot; war. Someone with<BR>
a slower computer will have a different view about what is slow vs acceptable.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#737373">&gt; The conversion to DocBook/XML implies that the xmlto tooling was adequate</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; and available on</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; a reasonable number platforms. Including generated docs (of any kind) in the</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; tarball is a nightmare</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; which still has unresolved problems.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">I would disagree that including the docs in the tarball is a</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">nightmare. Lots of projects do that for their users as a convenience.</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">You just include them in the dist and add one AM_CONDITIONAL from</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">configure. Remember, we did it for libXi and it was a tiny patch. I</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">don't know of any unresolved issues with that.</FONT></TT><BR>
</BLOCKQUOTE>
That's my reference for &quot;nightmare&quot;, which means it is too complex to code and test and still has at least<BR>
one loophole which would require more complexity to fix. If there were better support from Automake<BR>
for this scenario, we probably would not have this issue.<BR>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <TT><FONT COLOR="#1a1a1a"><A HREF="http://cgit.freedesktop.org/xorg/lib/libXi/commit/?id=c183e15263787af913bf8eb7be707e0f2e974824">http://cgit.freedesktop.org/xorg/lib/libXi/commit/?id=c183e15263787af913bf8eb7be707e0f2e974824</A></FONT></TT><BR>
    <BR>
</BLOCKQUOTE>
That is not representative of the all the coding needed to achieve that goal, it's one of bugs<BR>
that needed to be fixed.<BR>
<BR>
Compare the configure.ac and the Makefile.am of one module with generated docs in the tarball and<BR>
one module without and you will see a big difference.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">The reason to do it isn't entirely the availability of the tools, but</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">the fact that generating the docs is a slow process that should</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">produce the same output on any system. I personally would like to see</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">the html versions of the all the docs included in the tarballs. Then</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">you can just download the docs and not have to build them.</FONT></TT><BR>
    <BR>
</BLOCKQUOTE>
That's just one scenario. <BR>
<BR>
<BR>
Extra stuff in configure.ac not normally needed:<BR>
<BR>
<BLOCKQUOTE>
<PRE>
# Check for xmlto and asciidoc for man page conversion
# (only needed by people building tarballs)
if test &quot;$have_xmlto&quot; = yes &amp;&amp; test &quot;$have_asciidoc&quot; = yes; then
        have_doctools=yes
else
        have_doctools=no
fi
AM_CONDITIONAL([HAVE_DOCTOOLS], [test $have_doctools = yes])
if test $have_doctools = no; then
        AC_MSG_WARN([xmlto or asciidoc not found - cannot create man pages without it])
fi

# Determine if the source for man pages is available
# It may already be present (tarball) or can be generated using doctools
AM_CONDITIONAL([INSTALL_MANPAGES],
        [test -f &quot;$srcdir/man/XAllowDeviceEvents.man&quot; || \
        &nbsp; test $have_doctools = yes])
</PRE>
</BLOCKQUOTE>
<BR>
Extra check in Makefile.am not normally needed:<BR>
<BR>
<BLOCKQUOTE>
<PRE>
if INSTALL_MANPAGES
libman_DATA = $(libman_PRE:.man=.$(LIB_MAN_SUFFIX))
endif
</PRE>
</BLOCKQUOTE>
<BR>
Impact on testing:<BR>
<BR>
For anyone making a change in the makefile, he needs to know about this stuff so as not to<BR>
accidentally break it. This means testing various permutations of git/tarball with/without xmlto<BR>
and with/without generated docs.<BR>
<BR>
Impact on distcheck:<BR>
<BR>
If you don't have xmlto, you cannot create a tarball because the generated docs are needed.<BR>
This is an incentive for developers to not run distcheck on a regular basis and not discover<BR>
some errors. It is an unfortunate side-effect.<BR>
<BR>
Outstanding issue:<BR>
<BR>
The check for a .man page in configure.ac is unreliable. It is done at configuration time<BR>
and things can change afterwards. This was reported by a developer.<BR>
The build stops with an obscure error message:<BR>
<BR>
<BLOCKQUOTE>
<PRE>
make[1]: *** No rule to make target `XChangeDeviceDontPropagateList.man',
 needed by `XGetDeviceDontPropagateList.man'.&nbsp; Stop.
</PRE>
</BLOCKQUOTE>
More code is needed to plug this loophole.<BR>
<BR>
Conclusion:<BR>
<BR>
If it must be done, then it must be done. In my book, it's ugly and brittle, not because people<BR>
are writing bad code, but because there is no support from Automake. <BR>
<BR>
Is it worth spreading this complexity throughout? So far I have not heard a requirement<BR>
for generated docs in the tarball for their own sake, only as a workaround to problems.<BR>
<BR>
Most of the docs were in xorg-docs module until recently and many were not built.<BR>
Why would they need to be in a tarball now?<BR>
<BR>
There is a web site in construction which contains all the docs, that should address the need<BR>
of those who want to consult documentation that does not need to be updated to the minute.<BR>
<BR>
The documentation landscape has changed recently (and still not quite complete) which opens<BR>
the possibility for new solutions. <BR>
<BR>
It's not a bad idea to have a second look at the defaults, now that all the docs are being built.<BR>
Developers will always prefer not to build them unless they need them and it will always be<BR>
just a subset. I have no idea what distros do.<BR>
<BR>
I am saying all this to share my perspective, not to claim I am right, I am aware I am only seeing<BR>
a portion of the big picture.<BR>
<BR>
Thanks<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>