Re: man(1) oddity - was: HEADS UP: bzip2(1) compression for manpages...

From: Ruslan Ermilov <ru_at_freebsd.org>
Date: Mon, 19 May 2003 13:42:26 +0300
On Mon, May 19, 2003 at 08:22:48PM +1000, Andy Farkas wrote:
> On Mon, 19 May 2003, Ruslan Ermilov wrote:
> > On Mon, May 19, 2003 at 11:01:00AM +1000, Andy Farkas wrote:
> > > On Fri, 16 May 2003, Ruslan Ermilov wrote:
> > > > On Fri, May 02, 2003 at 12:09:02PM +1000, Andy Farkas wrote:
> > > > >
> > > > > As a normal user, the "Formatting page, please wait..." message never
> > > > > appears, whereas it does for root.
> > > > >
> > > > > IMHO this is a mild POLA violation.
> > > > >
> > > > For a normal user, man(1) no longer creates the catpages.
> > > > This is still being revised (by me).
> > >
> > > It still has to format the page. A user should be told this regardless if
> > > she is the superuser or not. ATM, only root gets a message.
> > >
> > Not quite. When catpages are created by man(1), the user is
> > displayed the text only after the whole catpage was created.
> > This can take some considerable time on large manpages and
> > slow machines.
> 
> This is my point. A normal user isn't told whats happening anymore:
> 
> $ sysctl -a | grep kern.version
> kern.version: FreeBSD 5.1-BETA #4: Sat May 17 14:23:21 EST 2003
> $
> $ find /usr/share/man/ -name "ppp.8*"
> /usr/share/man/man8/ppp.8.gz
> $
> $ /usr/bin/time man ppp > /dev/null
> ***user waits here***
>        11.57 real        11.35 user         1.26 sys
> $
> $ su -
> Password:
> #
> # /usr/bin/time man ppp > /dev/null
> Formatting page, please wait...***user waits here***Done.
>        11.75 real        11.64 user         1.23 sys
> #
> 
> A normal user has to wait staring at a flashing cursor for 11.5 seconds
> before *anything* happens, but root is told "Formatting page, please
> wait..."
> 
> Am I explaining it enough?
> 
You're not being quite right here.  Just to demonstrate things,
take a 4-STABLE box, then temporary rename /usr/share/man/cat8 to
something else, and try "man 8 ppp"; you'll be presented with the
output shortly after (without any message), and much quicker than
after 11.5 seconds, as you trying to tell me.  When catpages get
created, the text is displayed only after the whole manpage was
formatted (and saved to a .cat file).  When not creating catpages,
the formatter passes the output directly to your ${PAGER}, so
while groff(1) is still formatting the manpage, you can already
view it (head of it).

> > When catpages are not created, the user is
> > displayed the text as soon as part of it becomes available
> > from the "/usr/bin/groff -S -Wall -mtty-char -man" command,
> > subject to the ${PAGER} buffering.
> 
> If a catpage already exists, the `formatting` message does not appear
> for any user.
> 
Sure, and we don't tell the user "Hey, wait, I'm uncompressing
the catpage for you...", though it may take some time too.

We only tell the user to wait when we're sure it may take long
time before the output is displayed, that is only when we
create the catpage.  Compare:

say "wait"		format | display
format
save
display


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru_at_sunbay.com		Sunbay Software AG,
ru_at_FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

Received on Mon May 19 2003 - 01:42:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:08 UTC