<!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 Sat, 2010-06-19 at 08:50 -0700, Dan Nicholson wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Fri, Jun 18, 2010 at 6:57 PM, Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt; wrote:
&gt; Groff uses grohtml to generate html output format. This program, in turn,
&gt; uses a number of pnm* commands from the netpbm package, psselect
&gt; from the psutils package and the ghostscript package.
&gt;
&gt; These are independently installed, so they could be missing.
&gt; A check is made to ensure those dependencies are installed.
&gt; If not, the makefile can use the conditional to supress the target.
&gt;
&gt; Signed-off-by: Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt;
&gt; ---
&gt; &nbsp;xorg-macros.m4.in | &nbsp; 18 ++++++++++++++++++
&gt; &nbsp;1 files changed, 18 insertions(+), 0 deletions(-)
&gt;
&gt; diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in
&gt; index a8e12ed..a10f80b 100644
&gt; --- a/xorg-macros.m4.in
&gt; +++ b/xorg-macros.m4.in
&gt; @@ -552,6 +552,12 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test &quot;$have_doxygen&quot; = yes])
&gt; &nbsp;# --with-groff: &nbsp; &nbsp; &nbsp; &nbsp; 'yes' user instructs the module to use groff
&gt; &nbsp;# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'no' user instructs the module not to use groff
&gt; &nbsp;#
&gt; +# Added in version 1.9.0:
&gt; +# HAVE_GROFF_HTML: groff has dependencies to output HTML format:
&gt; +# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pnmcut pnmcrop pnmtopng pnmtops from the netpbm package.
&gt; +# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; psselect from the psutils package.
&gt; +# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the ghostcript package.
&gt; +#
&gt; &nbsp;# If the user sets the value of GROFF, AC_PATH_PROG skips testing the path.
&gt; &nbsp;#
&gt; &nbsp;# OS and distros often splits groff in a basic and full package, the former
&gt; @@ -591,6 +597,7 @@ elif test &quot;x$use_groff&quot; = x&quot;no&quot; ; then
&gt; &nbsp;else
&gt; &nbsp; &nbsp;AC_MSG_ERROR([--with-groff expects 'yes' or 'no'])
&gt; &nbsp;fi
&gt; +
&gt; &nbsp;# We have groff, test for the presence of the macro packages
&gt; &nbsp;if test &quot;x$have_groff&quot; = x&quot;yes&quot;; then
&gt; &nbsp; &nbsp; AC_MSG_CHECKING([for ${GROFF} -ms macros])
&gt; @@ -608,9 +615,20 @@ if test &quot;x$have_groff&quot; = x&quot;yes&quot;; then
&gt; &nbsp; &nbsp; fi
&gt; &nbsp; &nbsp; AC_MSG_RESULT([$groff_mm_works])
&gt; &nbsp;fi
&gt; +
&gt; +# We have groff, test for HTML dependencies
&gt; +if test &quot;x$have_groff&quot; = x&quot;yes&quot;; then
&gt; + &nbsp; AC_PATH_PROGS(GS_PATH, [gs gswin32c])
&gt; + &nbsp; AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng])
&gt; + &nbsp; AC_PATH_PROG(PSSELECT_PATH, [psselect])
&gt; +fi

Thanks for looking into this, but I don't think I agree with this
approach. 
</PRE>
</BLOCKQUOTE>
That's ok. I vaguely remember drawing a line there when writing the original macro. <BR>
I am somewhat spoiled by my distro where all the stuff I need is already installed. <BR>
When I dig&nbsp; more I find that groff depends on netbpm, psutils and ghostscript.<BR>
These are separately installed packages. <BR>
<BR>
The patch I did amounts to checking the integrity of the platform installed software.<BR>
Not something we should be doing, as users of groff. On the other we try to be helpful<BR>
to our users when things go wrong.<BR>
<BR>
Had you been the author of the patch, I might have made the same objection.<BR>
Infinite loop :-)<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
I don't think we want to be checking the internal details of
grohtml. It would probably be preferred to just try to generate html
from a simple source file and see if it produced useful results.
</PRE>
</BLOCKQUOTE>
Are you suggesting using another tool? 
<BLOCKQUOTE TYPE=CITE>
<PRE>
However, if we do want to just check the program, I'd suggest
borrowing heavily from groff's internal GROFF_HTML_PROGRAMS macro.
See:

</PRE>
</BLOCKQUOTE>
Exactly what I did. I simplified for our situation. I picked one&nbsp; command per package rather than checking all of them.
<BLOCKQUOTE TYPE=CITE>
<PRE>
<A HREF="http://cvs.savannah.gnu.org/viewvc/groff/m4/groff.m4?root=groff&amp;view=markup">http://cvs.savannah.gnu.org/viewvc/groff/m4/groff.m4?root=groff&amp;view=markup</A>

--
Dan
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>