Hi,

        I have noticed a problem recently in in the way packages
 modify the load path.  I am attaching what the load-path var looks
 like in a freshly started emacs21. Please note that first in the path
 come local lisp directories, as they should. Then come directories
 added by add-on packages. Then come directories I have in /usr/local
 -- then come the standard directories in /usr/share --- including the
 directories of add-on packages, repeated!!

        The glaring problem with this is that the add-on packages
 (including my packages, gnus and vm) are violating emacs policy --
 the /usr/local paths are supposed to have precedence over the paths
 of standard emacs packages installed by Debian. However, the add-on
 packages need to have their paths ahead of the standard paths -- so
 the order ought to be
      paths added by me --- /usr/local/ --- add-on packages -- standard
 This way, if I wish, I can override even stand alone packages, if I
 wish, by placing it in /usr/local (as I do with cvs versions of gnus,
 bbdb, and tramp). 

======================================================================
9) Emacs lisp load path.

   At a minimum, each emacs has the following directories in the given
   order in their load path:

     /etc/<flavor>
     /etc/emacs
     /usr/local/share/emacs/<upstream>/site-lisp
     /usr/local/share/emacs/site-lisp
     /usr/share/emacs/<upstream>/site-lisp
     /usr/share/emacs/site-lisp
======================================================================

        The add-on packages ought to be using something like the
 function contributed by Sam Hartman <[EMAIL PROTECTED]>, which is
 also appended as an attachment below. This allows them to insert
 their path into the load-path *after* the local paths, but before the
 standard emacs paths. 

        Perhaps add-after-local (or a renamed version of the function)
 should be provided by default, and policy changed to recommend the
 use of that function.

        I am copying this message to all packages currently violating
 the emacsen policy on load-paths. Please consider this fair warning
 for serious bugs to be filed when we reach a solution of this issue.

        manoj

