A snapshot of the complete software stack (excluding some external libraries and programs)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apidsl @ 6b7819d
c-toxcore @ b56166f
c-toxcore-hs @ ccf6b23
cedar @ 2959a24
dockerfiles @ cf0b8e7
echobot-jvm @ 1b3890f
go-toxcore-c @ 248ef67
hs-github-tools @ c7714f4
hs-msgpack @ d129935
hs-msgpack-rpc @ a6f919e
hs-msgpack-types @ 6578346
hs-schema @ 9a1a750
hs-tokstyle @ 0712049
hs-tools @ 0966f1a
hs-toxcore @ c60d414
hs-toxcore-c @ 786bf54
js-toxcore-c @ 5449140
jtox @ cc62f02
jvm-macros @ ec56835
jvm-sbt-plugins @ a1e3704
jvm-toxcore-api @ fa9357c
jvm-toxcore-c @ 6da980e
py_toxcore_c @ 8cfc9fa
qtox @ 5694db6
spec @ fc1c63b
streambot-jvm @ b1957d5
third_party
toktok-android @ ef1fded
tools
toxic @ 9e3d4f3
toxins @ 31fb5e4
visibility
website @ c39806b
.bazelrc
.cirrus.yml
.gitignore
.gitmodules
.travis.yml
BUILD.bazel
LICENSE
LICENSE.gpl3
LICENSE.hs-msgpack
Makefile
README.md
WORKSPACE
appveyor.yml
stack.yaml

README.md

TokTok stack

Downloading

To download the TokTok stack, use git:

$ git clone --recursive https://github.com/TokTok/toktok-stack

Building

After installing prerequisites (instructions below), run the following command in the toktok-stack directory:

$ bazel build //...

Installing prerequisites

To build the stack, first you need to install some software. This guide assumes an installation of Debian GNU/Linux version 9 and that you are in the toktok-stack directory. There is partial support for Mac OS X and FreeBSD, but not all targets can be built on those systems.

Bazel

Install the latest version of Bazel, e.g.:

$ wget https://github.com/bazelbuild/bazel/releases/download/0.19.1/bazel_0.19.0-linux-x86_64.deb
$ sudo dpkg -i bazel_0.19.0-linux-x86_64.deb

Maven

If you want to build Java binaries, you need to install Maven:

$ sudo apt install maven

Android SDK

If you want to build Android apps such as toktok-android, you need the Android SDK. E.g.:

$ wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
$ unzip -d third_party/android/sdk/ sdk-tools-linux-4333796.zip
$ rm sdk-tools-linux-4333796.zip

You will need to install the latest build tools (aapt and friends) and platform 28 (targeted by our Android apps) using the SDK manager. Press "y" to accept all the licenses as you are asked. Use sdkmanager --list to see the latest versions of each package after updating.

$ third_party/android/sdk/tools/bin/sdkmanager --update
$ third_party/android/sdk/tools/bin/sdkmanager 'build-tools;28.0.3'
$ third_party/android/sdk/tools/bin/sdkmanager 'platforms;android-28'

Qt5

To build Qt-based binaries such as qtox, you need an installation of Qt development headers and libraries and tools.

$ sudo apt install qttools5-dev libqt5svg5-dev

The build expects symlinks to the development files in third_party/qt:

$ ln -s /usr/lib/x86_64-linux-gnu/qt5/bin third_party/qt/bin
$ ln -s /usr/include/x86_64-linux-gnu/qt5 third_party/qt/include
$ ln -s /usr/lib/x86_64-linux-gnu third_party/qt/lib

You may need slightly different paths depending on where your Qt installation lives.

Python

To build py-toxcore-c and other programs using Python FFI, you need Python development headers. py-toxcore-c currently builds for Python 2 in the Bazel build, while toxic needs Python 3.

$ sudo apt install python2.7-dev python3.5-dev

Make

For //js-toxcore-c, you will need a make program in your $PATH:

$ sudo apt install make

Mercurial

For //qtox/osx/updater, you will need the hg program in your $PATH, because it contains a Go program that points at a Bitbucket Mercurial repository:

$ sudo apt install mercurial

Native javacpp libraries

Streambot needs native libraries that need to be downloaded from Maven.

$ wget http://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/ffmpeg/3.4.1-1.4/ffmpeg-3.4.1-1.4-linux-x86_64.jar -O third_party/javacpp/ffmpeg/jar/ffmpeg-3.4.1-1.4-linux-x86_64.jar
$ wget http://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/opencv/3.4.0-1.4/opencv-3.4.0-1.4-linux-x86_64.jar -O third_party/javacpp/opencv/jar/opencv-3.4.0-1.4-linux-x86_64.jar

Extra development packages

Some libraries have not yet been imported into third_party, so must be installed on the system.

For //qtox:

$ sudo apt install libopenal-dev libsqlite3-dev libasound2-dev libxss-dev

For //toxic:

$ sudo apt install libopenal-dev libncurses5-dev libxss-dev

Note that toxic also needs Python 3. See the section on Python for how to install its development files.

For //c-toxcore/testing:av_test:

$ sudo apt install libcv-dev libhighgui-dev

Building native code for Android

After installing prerequisites (instructions below), run:

$ bazel build \
    //c-toxcore/auto_tests/... \
    --crosstool_top=//external:android/crosstool \
    --cpu=armeabi-v7a \
    --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
    --verbose_failures

WARNING: This build mode does not work at all, yet. Patches welcome!

Installing prerequisites

NDK

$ wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
$ unzip -d third_party/android/ android-ndk-r14b-linux-x86_64.zip