all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
@ 2022-11-12 21:12 Richard Kim
  2022-11-14 11:31 ` Philip Kaludercic
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Kim @ 2022-11-12 21:12 UTC (permalink / raw)
  To: 59226

[-- Attachment #1: Type: text/plain, Size: 6996 bytes --]


#+LINK: cl https://navigator/SWE_NAVIGATOR/perforce/view_changelist.nhtml?port=1777&changelist=%s
#+LINK: jira https://jira.internal.synopsys.com/browse/%s

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

Following shows some background information.

#+begin_example
In GNU Emacs 29.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.33, cairo version 1.16.0) of 2022-11-12 built on kimr-dell
Repository revision: f8c11b5a92e78801d71e88cb4ac419e02d85953f
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.1 LTS

Configured using:
 'configure '--program-transform-name=s/^ctags$/ctags.emacs/'
 --with-dbus --with-file-notification=yes --with-gif=yes
 --with-gnutls=yes --with-imagemagick --with-jansson --with-mailutils
 --with-modules --with-nativecomp --with-pdumper=yes --with-png=yes
 --with-rsvg --with-sound=yes --with-tiff=yes --with-x-toolkit=yes
 --with-xml2 --with-xwidgets --without-compress-install --prefix
 /home/kimr/opt/emacs29/20221112'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM XWIDGETS GTK3 ZLIB
#+end_example

If above test file is loaded via emacs as follows

#+begin_src shell
$ emacs -q -l ~/demo-package-vc-issue
#+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




[-- Attachment #2: Type: text/html, Size: 7554 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-12 21:12 bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil Richard Kim
@ 2022-11-14 11:31 ` Philip Kaludercic
  2022-11-15 23:04   ` Richard Kim
  0 siblings, 1 reply; 7+ messages in thread
From: Philip Kaludercic @ 2022-11-14 11:31 UTC (permalink / raw)
  To: Richard Kim; +Cc: 59226

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.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-14 11:31 ` Philip Kaludercic
@ 2022-11-15 23:04   ` Richard Kim
  2022-11-16  7:47     ` Philip Kaludercic
  2022-11-27 14:11     ` Philip Kaludercic
  0 siblings, 2 replies; 7+ messages in thread
From: Richard Kim @ 2022-11-15 23:04 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: 59226

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.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-15 23:04   ` Richard Kim
@ 2022-11-16  7:47     ` Philip Kaludercic
  2022-11-19 17:23       ` Richard Kim
  2022-11-27 14:11     ` Philip Kaludercic
  1 sibling, 1 reply; 7+ messages in thread
From: Philip Kaludercic @ 2022-11-16  7:47 UTC (permalink / raw)
  To: Richard Kim; +Cc: 59226

Richard Kim <emacs18@gmail.com> writes:

> Thanks Philip.  I built scratch/package-vc-fixes branch, and verified
> that the problem reported by me is gone.

Splendid.

> 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

I am unfamiliar with both spacemacs and straight, so I'd be lost on my
own.  Could you point me to some specific example in the repository?

> 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?

Package "activation" (in the sense of `package-activate', checking for
dependencies, adding the right directories to the load path, loading the
info manuals, ...) is still handled by package.el.  package-vc.el is
firmly based on package.el, but just provides an alternative to fetching
source code.  That is also why package-vc doesn't need to be loaded for
source packages to be usable -- which speeds up the initialisation.

The functionality of `package-vc--unpack-1' is exposed via
`package-vc-rebuild', but I don't think that that is what you need.

