version 1.3, 2014/02/27 08:41:03
|
version 1.4, 2014/02/27 09:04:43
|
Line 10 category="userland"
|
Line 10 category="userland"
|
difficulty="hard" |
difficulty="hard" |
|
|
description=""" |
description=""" |
Write a replacement for groff that is BSD licensed. Earlier versions of BSD |
|
UNIX had one, so maybe it could be revived from an earlier version of BSD UNIX, |
While we now have mandoc for handling man pages, we currently still |
and updated to support newer groff-like features, at least enough to support our |
need groff in the tree to handle miscellaneous docs that are not man |
current mandoc macros. |
pages. |
|
|
Note: In March, 2009, there was some discussion regarding a |
This is itself an inadequate solution as the groff we have does not |
[groff/-mandoc replacement](http://mdocml.bsd.lv/) on the |
support PDF output (which in this day and age is highly desirable) |
[tech-userlevel](http://mail-index.NetBSD.org/tech-userlevel/2009/03/01/msg001766.html) |
... and while newer groff does support PDF output it does so via a |
mailing list. |
Perl script. Also, importing a newer groff is problematic for assorted |
|
other reasons. |
|
|
|
We need a way to typeset miscellaneous articles that we can import |
|
into base and that ideally is BSD licensed. (And that can produce |
|
PDFs.) Currently it looks like there are three decent ways forward: |
|
|
|
* Design a new roff macro package that's comparable to mdoc (e.g. |
|
supports semantic markup) but is for miscellaneous articles rather |
|
than man pages, then teach mandoc to handle it. |
|
|
|
* Design a new set of markup tags comparable to mdoc (e.g. supports |
|
semantic markup) but for miscellaneous articles, and a different less |
|
ratty syntax for it, then teach mandoc to handle this. |
|
|
|
* Design a new set of markup tags comparable to mdoc (e.g. supports |
|
semantic markup) but for miscellaneous articles, and a different less |
|
ratty syntax for it, and write a new program akin to mandoc to handle |
|
it. |
|
|
|
These are all difficult and a lot of work, and in the case of new |
|
syntax are bound to cause a lot of shouting and stamping. Also, many |
|
of the miscellaneous documents use various roff preprocessors and it |
|
isn't clear how much of this mandoc can handle. |
|
|
|
None of these options is particularly appealing. |
|
|
|
There are also some less decent ways forward: |
|
|
|
* Pick one of the existing roff macro packages for miscellaneous |
|
articles (ms, me, ...) and teach mandoc to handle it. Unfortunately |
|
all of these macro packages are pretty ratty, they're underpowered |
|
compared to mdoc, and none of them support semantic markup. |
|
|
|
* Track down one of the other older roff implementations, that are now |
|
probably more or less free (e.g. ditroff), then stick to the existing |
|
roff macro packages as above. In addition to the drawbacks cited |
|
above, any of these programs are likely to be old nasty code that |
|
needs a lot of work. |
|
|
|
* Teach the groff we have how to emit PDFs, then stick to the existing |
|
roff macro packages as above. In addition to the drawbacks cited |
|
above, this will likely be pretty nasty work and it's still got the |
|
wrong license. |
|
|
|
* Rewrite groff as BSD-licensed code and provide support for |
|
generating PDFs, then stick to the existing roff macro packages as |
|
above. In addition to the drawbacks cited above, this is a horrific |
|
amount of work. |
|
|
|
* Try to make something else do what we want. Unfortunately, TeX is a |
|
nonstarter and the only other halfway realistic candidate is lout... |
|
which is GPLv3 and at least at casual inspection looks like a horrible |
|
mess of its own. |
|
|
|
These options are even less appealing. |
|
|
|
Maybe someone can think of a better idea. There are lots of choices if |
|
we give up on typeset output, but that doesn't seem like a good plan |
|
either. |
|
|
""" |
""" |
]] |
]] |