The author of Aether now has pushed some fixes, read his easier to follow instructions here: https://gist.github.com/nehbit/4a8c3d81d543e85c9df974f521732b1e
This thing is based off of this, this, and this.
I'm planning to put it on the AUR sometime hopefully, so we'll see how that goes.
To start, I'm assuming you're on Arch, but it should be easy to adapt this to most Linux distros. Also, depending on when you're reading this, these patches have a high chance of not working after and Aether update or if grpc gets an update or if anything changes in the slightest.
Dependencies (that I know of): nvm
(AUR package), nodejs
, binutils
, clang
, go
, docker
You also need aether_git.patch and aether_grpc.patch
Then, follow these steps:
- Clone repository:
git clone https://github.com/nehbit/aether.git
- Prepare
nvm
:
source /usr/share/nvm/init-nvm.sh
nvm install 11
nvm use 11
cd aether
- Apply first patch to fix a couple issues
git apply path/to/aether_git.patch
cd aether-core/aether/backend
- Build backend:
go run main.go
Even though https://getaether.net/docs/developers/ claims that “it should print an identifier and terminate itself” it will actually say: “You've attempted to run the Aether Runtime Environment without any commands.” cd ../frontend
- Build frontend:
go run main.go
It has a similar message to the backend cd ../client
- Install dependencies:
npm ci
- Compile some dependencies:
npm run wpwatch
For some reason this will hang after it's done, so press Ctrl-C once everything seems to be finished (if no errors) - Apply patch to get grpc to compile:
patch -p0 < path/to/aether_grpc.patch
- Build some c stuff, it may take a while without seeming to do much:
npm run rebuild
- Make sure that if you’re running Aether in your computer, you have it shut down, otherwise Electron’s single instance lock will trigger and terminate without errors. Run:
npm start
Click through the "begin" menu without creating an account to make sure that you can get to the main screen without errors. cd ..
- Finally build for linux:
make linux
- Once it finishes, go back to the root of the repo. The compiled snap will be in
./ReleaseArchive/Aether-2.0.0-dev.14/[build number]/linux/
and the normal Aether binary is in./BundledReleases/linux-unpacked/
An explanation of what was broken for those curious:
The first thing that needs to be done is use nvm to install and use Node 11 (the one packaged with Arch is v14). This will solve almost all of the issues that mpnordland was having on meta.getaether.net
The next thing that deviates from a standard build is aether_git.patch, which fixes a few issues:
- It fixes a typo in
aether-core/aether/client/src/app/components/a-breadcrumbs.vue
that hasLogo-sm-h.png
aslogo-sm-h.png
- It fixes typos in
aether-core/aether/client/src/app/scss/typefaces.scss
, that hasSourceSansPro-SemiBold.ttf
andSourceSansPro-SemiBoldItalic.ttf
listed asSourceSansPro-Semibold.ttf
andSourceSansPro-SemiboldItalic.ttf
, respectively - It makes some modifications to the makefile and package.json (most coming from here):
- Uses normal gcc/g++ instead of a cross-compile toolchain
- Adds
npm install
todist-linux-docker-trigger
, which does automatically what mpnordland had to do manually in his thread
Then the build continues normally, following the instructions here, until it gets to compiling the C and C++ stuff, when we have to patch one of the dependencies called grpc
. At some point the devs of grpc renamed the function gettid();
to sys_gettid();
, but didn't successfully rename it in all of the source files, so I had to go manually change some. Found this solution here and here. It also uses the -Werror
build flag and it has a few build warnings that then cause the build to error and fail, so I removed the -Werror
flag because it still works afterwards.
After that, then everything can proceed as normal to the end of the build.
I pushed some fixes based on the instructions here to ideally remove the need for the patches and created a gist pointing to this one for the new instructions at https://gist.github.com/nehbit/4a8c3d81d543e85c9df974f521732b1e.
Thanks!