all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* $prefix/info -> $prefix/share/info
@ 2006-12-18 13:47 Bruno Haible
  2006-12-18 20:21 ` Eli Zaretskii
  2006-12-20 13:01 ` Richard Stallman
  0 siblings, 2 replies; 8+ messages in thread
From: Bruno Haible @ 2006-12-18 13:47 UTC (permalink / raw)


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  <bruno@clisp.org>

	* 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"

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-01-18 16:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-18 13:47 $prefix/info -> $prefix/share/info Bruno Haible
2006-12-18 20:21 ` Eli Zaretskii
2006-12-20 14:24   ` Bruno Haible
2006-12-20 19:01     ` Eli Zaretskii
2006-12-20 13:01 ` Richard Stallman
2006-12-20 14:24   ` Bruno Haible
2006-12-25  0:43     ` Richard Stallman
2007-01-18 16:22       ` Chong Yidong

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.