Commit 5b165ade authored by Stefan Monnier's avatar Stefan Monnier

* lisp/emacs-lisp/package.el (package-el-version): Remove.

(package-process-define-package): Fix inf-loop.
(package-install): Allow symbols as arguments again.
parent 0dfeed58
2013-06-22 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/package.el (package-el-version): Remove.
(package-process-define-package): Fix inf-loop.
(package-install): Allow symbols as arguments again.
2013-06-22 Dmitry Gutov <dgutov@yandex.ru> 2013-06-22 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (ruby-font-lock-keywords): Move `catch', * progmodes/ruby-mode.el (ruby-font-lock-keywords): Move `catch',
......
...@@ -233,7 +233,7 @@ a package can run arbitrary code." ...@@ -233,7 +233,7 @@ a package can run arbitrary code."
Each element has the form (SYM . ID). Each element has the form (SYM . ID).
SYM is a package, as a symbol. SYM is a package, as a symbol.
ID is an archive name, as a string. This should correspond to an ID is an archive name. This should correspond to an
entry in `package-archives'. entry in `package-archives'.
If the archive of name ID does not contain the package SYM, no If the archive of name ID does not contain the package SYM, no
...@@ -249,9 +249,6 @@ package unavailable." ...@@ -249,9 +249,6 @@ package unavailable."
"Version number of the package archive understood by this file. "Version number of the package archive understood by this file.
Lower version numbers than this will probably be understood as well.") Lower version numbers than this will probably be understood as well.")
(defconst package-el-version "1.0.1"
"Version of package.el.")
;; We don't prime the cache since it tends to get out of date. ;; We don't prime the cache since it tends to get out of date.
(defvar package-archive-contents nil (defvar package-archive-contents nil
"Cache of the contents of the Emacs Lisp Package Archive. "Cache of the contents of the Emacs Lisp Package Archive.
...@@ -557,13 +554,13 @@ EXTRA-PROPERTIES is currently unused." ...@@ -557,13 +554,13 @@ EXTRA-PROPERTIES is currently unused."
;; If there's no old package, just add this to `package-alist'. ;; If there's no old package, just add this to `package-alist'.
(push (list name new-pkg-desc) package-alist) (push (list name new-pkg-desc) package-alist)
;; If there is, insert the new package at the right place in the list. ;; If there is, insert the new package at the right place in the list.
(while old-pkgs (while
(cond (if (and (cdr old-pkgs)
((null (cdr old-pkgs)) (push new-pkg-desc (cdr old-pkgs))) (version-list-< version
((version-list-< (package-desc-version (cadr old-pkgs)) version) (package-desc-version (cadr old-pkgs))))
(push new-pkg-desc (cdr old-pkgs)) (setq old-pkgs (cdr old-pkgs))
(setq old-pkgs nil))) (push new-pkg-desc (cdr old-pkgs))
(setq old-pkgs (cdr old-pkgs)))) nil)))
new-pkg-desc)) new-pkg-desc))
;; From Emacs 22, but changed so it adds to load-path. ;; From Emacs 22, but changed so it adds to load-path.
...@@ -914,10 +911,10 @@ using `package-compute-transaction'." ...@@ -914,10 +911,10 @@ using `package-compute-transaction'."
(package-install-from-archive desc)))) (package-install-from-archive desc))))
;;;###autoload ;;;###autoload
(defun package-install (pkg-desc) (defun package-install (pkg)
"Install the package PKG-DESC. "Install the package PKG.
PKG-DESC should be one of the available packages in an PKG can be a package-desc or the package name of one the available packages
archive in `package-archives'. Interactively, prompt for its name." in an archive in `package-archives'. Interactively, prompt for its name."
(interactive (interactive
(progn (progn
;; Initialize the package system to get the list of package ;; Initialize the package system to get the list of package
...@@ -926,22 +923,22 @@ archive in `package-archives'. Interactively, prompt for its name." ...@@ -926,22 +923,22 @@ archive in `package-archives'. Interactively, prompt for its name."
(package-initialize t)) (package-initialize t))
(unless package-archive-contents (unless package-archive-contents
(package-refresh-contents)) (package-refresh-contents))
(let* ((name (intern (completing-read (list (intern (completing-read
"Install package: " "Install package: "
(mapcar (lambda (elt) (mapcar (lambda (elt)
(cons (symbol-name (car elt)) (cons (symbol-name (car elt))
nil)) nil))
package-archive-contents) package-archive-contents)
nil t))) nil t)))))
(pkg-desc (cdr (assq name package-archive-contents)))) (let ((pkg-desc
(if (package-desc-p pkg) pkg
(cdr (assq pkg package-archive-contents)))))
(unless pkg-desc (unless pkg-desc
(error "Package `%s' is not available for installation" (error "Package `%s' is not available for installation" pkg))
name))
(list pkg-desc))))
(package-download-transaction (package-download-transaction
;; FIXME: Use (list pkg-desc) instead of just the name. ;; FIXME: Use (list pkg-desc) instead of just the name.
(package-compute-transaction (list (package-desc-name pkg-desc)) (package-compute-transaction (list (package-desc-name pkg-desc))
(package-desc-reqs pkg-desc)))) (package-desc-reqs pkg-desc)))))
(defun package-strip-rcs-id (str) (defun package-strip-rcs-id (str)
"Strip RCS version ID from the version string STR. "Strip RCS version ID from the version string STR.
...@@ -1082,6 +1079,7 @@ similar to an entry in `package-alist'. Save the cached copy to ...@@ -1082,6 +1079,7 @@ similar to an entry in `package-alist'. Save the cached copy to
This informs Emacs about the latest versions of all packages, and This informs Emacs about the latest versions of all packages, and
makes them available for download." makes them available for download."
(interactive) (interactive)
;; FIXME: Do it asynchronously.
(unless (file-exists-p package-user-dir) (unless (file-exists-p package-user-dir)
(make-directory package-user-dir t)) (make-directory package-user-dir t))
(dolist (archive package-archives) (dolist (archive package-archives)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment