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.58k stars 4.9k forks source link

Spacemacs is unusable, reporting `Symbol's function definition is void: function-alias-p` #16305

Closed ghost closed 3 months ago

ghost commented 4 months ago

Description :octocat:

I updated my packages by pressing SPC f e U and restarted Emacs. Now, Spacemacs is unusable, reporting Symbol's function definition is void: function-alias-p.

I want to Rollback Package Update, but the link cannot be followed by pressing o or clicking it.

Reproduction guide :beetle:

Observed behaviour: :eyes: :broken_heart: I see Screenshot from 2024-03-08 06-13-07 and nothing works.

Expected behaviour: :heart: :smile: Spacemacs works.

System Info :computer:

ghost commented 4 months ago

How can one roll back package updates from outside Spacemacs?

suparna-ghanvatkar commented 4 months ago

I get the same issue with new clean installation as well. On Fedora with emacs 28.3

dankessler commented 4 months ago

Oof, this is probably my fault: I used function-alias-p in a PR I wrote that was recently adopted into bind-map, but it looks like that function was only introduced in emacs 29.1. If you're able to upgrade emacs, that will immediately fix your problem, but I'm going to try to get a patch added to bind-map that will only call that function if it's available.

dankessler commented 4 months ago

PR has been speedily merged so this is now fixed in bind-map, and it's now live on MELPA.

Unfortunately, you may still have difficulty upgrading to the fixed version of bind-map since interacting with the "Update Packages" button in the *spacemacs* buffer seems to depend on bind-map. Instead, you can either

Please confirm that this works, and then we can close the issue. My apologies for causing the problem!

ghost commented 4 months ago
  • Upgrade packages with M-x configuration-layer/update-packages RET

This was impossible because M-x did not work. Instead, I deleted .emacs.d and cloned Spacemacs again, and it is working now. Thank you for repairing it.

ghost commented 4 months ago

Yesterday I pressed SPC f e U and broke Spacemacs. I needed then to roll back that update, but could not do so from within Spacemacs. How could I have done so from without Spacemacs? That would have allowed me to use Spacemacs while waiting for the guilty package to be repaired.

nicorikken commented 3 months ago

@dankessler

  • Delete bind-map manually, which should trigger spacemacs to install it fresh from MELPA on the next launch. You can find the folder to delete somewhere like ~/.emacs.d/elpa/28.1/develop/bind-map-20230307.1837.

I used this method and it worked nicely. In my case it was: rm -r ~/.emacs.d/elpa/27.1/develop/bind-map-20240307.1837/