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>