https://guix.gnu.org/en/manual/devel/en/guix.html#Channels
(channel
(name 'emacs-latest)
(url "https://git.sr.ht/~akyle/guix-emacs-latest")
(introduction
(make-channel-introduction
"dd804da433e4e9ccd7408a356cd4f1bec942d28b"
(openpgp-fingerprint
"963C 2413 0BD3 BF1B 624C EF4C 8850 284C 20B8 078D"))))
(use-modules (gnu packages emacs-xyz)
(emacs-latest emacs-xyz))
(map emacs-xyz-latest
(list
emacs-vterm
emacs-org
emacs-magit))
emacs-xyz-latest
can be applied to any package in the (gnu packages emacs-xyz)
and will apply package-input-rewriting on that package and all its dependencies that appear in
the emacs-latest/commits.scm
file of this channel.
If you only want the latest version of a single package you can use emacs-xyz-latest-only
.
Some points of caution!
- Mixing packages from
(emacs-latest emacs-xyz)
and(gnu packages emacs-xyz)
in a profile has the potential to cause conflicts since all emacs package dependencies are propagated.- Applying
emacs-xyz-latest
to every package in a profile should, in principle never result in conflicts.
- Applying
- The more significantly your guix version differs from the guix version used to generate the packages here, the more likely there are to be issues. There’s some amount of robustness to differences, so that if this channel has packages that your guix does not, it will just ignore them.
- Packages can an will break!
fixes.scm
attempts to collect overrides to fix the packages, but I will only be maintaining those fixes which affect me, and my responsiveness to updating the fixes will vary.
(use-modules (emacs-latest utils))
(write-latest-emacs-xyz "emacs-latest/commits.scm")
- Add emacs itself so that I can run the latest upstream version of emacs.
- Put the guix commit used to generate the
commits.scm
somewhere - Set up automated daily updates