emacs-twist / twist.nix

Build an entire Emacs configuration as a Nix package in a pure, reproducible way
GNU General Public License v3.0
66 stars 6 forks source link

emacs-overlay emacs versions problematic together with emacs wrapper #81

Closed terlar closed 1 year ago

terlar commented 1 year ago

Given how emacs-overlay sets the versions and how the code relies on version here:

You will get invalid symlinks as the version 20221216.0 will be symlinked but the actual value should be 30.0.50 for example.

I know before you had the check that verified the version and now that is removed. Just curious if you are aware of this one or if we should document the workaround .overrideAttrs (_: {version = "30.0.50";}) for example. Best would be if the actual version was available somewhere.

akirak commented 1 year ago

I see. I missed that. Thank you for pointing out the regression.

I removed the check from builtins.nix because the version of the builtin libraries list should be set to the snapshot version, not to a fake version like 30.0.50 to in order to leverage binary cache. (I didn't set the version yet, but I will do that soon.) I don't want to download the source of every Emacs derivation, especially for elisp CI.

I think the version can be retrieved by running emacs --version which should print an output like this:

GNU Emacs 30.0.50 Copyright (C) 2022 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GNU Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING.

This doesn't depend on the source of Emacs, and it should give the same version as directories in the Emacs output. emacs.version can be given an improper (i.e. non-semantic) version by a derivation writer for different reasons, so we shouldn't rely on it. With this change, the user of twist doesn't have to specify a correct version of Emacs.

akirak commented 1 year ago

I think the issue has resolved.

terlar commented 1 year ago

Indeed this works now, thank you!