]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure that package specifications are always fetched
authorPhilip Kaludercic <philipk@posteo.net>
Fri, 28 Oct 2022 18:10:30 +0000 (20:10 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Fri, 28 Oct 2022 18:10:30 +0000 (20:10 +0200)
* lisp/emacs-lisp/package-vc.el (package-vc--archives-initialize): Add
new function, extending 'package--archives-initialize'.
(package-vc-install): Use new function.
(package-vc-link-directory): Use new function.

lisp/emacs-lisp/package-vc.el

index a3e7e68d5b6b9e055f3beb573d4e411774664ed1..5d8b2be8e9730f5ec844c345d742949f73049ab7 100644 (file)
@@ -451,6 +451,12 @@ the `:brach' attribute in PKG-SPEC."
             (package-vc-unpack-1 pkg-desc default-directory)))
       (package-vc-unpack-1 pkg-desc default-directory))))
 
+(defun package-vc--archives-initialize ()
+  "Initialise package.el and fetch package specifications."
+  (package--archives-initialize)
+  (unless package-vc-archive-data-alist
+    (package-vc--download-and-read-archives)))
+
 ;;;###autoload
 (defun package-vc-install (name-or-url &optional name rev backend)
   "Fetch the source of NAME-OR-URL.
@@ -469,7 +475,7 @@ BACKEND.  If missing, `package-vc-guess-backend' will be used."
    (progn
      ;; Initialize the package system to get the list of package
      ;; symbols for completion.
-     (package--archives-initialize)
+     (package-vc--archives-initialize)
      (let* ((packages (package-vc-sourced-packages-list))
             (input (completing-read
                     "Fetch package source (name or URL): " packages))
@@ -480,7 +486,7 @@ BACKEND.  If missing, `package-vc-guess-backend' will be used."
                        (cadr (assoc input package-archive-contents #'string=))
                        :release-rev)
                       (user-error "No release revision was found")))))))
-  (package--archives-initialize)
+  (package-vc--archives-initialize)
   (cond
    ((and-let* ((stringp name-or-url)
                (backend (or backend (package-vc-guess-backend name-or-url))))
@@ -512,7 +518,7 @@ from the base name of DIR."
                          (file-name-base (directory-file-name dir))))))
   (unless (vc-responsible-backend dir)
     (user-error "Directory %S is not under version control" dir))
-  (package--archives-initialize)
+  (package-vc--archives-initialize)
   (let* ((name (or name (file-name-base (directory-file-name dir))))
          (pkg-dir (expand-file-name name package-user-dir)))
     (make-symbolic-link dir pkg-dir)