Package: groff
Version: 1.23.0-1
Severity: wishlist

I apologize for filing this bug report a bit prematurely, but I've been
working on building groff in a bullseye chroot lately to prepare for
groff 1.23.0.rc2, and I wanted to document some findings while they were
fresh in my mind.

Here is the current build-dependencies declaration for Debian's groff
package.

Build-Depends: bison (>= 1:1.875b), debhelper-compat (= 12), dh-exec, dpkg-dev 
(>= 1.17.0~), ghostscript, netpbm, psutils, x11proto-core-dev, libx11-dev, 
libxmu-dev, libxt-dev, libxaw7-dev, texinfo (>= 4.8), pkg-config, 
libuchardet-dev, gsfonts, poppler-utils <!nocheck>

When packaging groff 1.23.0, some changes should be made.  I'll quote
the 'NEWS' file for rationales.

* Drop the bison dependency.

  o Building groff from its distribution archive no longer requires byacc
    (or GNU Bison) to be installed.

* Drop the texinfo dependency.

  o Because all generated forms of groff's Texinfo manual are now included
    in the distribution archive, building from that archive no longer
    depends on GNU Texinfo or a TeX installation (the latter was only
    required for the "doc" target, which had to be explicitly given).

* Add a dependency on m4.

  o m4 is now required to build.  Any m4 that implements the features
    documented in the Version 7 Unix m4(1) man page, and the `-D` option,
    should suffice.

* Add a dependency on "cups-client | cups-bsd | lpr".

  This is not due to new development.  I confess to being puzzled why
  this build dependency isn't already present.  groff's configure script
  has for years looked for an installed "lpr" command, then fallen back
  to "lp".  Only "groff -l" uses the detected spooler command, however,
  and maybe people just don't do that very often.  I think it is
  possible that for chroot-built groff packages in Debian--for those
  done by the buildds, for instance--the compiled groff command is
  silently ignoring the flag.
    
https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/groff/groff.cpp#n408

I looked at the BuildProfileSpec page[1], and while bootstrapping is
discussed there, I couldn't find a spec that would be applicable to
groff for bootstrapping it.  ("nocheck" is already used in the event
groff's test suite is not run.)  But in case it's useful to know, here
are all the (non-Debian-packaging-process-related) build-dependencies
that could be dropped for such a profile.  In other words, groff will
still 'configure' and 'make' without these, albeit with reduced
functionality.

ghostscript
netpbm
psutils
x11proto-core-dev
libx11-dev
libxmu-dev
libxt-dev
libxaw7-dev
pkg-config
libuchardet-dev
gsfonts

And of course the already-profiled "poppler-utils".

The aforementioned "cups-client | cups-bsd | lpr" is also not necessary
for bootstrapping.  "m4" _is_ (or will be, in groff 1.23.0).

Please let me know if I can be of assistance.

Regards,
Branden

[1] https://wiki.debian.org/BuildProfileSpec

Attachment: signature.asc
Description: PGP signature

Reply via email to