syl20bnr / spacemacs

A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
http://spacemacs.org
GNU General Public License v3.0
23.64k stars 4.89k forks source link

Starting with error "An error occurred while installing vim-powerline (error: (wrong-type-argument package-desc nil))" #16526

Closed meritamen closed 4 weeks ago

meritamen commented 4 weeks ago

Description :octocat:

Spacemacs starts with error "An error occurred while installing vim-powerline (error: (wrong-type-argument package-desc nil))".

Reproduction guide :beetle:

Observed behaviour: :eyes: :broken_heart: An error occurred while installing vim-powerline (error: (wrong-type-argument package-desc nil))

Expected behaviour: :heart: :smile: Don't reinstall the local package vim-powerline

System Info :computer:

Backtrace :paw_prints:

<<BACKTRACE IF RELEVANT>>
bcc32 commented 4 weeks ago

Can you get a backtrace for this? I feel like there must be some underlying issue, and since this package doesn't have a :toggle apparently almost every user is seeing Spacemacs install this package just fine.

(recipe :fetcher local) is used in a bunch of places and should work (and make local packages behave more uniformly with other packages), so I feel like if there is a more general issue we should not attempt to work around this for this specific package.

meritamen commented 4 weeks ago
Screenshot 2024-08-22 at 02 18 49
bcc32 commented 4 weeks ago

Could you please copy the full backtrace as text instead? I don't see the actual error message at the top of the stack in your screenshot.

