+2005-10-04 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * aclocal.m4 (AC_PATH_LISPDIR): Default to .../site-lisp/gnus for
+ Emacs.
+ (AC_PATH_ETCDIR): Don't change the default value for Emacs.
+
+ * configure: Generated.
+
+ * Makefile.in (list-installed-shadows): New entry.
+ (remove-installed-shadows): New entry.
+
+ * GNUS-NEWS: Generated.
+
2005-09-28 Reiner Steib <Reiner.Steib@gmx.de>
* todo: Remove some items that are already done. Add some new
** International host names (IDNA) can now be decoded inside article
bodies using `W i' (`gnus-summary-idna-message'). This require that
-GNU Libidn (<http://www.gnu.org/software/libidn/>) has been installed.
+GNU Libidn (`http://www.gnu.org/software/libidn/') has been installed.
** Gnus includes an Emacs Lisp SASL library.
of 16 seconds (see `password-cache-expiry'). If PGG is used as the
PGP back end, the PGP passphrase is managed by this mechanism.
Passwords for ManageSieve connections are managed by this mechanism,
-after quering the user about whether to do so.
+after querying the user about whether to do so.
** IMAP identity (RFC 2971) is supported.
`gnus-mime-replace-part' and `gnus-article-replace-part'. *Note MIME
Commands::, *Note Using MIME::.
+** Lisp files are now installed in .../site-lisp/gnus/ by default. It
+defaulted to .../site-lisp/ formerly. In addition to this, the new
+installer issues a warning if the other Gnus installations which will
+shadow the latest one are detected. You can then remove those shadows
+manually or remove them using `make remove-installed-shadows'.
+
\f
* For older news, see Gnus info node "New Features".
xinfo-ja:
cd texi && $(MAKE) EMACS="$(XEMACS)" ja-info
+list-installed-shadows:
+ cd lisp && $(MAKE) EMACS="$(EMACS)" lispdir="$(lispdir)" list-installed-shadows
+
+remove-installed-shadows:
+ cd lisp && $(MAKE) EMACS="$(EMACS)" lispdir="$(lispdir)" remove-installed-shadows
+
uninstall:
cd lisp && $(MAKE) lispdir="$(lispdir)" uninstall
cd texi && $(MAKE) uninstall
if test "$EMACS_FLAVOR" = "xemacs"; then
etcdir="\$(lispdir)/../../etc"
else
- etcdir="\$(lispdir)/../etc"
+ etcdir="\$(lispdir)/../../etc"
fi
fi
AC_MSG_RESULT($etcdir)
if test "$EMACS_FLAVOR" = "xemacs"; then
etcdir="\$(lispdir)/../../etc"
else
- etcdir="\$(lispdir)/../etc"
+ etcdir="\$(lispdir)/../../etc"
fi
fi
echo "$as_me:$LINENO: result: $etcdir" >&5
+2005-10-04 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * Makefile.in (list-installed-shadows): New entry.
+ (install): Use it.
+ (remove-installed-shadows): New entry.
+
+ * dgnushack.el (dgnushack-default-load-path): New variable.
+ (dgnushack-find-lisp-shadows): New function.
+ (dgnushack-remove-lisp-shadows): New function.
+
2005-10-02 Katsumi Yamaoka <yamaoka@jpl.org>
* Makefile.in (install-el-elc): New entry.
fi
$(EMACS_COMP) -f dgnushack-compile
-install: clever install-without-compiling
+install: clever install-without-compiling list-installed-shadows
install-without-compiling:
$(SHELL) $(top_srcdir)/mkinstalldirs $(lispdir)
$(INSTALL_DATA) $$p $(lispdir)/$$p; \
done
+list-installed-shadows:
+ $(EMACS_COMP) -f dgnushack-find-lisp-shadows
+
+remove-installed-shadows:
+ $(EMACS_COMP) -f dgnushack-remove-lisp-shadows
+
tags:
etags *.el
(copy-sequence coding-category-list))
'(coding-category-sjis))))))
+(defvar dgnushack-default-load-path (copy-sequence load-path))
+
(defalias 'facep 'ignore)
(require 'cl)
(while (setq file (pop files))
(insert "etc/images/smilies/" file "\n"))))))
+(defun dgnushack-find-lisp-shadows (&optional lispdir)
+ "Return a list of directories in which other Gnus installations exist.
+This function looks for the other Gnus installations which will shadow
+the new Gnus Lisp modules which have been installed in LISPDIR, using
+the default `load-path'. The return value will make sense only when
+LISPDIR is existent and is listed in the default `load-path'. Assume
+LISPDIR will be prepended to `load-path' by a user if the default
+`load-path' does not contain it."
+ (unless lispdir
+ (setq lispdir (getenv "lispdir")))
+ (when (and lispdir (file-directory-p lispdir))
+ (setq lispdir (file-truename (directory-file-name lispdir)))
+ (let ((indices '("gnus.elc" "gnus.el" "gnus.el.bz2" "gnus.el.gz"
+ "message.elc" "message.el" "message.el.bz2"
+ "message.el.gz"))
+ (path (delq nil (mapcar
+ (lambda (p)
+ (condition-case nil
+ (when (and p (file-directory-p p))
+ (file-truename (directory-file-name p)))
+ (error nil)))
+ dgnushack-default-load-path)))
+ rest elcs)
+ (while path
+ (setq rest (cons (car path) rest)
+ path (delete (car rest) (cdr path))))
+ (setq path (nreverse (cdr (member lispdir rest)))
+ rest nil)
+ (while path
+ (setq elcs indices)
+ (while elcs
+ (when (file-exists-p (expand-file-name (pop elcs) (car path)))
+ (setq rest (cons (car path) rest)
+ elcs nil)))
+ (setq path (cdr path)))
+ (prog1
+ (setq path (nreverse rest))
+ (when path
+ (let (print-level print-length)
+ (princ (concat "\n\
+WARNING: The other gnus installation" (if (cdr path) "s have" " has") "\
+ been detected in:\n\n " (mapconcat 'identity path "\n ") "\n\n\
+You will need to modify the run-time `load-path', remove them manually,
+or remove them using `make remove-installed-shadows'.\n\n"))))))))
+
+(defun dgnushack-remove-lisp-shadows (&optional lispdir)
+ "Remove the other Gnus installations which shadow the recent one."
+ (let ((path (with-temp-buffer
+ (let ((standard-output (current-buffer)))
+ (dgnushack-find-lisp-shadows lispdir))))
+ elcs files shadows file)
+ (when path
+ (unless (setq elcs (directory-files srcdir nil "\\.elc\\'"))
+ (error "You should build .elc files first."))
+ (setq files
+ (apply
+ 'append
+ (mapcar
+ (lambda (el)
+ (list (concat el "c") el (concat el ".bz2") (concat el ".gz")))
+ (append
+ (list (file-name-nondirectory dgnushack-gnus-load-file)
+ (file-name-nondirectory dgnushack-cus-load-file))
+ (mapcar (lambda (elc) (substring elc 0 -1)) elcs)))))
+ (while path
+ (setq shadows files)
+ (while shadows
+ (setq file (expand-file-name (pop shadows) (car path)))
+ (when (file-exists-p file)
+ (princ (concat " Removing " file "..."))
+ (condition-case nil
+ (progn
+ (delete-file file)
+ (princ "done\n"))
+ (error (princ "failed\n")))))
+ (setq path (cdr path))))))
+
;;; dgnushack.el ends here
+2005-10-04 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-news.texi: Mention that the Lisp files are now installed in
+ .../site-lisp/gnus/ by default.
+
2005-10-03 Simon Josefsson <jas@extundo.com>
* gnus-news.texi: Fix typo.
See @code{gnus-mime-replace-part} and @code{gnus-article-replace-part}.
@xref{MIME Commands}, @ref{Using MIME}.
+@item Lisp files are now installed in .../site-lisp/gnus/ by default.
+It defaulted to .../site-lisp/ formerly. In addition to this, the new
+installer issues a warning if the other Gnus installations which will
+shadow the latest one are detected. You can then remove those shadows
+manually or remove them using @samp{make remove-installed-shadows}.
+
@end itemize
@c gnus-news.texi ends here.