From owner-freebsd-current@FreeBSD.ORG Thu May 14 00:02:16 2015 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 479F91DD for ; Thu, 14 May 2015 00:02:16 +0000 (UTC) Received: from mail-wg0-x235.google.com (mail-wg0-x235.google.com [IPv6:2a00:1450:400c:c00::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D2A3B1B1C for ; Thu, 14 May 2015 00:02:15 +0000 (UTC) Received: by wgin8 with SMTP id n8so58828286wgi.0 for ; Wed, 13 May 2015 17:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=Qf01k+m/q6DdsBi8JUSBGVjsz+xKSpARlYy9U1tgotI=; b=NXK4ZWroWVwBdbgrZcvnqtco3538jo/v42EjA29X4U/BUxb85OWNaSGU/wSSu2uiD1 cKs38XtfXk+kVlDne1lwgJaNQkBpYTmgIaA8ayfbgNgfyPw9K7L0khE9nzQWtfNq/bFg PvPM9B6RDz0uGvbH85+4dOIa7lOXn8SB89pychtlwAuAkc5GlGpAs1MUc78yMSqwFDu9 fLSRVjim9CmL0X+MD1QgFEtb66Eyhi6gNtYEJ1wCskpSqeJrjl4/USTx5xVqVGcA4zab mopHI5q7RXL71ePzG2/PZ8hHjm6f+dF4LTXYKHVpAJlVcy8NQBGPnX4qd4Hqk6Q6zZck eMpw== X-Received: by 10.180.188.170 with SMTP id gb10mr917734wic.39.1431561734205; Wed, 13 May 2015 17:02:14 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by mx.google.com with ESMTPSA id k9sm10480734wia.6.2015.05.13.17.02.13 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 May 2015 17:02:13 -0700 (PDT) Sender: Baptiste Daroussin Date: Thu, 14 May 2015 02:02:11 +0200 From: Baptiste Daroussin To: current@FreeBSD.org Subject: [RFC] Replace gnu groff in base by heirloom doctools Message-ID: <20150514000211.GA9410@ivaldir.etoilebsd.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="y0ulUmNC+osPPQO6" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) 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 00:02:16 -0000 --y0ulUmNC+osPPQO6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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 mando= c(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 c= ouple of the documentation there) - heirloom manpages are mandoc(1) friendly which is not the case for GNU gr= off's one I do only plan to incorporate part of it and keeping our own version of too= ls 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 keepin= g 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 i= s 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 bu= t I do not consider this as a blocker. Allowing to have both gnu groff and heirloom at once switchable via an opti= on will be hard so I plan to make the switch happening at once. =46rom 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 ex= tra care is needed please share it. Heirloom doctools: https://github.com/n-t-roff/heirloom-doctools Best regards, Bapt --y0ulUmNC+osPPQO6 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlVT5gMACgkQ8kTtMUmk6EzsjgCbBOa7l+MqICrMAGWGxyCkaxAI afoAn36vmByJ9NHDKQoAgiicHO1KCJbS =5btX -----END PGP SIGNATURE----- --y0ulUmNC+osPPQO6--