load-path's value is 
("/home/srivasta/lib/emacs/debian" "/home/srivasta/lib/emacs/x-support" 
"/home/srivasta/lib/emacs/modes" "/home/srivasta/lib/emacs/mail" 
"/home/srivasta/lib/emacs/lisp" "/home/srivasta/lib/emacs/bbdb" 
"/home/srivasta/lib/emacs/functions" "/home/srivasta/lib/emacs/config" 
"/home/srivasta/lib/emacs/emacs21" "/home/srivasta/lib/emacs" 
"/usr/share/emacs21/site-lisp/xae" "/usr/share/emacs21/site-lisp/tramp" 
"/usr/share/emacs21/site-lisp/speedbar" "/usr/share/emacs21/site-lisp/psgml" 
"/usr/share/emacs21/site-lisp/pcl-cvs/" "/usr/share/emacs21/site-lisp/maxima" 
"/usr/share/emacs21/site-lisp/gnuserv" "/usr/share/emacs21/site-lisp/erc" 
"/usr/share/emacs21/site-lisp/emacs-goodies-el" 
"/usr/share/emacs21/site-lisp/eieio" "/usr/share/emacs21/site-lisp/dpkg-dev-el" 
"/usr/share/emacs21/site-lisp/debbugs-el" 
"/usr/share/emacs/site-lisp/debbugs-el" "/usr/share/emacs21/site-lisp/cxref" 
"/usr/share/emacs21/site-lisp/calc" "/usr/share/emacs21/site-lisp/auctex/" 
"/usr/share/emacs21/site-lisp/elib/" "/usr/share/emacs21/site-lisp/gnus" 
"/etc/emacs21" "/etc/emacs" "/usr/local/share/emacs/21.1/site-lisp" 
"/usr/local/share/emacs/site-lisp" "/usr/local/share/emacs/site-lisp/bbdb-cvs" 
"/usr/local/share/emacs/site-lisp/dmacro" 
"/usr/local/share/emacs/site-lisp/functions" 
"/usr/local/share/emacs/site-lisp/gnus-cvs" 
"/usr/local/share/emacs/site-lisp/mailcrypt-cvs" 
"/usr/local/share/emacs/site-lisp/site-start.d" 
"/usr/local/share/emacs/site-lisp/tramp-cvs" 
"/usr/local/share/emacs/site-lisp/url-cvs" 
"/usr/local/share/emacs/site-lisp/w3-cvs" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/bits" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/html" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/lisp" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/misc" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/tex" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/texinfo" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/utils" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/contrib" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/debian" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/etc" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/lisp" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi" 
"/usr/local/share/emacs/site-lisp/tramp-cvs/lisp" 
"/usr/local/share/emacs/site-lisp/tramp-cvs/test" 
"/usr/local/share/emacs/site-lisp/tramp-cvs/texi" 
"/usr/local/share/emacs/site-lisp/url-cvs/lisp" 
"/usr/local/share/emacs/site-lisp/url-cvs/texi" 
"/usr/local/share/emacs/site-lisp/w3-cvs/contrib" 
"/usr/local/share/emacs/site-lisp/w3-cvs/etc" 
"/usr/local/share/emacs/site-lisp/w3-cvs/lisp" 
"/usr/local/share/emacs/site-lisp/w3-cvs/tests" 
"/usr/local/share/emacs/site-lisp/w3-cvs/texi" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/bits/bbdb-filters" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/html/images" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/html/patches" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/etc/gnus" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/etc/smilies" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/etc" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/herds" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/misc" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/picons" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/ps" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/screen" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/smilies" 
"/usr/local/share/emacs/site-lisp/gnus-cvs/texi/xface" 
"/usr/local/share/emacs/site-lisp/tramp-cvs/texi/tramp" 
"/usr/local/share/emacs/site-lisp/w3-cvs/etc/w3" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/bits/bbdb-filters/doc" 
"/usr/local/share/emacs/site-lisp/w3-cvs/etc/w3/pixmaps" 
"/usr/local/share/emacs/site-lisp/bbdb-cvs/bits/bbdb-filters/doc/formatted" 
"/usr/share/emacs/21.1/site-lisp" "/usr/share/emacs/site-lisp" 
"/usr/share/emacs/21.1/leim" "/usr/share/emacs/21.1/lisp" 
"/usr/share/emacs/21.1/lisp/toolbar" "/usr/share/emacs/21.1/lisp/textmodes" 
"/usr/share/emacs/21.1/lisp/progmodes" "/usr/share/emacs/21.1/lisp/play" 
"/usr/share/emacs/21.1/lisp/obsolete" "/usr/share/emacs/21.1/lisp/net" 
"/usr/share/emacs/21.1/lisp/mail" "/usr/share/emacs/21.1/lisp/language" 
"/usr/share/emacs/21.1/lisp/international" "/usr/share/emacs/21.1/lisp/gnus" 
"/usr/share/emacs/21.1/lisp/eshell" "/usr/share/emacs/21.1/lisp/emulation" 
"/usr/share/emacs/21.1/lisp/emacs-lisp" "/usr/share/emacs/21.1/lisp/calendar" 
"/usr/share/emacs21/site-lisp/url" "/usr/share/emacs21/site-lisp/vm" 
"/usr/share/emacs21/site-lisp/w3-el")


Documentation:
*List of directories to search for files to load.
Each element is a string (directory name) or nil (try default directory).
Initialized based on EMACSLOADPATH environment variable, if any,
otherwise to default specified by file `epaths.h' when Emacs was built.

Attachment: add-after-local.el
Description: add a path component after the /usr/local components


-- 
 "You stay here, Audrey -- this is between me and the vegetable!"
 Seymour, from _Little Shop Of Horrors_
Manoj Srivastava   <[EMAIL PROTECTED]>  <http://www.debian.org/%7Esrivasta/>
1024R/C7261095 print CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C

Reply via email to