Package: emacs;
Reported by: emacs18 <at> gmail.com
Date: Sat, 12 Nov 2022 21:14:02 UTC
Severity: normal
Found in version 29.0.50
Done: Philip Kaludercic <philipk <at> posteo.net>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Richard Kim <emacs18 <at> gmail.com> To: Philip Kaludercic <philipk <at> posteo.net> Cc: 59226 <at> debbugs.gnu.org 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 <at> posteo.net> wrote: > > Richard Kim <emacs18 <at> 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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.