Subject: Re: Importing texinfo: proposal
To: (NetBSD Userlevel Technical Discussion List) <tech-userlevel@netbsd.org>
From: Greg A. Woods <woods@most.weird.com>
List: tech-userlevel
Date: 01/03/1999 11:41:24
[ On Sat, January 2, 1999 at 23:55:09 (-0700), Tim Rightnour wrote: ]
> Subject: Re: Importing texinfo: proposal
>
> On 03-Jan-99 Greg A. Woods spoke unto us all:
> #  In this light I'd propose that info files go in /usr/share/info, with a
> #  mandatory symlink from /usr/info pointing at "share/info", and that the
> #  corresponding texinfo sources be put in appropriate places under
> #  /usr/share/doc/; not organized by formatting language, but instead by
> #  subject, just as /usr/share/doc is currently organized
> 
> I agree with /usr/share/info.. it makes perfect sense.. I'm not sure I
> understand the symlink, nor want a symlink in usr.

The symlink is necessary because every existing GNU package uses
$prefix/info.  GNU stuff doesn't seem to consider info files as
belonging under /usr/share.  Of course they put manuals in $prefix/man
too, so I also end up creating a "man -> share/man" symlink in every
$prefix too....

Requiring the symlink to be in the base system is only necessary if one
wants to cater to users who install GNU and other conforming packages
without using pkg(src).  I'd like to do that (because I do install GNU
and similar packages without using the pkg(src) system) however I end up
carting around a whole customized NetBSD release anyway, so one more
minor change isn't going to be the straw that breaks my camel's back, at
least not yet.

BTW, long before NetBSD came out I was using such symlinks anyway
because I really detest the idea of not using /usr/share for everything
possible when it exists.  Nothing can be more machine indepenent in my
mind than documentation, especially when it comes from a totally
portable package!  I *think* the GNU rationale is that if all of $prefix
is shared then $prefix/info and $prefix/man will be shared too, but
$prefix/share may be shared to more machines than $prefix, so they
likely thought that documentation should go with the binaries, not with
$prefix/share.  However $prefix/share gets polluted with package
specific data files anyway I don't see any reason not to put
documentation under $prefix/share too, and indeed that's what NetBSD
normally does.

Paraphrased from the GNU "Standards" document:

`infodir'
     The directory for installing the Info files.  By default, it should
     be `/usr/local/info', but it should be written as `$(prefix)/info'.

`mandir'
     The top-level directory for installing the man pages (if any).  It
     will normally be `/usr/local/man', but you should write it as
     `$(prefix)/man'.

`datadir'
     The directory for installing read-only architecture independent
     data files.  This should normally be `/usr/local/share', but write
     it as `$(prefix)/share'.  As a special exception, see `$(infodir)'
     above.

(note the phrase "As a special exception"!)

And for fun and amusement w.r.t. the /var/run thread of discussion:

`sharedstatedir'
     The directory for installing architecture-independent data files
     which the programs modify while they run.  This should normally be
     `/usr/local/com', but write it as `$(prefix)/com'.

`localstatedir'
     The directory for installing data files which the programs modify
     while they run, and that pertain to one specific machine.  Users
     should never need to modify files in this directory to configure
     the package's operation.  `$(localstatedir)' should normally be
     `/usr/local/var', but write it as `$(prefix)/var'.

Nothing I can find in the GNU "Standards" mentions pushing things like
PID files into a common sub-directory, but I think it's a good idea, and
much better than creating package specific directories under /var.

-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>      <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>