meritamen commented 4 weeks ago
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  tar--describe-as-link(nil)
  tar--check-descriptor(nil)
  tar-get-file-descriptor("._vim-powerline-20240822.130129/_vim-powerline-pkg.el")
  package-tar-file-info()
  (with-no-warnings (package-tar-file-info))
  (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))
  (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))
  (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info))))))
  (unwind-protect (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (condition-case err (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) ((debug error) (message "Error getting PACKAGE-DESC: %s" err) nil))
  (let* ((kind (quelpa-package-type file)) (desc (condition-case err (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (cond ((eq kind 'single) (let nil (insert-file-contents file) (package-buffer-info))) ((eq kind 'tar) (let nil (insert-file-contents-literally file) (tar-mode) (with-no-warnings (package-tar-file-info)))))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) ((debug error) (message "Error getting PACKAGE-DESC: %s" err) nil)))) (if (progn (and (memq (type-of desc) cl-struct-package-desc-tags) t)) (progn desc)))
  quelpa-get-package-desc("/Users/merita/.emacs.d/quelpa/packages/vim-powerline-20240822.130129.tar")
  (let* ((pkg-desc (quelpa-get-package-desc file)) (requires (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 4))) (ver (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 2)))) (if requires (progn (mapc #'(lambda (req) (if (or (equal 'emacs (car req)) (quelpa--package-installed-p (car req) (car (cdr req)))) nil (quelpa-package-install (car req)))) requires))) (quelpa-package-install-file file) ver)
  (progn (let* ((pkg-desc (quelpa-get-package-desc file)) (requires (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 4))) (ver (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 2)))) (if requires (progn (mapc #'(lambda (req) (if (or (equal 'emacs (car req)) (quelpa--package-installed-p (car req) (car (cdr req)))) nil (quelpa-package-install (car req)))) requires))) (quelpa-package-install-file file) ver))
  (if file (progn (let* ((pkg-desc (quelpa-get-package-desc file)) (requires (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 4))) (ver (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 2)))) (if requires (progn (mapc #'(lambda (req) (if (or (equal 'emacs (car req)) (quelpa--package-installed-p (car req) (car (cdr req)))) nil (quelpa-package-install (car req)))) requires))) (quelpa-package-install-file file) ver)))
  (let* ((rcp (quelpa-arg-rcp arg)) (file (if rcp (progn (quelpa-build (append rcp plist)))))) (if file (progn (let* ((pkg-desc (quelpa-get-package-desc file)) (requires (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 4))) (ver (progn (or (progn (and (memq (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 'package-desc pkg-desc))) (aref pkg-desc 2)))) (if requires (progn (mapc #'(lambda (req) (if (or (equal 'emacs (car req)) (quelpa--package-installed-p (car req) (car (cdr req)))) nil (quelpa-package-install (car req)))) requires))) (quelpa-package-install-file file) ver))))
  quelpa-package-install((vim-powerline :fetcher file :path "/Users/merita/.emacs.d/layers/+spacemacs/spacemacs-modeline/local/vim-powerline"))
  apply(quelpa-package-install (vim-powerline :fetcher file :path "/Users/merita/.emacs.d/layers/+spacemacs/spacemacs-modeline/local/vim-powerline") nil)
  (and t (apply #'quelpa-package-install arg plist))
  (let* ((ver (and t (apply #'quelpa-package-install arg plist)))) (if ver (progn (if quelpa-autoremove-p (progn (quelpa--delete-obsoleted-package (car cache-item) ver))) (quelpa-update-cache cache-item)) nil))
  (let* ((arg (or arg (let ((quelpa-melpa-recipe-stores (append quelpa-melpa-recipe-stores (list quelpa-cache)))) (quelpa-interactive-candidate)))) (quelpa-upgrade-p (if current-prefix-arg t quelpa-upgrade-p)) (quelpa-stable-p quelpa-stable-p) (quelpa-autoremove-p (if current-prefix-arg t quelpa-autoremove-p)) (cache-item (quelpa-arg-rcp arg))) (quelpa-parse-plist plist) (quelpa-parse-stable cache-item) (let* ((ver (and t (apply #'quelpa-package-install arg plist)))) (if ver (progn (if quelpa-autoremove-p (progn (quelpa--delete-obsoleted-package (car cache-item) ver))) (quelpa-update-cache cache-item)) nil)))
  (progn (let* ((arg (or arg (let ((quelpa-melpa-recipe-stores (append quelpa-melpa-recipe-stores (list quelpa-cache)))) (quelpa-interactive-candidate)))) (quelpa-upgrade-p (if current-prefix-arg t quelpa-upgrade-p)) (quelpa-stable-p quelpa-stable-p) (quelpa-autoremove-p (if current-prefix-arg t quelpa-autoremove-p)) (cache-item (quelpa-arg-rcp arg))) (quelpa-parse-plist plist) (quelpa-parse-stable cache-item) (let* ((ver (and t (apply #'quelpa-package-install arg plist)))) (if ver (progn (if quelpa-autoremove-p (progn (quelpa--delete-obsoleted-package (car cache-item) ver))) (quelpa-update-cache cache-item)) nil))))
  (if (quelpa-setup-p) (progn (let* ((arg (or arg (let ((quelpa-melpa-recipe-stores (append quelpa-melpa-recipe-stores (list quelpa-cache)))) (quelpa-interactive-candidate)))) (quelpa-upgrade-p (if current-prefix-arg t quelpa-upgrade-p)) (quelpa-stable-p quelpa-stable-p) (quelpa-autoremove-p (if current-prefix-arg t quelpa-autoremove-p)) (cache-item (quelpa-arg-rcp arg))) (quelpa-parse-plist plist) (quelpa-parse-stable cache-item) (let* ((ver (and t (apply #'quelpa-package-install arg plist)))) (if ver (progn (if quelpa-autoremove-p (progn (quelpa--delete-obsoleted-package (car cache-item) ver))) (quelpa-update-cache cache-item)) nil)))))
  quelpa((vim-powerline :fetcher file :path "/Users/merita/.emacs.d/layers/+spacemacs/spacemacs-modeline/local/vim-powerline"))
  (if recipe (quelpa (configuration-layer//make-quelpa-recipe pkg)) (configuration-layer//warning (concat "Cannot find any recipe for package %S! Be sure " "to add a recipe for it in alist %S.") pkg-name recipes-var))
  (let* ((pkg-name (eieio-oref pkg ':name)) (layer (car (eieio-oref pkg ':owners))) (recipe (cons pkg-name (cdr (eieio-oref pkg ':location))))) (if recipe (quelpa (configuration-layer//make-quelpa-recipe pkg)) (configuration-layer//warning (concat "Cannot find any recipe for package %S! Be sure " "to add a recipe for it in alist %S.") pkg-name recipes-var)))
  configuration-layer//install-from-recipe(#<cfgl-package cfgl-package-1ff0049a4e9c>)
  (cond ((or (null pkg) (eq 'elpa location)) (configuration-layer//install-from-elpa pkg-name) (if pkg (progn (eieio-oset pkg ':lazy-install nil)))) ((and (listp location) (eq 'recipe (car location))) (configuration-layer//install-from-recipe pkg) (eieio-oset pkg ':lazy-install nil)) (t (configuration-layer//warning "Cannot install package %S." pkg-name)))
  (condition-case err (cond ((or (null pkg) (eq 'elpa location)) (configuration-layer//install-from-elpa pkg-name) (if pkg (progn (eieio-oset pkg ':lazy-install nil)))) ((and (listp location) (eq 'recipe (car location))) (configuration-layer//install-from-recipe pkg) (eieio-oset pkg ':lazy-install nil)) (t (configuration-layer//warning "Cannot install package %S." pkg-name))) ((debug quote error) (configuration-layer//error (concat "\nAn error occurred while installing %s " "(error: %s)\n") pkg-name err) (spacemacs//redisplay)))
  (if (package-installed-p pkg-name min-version) nil (condition-case err (cond ((or (null pkg) (eq 'elpa location)) (configuration-layer//install-from-elpa pkg-name) (if pkg (progn (eieio-oset pkg ':lazy-install nil)))) ((and (listp location) (eq 'recipe (car location))) (configuration-layer//install-from-recipe pkg) (eieio-oset pkg ':lazy-install nil)) (t (configuration-layer//warning "Cannot install package %S." pkg-name))) ((debug quote error) (configuration-layer//error (concat "\nAn error occurred while installing %s " "(error: %s)\n") pkg-name err) (spacemacs//redisplay))))
  (let* ((layer (if pkg (progn (car (eieio-oref pkg ':owners))))) (location (if pkg (progn (eieio-oref pkg ':location)))) (min-version (if pkg (progn (eieio-oref pkg ':min-version))))) (spacemacs-buffer/replace-last-line (format "--> installing %s: %s%s... [%s/%s]" (if layer "package" "dependency") pkg-name (if layer (format "@%S" layer) "") installed-count not-inst-count) t) (spacemacs//redisplay) (if (package-installed-p pkg-name min-version) nil (condition-case err (cond ((or (null pkg) (eq 'elpa location)) (configuration-layer//install-from-elpa pkg-name) (if pkg (progn (eieio-oset pkg ':lazy-install nil)))) ((and (listp location) (eq 'recipe (car location))) (configuration-layer//install-from-recipe pkg) (eieio-oset pkg ':lazy-install nil)) (t (configuration-layer//warning "Cannot install package %S." pkg-name))) ((debug quote error) (configuration-layer//error (concat "\nAn error occurred while installing %s " "(error: %s)\n") pkg-name err) (spacemacs//redisplay)))))
  configuration-layer//install-package(#<cfgl-package cfgl-package-1ff0049a4e9c> vim-powerline 1 1)
  (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))
  (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))
  (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail)))
  (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))
  (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail)))))
  (let ((delayed-warnings-backup delayed-warnings-list)) (spacemacs-buffer/append (format "Found %s new package(s) to install...\n" not-inst-count)) (configuration-layer/retrieve-package-archives) (setq installed-count 0) (spacemacs//redisplay) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) (progn (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))) (setq tail (cdr tail))))) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))) (spacemacs-buffer/append "\n") (if init-file-debug nil (setq delayed-warnings-list delayed-warnings-backup)))
  (progn (spacemacs-buffer/set-mode-line "Installing packages..." t) (let ((delayed-warnings-backup delayed-warnings-list)) (spacemacs-buffer/append (format "Found %s new package(s) to install...\n" not-inst-count)) (configuration-layer/retrieve-package-archives) (setq installed-count 0) (spacemacs//redisplay) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) (progn (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))) (setq tail (cdr tail))))) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))) (spacemacs-buffer/append "\n") (if init-file-debug nil (setq delayed-warnings-list delayed-warnings-backup))))
  (if upkg-names (progn (spacemacs-buffer/set-mode-line "Installing packages..." t) (let ((delayed-warnings-backup delayed-warnings-list)) (spacemacs-buffer/append (format "Found %s new package(s) to install...\n" not-inst-count)) (configuration-layer/retrieve-package-archives) (setq installed-count 0) (spacemacs//redisplay) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) (progn (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))) (setq tail (cdr tail))))) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))) (spacemacs-buffer/append "\n") (if init-file-debug nil (setq delayed-warnings-list delayed-warnings-backup)))))
  (let* ((upkg-names (configuration-layer//get-to-install-packages packages)) (not-inst-count (length upkg-names)) installed-count) (if upkg-names (progn (spacemacs-buffer/set-mode-line "Installing packages..." t) (let ((delayed-warnings-backup delayed-warnings-list)) (spacemacs-buffer/append (format "Found %s new package(s) to install...\n" not-inst-count)) (configuration-layer/retrieve-package-archives) (setq installed-count 0) (spacemacs//redisplay) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) (progn (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))) (setq tail (cdr tail))))) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))) (spacemacs-buffer/append "\n") (if init-file-debug nil (setq delayed-warnings-list delayed-warnings-backup))))))
  (let ((display-buffer-alist '(("\\(\\*Compile-Log\\*\\)\\|\\(\\*Warnings\\*\\)" (display-buffer-in-side-window) (inhibit-same-window . t) (side . bottom) (window-height . 0.2))))) (configuration-layer//configure-quelpa) (let* ((upkg-names (configuration-layer//get-to-install-packages packages)) (not-inst-count (length upkg-names)) installed-count) (if upkg-names (progn (spacemacs-buffer/set-mode-line "Installing packages..." t) (let ((delayed-warnings-backup delayed-warnings-list)) (spacemacs-buffer/append (format "Found %s new package(s) to install...\n" not-inst-count)) (configuration-layer/retrieve-package-archives) (setq installed-count 0) (spacemacs//redisplay) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) (progn (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count)))) (setq tail (cdr tail))))) (let ((tail upkg-names)) (while tail (let ((pkg-name (car tail))) (let ((pkg (configuration-layer/get-package pkg-name))) (if (and pkg (memq (eieio-oref pkg ':step) '(bootstrap pre))) nil (setq installed-count (1+ installed-count)) (configuration-layer//install-package pkg pkg-name installed-count not-inst-count))) (setq tail (cdr tail))))) (spacemacs-buffer/append "\n") (if init-file-debug nil (setq delayed-warnings-list delayed-warnings-backup)))))))
  configuration-layer//install-packages((ace-jump-helm-line ace-link ace-window aggressive-indent all-the-icons async auto-compile auto-dictionary auto-highlight-symbol avy bind-key bind-map browse-at-remote centered-cursor-mode clean-aindent-mode cmm-mode column-enforce-mode dash desktop devdocs diff-hl diff-mode diminish dired-quick-sort dotenv-mode drag-stuff dumb-jump dune eat editorconfig elisp-def elisp-demos elisp-slime-nav emr erc erc-hl-nicks erc-image erc-social-graph erc-terminal-notifier erc-tweet erc-view-log erc-yt esh-help eshell-prompt-extras eshell-z eval-sexp-fu evil evil-anzu evil-args evil-cleverparens evil-collection evil-escape evil-evilified-state evil-exchange evil-goggles evil-iedit-state evil-indent-plus evil-lion evil-lisp-state evil-matchit evil-mc evil-nerd-commenter evil-numbers evil-org evil-surround evil-textobj-line evil-tutor evil-unimpaired evil-visual-mark-mode evil-visualstar expand-region eyebrowse fancy-battery flx-ido flycheck flycheck-elsa flycheck-haskell flycheck-ocaml flycheck-package flycheck-pos-tip flyspell flyspell-correct flyspell-correct-helm forge git-commit git-link git-messenger git-modes git-timemachine gitignore-templates gnuplot golden-ratio google-translate haskell-mode haskell-snippets helm helm-ag helm-comint helm-descbinds helm-git-grep helm-hoogle helm-ls-git helm-make helm-mode-manager helm-org helm-org-rifle helm-projectile helm-purpose helm-swoop helm-themes helm-xref hide-comnt highlight-indentation highlight-numbers highlight-parentheses hindent hl-todo hlint-refactor holy-mode htmlize hungry-delete hybrid-mode hydra indent-guide info+ inspector launchctl link-hint lorem-ipsum lsp-haskell macrostep magit magit-section magit-todos merlin merlin-company merlin-eldoc merlin-iedit multi-line multi-term multi-vterm nameless ob-sml ocamlformat ocp-indent open-junk-file org org-cliplink org-contrib org-download ...))
  (let ((packages (append (configuration-layer//filter-distant-packages configuration-layer--used-packages t #'(lambda (pkg) (not (eieio-oref pkg ':lazy-install)))) (if (eq 'all dotspacemacs-install-packages) (progn (let (all-other-packages) (let ((tail (configuration-layer/get-layers-list))) (while tail (let ((layer (car tail))) (let ((configuration-layer--declared-layers-usedp nil) (configuration-layer--load-packages-files t)) (configuration-layer/declare-layer layer) (let* ((obj (configuration-layer/get-layer layer)) (pkgs (if obj (progn (eieio-oref obj ':packages))))) (configuration-layer/make-packages-from-layers (list layer)) (let ((tail pkgs)) (while tail (let ((pkg (car tail))) (let ((pkg-name (if (listp pkg) (car pkg) pkg))) (let* ((var pkg-name)) (if (memql var all-other-packages) (with-no-warnings all-other-packages) (setq all-other-packages (cons var all-other-packages))))) (setq tail (cdr tail))))))) (setq tail (cdr tail))))) (configuration-layer//filter-distant-packages all-other-packages nil))))))) (configuration-layer//install-packages packages) (if (and (or (eq 'used dotspacemacs-install-packages) (eq 'used-only dotspacemacs-install-packages)) (not configuration-layer-force-distribution) (not configuration-layer-exclude-all-layers)) (progn (configuration-layer/delete-orphan-packages packages))))
  (progn (let ((packages (append (configuration-layer//filter-distant-packages configuration-layer--used-packages t #'(lambda (pkg) (not (eieio-oref pkg ':lazy-install)))) (if (eq 'all dotspacemacs-install-packages) (progn (let (all-other-packages) (let ((tail (configuration-layer/get-layers-list))) (while tail (let ((layer (car tail))) (let ((configuration-layer--declared-layers-usedp nil) (configuration-layer--load-packages-files t)) (configuration-layer/declare-layer layer) (let* ((obj (configuration-layer/get-layer layer)) (pkgs (if obj (progn (eieio-oref obj ':packages))))) (configuration-layer/make-packages-from-layers (list layer)) (let ((tail pkgs)) (while tail (let ((pkg (car tail))) (let ((pkg-name (if (listp pkg) (car pkg) pkg))) (let* ((var pkg-name)) (if (memql var all-other-packages) (with-no-warnings all-other-packages) (setq all-other-packages (cons var all-other-packages))))) (setq tail (cdr tail))))))) (setq tail (cdr tail))))) (configuration-layer//filter-distant-packages all-other-packages nil))))))) (configuration-layer//install-packages packages) (if (and (or (eq 'used dotspacemacs-install-packages) (eq 'used-only dotspacemacs-install-packages)) (not configuration-layer-force-distribution) (not configuration-layer-exclude-all-layers)) (progn (configuration-layer/delete-orphan-packages packages)))))
  (if spacemacs-sync-packages (progn (let ((packages (append (configuration-layer//filter-distant-packages configuration-layer--used-packages t #'(lambda (pkg) (not (eieio-oref pkg ':lazy-install)))) (if (eq 'all dotspacemacs-install-packages) (progn (let (all-other-packages) (let ((tail (configuration-layer/get-layers-list))) (while tail (let ((layer (car tail))) (let ((configuration-layer--declared-layers-usedp nil) (configuration-layer--load-packages-files t)) (configuration-layer/declare-layer layer) (let* ((obj (configuration-layer/get-layer layer)) (pkgs (if obj (progn (eieio-oref obj ':packages))))) (configuration-layer/make-packages-from-layers (list layer)) (let ((tail pkgs)) (while tail (let ((pkg (car tail))) (let ((pkg-name (if (listp pkg) (car pkg) pkg))) (let* ((var pkg-name)) (if (memql var all-other-packages) (with-no-warnings all-other-packages) (setq all-other-packages (cons var all-other-packages))))) (setq tail (cdr tail))))))) (setq tail (cdr tail))))) (configuration-layer//filter-distant-packages all-other-packages nil))))))) (configuration-layer//install-packages packages) (if (and (or (eq 'used dotspacemacs-install-packages) (eq 'used-only dotspacemacs-install-packages)) (not configuration-layer-force-distribution) (not configuration-layer-exclude-all-layers)) (progn (configuration-layer/delete-orphan-packages packages))))))
  configuration-layer//load()
  (cond (changed-since-last-dump-p (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message "Layer list has changed since last dump.") (configuration-layer//dump-emacs)))) (spacemacs-force-dump (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message (concat "--force-dump passed on the command line or configuration has " "been reloaded, forcing a redump.")) (configuration-layer//dump-emacs)))) ((spacemacs-is-dumping-p) (configuration-layer//load)) ((and (spacemacs/emacs-with-pdumper-set-p) (spacemacs-run-from-dump-p)) (configuration-layer/message "Running from a dumped file. Skipping the loading process!")) (t (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message (concat "Layer list has not changed since last time. " "Skipping dumping process!"))))))
  (let (changed-since-last-dump-p) (if (file-exists-p configuration-layer--last-dotspacemacs-configuration-layers-file) (progn (configuration-layer/load-file configuration-layer--last-dotspacemacs-configuration-layers-file))) (let ((layers dotspacemacs-configuration-layers)) (progn (if "Calling dotfile layers..." (progn (spacemacs-buffer/message "Calling dotfile layers..."))) (if (fboundp 'dotspacemacs/layers) (progn (condition-case err (dotspacemacs/layers) ((debug error) (configuration-layer//increment-error-count) (spacemacs-buffer/append (format "Error in %s: %s\n" '"dotspacemacs/layers" (error-message-string err)) t)))))) (setq dotspacemacs--configuration-layers-saved dotspacemacs-configuration-layers) (setq changed-since-last-dump-p (not (equal layers dotspacemacs-configuration-layers))) (spacemacs/dump-vars-to-file '(dotspacemacs-configuration-layers) configuration-layer--last-dotspacemacs-configuration-layers-file)) (cond (changed-since-last-dump-p (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message "Layer list has changed since last dump.") (configuration-layer//dump-emacs)))) (spacemacs-force-dump (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message (concat "--force-dump passed on the command line or configuration has " "been reloaded, forcing a redump.")) (configuration-layer//dump-emacs)))) ((spacemacs-is-dumping-p) (configuration-layer//load)) ((and (spacemacs/emacs-with-pdumper-set-p) (spacemacs-run-from-dump-p)) (configuration-layer/message "Running from a dumped file. Skipping the loading process!")) (t (configuration-layer//load) (if (spacemacs/emacs-with-pdumper-set-p) (progn (configuration-layer/message (concat "Layer list has not changed since last time. " "Skipping dumping process!")))))))
  configuration-layer/load()
  (let ((please-do-not-disable-file-name-handler-alist nil)) (require 'core-spacemacs) (spacemacs/dump-restore-load-path) (configuration-layer/load-lock-file) (spacemacs/init) (configuration-layer/stable-elpa-init) (configuration-layer/load) (spacemacs-buffer/display-startup-note) (spacemacs/setup-startup-hook) (spacemacs/dump-eval-delayed-functions) (if (and dotspacemacs-enable-server (not (spacemacs-is-dumping-p))) (progn (require 'server) (if dotspacemacs-server-socket-dir (progn (setq server-socket-dir dotspacemacs-server-socket-dir))) (if (server-running-p) nil (message "Starting a server...") (server-start)))))
  (if (not (version<= spacemacs-emacs-min-version emacs-version)) (error (concat "Your version of Emacs (%s) is too old. " "Spacemacs requires Emacs version %s or above.") emacs-version spacemacs-emacs-min-version) (let ((please-do-not-disable-file-name-handler-alist nil)) (require 'core-spacemacs) (spacemacs/dump-restore-load-path) (configuration-layer/load-lock-file) (spacemacs/init) (configuration-layer/stable-elpa-init) (configuration-layer/load) (spacemacs-buffer/display-startup-note) (spacemacs/setup-startup-hook) (spacemacs/dump-eval-delayed-functions) (if (and dotspacemacs-enable-server (not (spacemacs-is-dumping-p))) (progn (require 'server) (if dotspacemacs-server-socket-dir (progn (setq server-socket-dir dotspacemacs-server-socket-dir))) (if (server-running-p) nil (message "Starting a server...") (server-start))))))
  eval-buffer(#<buffer  *load*> nil "/Users/merita/.emacs.d/init.el" nil t)  ; Reading at buffer position 3366
  load-with-code-conversion("/Users/merita/.emacs.d/init.el" "/Users/merita/.emacs.d/init.el" t t)
  load("/Users/merita/.emacs.d/init" noerror nomessage)
  startup--load-user-init-file(#f(compiled-function () #<bytecode 0x155ca4c0dc7195>) #f(compiled-function () #<bytecode -0x1f3c61addc0c4f35>) t)
  command-line()
  normal-top-level()
meritamen commented 4 weeks ago

@bcc32 I tried setting dotspacemacs-mode-line-theme '(vim-powerline :separator wave :separator-scale 1.5) then got the same error messgae "An error occurred while installing vim-powerline (error: (wrong-type-argument package-desc nil))" and my modeline became utterly empty, as expected. It seems that invoking quelpa-get-package-desc("/Users/merita/.emacs.d/quelpa/packages/vim-powerline-20240822.130129.tar") doesn't work properly.

(defun quelpa-get-package-desc (file)
  "Extract and return the PACKAGE-DESC struct from FILE.
On error return nil."
  (let* ((kind (quelpa-package-type file))
         (desc (with-demoted-errors "Error getting PACKAGE-DESC: %s"
                 (with-temp-buffer
                   (pcase kind
                     (`single (insert-file-contents file)
                              (package-buffer-info))
                     (`tar (insert-file-contents-literally file)
                           (tar-mode)
                           (with-no-warnings
                             (package-tar-file-info))))))))
    (when (package-desc-p desc)
      desc)))

quelpa-get-package-desc tries to bind description from vim-powerline-20240822.130129.tar to desc but it gets nil, kind is tar as there're multiple files. It should be that (package-tar-file-info)doesn't get the package information correctly. Observe at the top of the backtrace that tar-get-file-descriptor("._vim-powerline-20240822.130129/_vim-powerline-pkg.el") turns into tar--check-descriptor(nil). Following is the content of vim-powerline-pkg.elinside the tar generated by quelpa:

(define-package "vim-powerline" "20240822.124648" "No description available." 'nil)
;; Local Variables:
;; no-byte-compile: t
;; End:

There's no such file as vim-powerline.el, not to mention its description, thus I guess the reason for error is that spacemacs doesn't provide the local file whose name is corresponding to package name, then I updated layers/+spacemacs/spacemacs-modeline/local/vim-powerline via https://github.com/milkypostman/powerline as #14503 pointed(should it be synchronized with the upstream by bot?), and temporarily tweaked some configuration in layers/+spacemacs/spacemacs-modeline/packages.el. It works. Also #15903, #16414 are having the same problem. I remember getting this error message before but I ignored it.

bcc32 commented 4 weeks ago

Did you try installing GNU tar as suggested in the other issue threads? You may specifically want to check the return value of (quelpa--tar-type) in your Emacs, as mentioned in this comment.

meritamen commented 4 weeks ago

I just installed GNU tar, and spacemacs no longer duplicates vim-powerline installation, but vim-powerline modeline looks a bit weird...

Screenshot 2024-08-23 at 00 12 05
bcc32 commented 4 weeks ago

What do you find weird about it? That's basically how it looks for me, although I suppose the exact colors of the text depend on your color theme. The CJK character between "utf-8" and "Spacemacs buffer" is probably just a missing glyph in your font (you need a powerline font for full font support).

meritamen commented 4 weeks ago

My theme is spacemacs-light. I feel like it's dark background color is a bit out of place compared to the modeline of spacemacs modeline theme.