From owner-freebsd-current@FreeBSD.ORG Thu May 14 03:17:44 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AAA005FA for ; Thu, 14 May 2015 03:17:44 +0000 (UTC) Received: from udns.ultimatedns.net (unknown [IPv6:2602:d1:b4d6:e600:4261:86ff:fef6:aa2a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 574461FFD for ; Thu, 14 May 2015 03:17:44 +0000 (UTC) Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.14.9/8.14.9) with ESMTP id t4E3IAwE058566 for ; Wed, 13 May 2015 20:18:16 -0700 (PDT) (envelope-from bsd-lists@bsdforge.com) To: In-Reply-To: <20150514000211.GA9410@ivaldir.etoilebsd.net> References: <20150514000211.GA9410@ivaldir.etoilebsd.net> From: "Chris H" Subject: Re: [RFC] Replace gnu groff in base by heirloom doctools Date: Wed, 13 May 2015 20:18:16 -0700 Content-Type: text/plain; charset=UTF-8; format=fixed MIME-Version: 1.0 Message-id: Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 May 2015 03:17:44 -0000 On Thu, 14 May 2015 02:02:11 +0200 Baptiste Daroussin 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