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.
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

