<!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.32.2">
</HEAD>
<BODY>
On Sun, 2011-06-05 at 14:50 -0400, Gaetan Nadon wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    On Sun, 2011-06-05 at 14:11 -0400, Gaetan Nadon wrote:<BR>
    <BLOCKQUOTE TYPE=CITE>
        On Sun, 2011-06-05 at 18:34 +0200, Julien Cristau wrote: 
        <BLOCKQUOTE TYPE=CITE>
<PRE>
On Sun, Jun  5, 2011 at 11:22:31 -0400, Gaetan Nadon wrote:

&gt; An alternative is to install the *.db files in their respective packages
&gt; and have the xorg-sgml-doctools masterdb point to the packages. Either

xorg-sgml-doctools doesn't know where the packages are installed, and
shouldn't have to know.  Please don't introduce a dependency loop here.

</PRE>
        </BLOCKQUOTE>
        Correct, it does not know and should not know about where other packages are installed (the value of their prefix). This is not what I am proposing. There is a requirement that all packages be installed under the prefix fir cross-referencing to work. The xorg-sgml-doctools can make an assumption based on that requirement and &quot;assume&quot; that packages were installed under the same prefix value.<BR>
        <BR>
        There is no guarantee they will be installed there, but there is no harm in making that assumption because if they aren't installed there, it won't work anyway (cross-referencing). That characteristic is unique to docs. Even if the packages are independent and can each be installed under different prefix, they must be installed under the same prefix for docs to work properly. When you look at things from the datarootdir/doc perspective, you must see a well formed tree of documents and thier target dbs as if it came from a monolithic tree. <BR>
        <BR>
        I am not insisting here, just explaining what this alternative is. I am not sure yet it is a good alternative, challenges are welcome.<BR>
        <BR>
        <BLOCKQUOTE>
<PRE>
/usr/share/doc/libX11/libX11/libX11.html        -installed by libX11 package
/usr/share/sgml/X11/dbs/xorg.css                -installed by xorg-sgml-doctools
/usr/share/sgml/X11/dbs/masterdb.html.xml        -instaled byxorg-sgml-doctools 

/usr/share/sgml/X11/dbs/libX11.html.db                -currently installed by libX11 package in sgml dir
/usr/share/doc/libX11/libX11/libX11.html.db        -alternative: installed by libX11 package in docdir
</PRE>
        </BLOCKQUOTE>
        <BR>
        The generated html has a relative reference to the libX11.html file. If the referencing html is installed under a different prefix, the referenced html will not be found.<BR>
        <BR>
        &lt;a href=&quot;<A HREF="view-source:file:///home/nadon/xorg/src/inst/share/doc/libX11/libX11/libX11.html#xnextrequest">../libX11/libX11/libX11.html#xnextrequest</A>&quot; class=&quot;olink&quot;&gt;&lt;code class=&quot;function&quot;&gt;XNextRequest&lt;/code&gt;&lt;/a&gt;<BR>
        <BR>
        That's why I think it is &quot;safe&quot; to assume that packages are installed under the same prefix, because if they aren't, it won't work anyway. Of course, &quot;safe&quot; here means that it won't break it any more than it already is.<BR>
        <BR>
    </BLOCKQUOTE>
    The whole discussion about prefix assumptions is a moot point. If the tree isn't the way it is expected, it won't work. How the doc tree got out of whack is irrelevant. Trying to summarize what this alternative is: instead of installing the target dbs in sgml, install them where the docs normally are. Instead of sgml reading from sgml/X11/dbs for target dbs, read them from the doc directory.<BR>
    <BR>
</BLOCKQUOTE>
Just to follow-up. So far, everything works fine when installing the target dbs in their respective doc location. There is no issue with distcheck and write permissions as there is no attempt to install in a foreign directory. This solution works only because of the unique nature of the document tree. I am preparing patches for review. Note that 21 packages are affected by this change and I'll need to bump doctools version to 1.8 as well as their configure.ac and docbook.am file. <BR>
<BR>
The nice part is that the overall complexity is being reduced rather than being augmented by a workaround without adding any restrictions or fragile code.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <BLOCKQUOTE TYPE=CITE>
        <BLOCKQUOTE TYPE=CITE>
<PRE>
Cheers,
Julien
</PRE>
        </BLOCKQUOTE>
        <BR>
<PRE>
_______________________________________________
<A HREF="mailto:xorg-devel@lists.x.org">xorg-devel@lists.x.org</A>: X.Org development
Archives: <A HREF="http://lists.x.org/archives/xorg-devel">http://lists.x.org/archives/xorg-devel</A>
Info: <A HREF="http://lists.x.org/mailman/listinfo/xorg-devel">http://lists.x.org/mailman/listinfo/xorg-devel</A>
</PRE>
    </BLOCKQUOTE>
    <BR>
<PRE>
_______________________________________________
<A HREF="mailto:xorg-devel@lists.x.org">xorg-devel@lists.x.org</A>: X.Org development
Archives: <A HREF="http://lists.x.org/archives/xorg-devel">http://lists.x.org/archives/xorg-devel</A>
Info: <A HREF="http://lists.x.org/mailman/listinfo/xorg-devel">http://lists.x.org/mailman/listinfo/xorg-devel</A>
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>