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: Karl Berry
Subject: Re: libexecdir/datadir used incorrectly
Date: Wed, 9 Feb 2005 18:01:23 -0500

       + 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/

I believe the original statement is correct, "under libexecdir/package"
seems true to me.  There may be further subdirectories under that.  This
is the case for other variables too.  If we start talking about it for
one var, we should do it for all, and I am not prepared to do that.

Also, in current practice, I see a variety of uses of libexec and
subdirs.  So I am not inclined to change it or try to specify or
recommend anything.

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

If you're using Automake, you're not going to specify it at all (or any
of these other variables).  Right?

I made one other change: calling Ultrix v4 a "modern operating system"
seems rather anachronistic.  Also incorporating Eli's markup fix and the
data[root]dir thing, I now have:

*** make-stds.texi      28 Jan 2005 01:34:13 -0000      1.38
--- make-stds.texi      9 Feb 2005 22:55:01 -0000
***************
*** 294,300 ****
  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
--- 294,309 ----
  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 GNU/Linux and other modern operating
! systems.
! 
! Installers are expected to override these values when calling
! @command{make} (e.g., @kbd{make prefix=/usr install} or
! @command{configure} (e.g., @kbd{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 packages behave
! identically, allowing the installer to achieve any desired layout.
  
  These two variables set the root for the installation.  All the other
***************
*** 356,359 ****
--- 365,372 ----
  @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}/}.
  @end table
  
***************
*** 385,390 ****
  The root of the directory tree for read-only architecture-independent
  data files.  This should normally be @file{/usr/local/share}, but
! write it as @file{$(prefix)/share}.  @samp{datadir}'s default value is
! based on this variable; so are @samp{infodir}, @samp{mandir}, and others.
  
  @item datadir
--- 398,405 ----
  The root of the directory tree for read-only architecture-independent
  data files.  This should normally be @file{/usr/local/share}, but
! write it as @file{$(prefix)/share}.  (If you are using Autoconf, write
! it as @samp{@@datarootdir@@}.)  @samp{datadir}'s default value is
! based on this variable; so are @samp{infodir}, @samp{mandir}, and
! others.
  
  @item datadir
***************
*** 392,402 ****
  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
--- 407,421 ----
  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}/}.
+ 
  @item sysconfdir
  The directory for installing read-only data files that pertain to a




reply via email to

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