Re: [RFC] Replace gnu groff in base by heirloom doctools

From: Chris H <bsd-lists_at_bsdforge.com>
Date: Wed, 13 May 2015 20:18:16 -0700
On Thu, 14 May 2015 02:02:11 +0200 Baptiste Daroussin <bapt_at_FreeBSD.org> wrote

> Hi,
> 
> I plan to work in replacing GNU groff for FreeBSD 11.0 in base by heirloom
> doctools.
> 
> This mostly concern documentation in share/docs and the fallback when
> mandoc(1) is not able to render a manpage.
> 
> Heirloom doctools has progressed a lot recently and is now able to render
> correctly all the document we do provide in base, it has active development
> and integrate quickly new features.
> 
> Upstream have been very reactive to bug report I have sent to them and fixed
> them very quickly.
> 
> Heirloom has multiple advantages over GNU groff:
> - it is partially CDDL partially BSD license.
> - it is mainly written in C (to the exception of a single tool in C++ which I
> do   not plan to important)
> - it is derived from the original macros from AT&T (in particular ms(7))
> - it is smaller than GNU groff
> - it has better unicode support than GNU groff
> - it has better error reporting than GNU groff (which allowed me to fix a
> couple   of the documentation there)
> - heirloom manpages are mandoc(1) friendly which is not the case for GNU
> groff's   one
> 
> I do only plan to incorporate part of it and keeping our own version of tools
> we already have like: col(1), soelim(1), checknr(1) and vgrind(1).
> 
> mandoc(1) is still the target for rendering manpages and but I think keeping
> a fully functionnal roff(7) toolchain part of the base system is very good on
> a unix.
> 
> The issue we have with GNU groff is that newer version are in GPLv3 so we
> cannot upgrade base version to a newer version. Base version of GNU groff is
> a stripped down version of GNU groff so users willing to user some extra
> functionnality of GNU groff will have to rely on the ports tree.
> 
> what have already been done:
> - col(1): updated and fixed  base on work with the heirloom doctools and
> collaboration with OpenBSD folks. While there I have already sandboxed
> col(1) using capsicum.
> - checknr(1): now handles more roff(7) commands.
> - vgrind(11): modernize code base and synchronized some changes from NetBSD
> 
> I plan to import heirloom doctool later this month.
> 
> So far the only issue we have is with documents using pic(1) when rendering
> in ascii (postscript and pdf rendering are ok) upstream is working on a fix
> but I do not consider this as a blocker.
> 
> Allowing to have both gnu groff and heirloom at once switchable via an option
> will be hard so I plan to make the switch happening at once.
> 
> From what I could check I cannot find any regression when migrating from gnu
> groff to heirloom doctools, if there is a particular area when you think
> extra care is needed please share it.
> 
> Heirloom doctools: https://github.com/n-t-roff/heirloom-doctools
> 
> Best regards,
> Bapt
+1
Please do, and *thank you* for all the work you put into this!

--Chris
Received on Thu May 14 2015 - 01:17:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:57 UTC