[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
signature.asc
Description: PGP signature