From owner-freebsd-stable@FreeBSD.ORG Mon Aug 11 00:34:32 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A0EC1065675 for ; Mon, 11 Aug 2008 00:34:32 +0000 (UTC) (envelope-from alex-goncharov@comcast.net) Received: from QMTA04.westchester.pa.mail.comcast.net (qmta04.westchester.pa.mail.comcast.net [76.96.62.40]) by mx1.freebsd.org (Postfix) with ESMTP id E8A3D8FC14 for ; Mon, 11 Aug 2008 00:34:31 +0000 (UTC) (envelope-from alex-goncharov@comcast.net) Received: from OMTA05.westchester.pa.mail.comcast.net ([76.96.62.43]) by QMTA04.westchester.pa.mail.comcast.net with comcast id 0eQL1a0030vyq2s54oaXex; Mon, 11 Aug 2008 00:34:31 +0000 Received: from daland.home ([24.61.21.4]) by OMTA05.westchester.pa.mail.comcast.net with comcast id 0oaX1a00105H7zL3RoaXzg; Mon, 11 Aug 2008 00:34:31 +0000 X-Authority-Analysis: v=1.0 c=1 a=rITDv7nW5hcA:10 a=wFaEK3txAAAA:8 a=DWWbkNoQ0lDxQFEfgYsA:9 a=J4ah-IX0tIqEXMK03N0A:7 a=irNjGHgpdqU9FYZOZYpIRdIFXXgA:4 a=si9q_4b84H0A:10 a=gi0PWCVxevcA:10 Received: from algo by daland.home with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1KSLMk-0008kT-PZ for freebsd-stable@FreeBSD.org; Sun, 10 Aug 2008 20:34:30 -0400 From: Alex Goncharov To: freebsd-stable@FreeBSD.org Message-Id: Sender: Alex Goncharov Date: Sun, 10 Aug 2008 20:34:30 -0400 Cc: Subject: Groff in FreeBSD X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Alex Goncharov List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2008 00:34:32 -0000 I am trying to refresh my old groff skills, playing with it for the first time on FreeBSD -- and getting very confused with understanding groff's place and organization here. (I am writing this on FreeBSD 7.0 but I could start an 8.0 system if somebody suggested to take a look there). Let's start with the practical end of it: I wanted to find a good macro package, good by modern standards. In the past, I've tried 'mm', 'ms', 'me' -- and could never decide which one was the most practical one (well, 'mm', perhaps). These days, it seems like 'mom' is a popular package, worth a serious attention. So, I am trying to see if 'mom' is available on my system, and it is not. I do various online searches, and the only thing that comes up is: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2003-11/0407.html groff macro package 'mom' not installed Date: 11/24/03 (and similar entries) 'mom' is, of course, in the source tree: ls -ld /usr/src/contrib/groff/contrib/mom drwxr-xr-x 4 root wheel 512 Mar 26 19:30 /usr/src/contrib/groff/contrib/mom/ as is 'mm': ls -ld /usr/src/contrib/groff/contrib/mm drwxr-xr-x 4 root wheel 512 Mar 26 19:29 /usr/src/contrib/groff/contrib/mm/ But while the latter has "tmac" files installed: ls /usr/share/tmac/mm* 0.MT 4.MT 5.MT locale mm.tmac mmse.tmac ms.cov se_locale se_ms.cov the former does not: ls /usr/share/tmac/mom* ls: /usr/share/tmac/mom*: No such file or directory So, I try to build something relevant by hand, and nothing good comes out of it. But I notice that the '/usr/src/contrib/groff/contrib/mm' directory is not the only place for 'mm' -- there is also ls -ld /usr/src/gnu/usr.bin/groff/contrib/mm drwxr-xr-x 2 root wheel 512 Aug 10 17:48 /usr/src/gnu/usr.bin/groff/contrib/mm/ which is a built entity. At this point, I begin not care about having 'mom' -- I just want to understand the groff organization in FreeBSD. Things that puzzle me: 1. Under '/usr/obj', there is a 'tmp/legacy' directory, which has an empty 'mm' directory deep down: find tmp/legacy/usr/share/tmac/mm -ls 518462 4 drwxr-xr-x 2 root wheel 512 Aug 9 23:05 tmp/legacy/usr/share/tmac/mm What is this 'tmp/legacy'? 2. There is an odd relationship between "tmac" files under '/usr/src' and '/usr/obj': ---------------------------------------- for cmd in "ls -l" "diff -q"; do for f in pic.tmac doc.tmac; do $cmd /usr/src/contrib/groff/tmac/$f /usr/obj//usr/src/tmp/legacy/usr/share/tmac/$f; done; done -rwxr-xr-x 1 root wheel 117 Apr 17 2001 /usr/obj/i386/x01/freebsd/7.0/usr/src/tmp/legacy/usr/share/tmac/pic.tmac -rw-r--r-- 1 root wheel 117 Apr 17 2001 /usr/src/contrib/groff/tmac/pic.tmac -rwxr-xr-x 1 root wheel 73079 Aug 9 23:05 /usr/obj/i386/x01/freebsd/7.0/usr/src/tmp/legacy/usr/share/tmac/doc.tmac -rw-r--r-- 1 root wheel 148585 Oct 20 2005 /usr/src/contrib/groff/tmac/doc.tmac Files /usr/src/contrib/groff/tmac/doc.tmac and /usr/obj/i386/x01/freebsd/7.0/usr/src/tmp/legacy/usr/share/tmac/doc.tmac differ ---------------------------------------- I.e. some files under '/usr/obj' are regenerated (see "Aug 9" for 'doc.tmac'), and others are not ('pic.mac'). Some files are identical in both places, and others are not. What is the logic and mechanics here? Can anybody shed some light on this? And also, if somebody had a recommendation on the most practical choice of the macro package, it would be highly appreciated. Thank you, -- Alex -- alex-goncharov@comcast.net --