0. Introduction
I read an excellent article called Using Emacs 81 Elfeed Webkit by Mike Zamansky. The ability to see more content whilst staying within Emacs is a good idea. Spoiler alert: It turned out to be even better than I thought, in fact, it is my favourite way to consume RSS/Atom.
I also wanted to get a newer version of Emacs than is readily available from standard sources, plus I also wanted to try tree-sitter. Note the is a much fuller explanation of compiling emacs with tree-sitter here; more importantly it gives extensive insight into why you will want it!
In summary, it worked, it wasn't too difficult and I found it fun!
I have highlighted what seemed to be Chromeos specifics in red.
1. Setting up the environment
I did the following
- setup deb-src entries in /etc/apt/sources.lst. This can easily be done in the UI of a normal Linux distribution - and it can be done on Chromeos but it seemed more trouble than it was worth!
- sudo apt update
- sudo apt build-dep emacs ; this should install the required dependencies
2. Get extras
In addition to tree-sitter and widgets (for reading RSS) I also wanted to have native compilation
- tree-sitter (many full distributions have easier ways of getting this)
- git clone git@github.com:tree-sitter/tree-sitter.git
- make
- sudo make install
- get xwidgets
- sudo apt-get install libwebkit2gtk-4.0-dev
- sudo apt install libgccjit-13-dev
- sudo ldconfig
3. Build emacs
This is standard stuff, with the augmented configure line, which you may wish to vary.
- git clone -b master git://git.sv.gnu.org/emacs.git
- OR
git clone --single-branch --branch=emacs-29 http://git.savannah.g
nu.org/r/emacs.git emacs-29 - OR
git checkout refs/tags/emacs-29.3
- checkout required version ( I just went with master and so I am on version 30! It works fine for me but you could be more prudent
- sudo apt-get build-dep emacs
- export CC="gcc-13" for ubuntu (or 12 on debian)
- sh autogen.sh
./configure --without-compress-install --with-native-compilation --with-json --with-mailutils --with-tree-sitter --with-xwidgets
- make (may need to make bootstrap if there are errors)
- sudo make install
If there is a config.h error try 'git clean -fdx' then make
systemctl stop --user emacs
systemctl --user daemon-reload
systemctl start --user emacs
4. Conclusion
The above list of commands is quite straightforward and you end up with a nice modern emacs which seemed a bit quicker to me. In reality, the above list was obtained by a lot of trial and error, hence why I am documenting it!
Let me know if you have any questions or comments.