The issue appears to be that, compared to package-vc-install, package-vc-install-selected-packages did not ensure that the package descriptor was of the right type. The first patch addresses that. The second one fixes a bug that this also uncovered, but that is not directly related to your issue. Yuu Yin writes: > HAPPENED > > Trying to install Org from Savannah/Git with > `package-vc-install-selected-packages` errors with failed assertion. > > ``` > (cl-assertion-failed ((package-vc-p pkg) nil)) > ``` > > In my GNU Emacs installation, pacakge-vc works for installing other > packages from Git repositories, but not Org. > > EXPECTED > > package-vc installs Org successfuly. > > REPRODUCE > > On a non-customized GNU Emacs 30.0.50, eval > > ``` > (setq-default debug-on-error t) > > (setq package-vc-selected-packages '((org > :url "https://git.savannah.gnu.org/git/emacs/org-mode.git" > :branch "main" > :lisp-dir "lisp" > :vc-backend Git))) > > (package-vc-install-selected-packages) > ``` By the way, is there a reason you manually wrote out the package specification (e.g. to test something)? As the package is on ELPA, you could have also used the information provided by the archive: (setq package-vc-selected-packages '((org))) > BACKTRACE > > For what it is worth, notice package-vc installs Org in `elpa/org-9.6.1` instead of `elpa/org`. Yes, this makes sense considering that the descriptor version did not indicate that the package was a VC package. > ``` > Debugger entered--Lisp error: (cl-assertion-failed ((package-vc-p pkg) nil)) > cl--assertion-failed((package-vc-p pkg)) > package-vc--version(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil)) > package-vc--generate-description-file(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/org-pkg.el") > package-vc--unpack-1(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/") > package-vc--unpack(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) (:url "https://git.savannah.gnu.org/git/emacs/org-mode.git" :branch "main" :lisp-dir "lisp" :vc-backend Git)) > package-vc-install-selected-packages() > elisp--eval-last-sexp(nil) > eval-last-sexp(nil) > funcall-interactively(eval-last-sexp nil) > command-execute(eval-last-sexp) > recursive-edit() > debug(error (cl-assertion-failed ((package-vc-p pkg) nil))) > cl--assertion-failed((package-vc-p pkg)) > package-vc--version(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil)) > package-vc--generate-description-file(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/org-pkg.el") > package-vc--unpack-1(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/") > package-vc--unpack(#s(package-desc :name org :version (9 6 1) :summary "Outline-based notes management and organizer" :reqs ((emacs (25 1))) :kind tar :archive "gnu" :dir "/home/yuu/.config/emacsen/bug/elpa/org-9.6.1/" :extras ((:lisp-dir . "lisp") (:lisp-dir . "lisp") (:url . "https://orgmode.org") (:keywords "outlines" "hypermedia" "calendar" "wp") (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:commit . "630f86dfc42472aafd9a4f305e1965cbe92b2891")) :signed nil) (:url "https://git.tecosaur.net/tec/org-mode" :branch "dev" :lisp-dir "lisp" :vc-backend Git)) > package-vc-install-selected-packages() > elisp--eval-last-sexp(nil) > eval-last-sexp(nil) > funcall-interactively(eval-last-sexp nil) > command-execute(eval-last-sexp) > > SYSTEM INFORMATION > > In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo > version 1.16.0, Xaw3d scroll bars) > Repository revision: dc843e0a9b3ba3e29bc65bdbd1050cfcc96cad5d > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 > System Description: NixOS 23.05 (Stoat) > > Configured using: > 'configure > --prefix=/nix/store/mpn2g01lmxhsd249p6klvki16g2z5n28-emacs-git-20230215.0 > --disable-build-details --with-modules --with-x-toolkit=lucid > --with-xft --with-cairo --with-native-compilation' > > Configured features: > CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON > LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY > INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF > TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XPM LUCID ZLIB > > Important settings: > value of $EMACSLOADPATH: > value of $EMACSNATIVELOADPATH: /nix/store/3m84mvjv04mg0i5jk4qnmb6sccd64gf3-emacs-packages-deps/share/emacs/native-lisp:: > value of $LC_CTYPE: pt_BR.UTF-8 > value of $LC_TIME: en_DK.UTF-8 > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: ELisp/d > > Minor modes in effect: > tooltip-mode: t > global-eldoc-mode: t > eldoc-mode: t > show-paren-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > line-number-mode: t > indent-tabs-mode: t > transient-mark-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > > Load-path shadows: > /etc/profiles/per-user/yuu/share/emacs/site-lisp/site-start hides /nix/store/3m84mvjv04mg0i5jk4qnmb6sccd64gf3-emacs-packages-deps/share/emacs/site-lisp/site-start > /etc/profiles/per-user/yuu/share/emacs/site-lisp/site-start hides /nix/store/mpn2g01lmxhsd249p6klvki16g2z5n28-emacs-git-20230215.0/share/emacs/site-lisp/site-start > /nix/store/3m84mvjv04mg0i5jk4qnmb6sccd64gf3-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/mpn2g01lmxhsd249p6klvki16g2z5n28-emacs-git-20230215.0/share/emacs/30.0.50/lisp/emacs-lisp/let-alist > > Features: > (shadow sort mail-extr emacsbug message yank-media puny dired > dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config > gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 > mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums > mm-util mail-prsvr mail-utils misearch multi-isearch mule-util jka-compr > help-fns cl-print debug backtrace find-func loaddefs-gen radix-tree > vc-git diff-mode easy-mmode finder-inf package-vc vc vc-dispatcher > lisp-mnt format-spec face-remap bookmark text-property-search pp comp > comp-cstr warnings icons rx cl-extra help-mode > visual-fill-column-autoloads writeroom-mode-autoloads vterm-autoloads > pdf-tools-autoloads let-alist-autoloads tablist-autoloads > emojify-logos-autoloads emojify-autoloads ht-autoloads info > dash-autoloads emacsql-sqlite-autoloads emacsql-autoloads package > browse-url url url-proxy url-privacy url-expand url-methods url-history > url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers > url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache > json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs > cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify > ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win > term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe > tabulated-list replace newcomment text-mode lisp-mode prog-mode register > page tab-bar menu-bar rfn-eshadow isearch easymenu timer select > scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors > frame minibuffer nadvice seq simple cl-generic indonesian philippine > cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao > korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech > european ethiopic indian cyrillic chinese composite emoji-zwj charscript > charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure > cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp > files window text-properties overlay sha1 md5 base64 format env > code-pages mule custom widget keymap hashtable-print-readable backquote > threads dbusbind inotify dynamic-setting system-font-setting > font-render-setting cairo x-toolkit x multi-tty make-network-process > native-compile emacs) > > Memory information: > ((conses 16 162257 13781) > (symbols 48 14001 0) > (strings 32 44897 1851) > (string-bytes 1 1298807) > (vectors 16 24166) > (vector-slots 8 463867 19912) > (floats 8 54 193) > (intervals 56 1864 261) > (buffers 984 17)) > > > > -- Philip Kaludercic