2

From a previous question of mine, I've included the following function in my .emacs to quickly update all installed packages:

(defun endless/upgrade ()
  "Upgrade all packages, no questions asked."
  (interactive)
  (save-window-excursion
    (list-packages)
    (package-menu-mark-upgrades)
    (package-menu-execute 'no-query)))

I recently installed openSUSE (came from Windows), and running that command does not currently work. I'm getting an error message in the minibuffer area (I think) that looks more or less like this:

progn: Wrong number of arguments: #[nil "ÆÇ!
ÈÉ!ÊebmUÊfË=OÊÌ*`Í\"²   Î=DÏ@!ÐA!B
BO  Ñ=O@BÊy)}ÒGÓUjÔÕ@\"tÔÖG×ÏØ##!}ÙÚ\"
ÙÒ
GÓUÔÛ
@@)
@A#¢ÔÜ
G×Ý
Ø##!Õ
Ê(Ñ(@Þ)*Â) Çßàá)(A(¯*ÙÈâ!
ääã 
ìóäå\"öæç!," [id cmd delete-list install-list x elt derived-mode-p package-menu-mode error "The current buffer is not in Package Menu mode" ...] 9 ("/usr/share/emacs/24.3/lisp/emacs-lisp/package.elc" . 51221) nil], 1

With debug-on-error toggled on, I get the following after the error message:

package-menu-execute(no-query)
(progn (list-packages) (package-menu-mark-upgrades) (package-menu-execute (quote no-query)))
(unwind-protect (progn (list-packages) (package-menu-mark-upgrades) (package-menu-execute (quote no-query))) (set-window-configuration wconfig))
(let ((wconfig (current-window-configuration))) (unwind-protect (progn (list-packages) (package-menu-mark-upgrades) (package-menu-execute (quote no-query))) (set-window-configuration wconfig)))
endless/upgrade()
call-interactively(endless/upgrade record nil)
command-execute(endless/upgrade record)
helm-M-x(nil "endless/upgrade")
call-interactively(helm-M-x nil nil)

After re-loading package.el I get a different error message:

1 package can be upgraded; type `U' to mark it for upgrading.
1 package marked for upgrading.
progn: Wrong number of arguments: (lambda nil "Perform marked Package Menu actions.
Packages marked for installation are downloaded and installed;
packages marked for deletion are removed." (interactive) (if (derived-mode-p (quote package-menu-mode)) nil (error "The current buffer is not in Package Menu mode")) (let (install-list delete-list cmd id) (save-excursion (goto-char (point-min)) (while (not (eobp)) (setq cmd (char-after)) (if (eq cmd 32) nil (setq id (tabulated-list-get-id)) (cond ((eq cmd 68) (setq delete-list (cons (cons ... ...) delete-list))) ((eq cmd 73) (setq install-list (cons (car id) install-list))))) (forward-line))) (if install-list (progn (if (yes-or-no-p (if (= (length install-list) 1) (format "Install package `%s'? " (car install-list)) (format "Install these %d packages (%s)? " (length install-list) (mapconcat (quote symbol-name) install-list ", ")))) (mapc (quote package-install) install-list)))) (if delete-list (progn (if (yes-or-no-p (if (= (length delete-list) 1) (format "Delete package `%s-%s'? " (caar delete-list) (cdr (car delete-list))) (format "Delete these %d packages (%s)? " (length delete-list) (mapconcat (function ...) delete-list ", ")))) (progn (let ((--dolist-tail-- delete-list) elt) (while --dolist-tail-- (setq elt (car --dolist-tail--)) (let (...) (if debug-on-error ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--))))) (error "Aborted")))) (and delete-list (null install-list) (package-initialize)) (if (or delete-list install-list) (package-menu--generate t t) (message "No operations specified.")))), 1

Did I miss installing something I need? I can still update packages manually with list-packages etc.

  • 2
    From what you describe, you're not really getting that "not in package menu" message. Instead, you're getting a messy message that looks like a byte-compiled function, and somewhere in that function is a string with this message. That means the message is largely irrelevant to the problem. Things to do: (1) See if this happens with emacs -q. (2) Try showing us some of the parts you omited. (3) Try using M-x toggle-debug-on-error instead. – Malabarba May 17 '15 at 15:02
  • @Malabarba I've updated with the full error message, and the results of the debug-on-error. Thanks! – Ryan May 18 '15 at 2:57
  • You should load the source file package.el, then try again. – politza May 18 '15 at 22:53
  • @politza Sorry if this is a dumb question, but how would I do that? I can only find the package.elc file, and package.el isn't in the same directory. – Ryan May 22 '15 at 18:42
  • I suppose you have to install some emacs-el package containing the Lisp sources, or google it (look for one with the same version as your Emacs). – politza May 22 '15 at 19:52
0

I was never able to figure out exactly what caused the issue. I suspect some incompatibility in the OpenSUSE repo for Emacs 24.3 (the most up-to-date version there right now). I instead downloaded the most recent release (24.5) from gnu.org and compiled it myself. I haven't seen any error messages since then.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.