[RFC] Replace gnu groff in base by heirloom doctools
Chris H
bsd-lists at bsdforge.com
Thu May 14 03:17:44 UTC 2015
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
More information about the freebsd-current
mailing list