GNU bug report logs - #21625
[PATCH] lisp/emacs-lisp/package.el (package-install): Fix error.

Previous Next

Package: emacs;

Reported by: Aaron Ecay <aaronecay <at> gmail.com>

Date: Mon, 5 Oct 2015 19:57:02 UTC

Severity: normal

Tags: patch

Done: Artur Malabarba <bruce.connor.am <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Aaron Ecay <aaronecay <at> gmail.com>
Subject: bug#21625: closed (Re: bug#21625: [PATCH] lisp/emacs-lisp/package.el
 (package-install): Fix error.)
Date: Tue, 06 Oct 2015 18:44:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#21625: [PATCH] lisp/emacs-lisp/package.el (package-install): Fix error.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 21625 <at> debbugs.gnu.org.

-- 
21625: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21625
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Artur Malabarba <bruce.connor.am <at> gmail.com>
To: Aaron Ecay <aaronecay <at> gmail.com>
Cc: 21625-done <at> debbugs.gnu.org
Subject: Re: bug#21625: [PATCH] lisp/emacs-lisp/package.el (package-install):
 Fix error.
Date: Tue, 6 Oct 2015 19:43:01 +0100
Patch applied. Thanks again Aaron

2015-10-06 13:01 GMT+01:00 Aaron Ecay <aaronecay <at> gmail.com>:
> Hi Artur,
>
> Thanks for taking a look at the patch.  My copyright papers are done and
> on file.
>
> --
> Aaron Ecay

[Message part 3 (message/rfc822, inline)]
From: Aaron Ecay <aaronecay <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] lisp/emacs-lisp/package.el (package-install): Fix error.
Date: Mon,  5 Oct 2015 20:55:58 +0100
* lisp/emacs-lisp/package.el (package-install): Fix error when ‘pkg’ is
  not a ‘package-desc’.  Also clarify documentation.

Through trial and error, I discovered that for non-interactive use the
‘pkg’ argument of the package-install function should be a symbol, not a
string.  This can also be discerned by inspecting the (interactive)
spec, specifically the call to ‘intern’.  However, even when proceeding
with a symbol an error is raised if the package is already installed.
This patch reuses the name computed earlier in the function to avoid
this.
---
 lisp/emacs-lisp/package.el | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index eb66e8f..89f2a1a 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1887,7 +1887,7 @@ add a call to it along with some explanatory comments."
 ;;;###autoload
 (defun package-install (pkg &optional dont-select)
   "Install the package PKG.
-PKG can be a package-desc or the package name of one the available packages
+PKG can be a package-desc or a symbol naming one of the available packages
 in an archive in `package-archives'.  Interactively, prompt for its name.
 
 If called interactively or if DONT-SELECT nil, add PKG to
@@ -1918,15 +1918,15 @@ to install it but still mark it as selected."
                 pkg)))
     (unless (or dont-select (package--user-selected-p name))
       (package--save-selected-packages
-       (cons name package-selected-packages))))
-  (if-let ((transaction
-            (if (package-desc-p pkg)
-                (unless (package-installed-p pkg)
-                  (package-compute-transaction (list pkg)
-                                               (package-desc-reqs pkg)))
-              (package-compute-transaction () (list (list pkg))))))
-      (package-download-transaction transaction)
-    (message "`%s' is already installed" (package-desc-full-name pkg))))
+       (cons name package-selected-packages)))
+    (if-let ((transaction
+              (if (package-desc-p pkg)
+                  (unless (package-installed-p pkg)
+                    (package-compute-transaction (list pkg)
+                                                 (package-desc-reqs pkg)))
+                (package-compute-transaction () (list (list pkg))))))
+        (package-download-transaction transaction)
+      (message "`%s' is already installed" name))))
 
 (defun package-strip-rcs-id (str)
   "Strip RCS version ID from the version string STR.
-- 
2.6.0




This bug report was last modified 9 years and 225 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.