>>>> "vin" == Vin Shelton <acs(a)xemacs.org>
writes:
vin> I'm a little confused. Shouldn't I be able to _build_
vin> bbdb even if I don't have apel _installed_?
Yes. You should not need APEL _installed_. BBDB may not even need
the APEL sources, but the build process does since apel is in REQUIRES.
For the record:
(1) XEmacs.rules ensures that XEmacs is -vanilla -no-autoloads.
(2) package-compile.el clears the load-path ...
(3) ... adds the core lisp to it and loads core autoloads ...
(4) ... adds the _source_ directories of packages in $(REQUIRES) and
loads their autoloads ...
(5) ... and then byte-compiles.
The intention of the code is clearly that (1) if the APEL sources are
not in xemacs-packages/libs/apel, you should get an auto-autoloads
load error, and (2) an xemacs using package-compile.el should not be
able to find an installed APEL.
But mew is buggy.
The problem is that mew uses the ee-vile PRELOADS variable to load
poe.el instead of putting apel in REQUIRES. This means that XEmacs
searches the load-path for the "-l poe.el" flag at a time when
load-path has not yet been cleaned up. Since poe.el defmacro's it
needs to be loaded at compile-time. But the mew code doesn't
#'require it, anywhere. This is a bug in mew.
Vin's solution is rm -rf comm/mew.
If Steve wants mew to build reliably (ie, not picking up random
installed APELs), he needs to remove the PRELOADS definitions in
comm/mew/Makefile, add apel to REQUIRES, and add a (require 'poe) to
comm/mew/*.el. (I'm tempted to say the right answer is
rm -rf comm/mew libs/apel
on general principles but ....)
Similar things should be done for every library with PRELOADS defined,
I think.
I think that, because of the way APEL works, probably all autoload
cookies should be deleted from all APEL libraries. APEL should be
explicitly #'required by any code that needs it.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."