Detailed guide on how to install bare Axolotl on PinePhone Manjaro Phosh #615
ijustmadeanaccountforthis
started this conversation in
Show and tell
Replies: 2 comments
-
The two Makefile targets are adjusted to not depend on other targets: consequently the document is updated. |
Beta Was this translation helpful? Give feedback.
0 replies
-
The nvm usage is also adjusted to make use of the .nvmrc file in the axolotl-web folder. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is meant as a little help, to get more people to test and probably debug this awesome project.
This is an unofficial guide and may not work on your phone/OS. But it could help to get you started.
It was tested on a fresh install of Manjaro ARM Beta17 Phosh on the PinePhone.
If it works (with some tweaks) on another Phone/OS feel free to comment below.
Basically what we do is we:
### Disclaimer: This is a mere guide to install the package. The current stage of development can be found in the Issues page. Every problem that occurs after the program has started, has nothing to do with this guide.
1) Install dependencies
Dependencies can be found here or at the top of the Makefile if you need a closer look.
A package which contains a missing binary can be found with
pacman -F /usr/bin/cargo
for example.Update OS first
Install Go, Rust and cargo
Install node/npm
We install node via nvm (node version manager) script as it is easier to switch between versions
and because it is the arch way.
Install base-devel (build essentials package group)
They might already be installed
sudo pacman -S base-devel
2) Build the package
Download Axolotl source code
Build source code
(follow instructions from github README)
Build dependencies
Update browsers list if necessary
Some hacks
Now before we actually build axolotl, axolotl-web, crayfish and zkgroup, we need some little hacks.
First, as go is relatively new and still undergoing critical changes, we need to add two environment variables to tell it to use it's old form.
(Anyone interested can read more about it here.)
Don't worry if the directory does not exist yet. It will be automatically created later.
To add the second environment variable (we need to append an environment variable before the
go get
command inbuild-zkgroup:
) we can either manually edit the MakefileFrom:
$(GO) get -d github.com/nanu-c/zkgroup
To:
GO111MODULE=off $(GO) get -d github.com/nanu-c/zkgroup
Or use this command to change every (currently 3) occurrence of "go get -d"in the Makefile to use the environment variable.
Next, the gnu compiler collection is called
aarch64-unknown-linux-gnu-gcc
instead ofaarch64-linux-gnu-gcc
onthe PinePhone. Therefore we create a symlink to the compiler that we have:
Build the packages
This might take a while since it contains some sub calls as can be seen here. Network connection is needed at multiple points in the script, so consider disabling automatic suspend.
3) Install the libraries
We need to move the zkgroup lib file to the correct place, where
make install
can find it.Now we install the libraries we built before. (This requires a password multiple times)
4) Run Axolotl
Starting the application may take a few seconds. You've come this far, be a bit patient one last time ;)
Crayfish is needed to run in the background.
The last three commands (to actually run axolotl) can be written in a shell script and called from everywhere.
5) Some final words
Once again I want to state that this guide does not guarantee that the app you just built is working. The signalgroup may change its libraries without notice, which breaks this application. But there are many skilled people who work on fixing that in their spare time. The current state can be deduced from the Issues page of this github page.
Feel free to comment if some things change, or if you have a slightly modified version for another phone/OS.
The advantage of a bare install (compared to flatpak or snap) is that you can build the newest version as soon as it is in the repo. And in addition to that you learn something about the project, its setup and probably about your own system.
Beta Was this translation helpful? Give feedback.
All reactions