14

As far as I understand, GNU had a goal to create a completely free (libre) operating system, and to that end, created FOSS replacements for many UNIX programs. It puzzles me why they didn't try to create a replacement for man, as it was a standard program in UNIX ever since V2, and pretty important. I am not sure when man-db was created (the package which provides man on modern distributions), but the release notes give the earliest release in 1995, although that had a version number of 2.3.6. Did man-db exist before then? And in particular, did it exist during the early days of the GNU project, leading them to not create their own implementation of man because a suitably-licensed version already existed? Or was there some other reason why man was considered out of scope for GNU back then?

3
  • 7
    Possibly not the only motive, but GNU tends to prefer gnu.org/software/texinfo texinfo over manpages.
    – kouta-kun
    Mar 20 at 2:47
  • 6
    Unix man depends on nroff which was an AT&T thing. The GNU version, groff, didn't exist until 1990. man-db is a fork of John Eaton's GPL man code which dates to 1990/1991 as well. Mar 20 at 4:19
  • The tendency for modern programs is to have something resembling a man-page printed out for the --help option. This was probably not done like this back then to allow programs to be as small as possible so they loaded faster (an uneducated guess) Mar 20 at 23:23

1 Answer 1

28

In the GNU project, documentation is supposed to be produced using Texinfo, not as man pages; as explained in the GNU coding standards:

The preferred document format for the GNU system is the Texinfo formatting language. Every GNU package should (ideally) have documentation in Texinfo both for reference and for learners. Texinfo makes it possible to produce a good quality formatted book, using TeX, and to generate an Info file.

Man pages do get their own section, but it’s dismissive:

In the GNU project, man pages are secondary. It is not necessary or expected for every GNU program to have a man page, but some of them do. It’s your choice whether to include a man page in your program.

When you make this decision, consider that supporting a man page requires continual effort each time the program is changed. The time you spend on the man page is time taken away from more useful work.

Info, the hypertext system used to view Texinfo manuals online, has existed since the mid-seventies in Emacs, and BoTeX, Texinfo’s predecessor, since the mid-eighties. All this is long before man-db, which comes from a fork of John W. Eaton’s man, first published in 1990.

One of the major reasons behind this is that Richard Stallman considered Unix man pages too terse:

Don’t use Unix man pages as a model for how to write GNU documentation; most of them are terse, badly structured, and give inadequate explanation of the underlying concepts. (There are, of course, some exceptions.)

Since man pages are shunned in the GNU project, presumably the tools to display them aren’t considered a priority. man-db however is suitably licensed, and is included in the free software directory.

Book-quality documentation has been a big concern of the GNU project for a long time; man pages presumably weren’t seen as a good way to achieve that. The Unix man pages were printed in book form, but books usually contain a lot more introductory information and present their contents in a different way than a concatenation of man pages.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .