emacs-devel
[Top][All Lists]
Advanced

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

$prefix/info -> $prefix/share/info


From: Bruno Haible
Subject: $prefix/info -> $prefix/share/info
Date: Mon, 18 Dec 2006 14:47:56 +0100
User-agent: KMail/1.9.1

Hi,

For several years already, the GNU coding standards and the Linux
Filesystem Hierarchy Standard specify that 'info' files should be installed
in $prefix/share/info rather than in $prefix/info. The rationale is and was
that 'info' files are not platform dependent.

Since autoconf-2.60 was released 6 months ago, it is easy to actually
implement this.

But Emacs-22.0.90 still installs into $prefix/info.

To follow the above cited standards, the following recipe can be used:

1) Regenerate the 'configure' file with autoconf-2.60 or -2.61. An
invocation of 'autoconf' is all that's needed.

2) Apply this patch. I've verified that with this patch, Emacs installs its
manuals into $prefix/share/info and that the info mode finds them there.


2006-12-17  Bruno Haible  <address@hidden>

        * INSTALL: Mention /usr/local/share/info instead of /usr/local/info.
        * etc/emacs.1: Likewise.
        * src/epaths.in (PATH_INFO): Likewise.
        * nt/paths.h (PATH_INFO): Likewise.
        * lisp/paths.el (Info-default-directory-list): Put "share/" before "",
        before new info files will be installed in share/info.
        * lisp/info.el (Info-default-dirs): Look in $prefix/share/info instead
        of $prefix/info.
        * lisp/w32-fns.el (w32-init-info): Likewise.

diff -r -c3 --exclude=configure emacs-22.0.90.orig/INSTALL emacs-22.0.90/INSTALL
*** emacs-22.0.90.orig/INSTALL  2006-07-09 22:52:09.000000000 +0200
--- emacs-22.0.90/INSTALL       2006-11-15 02:43:49.000000000 +0100
***************
*** 494,503 ****
                useful for sites at which different kinds of machines
                share the file system Emacs is installed on.
  
! `/usr/local/info' holds the on-line documentation for Emacs, known as
!               "info files".  Many other GNU programs are documented
!               using info files as well, so this directory stands
!               apart from the other, Emacs-specific directories.
  
  `/usr/local/man/man1' holds the man pages for the programs installed
                in `/usr/local/bin'.
--- 494,504 ----
                useful for sites at which different kinds of machines
                share the file system Emacs is installed on.
  
! `/usr/local/share/info' holds the on-line documentation for Emacs,
!               known as "info files".  Many other GNU programs are
!               documented using info files as well, so this directory
!               stands apart from the other, Emacs-specific
!               directories.
  
  `/usr/local/man/man1' holds the man pages for the programs installed
                in `/usr/local/bin'.
***************
*** 523,530 ****
  information on this.
  
  8) Check the file `dir' in your site's info directory (usually
! /usr/local/info) to make sure that it has a menu entry for the Emacs
! info files.
  
  9) If your system uses lock files to interlock access to mailer inbox files,
  then you might need to make the movemail program setuid or setgid
--- 524,531 ----
  information on this.
  
  8) Check the file `dir' in your site's info directory (usually
! /usr/local/share/info) to make sure that it has a menu entry for the
! Emacs info files.
  
  9) If your system uses lock files to interlock access to mailer inbox files,
  then you might need to make the movemail program setuid or setgid
***************
*** 590,596 ****
        installed on.
  
  `infodir' indicates where to put the info files distributed with
!       Emacs; it defaults to `/usr/local/info'.
  
  `mandir' indicates where to put the man pages for Emacs and its
        utilities (like `etags'); it defaults to
--- 591,597 ----
        installed on.
  
  `infodir' indicates where to put the info files distributed with
!       Emacs; it defaults to `/usr/local/share/info'.
  
  `mandir' indicates where to put the man pages for Emacs and its
        utilities (like `etags'); it defaults to
diff -r -c3 --exclude=configure emacs-22.0.90.orig/etc/emacs.1 
emacs-22.0.90/etc/emacs.1
*** emacs-22.0.90.orig/etc/emacs.1      2006-02-07 23:37:19.000000000 +0100
--- emacs-22.0.90/etc/emacs.1   2006-11-15 02:50:24.000000000 +0100
***************
*** 431,437 ****
  manual is also included in the Emacs source distribution.
  .PP
  .SH FILES
! /usr/local/info - files for the Info documentation browser
  (a subsystem of Emacs) to refer to.  Currently not much of Unix
  is documented here, but the complete text of the Emacs reference
  manual is included in a convenient tree structured form.
--- 431,437 ----
  manual is also included in the Emacs source distribution.
  .PP
  .SH FILES
! /usr/local/share/info - files for the Info documentation browser
  (a subsystem of Emacs) to refer to.  Currently not much of Unix
  is documented here, but the complete text of the Emacs reference
  manual is included in a convenient tree structured form.
diff -r -c3 --exclude=configure emacs-22.0.90.orig/lisp/info.el 
emacs-22.0.90/lisp/info.el
*** emacs-22.0.90.orig/lisp/info.el     2006-09-07 22:45:50.000000000 +0200
--- emacs-22.0.90/lisp/info.el  2006-11-15 03:17:11.000000000 +0100
***************
*** 463,474 ****
                     (expand-file-name "info/" installation-directory)
                   (if invocation-directory
                       (let ((infodir (expand-file-name
!                                      "../info/"
                                       invocation-directory)))
                         (if (file-exists-p infodir)
                             infodir
                           (setq infodir (expand-file-name
!                                         "../../../info/"
                                          invocation-directory))
                           (and (file-exists-p infodir)
                                infodir))))))
--- 463,474 ----
                     (expand-file-name "info/" installation-directory)
                   (if invocation-directory
                       (let ((infodir (expand-file-name
!                                      "../share/info/"
                                       invocation-directory)))
                         (if (file-exists-p infodir)
                             infodir
                           (setq infodir (expand-file-name
!                                         "../../../share/info/"
                                          invocation-directory))
                           (and (file-exists-p infodir)
                                infodir))))))
diff -r -c3 --exclude=configure emacs-22.0.90.orig/lisp/paths.el 
emacs-22.0.90/lisp/paths.el
*** emacs-22.0.90.orig/lisp/paths.el    2006-09-04 19:36:11.000000000 +0200
--- emacs-22.0.90/lisp/paths.el 2006-11-15 03:21:39.000000000 +0100
***************
*** 68,74 ****
         (suffixes
          ;; Subdirectories in each directory tree that may contain info
          ;; directories.
!         '("" "share/" "gnu/" "gnu/lib/" "gnu/lib/emacs/"
            "emacs/" "lib/" "lib/emacs/"))
         (standard-info-dirs
          (apply #'nconc
--- 68,74 ----
         (suffixes
          ;; Subdirectories in each directory tree that may contain info
          ;; directories.
!         '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/"
            "emacs/" "lib/" "lib/emacs/"))
         (standard-info-dirs
          (apply #'nconc
***************
*** 81,87 ****
                                 dirs
                               (prune-directory-list dirs config))))
                         prefixes))))
!     ;; If $(prefix)/info is not one of the standard info directories,
      ;; they are probably installing an experimental version of Emacs,
      ;; so make sure that experimental version's Info files override
      ;; the ones in standard directories.
--- 81,87 ----
                                 dirs
                               (prune-directory-list dirs config))))
                         prefixes))))
!     ;; If $(prefix)/share/info is not one of the standard info directories,
      ;; they are probably installing an experimental version of Emacs,
      ;; so make sure that experimental version's Info files override
      ;; the ones in standard directories.