If you are having issues with the activation of source packages, then
that is a bug we have to understand and resolve.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-16  7:47     ` Philip Kaludercic
@ 2022-11-19 17:23       ` Richard Kim
  2022-11-20 11:57         ` Philip Kaludercic
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Kim @ 2022-11-19 17:23 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: 59226

Spacemacs <https://github.com/syl20bnr/spacemacs> is one large emacs
setup designed to be the initialization code, i.e., emacs
--init-directory spacemacs-directory.  It uses use-package to install
typically hundreds of packages.

straight.el <https://github.com/radian-software/straight.el> is an
alternative to package.el where packages are installed by cloning git
(or other) repositories and building packages from source directly.
This is similar to package-vc.el. The key difference is that the git
clone directories are not added to load-path. Rather a new directory
is created where symlinks to *.el files are used plus byte compiled
files, e.g., following would be added to load-path:

    $ cd .../spacemacs/.local/straight/build-29.0-102921/dash/
    $ ls -l
    total 360
    -rw-rw-r-- 1 kimr kimr   2936 Oct 29 22:04 dash-autoloads.el
    lrwxrwxrwx 1 kimr kimr     63 Oct 29 22:04 dash.el ->
/home/kimr/.emacs.d/sm-ms/.local/straight/repos/dash.el/dash.el
    -rw-rw-r-- 1 kimr kimr 147632 Oct 29 22:04 dash.elc
    -rw-rw-r-- 1 kimr kimr 198812 Oct 29 22:04 dash.info
    lrwxrwxrwx 1 kimr kimr     65 Oct 29 22:04 dash.texi ->
/home/kimr/.emacs.d/sm-ms/.local/straight/repos/dash.el/dash.texi
    -rw-rw-r-- 1 kimr kimr    617 Oct 29 22:04 dir
    $

I have an update to my previous email. I think I'm understanding
better how package-vc is supposed to work. So please disregard my
previous question on activation. Instead I would like to share that
package-vc seems to work fine except for packages that house *.el
files within a sub-directory, e.g., magit or git-commit packages which
use lisp sub-directories. For these packages I either have to install
magit package using package.el (even though I installed it via
package-vc) or I would have to manually add the lisp sub-directory to
load-path in my startup file. If I do that, then magit and git-commit
packages installed via package-vc work.  Following is what I currently
have in my startup file to be able to use package-vc installed magit
and git-commit packages.

    (add-to-list 'load-path "~/.emacs.d/sm-my/elpa/29.0/site/git-commit/lisp")
    (add-to-list 'load-path "~/.emacs.d/sm-my/elpa/29.0/site/magit/lisp")

In my typical spacemacs setup, I have between 300 and 400 hundred
packages installed. I think more than half were installed via
package-vc and rest were installed via pacakge.el. I'm trying to see
if I can use package-vc to install all packages.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-19 17:23       ` Richard Kim
@ 2022-11-20 11:57         ` Philip Kaludercic
  0 siblings, 0 replies; 7+ messages in thread
From: Philip Kaludercic @ 2022-11-20 11:57 UTC (permalink / raw)
  To: Richard Kim; +Cc: 59226

Richard Kim <emacs18@gmail.com> writes:

> Spacemacs <https://github.com/syl20bnr/spacemacs> is one large emacs
> setup designed to be the initialization code, i.e., emacs
> --init-directory spacemacs-directory.  It uses use-package to install
> typically hundreds of packages.
>
> straight.el <https://github.com/radian-software/straight.el> is an
> alternative to package.el where packages are installed by cloning git
> (or other) repositories and building packages from source directly.
> This is similar to package-vc.el. The key difference is that the git
> clone directories are not added to load-path. Rather a new directory
> is created where symlinks to *.el files are used plus byte compiled
> files, e.g., following would be added to load-path:
>
>     $ cd .../spacemacs/.local/straight/build-29.0-102921/dash/
>     $ ls -l
>     total 360
>     -rw-rw-r-- 1 kimr kimr   2936 Oct 29 22:04 dash-autoloads.el
>     lrwxrwxrwx 1 kimr kimr     63 Oct 29 22:04 dash.el ->
> /home/kimr/.emacs.d/sm-ms/.local/straight/repos/dash.el/dash.el
>     -rw-rw-r-- 1 kimr kimr 147632 Oct 29 22:04 dash.elc
>     -rw-rw-r-- 1 kimr kimr 198812 Oct 29 22:04 dash.info
>     lrwxrwxrwx 1 kimr kimr     65 Oct 29 22:04 dash.texi ->
> /home/kimr/.emacs.d/sm-ms/.local/straight/repos/dash.el/dash.texi
>     -rw-rw-r-- 1 kimr kimr    617 Oct 29 22:04 dir
>     $

Thanks for this explanation, I wasn't familiar with this detail.

> I have an update to my previous email. I think I'm understanding
> better how package-vc is supposed to work. So please disregard my
> previous question on activation. Instead I would like to share that
> package-vc seems to work fine except for packages that house *.el
> files within a sub-directory, e.g., magit or git-commit packages which
> use lisp sub-directories. For these packages I either have to install
> magit package using package.el (even though I installed it via
> package-vc) or I would have to manually add the lisp sub-directory to
> load-path in my startup file. If I do that, then magit and git-commit
> packages installed via package-vc work.  Following is what I currently
> have in my startup file to be able to use package-vc installed magit
> and git-commit packages.
>
>     (add-to-list 'load-path "~/.emacs.d/sm-my/elpa/29.0/site/git-commit/lisp")
>     (add-to-list 'load-path "~/.emacs.d/sm-my/elpa/29.0/site/magit/lisp")

This _is_ handled, if the package specification has a `:lisp-dir' entry
pointing to the right directory.  If I had to guess, I'd say you are
using MELPA and it is probably the first entry in `package-archives'?
If so, the issue would be that MELPA doesn't provide any public package
specifications, the way GNU ELPA and NonGNU ELPA do.

What is probably required is some kind of a heuristic to detect a lisp
directory, but I haven't come up with a good solution to that yet.

> In my typical spacemacs setup, I have between 300 and 400 hundred
> packages installed. I think more than half were installed via
> package-vc and rest were installed via pacakge.el. I'm trying to see
> if I can use package-vc to install all packages.

It would be possible in theory, but note that package-vc installs
dependencies using regular tarballs installations.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil
  2022-11-15 23:04   ` Richard Kim
  2022-11-16  7:47     ` Philip Kaludercic
@ 2022-11-27 14:11     ` Philip Kaludercic
  1 sibling, 0 replies; 7+ messages in thread
From: Philip Kaludercic @ 2022-11-27 14:11 UTC (permalink / raw)
  To: Richard Kim; +Cc: 59226-done

Richard Kim <emacs18@gmail.com> writes:

> Thanks Philip.  I built scratch/package-vc-fixes branch, and verified
> that the problem reported by me is gone.

As the changes have been applied onto master, I'll be closing the report.





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-11-27 14:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-12 21:12 bug#59226: 29.0.50; unable to load package-vc.el if package-vc-selected-packages is non-nil Richard Kim
2022-11-14 11:31 ` Philip Kaludercic
2022-11-15 23:04   ` Richard Kim
2022-11-16  7:47     ` Philip Kaludercic
2022-11-19 17:23       ` Richard Kim
2022-11-20 11:57         ` Philip Kaludercic
2022-11-27 14:11     ` Philip Kaludercic

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.