bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libexecdir/datadir used incorrectly


From: Alfred M. Szmidt
Subject: Re: libexecdir/datadir used incorrectly
Date: Tue, 08 Feb 2005 22:42:39 +0100

   Is this (original text) correct for datadir?
     ... write it as @file{$(datarootdir)}.  (If you are using Autoconf,
     write it as @samp{@@datadir@@}.)

   The discrepancy seems odd to me.  Should it be @address@hidden

No, @datadir@ gets changed to $(datarootdir) by autoconf/automake.
Also, if it was @datarootdir@, then you would need --datarootdir=FOO
to change datadir; which is kinda wrong...

Comments inlined (I really feel like a chicken that is picking on
anything that can be picked on).

   *** make-stds.texi   28 Jan 2005 01:34:13 -0000      1.38
   --- make-stds.texi   8 Feb 2005 21:19:41 -0000
   ***************
   *** 293,301 ****

     Installation directories should always be named by variables, so it is
     easy to install in a nonstandard place.  The standard names for these
   ! variables are described below.  They are based on a standard filesystem
   ! layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4,
   ! and other modern operating systems.

     These two variables set the root for the installation.  All the other
     installation directories should be subdirectories of one of these two,
   --- 293,310 ----

     Installation directories should always be named by variables, so it is
     easy to install in a nonstandard place.  The standard names for these
   ! variables and the values they should have in GNU packages are
   ! described below.  They are based on a standard filesystem layout;
   ! variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4, and
   ! other modern operating systems.
   ! 
   ! Installers are expected to override these values when calling
   ! @command{make} (e.g., @code{make prefix=/usr install} or
   ! @command{configure} (e.g., @code{configure --prefix=/usr}).  GNU
   ! packages should not try to guess which value should be appropriate for
   ! these variables on the system they are being installed onto: use the
   ! default settings specified here so that all GNU package behave
   ! identically, allowing the installer to achieve any desired layout.

     These two variables set the root for the installation.  All the other
     installation directories should be subdirectories of one of these two,
   ***************
   *** 355,360 ****
   --- 364,373 ----
     programs rather than by users.  This directory should normally be
     @file{/usr/local/libexec}, but write it as @file{$(exec_prefix)/libexec}.
     (If you are using Autoconf, write it as @samp{@@libexecdir@@}.)
   + 
   + The definition of @samp{libexecdir} is the same for all packages, so you
   + should install your data in a subdirectory thereof.  Most packages
   + install their data under @file{$(libexecdir)/@var{package-name}/}.

This is actually wrong (but only for libexecdir), most packages
install under:

$(libexecdir)/PACKAGE/MACHINE/VERSION/

if they install in a subdirectory in /libexec (emacs, and gcc are
prime examples). MACHINE is the GNU machine tripple.

$(pkglibexecdir), does automake have something like that?  If it does
it should be noted, if not, it should be added to automake and be
noted in the GCS.

     @end table

     Data files used by the program during its execution are divided into
   ***************
   *** 391,403 ****
     The directory for installing idiosyncratic read-only
     architecture-independent data files for this program.  This is usually
     the same place as @samp{datarootdir}, but we use the two separate
   ! variables so that you can move these idiosyncratic files without
     altering the location for Info files, man pages, etc.

   ! The default definition of @samp{datadir} should be
     @file{$(datarootdir)}.  (If you are using Autoconf, write it as
     @samp{@@datadir@@}.)

     @item sysconfdir
     The directory for installing read-only data files that pertain to a
     single machine--that is to say, files for configuring a host.  Mailer
   --- 404,420 ----
     The directory for installing idiosyncratic read-only
     architecture-independent data files for this program.  This is usually
     the same place as @samp{datarootdir}, but we use the two separate
   ! variables so that you can move these program-specific files without
     altering the location for Info files, man pages, etc.

   ! This should normally be @file{/usr/local/share}, but write it as
     @file{$(datarootdir)}.  (If you are using Autoconf, write it as
     @samp{@@datadir@@}.)

   + The definition of @samp{datadir} is the same for all packages, so you
   + should install your data in a subdirectory thereof.  Most packages
   + install their data under @file{$(datadir)/@var{package-name}/}.


I would add the following to the above paragraph (I think it is
automake that provides this, not autoconf):

(If you are using Automake, write it as $(pkgdatadir).)

   + 
     @item sysconfdir
     The directory for installing read-only data files that pertain to a
     single machine--that is to say, files for configuring a host.  Mailer





reply via email to

[Prev in Thread] Current Thread [Next in Thread]