If package-get-all is called for a package that doesn't exist, you get
an error. This happened to me in b50 when I ran
package-get-update-all with Steve's updated package-get-base.el
because the 'ph package wasn't in the list (I presume). Here's a
patch that at least avoids the error, although I'm not sure it's the
right fix.
-Barry
*** package-get.el 1998/07/24 20:19:18 1.1
--- package-get.el 1998/07/24 20:19:57
***************
*** 185,215 ****
the-package version))
(this-requires (package-get-info-prop this-package 'requires))
)
! (setq version (package-get-info-prop this-package 'version))
! (unless (package-get-installedp package version)
! (package-get package version))
! (setq fetched-packages
! (append (list package)
! (package-get-info-prop this-package 'provides)
! fetched-packages))
! ;; grab everything that this package requires plus recursively
! ;; grab everything that the requires require. Keep track
! ;; in `fetched-packages' the list of things provided -- this
! ;; keeps us from going into a loop
! (while this-requires
! (if (not (member (car this-requires) fetched-packages))
! (let* ((reqd-package (package-get-package-provider
! (car this-requires)))
! (reqd-version (cadr reqd-package))
! (reqd-name (car reqd-package)))
! (if (null reqd-name)
! (error "Unable to find a provider for %s" (car this-requires)))
! (setq fetched-packages
! (package-get-all reqd-name reqd-version fetched-packages)))
! )
! (setq this-requires (cdr this-requires)))
! fetched-packages
! ))
;;;###autoload
(defun package-get (package &optional version conflict)
--- 185,217 ----
the-package version))
(this-requires (package-get-info-prop this-package 'requires))
)
! (when this-package
! (setq version (package-get-info-prop this-package 'version))
! (unless (package-get-installedp package version)
! (package-get package version))
! (setq fetched-packages
! (append (list package)
! (package-get-info-prop this-package 'provides)
! fetched-packages))
! ;; grab everything that this package requires plus recursively
! ;; grab everything that the requires require. Keep track
! ;; in `fetched-packages' the list of things provided -- this
! ;; keeps us from going into a loop
! (while this-requires
! (if (not (member (car this-requires) fetched-packages))
! (let* ((reqd-package (package-get-package-provider
! (car this-requires)))
! (reqd-version (cadr reqd-package))
! (reqd-name (car reqd-package)))
! (if (null reqd-name)
! (error "Unable to find a provider for %s"
! (car this-requires)))
! (setq fetched-packages
! (package-get-all reqd-name reqd-version fetched-packages)))
! )
! (setq this-requires (cdr this-requires)))
! fetched-packages
! )))
;;;###autoload
(defun package-get (package &optional version conflict)