Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 May 2015 20:18:16 -0700
From:      "Chris H" <bsd-lists@bsdforge.com>
To:        <freebsd-current@freebsd.org>
Subject:   Re: [RFC] Replace gnu groff in base by heirloom doctools
Message-ID:  <c7e95c60e746817b5d047b98c59d0b7f@ultimatedns.net>
In-Reply-To: <20150514000211.GA9410@ivaldir.etoilebsd.net>
References:  <20150514000211.GA9410@ivaldir.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 14 May 2015 02:02:11 +0200 Baptiste Daroussin <bapt@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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c7e95c60e746817b5d047b98c59d0b7f>