[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-
From: |
Richard Kim |
Subject: |
bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil |
Date: |
Tue, 15 Nov 2022 15:04:47 -0800 |
Thanks Philip. I built scratch/package-vc-fixes branch, and verified
that the problem reported by me is gone.
I would like to ask a follow-up question. I'm trying to use
package-vc as a replacement for straight.el in my setup.
I've been using straight.el within spacemacs for some time. If you
are interested, the details can be found at
https://github.com/emacs18/spacemacs/tree/sm-straight
The key thing I have not yet figured out is how to activate packages
installed by package-vc when emacs starts up.
Package activation is done by the latter part of package-vc--unpack-1
function. Would it be possible to split out
activation as a separate function?
On Mon, 14 Nov 2022 at 03:31, Philip Kaludercic <philipk@posteo.net> wrote:
>
> Richard Kim <emacs18@gmail.com> writes:
>
> > I would like to report what appears to be a bug in ~package-vc.el~ where
> > emacs is
> > unable to load this file if ~package-vc-selected-packages~ variable is
> > ~not-nil~. To see this problem I created following simple test file:
> >
> > #+begin_src elisp
> > $ cat ~/demo-package-vc-issue
> >
> > (setq package-vc-selected-packages
> > '((treemacs-projectile
> > :lisp-dir "src/extra"
> > :main-file "treemacs-projectile.el"
> > :url "https://github.com/Alexander-Miller/treemacs")))
> >
> > (setq debug-on-error t)
> >
> > (load-library "package-vc.el")
> > #+end_src
>
>
> > then following error is reported
> >
> > #+begin_example
> > Debugger entered--Lisp error: (void-function
> > package-vc--archives-initialize)
> > (package-vc--archives-initialize)
> > (cond ((null spec) (package-vc-install name)) ((stringp spec)
> > (package-vc-install name nil spec)) ((listp spec)
> > (package-vc--archives-initialize) (package-vc--unpack pkg-desc spec)))
> > (if (and name (package-installed-p name) (eq (progn (or (progn (and (memq
> > ... cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list
> > 'package-desc pkg-desc))) (aref pkg-desc 5)) 'vc)) nil (cond ((null spec)
> > (package-vc-install name)) ((stringp spec) (package-vc-install name nil
> > spec)) ((listp spec) (package-vc--archives-initialize) (package-vc--unpack
> > pkg-desc spec))))
> > (let ((pkg-desc (car (cdr (assoc name package-alist #'string=))))) (if
> > (and name (package-installed-p name) (eq (progn (or (progn (and ... t))
> > (signal 'wrong-type-argument (list ... pkg-desc))) (aref pkg-desc 5)) 'vc))
> > nil (cond ((null spec) (package-vc-install name)) ((stringp spec)
> > (package-vc-install name nil spec)) ((listp spec)
> > (package-vc--archives-initialize) (package-vc--unpack pkg-desc spec)))))
> > (let ((name x1) (spec x2)) (let ((pkg-desc (car (cdr (assoc name
> > package-alist #'string=))))) (if (and name (package-installed-p name) (eq
> > (progn (or (progn ...) (signal ... ...)) (aref pkg-desc 5)) 'vc)) nil (cond
> > ((null spec) (package-vc-install name)) ((stringp spec) (package-vc-install
> > name nil spec)) ((listp spec) (package-vc--archives-initialize)
> > (package-vc--unpack pkg-desc spec))))))
> > (let* ((x2 (cdr-safe x0))) (let ((name x1) (spec x2)) (let ((pkg-desc
> > (car (cdr (assoc name package-alist ...))))) (if (and name
> > (package-installed-p name) (eq (progn (or ... ...) (aref pkg-desc 5)) 'vc))
> > nil (cond ((null spec) (package-vc-install name)) ((stringp spec)
> > (package-vc-install name nil spec)) ((listp spec)
> > (package-vc--archives-initialize) (package-vc--unpack pkg-desc spec)))))))
> > (progn (ignore (symbolp x1)) (let* ((x2 (cdr-safe x0))) (let ((name x1)
> > (spec x2)) (let ((pkg-desc (car (cdr ...)))) (if (and name
> > (package-installed-p name) (eq (progn ... ...) 'vc)) nil (cond ((null spec)
> > (package-vc-install name)) ((stringp spec) (package-vc-install name nil
> > spec)) ((listp spec) (package-vc--archives-initialize) (package-vc--unpack
> > pkg-desc spec))))))))
> > (let* ((x1 (car-safe x0))) (progn (ignore (symbolp x1)) (let* ((x2
> > (cdr-safe x0))) (let ((name x1) (spec x2)) (let ((pkg-desc (car ...))) (if
> > (and name (package-installed-p name) (eq ... ...)) nil (cond (... ...) (...
> > ...) (... ... ...))))))))
> > (progn (ignore (consp x0)) (let* ((x1 (car-safe x0))) (progn (ignore
> > (symbolp x1)) (let* ((x2 (cdr-safe x0))) (let ((name x1) (spec x2)) (let
> > ((pkg-desc ...)) (if (and name ... ...) nil (cond ... ... ...))))))))
> > (let ((x0 (car tail))) (progn (ignore (consp x0)) (let* ((x1 (car-safe
> > x0))) (progn (ignore (symbolp x1)) (let* ((x2 (cdr-safe x0))) (let ((name
> > x1) (spec x2)) (let (...) (if ... nil ...))))))) (setq tail (cdr tail)))
> > (while tail (let ((x0 (car tail))) (progn (ignore (consp x0)) (let* ((x1
> > (car-safe x0))) (progn (ignore (symbolp x1)) (let* ((x2 ...)) (let (...
> > ...) (let ... ...)))))) (setq tail (cdr tail))))
> > (let ((tail package-vc-selected-packages)) (while tail (let ((x0 (car
> > tail))) (progn (ignore (consp x0)) (let* ((x1 (car-safe x0))) (progn
> > (ignore (symbolp x1)) (let* (...) (let ... ...))))) (setq tail (cdr
> > tail)))))
> > package-vc-ensure-packages()
> > (closure (t) (sym val) (custom-set-default sym val)
> > (package-vc-ensure-packages))(package-vc-selected-packages
> > ((treemacs-projectile :lisp-dir "src/extra" :main-file
> > "treemacs-projectile.el" :url
> > "https://github.com/Alexander-Miller/treemacs")))
> > custom-initialize-reset(package-vc-selected-packages (funcall #'(closure
> > (t) nil "" 'nil)))
> > custom-declare-variable(package-vc-selected-packages (funcall #'(closure
> > (t) nil "" 'nil)) "List of packages that must be installed.\nEach memb..."
> > :type (alist :tag "List of packages you want to be installed" :key-type
> > (symbol :tag "Package") :value-type (choice (const :tag "Any revision" nil)
> > (string :tag "Specific revision") (plist :options ((:url string) (:branch
> > string) (:lisp-dir string) (:main-file string) (:vc-backend symbol)))))
> > :set (closure (t) (sym val) (custom-set-default sym val)
> > (package-vc-ensure-packages)) :version "29.1")
> > eval-buffer(#<buffer *load*-179493> nil
> > "/home/kimr/opt/emacs29/20221112/share/emacs/29.0.5..." nil t) ; Reading
> > at buffer position 6633
> >
> > load-with-code-conversion("/home/kimr/opt/emacs29/20221112/share/emacs/29.0.5..."
> > "/home/kimr/opt/emacs29/20221112/share/emacs/29.0.5..." nil nil)
> > load("package-vc.el")
> > load-library("package-vc.el")
> > eval-buffer(#<buffer *load*> nil "/home/kimr/.emacs-debug-1" nil t) ;
> > Reading at buffer position 262
> > load-with-code-conversion("/home/kimr/.emacs-debug-1"
> > "/home/kimr/.emacs-debug-1" nil t)
> > load("/home/kimr/.emacs-debug-1" nil t)
> > command-line-1(("-l" "/home/kimr/.emacs-debug-1"))
> > command-line()
> > normal-top-level()
> > #+end_example
>
> Can you try the scratch/package-vc-fixes branch. I haven't merged it
> yet, because I might need to revise some commits and I don't want to be
> pushing minor fixes to master all the time.