emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Debian's idiosyncratic complexification of Emacs


From: Lennart Borgman (gmail)
Subject: Re: Debian's idiosyncratic complexification of Emacs
Date: Tue, 22 Jul 2008 16:22:41 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666

Karl Fogel wrote:
Manoj Srivastava <address@hidden> writes:
Or if the problem is that Debian isn't allowed to touch anything under
/usr/local/, then put code in /etc/emacs/site-start.el that loads
/usr/share/.../site-start.el and /usr/local/share/.../site-start.el
(and same for any other potentially blocked 'site-start.el's).
        While Debian maintainers can not touch anything under
 /usr/local, Debian install emacs with the PREFIX=/usr, and
 /usr/share/emacs/site-lisp/site-start.el Could be made to load the file
 under /etc.

Wouldn't that solve all the problems here?
        Either the symlink or the modified version put in
$PREFIX/share/emacs/site-lisp/site-start.el will solve the issue, yes.

I think we're almost there.

The trick is not to load the one in /etc, but to have the one in /etc
load whatever other ones exist -- some of which may be user-produced and
shadowed by the one in /etc.

The problem, IIUC, is that Emacs loads the first site-start.el it finds
in load-path, and no others.  Since the /etc one is Debian-maintained,
it is free to find the others (in likely places) and load them.  As long
as it does so last, everything will work out fine: user-created code
will be evaluated after Debian-created code, which is what we want.


I have attached a site-start.el that maybe can be used for the common
site-start.el


;;; site-start.el --- Common site-start, will start user siste-start
;;
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
;; Created: 2008-07-21T23:48:58+0200 Mon
;; Version: 0.5
;; Last-Updated: 2008-07-22T00:04:41+0200 Mon
;; URL:
;; Keywords:
;; Compatibility:
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Commentary:
;;
;; Written for the Debian packaging problem.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Change log:
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
;; Floor, Boston, MA 02110-1301, USA.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Code:

(message "Common site-start running ...")

;; Load the users site-start file.
(let* ((this-dir
        (file-truename
         (file-name-as-directory
          (file-name-directory
           (if load-file-name load-file-name buffer-file-name)))))
       (load-path
        (mapcar
         (lambda (path)
           (unless (string= this-dir
                            (file-truename
                             (file-name-as-directory
                              (expand-file-name path))))
             path))
         load-path)))
  (setq load-path (delq nil load-path))
  ;;(message "this-dir=%s" this-dir)
  ;;(with-current-buffer "*Messages*" (insert (pp-to-string load-path)))
  (let ((user-site-start (locate-library "site-start")))
    (if user-site-start
        (progn
          (message "SITE-START: Loading user %s" user-site-start)
          (load-file user-site-start))
      (message "SITE-START: There was no user specific site-start.el(c)"))))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; site-start.el ends here


reply via email to

[Prev in Thread] Current Thread [Next in Thread]