-
-
Notifications
You must be signed in to change notification settings - Fork 800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Symbol’s function definition is void: seq-keep #5011
Comments
As a workaround I installed |
Last night I started using So it is likely that just updating packages again would also have fixed this issue; the fact that you had to manually install |
You should not have to manually require [snip]
;;; Code:
(if (version< emacs-version "25")
(require 'seq-24)
(require 'seq-25))
(provide 'seq)
;;; seq.el ends here |
I think I found the issue. GNU Emacs 28.2 comes with seq-2.23 built in and it does not upgrade built-in packages automatically. Thus, I had to install seq-2.24 manually. Also, the function seq-keep used by magit is not autoloaded, which requires to explicitly load the library. Long story short, my current workaround is:
Does it make sense? |
Information about upgrading built-in packages in GNU Emacs 29: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS.29#n1714 |
I've added an explicit (You shouldn't use I'll have to look into those news. I don't use |
However, I cannot use |
I see. That probably means that something loads In other words I will have to investigate. Meanwhile, other users running into this, should first try to update, and if that alone doesn't work add If this is indeed a bug causes by the default configuration of some Emacs releases, or a common misconfiguration, then I might have to require (when (and (featurep' seq)
(not (fboundp 'seq-keep)))
(unload-feature 'seq 'force))
(require 'seq) |
@jroimartin thank you for opening this. I confirm your work-around works for me as well. I'm also on emacs 28.2. I've made a similar hack in my spacemacs config here: |
Hello. Does anyone know how to install the previous version of the package? |
As a short-term solution, it's possible to have the (defun seq-keep (function sequence)
"Apply FUNCTION to SEQUENCE and return the list of all the non-nil results."
(delq nil (seq-map function sequence))) (from https://github.com/emacs-mirror/emacs/blob/master/lisp/emacs-lisp/seq.el) After this, magit works fine. |
I've installed the mentioned kludge. |
Just ran into this issue. Uninstalling |
@doolio You should probably report that to Straight's maintainers. |
Straight does not update dependencies and even ignores the specified minimal versions. See radian-software/straight.el#1083. |
The latest commit on straight's |
I ran into this issue again on magit version |
Magit now works around deficits of
That's a bug in how magit is packages in nix then. Please report this to the maintainer of magit in nix. Thanks! |
Do you have by chance a workaround for a Nix based config? |
This is what I'm currently using: overrides = self: super: {
elpaPackages =
super.elpaPackages
// {
seq = self.callPackage ({
elpaBuild,
fetchurl,
lib,
}:
elpaBuild rec {
pname = "seq";
ename = "seq";
version = "2.24";
src = fetchurl {
url = "https://elpa.gnu.org/packages/seq-2.24.tar";
sha256 = "1w2cysad3qwnzdabhq9xipbslsjm528fcxkwnslhlkh8v07karml";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/seq.html";
license = lib.licenses.free;
};
# tests take a _long_ time to byte-compile, skip them
postInstall = ''rm -r $out/share/emacs/site-lisp/elpa/${pname}-${version}/tests'';
}) {};
};
};
emacsPackage =
((pkgs.emacsPackagesFor pkgs.emacs29-gtk3).overrideScope' overrides).emacsWithPackages …;` |
There is currently a bug in the Nix version which breaks magit. It's fixed upstream but doesn't work yet in the Nix version: magit/magit#5011
Thanks for the hint @mmarx. I've adapted it for Home Manager in case anyone is looking for that as well: {
programs = {
emacs = {
overrides = self: super: rec {
# Taken from https://github.com/magit/magit/issues/5011#issuecomment-1838598138
seq = self.callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild rec {
pname = "seq";
ename = "seq";
version = "2.24";
src = fetchurl {
url = "https://elpa.gnu.org/packages/seq-2.24.tar";
sha256 = "1w2cysad3qwnzdabhq9xipbslsjm528fcxkwnslhlkh8v07karml";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/seq.html";
license = lib.licenses.free;
};
# tests take a _long_ time to byte-compile, skip them
postInstall = ''rm -r $out/share/emacs/site-lisp/elpa/${pname}-${version}/tests'';
}) {};
};
};
};
} |
After updating Magit, it looks like this:
It seems that 84eaa20 causes the following error to show up:
I followed these instructions but the problem persists.
Magit version:
Magit 20230921.2037 [>= 3.3.0.50-git], Transient 0.4.3, Git 2.41.0, Emacs 28.2, gnu/linux
The text was updated successfully, but these errors were encountered: