>>>> "ms" == Michael Sperber
<sperber(a)informatik.uni-tuebingen.de> writes:
ms> You can have this directory structure
ms> xemacs/ <XEmacs in-place build tree>
ms> xemacs-packages/
ms> mule-packages/
ms> which XEmacs will recognize.
Ugh. Just Say No. If you could truly run packages in-place, that
might make some sense, but you can't (and anyway if you're using a
standard CVS checkout, the package hierarchies are under packages!)
Stephen> So are symlinks managed by hand [== "trouble"].
ms> Ermh, no, they don't disable any part of the XEmacs logic for
ms> constructing the package path.
Even with full XEmacs logic you can have trouble with symlinks. In
fact, even vi users :-) have trouble with symlinks.
Stephen> Note the "all hierarchies."
ms> Note "[that] XEmacs was able to scrounge up." :-)
If --with-prefix=yes, it had better be able to find $(prefix). It
doesn't, for packages. I suspect it's looking for (eg)
$prefix/lib/xemacs-21.5.9 and giving up when that's not there. (This
is the package_root != executable_root case.)
Stephen> In other words, I want
Stephen> cd $random-directory
Stephen> tar xzf xemacs-21.5.10.tar.gz
Stephen> ./configure
Stephen> make
Stephen> src/xemacs -vanilla
Stephen> to find packages installed in
Stephen> $datadir/xemacs/xemacs-packages
ms> Erh, and this doesn't work now? That'd be a bug.
No. And it hasn't worked since "the change that Stephen requested".
This is the bug the Michael Harnois was so upset about.
ms> Can you be more specific about the problem scenario?
In my case, prefix=/usr/local (the default), package hierarchies are
installed in /usr/local/lib/xemacs, and the above script[1] with
random-directory=/playpen/Projects/XEmacs/Builds/21.5 and
--srcdir=/coda/Software/XEmacs/21.5 doesn't find the packages without
setting EMACSPACKAGEPATH. Specifically:
emacs-roots
("/playpen/Projects/XEmacs/Builds/21.5/")
configure-prefix-directory
"/usr/local/"
If I then do "make install" and reinvoke xemacs I get:
emacs-roots
("/playpen/Projects/XEmacs/Builds/21.5/" "/usr/local/")
configure-prefix-directory
"/usr/local/"
and packages are found.
Stephen> Linux distros now generally conform to the FHS, which
Stephen> puts the package hierarchies under /usr/share/xemacs.
Stephen> They still need --package-path.
ms> Any scenario which "needs" --package-path is just plain
ms> broken. I have every intention of fixing that: what exactly
ms> is that scenario?
According to the Info node quoted, package hierarchies are expected
under ${prefix}/lib/xemacs.
The File Hierarchy Standard says Lisp (Perl, Java, etc) libraries
belong under datadir=/usr/share, and thus the package hierarchies
should be under /usr/share/xemacs (or /usr/share/xemacs21 for Debian).
GNU Emacs has long defaulted datadir to ${prefix}/share (since 19.29
according to configure.in).
Footnotes:
[1] The precise configure command is:
/coda/Software/XEmacs/21.5/configure '--with-mule' '--with-xim=xlib' \
'--with-xfs' '--with-widgets=athena' '--with-athena=3d' \
'--with-dialogs=athena' '--with-sound=noesd,nonas'
'--external-widget' \
'--with-modules' '--pdump' '--debug'
'--error-checking=all' \
'--use-union-type'
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.