diff -r -c3 --exclude=configure emacs-22.0.90.orig/lisp/w32-fns.el 
emacs-22.0.90/lisp/w32-fns.el
*** emacs-22.0.90.orig/lisp/w32-fns.el  2006-02-07 23:37:28.000000000 +0100
--- emacs-22.0.90/lisp/w32-fns.el       2006-11-15 03:18:14.000000000 +0100
***************
*** 205,212 ****
  ;;; that configuration during build time is correct for runtime.
  (defun w32-init-info ()
    (let* ((instdir (file-name-directory invocation-directory))
!        (dir1 (expand-file-name "../info/" instdir))
!        (dir2 (expand-file-name "../../../info/" instdir)))
      (if (file-exists-p dir1)
        (setq Info-default-directory-list
              (append Info-default-directory-list (list dir1)))
--- 205,212 ----
  ;;; that configuration during build time is correct for runtime.
  (defun w32-init-info ()
    (let* ((instdir (file-name-directory invocation-directory))
!        (dir1 (expand-file-name "../share/info/" instdir))
!        (dir2 (expand-file-name "../../../share/info/" instdir)))
      (if (file-exists-p dir1)
        (setq Info-default-directory-list
              (append Info-default-directory-list (list dir1)))
diff -r -c3 --exclude=configure 
emacs-22.0.90.orig/lispintro/emacs-lisp-intro.texi 
emacs-22.0.90/lispintro/emacs-lisp-intro.texi
*** emacs-22.0.90.orig/lispintro/emacs-lisp-intro.texi  2006-08-24 
21:12:48.000000000 +0200
--- emacs-22.0.90/lispintro/emacs-lisp-intro.texi       2006-11-15 
02:58:08.000000000 +0100
***************
*** 88,94 ****
  @c After creating the Info file, edit your Info `dir' file, if the
  @c `dircategory' section below does not enable your system to
  @c install the manual automatically.
! @c (The `dir' file is often in the `/usr/local/info/' directory.)
  
  @c ================ How to Create an HTML file ================
  
--- 88,94 ----
  @c After creating the Info file, edit your Info `dir' file, if the
  @c `dircategory' section below does not enable your system to
  @c install the manual automatically.
! @c (The `dir' file is often in the `/usr/local/share/info/' directory.)
  
  @c ================ How to Create an HTML file ================
  
diff -r -c3 --exclude=configure emacs-22.0.90.orig/nt/paths.h 
emacs-22.0.90/nt/paths.h
*** emacs-22.0.90.orig/nt/paths.h       2006-02-07 23:37:40.000000000 +0100
--- emacs-22.0.90/nt/paths.h    2006-11-15 02:54:58.000000000 +0100
***************
*** 55,61 ****
  /* Where the configuration process believes the info tree lives.  The
     lisp variable configure-info-directory gets its value from this
     macro, and is then used to set the Info-default-directory-list.  */
! /* #define PATH_INFO "/usr/local/info" */
  #define PATH_INFO "C:/emacs/info"
  
  /* arch-tag: f6d46f3c-e1e9-436b-8629-edcaf6597973
--- 55,61 ----
  /* Where the configuration process believes the info tree lives.  The
     lisp variable configure-info-directory gets its value from this
     macro, and is then used to set the Info-default-directory-list.  */
! /* #define PATH_INFO "/usr/local/share/info" */
  #define PATH_INFO "C:/emacs/info"
  
  /* arch-tag: f6d46f3c-e1e9-436b-8629-edcaf6597973
diff -r -c3 --exclude=configure emacs-22.0.90.orig/src/epaths.in 
emacs-22.0.90/src/epaths.in
*** emacs-22.0.90.orig/src/epaths.in    2006-02-07 23:37:42.000000000 +0100
--- emacs-22.0.90/src/epaths.in 2006-11-15 02:56:16.000000000 +0100
***************
*** 52,58 ****
  /* Where the configuration process believes the info tree lives.  The
     lisp variable configure-info-directory gets its value from this
     macro, and is then used to set the Info-default-directory-list.  */
! #define PATH_INFO "/usr/local/info"
  
  /* Where Emacs should store game score files.  */
  #define PATH_GAME "/usr/local/var/games/emacs"
--- 52,58 ----
  /* Where the configuration process believes the info tree lives.  The
     lisp variable configure-info-directory gets its value from this
     macro, and is then used to set the Info-default-directory-list.  */
! #define PATH_INFO "/usr/local/share/info"
  
  /* Where Emacs should store game score files.  */
  #define PATH_GAME "/usr/local/var/games/emacs"




reply via email to

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