https://github.com/almindor/harbour-jtox
Sailfish OS native tox implementation for Jolla
https://github.com/almindor/harbour-jtox
decentralized encrypted messaging tox
Last synced: 9 months ago
JSON representation
Sailfish OS native tox implementation for Jolla
- Host: GitHub
- URL: https://github.com/almindor/harbour-jtox
- Owner: almindor
- License: gpl-3.0
- Created: 2016-12-12T04:29:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-06-01T16:37:56.000Z (about 4 years ago)
- Last Synced: 2025-04-02T14:49:05.601Z (about 1 year ago)
- Topics: decentralized, encrypted, messaging, tox
- Language: C++
- Size: 667 KB
- Stars: 12
- Watchers: 5
- Forks: 4
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Support: support/build.sh
Awesome Lists containing this project
README
# jTox Jolla Tox Client
jTox is a Jolla/SailfishOS [https://tox.chat](Tox) client.
### 
jTox uses an **experimental** cryptographic network [library](https://github.com/TokTok/c-toxcore). It has not been formally audited by an independent third party that specializes in cryptography or cryptanalysis. The protocol is not optimized for mobile yet and causes significant data traffic. **Use at your own risk.**
## Community
[](https://gitter.im/almindor/jtox?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
## Building toxcore for Jolla
Increasing the VM RAM and CPU count inside VirtualBox for the build engine is highly recommended.
### Requirements
These steps will install all the required packages on mersdk build engine.
See [the sailfish SDK FAQ](https://sailfishos.org/develop/sdk-overview/develop-faq/) for instructions on how to connect to the build engine.
Be sure to log into the engine as **mersdk** user not as root.
Change this to the SailfishOS version required, also in **support/build.sh**
`export SFVER='4.4.0.58'`
`sb2 -t SailfishOS-$SFVER-aarch64 -m sdk-install -R zypper install gcc gcc-c++ autoconf automake make libtool nasm`
`sb2 -t SailfishOS-$SFVER-armv7hl -m sdk-install -R zypper install gcc gcc-c++ autoconf automake make libtool nasm`
`sb2 -t "SailfishOS-$SFVER-i486" -m sdk-install -R zypper install gcc gcc-c++ autoconf automake make libtool yasm`
### Building the required libraries
Make sure the build VM is running (the one from SailfishOS IDE).
To improve performance enable multiple cores for the build VM in VirtualBox.
#### Using the populate script
**only for linux**
The populate script should just work(tm) if you're running it on Linux from the `support` directory and your SailfishOS SDK install path is standard.
NOTE: you can edit `build.sh` and change the `SFVER`, `SODIUMVER`, `TOXCOREVER` and `THREADS` as needed.
Just run it with `./populate.sh` and everything should work. Change SailfishOS version in the env var as required. If not see next section
#### Manually using the build script
Provided build script in `support/build.sh` needs to be copied to a subdirectory on the build engine. Use the `mersdk` user, do not use root.
Once in a new directory, say run the script `./build.sh` with target architecture as parameter. Valid architectures are `i486` and `armv7hl`. You can also edit the `build.sh` script and change the required variables (see above).
`./build.sh i486`
`./build.sh armv7hl`
`./build.sh aarch64`
It will download latest versions of `libsodium` and `c-toxcore` libraries from github and build them. Once done the resulting libraries are in the `libs` folder while the include files are in the `include` folder of the fake root directory for given architecture e.g. `i486/usr/lib`.
You then need to copy over the required files to `extra` so your resulting structure in the project should be `extra/i486/...` and `extra/armv7hl/...`
Bin subdirectory is not required and neither are any non `.a` files in the lib directory.
### Configuring SailfishSDK
In order to select the right library architecture you need to define `JTOX_ARCH` env var inside the project kit settings in SailfishSDK. Add the values `i486`, `armv7hl` and `aarch64` to each of the env var tables for each project and configuration (debug, profile, release).
You need to also whitelist `JTOX_ARCH` inside the SailfishOS/general section of settings to make sure it reaches the build engine.