groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why does groff require psutils?


From: G. Branden Robinson
Subject: Re: Why does groff require psutils?
Date: Sun, 19 Nov 2023 19:04:48 -0600

Hi Lukas,

At 2023-11-19T17:31:40+0100, Lukas Javorsky wrote:
> I've been approached by a maintainer of the `psutils` package that the
> groff is the only package that still requires it.  He wants to get rid
> of the package as many of the dependencies have shifted from it, but
> the groff is still remaining
> 
> I wanted to ask what is the exact reason groff needs to require
> `psutils`.  I've found only a small mention in the README, however not
> much more:
> 
> > Ghostscript is required for creation of PDF and (X)HTML output.
> > Production of (X)HTML furthermore demands tools from the 'netpbm'
> > and 'psutils' packages.
> >
> > Thank you for your answers.

This is not documented as well as it could be.  I expected to find the
answer in the GNU Autoconf tests that groff uses, but unless one already
knows what binaries psutils ships, one can't find it.

Long story short: we need the "psselect" command.

Longer story.  This appears to be the only psutils command we need.

$ cat -n m4/groff.m4|sed -n '173,191p'
   173  # grohtml needs the following programs to produce images from tbl(1)
   174  # tables and eqn(1) equations.
   175
   176  dnl Any macro that tests $use_grohtml should AC_REQUIRE this.
   177
   178  AC_DEFUN([GROFF_CHECK_GROHTML_PROGRAMS], [
   179    AC_REQUIRE([GROFF_GHOSTSCRIPT_PATH])
   180
   181    use_grohtml=no
   182    missing=
   183    m4_foreach([groff_prog],
   184  dnl Keep this list of programs in sync with grohtml test scripts.
   185      [[pnmcrop], [pnmcut], [pnmtopng], [pnmtops], [psselect]], [
   186        AC_CHECK_PROG(groff_prog, groff_prog, [found], [missing])
   187        if test $[]groff_prog = missing
   188        then
   189          missing="$missing 'groff_prog'"
   190        fi
   191      ])

I have a long-term notion to eliminate the pre-grohtml program (the
preprocessor for grohtml) altogether; that would eliminate psselect and
at least some of our dependency on netpbm.  (I think we have another
dependency on netpbm.)

But "long-term" may mean "years away".

What does it do?

psselect(1):
       Psselect selects pages from a PostScript document, creating a new
       PostScript file. The input PostScript file should follow the
       Adobe Document Structuring Conventions.

If someone knows of a replacement for psselect, possibly in a more
widely deployed and used package, we could conceivably transition to it.
This would require some testing.

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]