public inbox for linux-man@vger.kernel.org
 help / color / mirror / Atom feed
From: "Arsen Arsenović" <arsen@aarsen.me>
To: Alejandro Colomar <alx@kernel.org>
Cc: coreutils@gnu.org,  linux-man@vger.kernel.org
Subject: Re: Move GNU manual pages to the Linux man-pages project
Date: Thu, 25 Sep 2025 16:04:50 +0200	[thread overview]
Message-ID: <87cy7e7hml.fsf@aarsen.me> (raw)
In-Reply-To: <fziyxvozscytwasmhtrpjfqbmldxmggjkdm4pzo7cupxhby422@czrmkask4xsc>

[-- Attachment #1: Type: text/plain, Size: 4936 bytes --]

Hi Alex,

Alejandro Colomar <alx@kernel.org> writes:

> [[PGP Signed Part:No public key for EB89995CC290C2A9 created at 2025-09-21T14:53:21+0200 using RSA]]
> Hi Arsen,
>
> On Sun, Sep 21, 2025 at 02:02:16PM +0200, Arsen Arsenović wrote:
>> IMO, docs should not be outsourced from the project they correspond to.
>> Doing so makes them harder to install and keep accurate to the installed
>> version of what they target.
>
> I could maintain them within the coreutils repo, if that's preferred.

That'd be significantly better, yes, if by that you mean that they'd
become part of the coreutils (et al) distribution.

>> > I understand GNU's stance on manual pages, and that you might not be
>> > interested in improving them much, but maybe you're open to them being
>> > improved elsewhere.
>> 
>> It's frankly better to improve them inline.  But I'd rather see us move
>> past the woefully inadequate 'man' documentation system,
>
> I disagree with man(1) being inadequate.  :)

Unfortunately, it is.  A collection of linear mostly-unrelated pages in
predetermined shape simply cannot document complex software, a
hierarchical approach is non-negotiable.

libc, (most of) the syscall API and coreutils are a lucky case in that
they are, fundamentally, large collections of *very* simple bits
(functions and programs), but the fact that manpages are insufficient is
visible in everything about Linux other than the syscall API.  Finding
documentation for Linux cmdline parameters, pseudo-FSes and various
components is a Herculean task.  In the unfortunate case that the
documentation is in a manpage, the manpages are excessively long and
entirely in-navigable due to a lack of structure, or broken up into many
tiny pages that are annoying to navigate (though, you said that this
might be improving with a .MR macro, so that's nice).

>> for instance by
>> providing an info viewer users are more likely to find usable (though, I
>> struggle to see why the current standalone info viewer is so
>> problematic, especially since I taught multiple people who got the hang
>> of it fairly easily).  Installing pages with a richer markup (HTML
>> perhaps, or a new format that can be easily rendered on-the-fly to
>> reflowable text or HTML) would also be nice.  The current format is one
>> of lightly marked up catfiles, and so isn't great in modern
>> environments.
>
> I think what you don't like of man(7) documentation is man(1) and not
> man(7).  A more featureful man(1) viewer could be developed, and some
> people have attempted to build one, where key bindings could for example
> show an index of a page.

No, it's both.  The 'man' macro package is imperative and unstructured
rather than declarative and structured, and 'roff' is quite cumbersome
to use.  The BSDs (I think?) have attempted to solve this partially with
mdoc.  I've found authoring with it slightly better.  Unfortunately,
however, it is still 'roff'.

But, indeed, pagers are inadequate viewers also.  OpenBSD, IIRC,
provided slight improvement in this regard by letting 'less' read some
type of list of tags that it produces out of the manual page, or
somesuch, to facilitate jumping.  This is a significant move in the
right direction, but it doesn't manage to address the fact that manpages
are non-hierarchical.

> Jumping from one page to another will also be possible soon, with the
> recently added .MR macro for manual-page references.  (And in the PDF
> book, we already have that in old pages, with some heuristics that work
> reasonably well.)

I am glad to hear that.

>> Given that coreutils manpages are generated from help text, adding a
>> paragraph to the tsort help text would probably suffice (see sort for an
>> example).
>> 
>> > The Linux man-pages project already documents the GNU C library, so it
>> > wouldn't be extraneous to also take ownership of the coreutils manual
>> > pages.
>> 
>> And it's a source of problems; they don't always correspond to the
>> installed version of the libc,
>
> That's not very important.  The manual pages keep old information, so as
> long as you have the latest pages, they're good for whatever glibc is
> installed.  Of course, we are missing a few pages, but there are few.
> And of course, if you have bleeding edge glibc, there are more chances
> some details may be missing.

This addresses half of the issue (what if the pages are old?), and still
leaves the fact its a separate software distribution unsolved.

>> don't get installed with libc, and have
>> lead to the actual manual being somewhat forgotten.
>
> In general, the manual pages are more accurate than glibc's own manual,
> as even some glibc maintainers have acknowledged in the past, so I
> wouldn't worry much about this.

That is precisely the problem I was referring to.

Have a lovely day!
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 251 bytes --]

  reply	other threads:[~2025-09-25 14:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-20 16:08 Move GNU manual pages to the Linux man-pages project Alejandro Colomar
2025-09-20 16:27 ` Sam James
2025-09-20 16:50   ` Alejandro Colomar
2025-09-20 17:00   ` Alejandro Colomar
2025-09-20 16:34 ` Pádraig Brady
2025-09-20 16:55   ` Alejandro Colomar
2025-09-20 17:01     ` Pádraig Brady
2025-09-20 17:04       ` Alejandro Colomar
2025-09-20 20:05         ` Collin Funk
2025-09-20 21:05           ` Alejandro Colomar
2025-09-20 23:02             ` Collin Funk
2025-09-21  8:36               ` Alejandro Colomar
     [not found]           ` <PA3P190MB24382227EA61EC2758D5AA11C410A@PA3P190MB2438.EURP190.PROD.OUTLOOK.COM>
2025-09-20 23:18             ` Collin Funk
2025-09-22 15:06             ` Michael Greenberg
2025-09-20 17:42       ` Jakub Wilk
2025-09-20 21:10         ` Alejandro Colomar
2025-09-20 21:22           ` Collin Funk
2025-09-21  8:28         ` Bernhard Voelker
2025-09-21 20:00       ` Chuck Wolber
2025-09-21 12:02 ` Arsen Arsenović
2025-09-21 12:53   ` Alejandro Colomar
2025-09-25 14:04     ` Arsen Arsenović [this message]
2025-09-25 14:31       ` Alejandro Colomar
2025-09-29  9:46         ` Arsen Arsenović
2025-09-29 10:33           ` Alejandro Colomar
2025-09-29 21:26             ` Arsen Arsenović
2025-09-29 21:38               ` Alejandro Colomar
2025-09-29 21:41             ` Pádraig Brady
2025-09-29 23:27               ` Alejandro Colomar
2025-09-30 10:12                 ` Pádraig Brady
2025-09-30 21:14                   ` Bernhard Voelker
2025-09-30 13:23       ` Rob Landley
2025-09-30 13:35         ` G. Branden Robinson
2025-09-30 19:57         ` Arsen Arsenović
2025-09-30 20:55           ` G. Branden Robinson
2025-10-01 13:21             ` Arsen Arsenović
2025-10-01 19:37           ` Rob Landley
2025-10-02 18:46             ` Arsen Arsenović
2025-10-02 20:48               ` G. Branden Robinson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cy7e7hml.fsf@aarsen.me \
    --to=arsen@aarsen.me \
    --cc=alx@kernel.org \
    --cc=coreutils@gnu.org \
    --cc=linux-man@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox