Discussion:
[AUCTeX] elpa installed auctex is not the one used
jfbu
2016-09-16 12:41:16 UTC
Permalink
Hi,

on an Ubuntu 16.04 (no admin rights) with Emacs 24.5 I installed
latest auctex via elpa, but it is the site-lisp one which is seen

Emacs : GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
of 2016-04-17 on lgw01-04, modified by Debian
Package: 2014-11-01

current state:
==============
(setq
AUCTeX-date "2014-11-01"
window-system 'x
LaTeX-version "2e"
TeX-style-path '("/var/lib/auctex/emacs24/" "/usr/share/emacs/site-lisp/auctex/style" "/home/userX/.emacs.d/auctex/auto"
"/home/userX/.emacs.d/auctex/style" "auto" "style")

In my .emacs file I have

(cond ((>= emacs-major-version 24)
(setq custom-file "/home/userX/.emacs.d/custom.el")
(setq load-path (cons "/home/userX/.emacsaddons" load-path))
(load-file "/home/userX/.emacs.d/init.el")
(package-initialize)
)
)

and the load-path is
load-path is a variable defined in `C source code'.
Its value is
("/home/userX/.emacs.d/elpa/auctex-11.89.5/" "/home/userX/.emacsaddons" "/usr/share/emacs24/site-lisp/latex-cjk-thai" "/usr/share/emacs24/site-lisp/latex-cjk-common" "/etc/emacs24" "/etc/emacs" "/usr/local/share/emacs/24.5/site-lisp" "/usr/local/share/emacs/site-lisp" "/usr/share/emacs24/site-lisp/dictionaries-common" "/usr/share/emacs/site-lisp/autoconf" "/usr/share/emacs24/site-lisp/auctex" "/usr/share/emacs/24.5/site-lisp" "/usr/share/emacs/24.5/site-lisp/dictionaries-common" "/usr/share/emacs/24.5/site-lisp/latex-cjk-common" "/usr/share/emacs/24.5/site-lisp/latex-cjk-thai" "/usr/share/emacs/site-lisp" "/usr/share/emacs/24.5/lisp" "/usr/share/emacs/24.5/lisp/vc" "/usr/share/emacs/24.5/lisp/url" "/usr/share/emacs/24.5/lisp/textmodes" "/usr/share/emacs/24.5/lisp/progmodes" "/usr/share/emacs/24.5/lisp/play" "/usr/share/emacs/24.5/lisp/org" "/usr/share/emacs/24.5/lisp/nxml" "/usr/share/emacs/24.5/lisp/net" "/usr/share/emacs/24.5/lisp/mh-e" "/usr/share/emacs/24.5/lisp/mail" "/usr/share/emacs/24.5/lisp/leim" "/usr/share/emacs/24.5/lisp/language" "/usr/share/emacs/24.5/lisp/international" "/usr/share/emacs/24.5/lisp/gnus" "/usr/share/emacs/24.5/lisp/eshell" "/usr/share/emacs/24.5/lisp/erc" "/usr/share/emacs/24.5/lisp/emulation" "/usr/share/emacs/24.5/lisp/emacs-lisp" "/usr/share/emacs/24.5/lisp/cedet" "/usr/share/emacs/24.5/lisp/calendar" "/usr/share/emacs/24.5/lisp/calc" "/usr/share/emacs/24.5/lisp/obsolete" "/usr/share/emacs/site-lisp/auctex")

When I do list-packages the 11.89.5 is reported as correctly installed.

is there some other path variable to customize in order for locally elpa installed AucTeX to be the one picked up ?

before the system upgrade to Ubuntu 16.04 I did not have that issue; I was then using a self-compiled Emacs 24.5 as the system the provided only Emacs 23; after the system upgrade I removed my local /bin etc... from PATH and started using the system-wide Emacs as it was already the 24.5 one; I did not however test AUCTeX 11.89.3/4 in this new configuration as I immediately upgraded to 11.89.5)

Jean-Francois







"/usr/share/emacs/site-lisp/auctex")
Tassilo Horn
2016-09-16 15:40:55 UTC
Permalink
jfbu <***@free.fr> writes:

Hi Jean-Francois,
Post by jfbu
and the load-path is
load-path is a variable defined in `C source code'.
Its value is
("/home/userX/.emacs.d/elpa/auctex-11.89.5/" "/home/userX/.emacsaddons" "/usr/share/emacs24/site-lisp/latex-cjk-thai" "/usr/share/emacs24/site-lisp/latex-cjk-common" "/etc/emacs24" "/etc/emacs" "/usr/local/share/emacs/24.5/site-lisp" "/usr/local/share/emacs/site-lisp" "/usr/share/emacs24/site-lisp/dictionaries-common" "/usr/share/emacs/site-lisp/autoconf" "/usr/share/emacs24/site-lisp/auctex" "/usr/share/emacs/24.5/site-lisp" "/usr/share/emacs/24.5/site-lisp/dictionaries-common" "/usr/share/emacs/24.5/site-lisp/latex-cjk-common" "/usr/share/emacs/24.5/site-lisp/latex-cjk-thai" "/usr/share/emacs/site-lisp" "/usr/share/emacs/24.5/lisp" "/usr/share/emacs/24.5/lisp/vc" "/usr/share/emacs/24.5/lisp/url" "/usr/share/emacs/24.5/lisp/textmodes" "/usr/share/emacs/24.5/lisp/progmodes" "/usr/share/ema
cs/24.5/lisp/play" "/usr/share/emacs/24.5/lisp/org" "/usr/share/emacs/24.5/lisp/nxml" "/usr/share/emacs/24.5/lisp/net" "/usr/share/emacs/24.5/lisp/mh-e" "/usr/share/emacs/24.5/lisp/mail" "/usr/share/emacs/24.5/lisp/leim" "/usr/share/emacs/24.5/lisp/language" "/usr/share/emacs/24.5/lisp/international" "/usr/share/emacs/24.5/lisp/gnus" "/usr/share/emacs/24.5/lisp/eshell" "/usr/share/emacs/24.5/lisp/erc" "/usr/share/emacs/24.5/lisp/emulation" "/usr/share/emacs/24.5/lisp/emacs-lisp" "/usr/share/emacs/24.5/lisp/cedet" "/usr/share/emacs/24.5/lisp/calendar" "/usr/share/emacs/24.5/lisp/calc" "/usr/share/emacs/24.5/lisp/obsolete" "/usr/share/emacs/site-lisp/auctex")
Hm, in the load-path, the ELPA version is before the site-lisp version,
so in theory it should win...
Post by jfbu
is there some other path variable to customize in order for locally
elpa installed AucTeX to be the one picked up ?
Please check your system's `site-run-file'. That's probably
/usr/share/emacs/site-lisp/site-start.el. I presume there's some code
in it which forcefully loads the site-lisp AUCTeX version. There could
also be "a default init file" /usr/share/emacs/site-lisp/default.el
doing something such.

If my guess is correct, then I'd say that's an Ubuntu bug. site-lisp.el
is for stuff like setting `load-path' but no packages should be
forcefully loaded. The decision which system-wide installed packages
are going to be used is still a user decision which should not be forced
on them (especially since now with ELPA there's a likely chance that a
user installes and wants to use a newer version of a system-wide
installed package).

Bye,
Tassilo
jfbu
2016-09-16 17:44:08 UTC
Permalink
Hi Tassilo
Post by Tassilo Horn
Hi Jean-Francois,
[...]
Hm, in the load-path, the ELPA version is before the site-lisp version,
so in theory it should win...
Post by jfbu
is there some other path variable to customize in order for locally
elpa installed AucTeX to be the one picked up ?
Please check your system's `site-run-file'. That's probably
/usr/share/emacs/site-lisp/site-start.el. I presume there's some code
in it which forcefully loads the site-lisp AUCTeX version. There could
also be "a default init file" /usr/share/emacs/site-lisp/default.el
doing something such.
Sadly when I ssh to my office I end up on another server. And there it
is Emacs 23.1.1 + AucTeX 11.86... (the latter from my /home),

apparently elpa is not possible then as (package-initialize)
is not valid, thus I can not test the problem I reported.

Besides there the /usr/share/emacs/site-lisp/default.el is empty
and the /usr/share/emacs/site-lisp/site-start.el seems innocuous
(but this is all irrelevant to my Ubuntu 16.04 problem).
Post by Tassilo Horn
If my guess is correct, then I'd say that's an Ubuntu bug. site-lisp.el
is for stuff like setting `load-path' but no packages should be
forcefully loaded. The decision which system-wide installed packages
are going to be used is still a user decision which should not be forced
on them (especially since now with ELPA there's a likely chance that a
user installes and wants to use a newer version of a system-wide
installed package).
I will tell next week if something like this happens.

Best,

Jean-Francois
Tassilo Horn
2016-09-16 18:07:52 UTC
Permalink
Post by jfbu
Post by Tassilo Horn
If my guess is correct, then I'd say that's an Ubuntu bug.
site-lisp.el is for stuff like setting `load-path' but no packages
should be forcefully loaded. The decision which system-wide
installed packages are going to be used is still a user decision
which should not be forced on them (especially since now with ELPA
there's a likely chance that a user installes and wants to use a
newer version of a system-wide installed package).
I will tell next week if something like this happens.
Ok, great.

Bye,
Tassilo
Mosè Giordano
2016-09-17 16:03:15 UTC
Permalink
Hi Tassilo and Jean-Francois,
Post by Tassilo Horn
Please check your system's `site-run-file'. That's probably
/usr/share/emacs/site-lisp/site-start.el. I presume there's some code
in it which forcefully loads the site-lisp AUCTeX version. There could
also be "a default init file" /usr/share/emacs/site-lisp/default.el
doing something such.
In Debian there is an empty /etc/emacs/site-start.el file, but the
directory /etc/emacs/site-start.d has some configuration files. If a
user installs the "auctex" package, there will be a "50auctex.el" file
in that directory. This file starts with the following comment:

;;; This is a conffile: you can edit it if you like

Thus, users can either customize it in order to load this version of
the package only if there isn't an ELPA package for AUCTeX, or
completely comment the file.

Hope this helps,
Mosè
jfbu
2016-09-19 12:19:07 UTC
Permalink
Post by Mosè Giordano
Hi Tassilo and Jean-Francois,
Post by Tassilo Horn
Please check your system's `site-run-file'. That's probably
/usr/share/emacs/site-lisp/site-start.el. I presume there's some code
in it which forcefully loads the site-lisp AUCTeX version. There could
also be "a default init file" /usr/share/emacs/site-lisp/default.el
doing something such.
In Debian there is an empty /etc/emacs/site-start.el file, but the
directory /etc/emacs/site-start.d has some configuration files. If a
user installs the "auctex" package, there will be a "50auctex.el" file
;;; This is a conffile: you can edit it if you like
Thus, users can either customize it in order to load this version of
the package only if there isn't an ELPA package for AUCTeX, or
completely comment the file.
Hope this helps,
Mosè
Hi Mosè

I confirm the existence of the 50auctex.el file
in /etc/emacs/site-start.d

here are its contents

;;; This is a conffile: you can edit it if you like; however,
;;; please note that if you do not want AUCTeX to override the standard
;;; Emacs TeX mode, you may unload AUCTeX completely by evaluating the
;;; form "(unload-feature 'tex-site)" (i.e., put that string into your
;;; "~/.emacs" to disable AUCTeX completely).

(if (member debian-emacs-flavor '(emacs23 emacs24 emacs-snapshot))
(if (file-exists-p "/usr/share/emacs/site-lisp/auctex/tex.el")
(progn
(let ((list '((lisp . "auctex") (source . "auctex"))))
(while list
(let ((elt (car list)))
(cond
((equal 'lisp (car elt))
(let ((dir (concat "/usr/share/"
(symbol-name debian-emacs-flavor)
"/site-lisp/" (cdr elt))))
(when (file-directory-p dir)
(if (fboundp 'debian-pkg-add-load-path-item)
(debian-pkg-add-load-path-item dir)
(add-to-list 'load-path dir 'append)))))
((equal 'source (car elt))
(let ((dir (concat "/usr/share/emacs/site-lisp/"
(cdr elt))))
(when (file-directory-p dir)
(add-to-list 'load-path dir 'append))))))
(setq list (cdr list))))
(load "auctex.el")
(load "preview-latex.el"))
(message "auctex: Package removed but not purged; skipping setup")))

this is all on $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial

Thanks for the help (doing (unload-feature 'tex-site) in my .emacs before
(package-initialize) solved my problem)

(for the record I have no special privileges on this system)

Jean-Francois
Tassilo Horn
2016-09-19 15:47:03 UTC
Permalink
jfbu <***@free.fr> writes:

Hi!
Post by jfbu
Thanks for the help (doing (unload-feature 'tex-site) in my .emacs
before (package-initialize) solved my problem)
Oh, thanks for testing that. I hope I remember that until the next
Ubuntu user can't figure out how to make Emacs use the ELPA version of
AUCTeX instead of the system version.

Bye,
Tassilo

jfbu
2016-09-19 12:14:48 UTC
Permalink
Post by Tassilo Horn
Hi Jean-Francois,
Post by jfbu
and the load-path is
load-path is a variable defined in `C source code'.
Its value is
("/home/userX/.emacs.d/elpa/auctex-11.89.5/" "/home/userX/.emacsaddons" "/usr/share/emacs24/site-lisp/latex-cjk-thai" [...]
Hm, in the load-path, the ELPA version is before the site-lisp version,
so in theory it should win...
Post by jfbu
is there some other path variable to customize in order for locally
elpa installed AucTeX to be the one picked up ?
Please check your system's `site-run-file'.
That's probably
/usr/share/emacs/site-lisp/site-start.el.
site-run-file is a variable defined in `startup.el'.
Its value is "site-start"

the repertory is /usr/share/emacs/24.5/lisp/

but I now I have found


/usr/share/emacs/site-lisp/

which does not contain a site-start.el

but
/usr/share/emacs/site-lisp:
total used in directory 280 available 1307640
drwxr-xr-x 7 root root 4096 août 30 13:26 .
drwxr-xr-x 5 root root 4096 août 8 12:39 ..
-rw-r--r-- 1 root root 268 févr. 3 2016 asy-init.el
-rw-r--r-- 1 root root 17004 févr. 6 2016 asy-keywords.el
-rw-r--r-- 1 root root 71223 févr. 3 2016 asy-mode.el
drwxr-xr-x 4 root root 4096 août 8 13:12 auctex
-rw-r--r-- 1 root root 324 nov. 19 2015 auctex.el
drwxr-xr-x 2 root root 4096 août 8 12:39 autoconf
-rw-r--r-- 1 root root 5625 mai 21 2014 debian-startup.el
-rw-r--r-- 1 root root 7814 août 27 2012 desktop-entry-mode.el
drwxr-xr-x 2 root root 4096 juil. 19 22:46 dictionaries-common
drwxr-xr-x 2 root root 4096 août 8 13:12 latex-cjk-common
drwxr-xr-x 2 root root 4096 août 8 13:12 latex-cjk-thai
-rw-r--r-- 1 root root 11133 mai 15 2013 ltx-help.el
-rw-r--r-- 1 root root 22974 août 17 02:31 M2.el
-rw-r--r-- 1 root root 7825 août 17 02:31 M2-emacs-hlp.txt
-rw-r--r-- 1 root root 1832 août 17 02:31 M2-emacs.m2
-rw-r--r-- 1 root root 595 août 17 02:31 M2-init.el
-rw-r--r-- 1 root root 95 août 17 02:31 M2-mode.el
-rw-r--r-- 1 root root 366 août 17 02:31 M2-README
-rw-r--r-- 1 root root 41844 août 17 02:31 M2-symbols.el
-rw-r--r-- 1 root root 1513 nov. 19 2015 preview-latex.el
-rw-r--r-- 1 root root 14488 nov. 19 2015 tex-site.el

hence we find an auctex in there (I recall from many years ago
that this has been for a long time in AUCTeX installs, before
I switched to ELPA)

;;; auctex.el
;;
;; This can be used for starting up AUCTeX. The following somewhat
;; strange trick causes tex-site.el to be loaded in a way that can be
;; safely undone using (unload-feature 'tex-site).
;;
(autoload 'TeX-load-hack
(expand-file-name "tex-site.el" (file-name-directory load-file-name)))
(TeX-load-hack)

I tried thus modifying my .emacs so


(cond ((>= emacs-major-version 24)
(setq custom-file "/home/userX/.emacs.d/custom.el")
(setq load-path (cons "/home/userX/.emacsaddons" load-path))
(unload-feature 'tex-site);;; DON'T USE ANTEQUATED SYSTEM AUCTEX
(load-file "/home/burnol/.emacs.d/init.el")
(package-initialize)
)
)

and it works !

(I am on very tight schedule, I just initialized a bug-report from
a tex buffer and I get a window To: bug-***@gnu.org Subject: 11.89.5;
from which I deduced the problem is solved)

thanks for the help

Jean-François
Carlos
2016-09-17 19:10:25 UTC
Permalink
Post by jfbu
after the system upgrade I removed my local /bin etc... from PATH and started using the system-wide Emacs as it was already the 24.5 one; I did not however test AUCTeX 11.89.3/4 in this new configuration as I immediately upgraded to 11.89.5)
Jean-Francois
excuse me Sir, what does whereis return?

e. g. ,
whereis emacs-25. 0. 50
/usr/local/bin/emacs-25.0.50 /usr/local/bin/emacs-25.0.95

whereis emacs-24.5
/usr/local/bin/emacs-24.5

whereis emacs?
it should point to /usr/local/bin and /usr/share/

then again my system-wide is compiled. . .

take care
Carlos
Loading...