{"id":20782532,"url":"https://github.com/toktok/toktok-stack","last_synced_at":"2025-03-11T22:45:16.269Z","repository":{"id":38710998,"uuid":"67208080","full_name":"TokTok/toktok-stack","owner":"TokTok","description":"A snapshot of the complete software stack (excluding some external libraries and programs)","archived":false,"fork":false,"pushed_at":"2025-03-03T20:57:29.000Z","size":5582,"stargazers_count":17,"open_issues_count":2,"forks_count":8,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-03T21:34:09.833Z","etag":null,"topics":["bazel","tox"],"latest_commit_sha":null,"homepage":"https://toktok.ltd","language":"Starlark","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TokTok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-02T09:04:48.000Z","updated_at":"2025-03-03T20:57:32.000Z","dependencies_parsed_at":"2023-02-14T07:00:58.115Z","dependency_job_id":"cfe61ebe-0ae5-4164-9dfb-e8e01b8f5fd5","html_url":"https://github.com/TokTok/toktok-stack","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Ftoktok-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Ftoktok-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Ftoktok-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Ftoktok-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TokTok","download_url":"https://codeload.github.com/TokTok/toktok-stack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243125639,"owners_count":20240276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bazel","tox"],"created_at":"2024-11-17T14:12:23.597Z","updated_at":"2025-03-11T22:45:16.246Z","avatar_url":"https://github.com/TokTok.png","language":"Starlark","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TokTok stack\n\nThis repository contains git submodules for all directly supported Tox-related\nrepositories. This ensures that any changes made to any of the submodules are\nalways compatible in the snapshot taken by toktok-stack. Before a toxcore\nrelease, toktok-stack must cleanly build with the latest `master` commit in\n`c-toxcore`. Clients, bindings, and support programs must always pass all tests\nin this snapshot. We don't guarantee security of the snapshot, merely\ninteroperability, so don't rely on the security or even error-freeness of\nanything here. If you need that, use released versions of the submodules\nthemselves.\n\nBeyond the clients, bindings, and programs directly maintained and supported by\nthe TokTok team, here are some additional repositories of interest that develop\ntheir code separately. We hope to integrate some of them into toktok-stack at\nsome point.\n\n- [aTox](https://github.com/evilcorpltd/aTox) Android Tox client. Developed in a\n  fairly rigorous manner and moves slowly but safely. Not as feature-rich as\n  other clients, but reliable and secure.\n- [rstox](https://github.com/tox-rs/rstox) Rust bindings to c-toxcore.\n- [trifa_material](https://github.com/Zoxcore/trifa_material) Experimental\n  desktop client using zoxcore (below) written in Kotlin. Works on macOS,\n  Windows, and Linux.\n- [zoxcore](https://github.com/Zoxcore/c-toxcore) Experimental c-toxcore fork\n  with additional toxav (audio/video) development such as x264 video encoding,\n  an improved messaging protocol (with stable message IDs). Go here if you want\n  to implement your own experimental features in a more fast-paced environment.\n  Features here can eventually be merged back into TokTok's toxcore after more\n  rigorous testing and review.\n\n## Dev Containers\n\n![YouCompleteMe](tools/built/dev/vim.png)\n\nSee [dev containers](tools/built/dev) for details.\n\n## Downloading\n\nTo download the TokTok stack, use `git`:\n\n```sh\ngit clone --recursive https://github.com/TokTok/toktok-stack\n```\n\n## Configuring\n\nYou may pass a compiler config for additional compiler-specific warnings and\noptimisations. If you use Clang (default on OSX), pass `--config=clang`. If you\nuse GCC, pass `--config=gcc`. On Windows, you don't need any compiler flag\nbecause we assume it's MSVC.\n\nThere are also `--config=release` and `--config=debug` and more. See `.bazelrc`\nin this repository for more config flags you can pass. If you're using the\nDocker build, then `--config=asan`, `tsan`, and `msan` are also available.\n\nWe recommend copying `.bazelrc.local.example` to `.bazelrc.local` and\ncustomising it according to the comments in that file.\n\n## Building\n\nAfter installing prerequisites (instructions below), run the following command\nin the `toktok-stack` directory:\n\n```sh\nbazel build //...\n```\n\n### Installing prerequisites\n\nTo build the stack, first you need to install some software. This guide assumes\nan installation of Debian GNU/Linux version 9 and that you are in the\n`toktok-stack` directory. There is partial support for macOS and FreeBSD, but\nnot all targets can be built on those systems.\n\n#### Bazel\n\nInstall the latest version of\n[Bazel](https://github.com/bazelbuild/bazel/releases), e.g.:\n\n```sh\nwget https://github.com/bazelbuild/bazel/releases/download/4.2.1/bazel_4.2.1-linux-x86_64.deb\nsudo dpkg -i bazel_4.2.1-linux-x86_64.deb\n```\n\nOn OSX:\n\n```sh\nbrew install bazel\n```\n\nOn FreeBSD:\n\n```sh\nsudo pkg install bazel\n```\n\nOn Windows:\n\n```sh\nchoco install bazel\n```\n\n#### Qt5\n\nTo build Qt-based binaries such as `qtox`, you need an installation of Qt\ndevelopment headers and libraries and tools.\n\n```sh\nsudo apt install qttools5-dev qttools5-dev-tools libqt5svg5-dev\n```\n\nOn OSX:\n\n```sh\nbrew install qt\n```\n\nOn FreeBSD:\n\n```sh\nsudo pkg install qt5\n```\n\nOn Windows:\n\n```sh\nchoco install qt\n```\n\nIf your Qt installation doesn't live in a standard location, make changes to the\ndetector script in `tools/workspace/qt.bzl` and consider sending us a pull\nrequest. If your version of Qt is different, edit `WORKSPACE` and adjust it in\nthe `qt_repository` declaration.\n\n#### Extra development packages\n\nSome libraries have not yet been imported into `third_party`, so must be\ninstalled on the system.\n\nFor `//qtox`:\n\n```sh\nsudo apt install libasound2-dev libxss-dev\n```\n\nFor `//toxic`:\n\n```sh\nsudo apt install libxss-dev\n```\n\nOn OSX (for both `qtox` and `toxic`):\n\n```sh\nbrew install ncurses\n```\n\nOn FreeBSD:\n\n```sh\nsudo pkg install ncurses\n```\n\nNote that toxic also needs Python 3. See the section on Python for how to\ninstall its development files.\n\n#### Python\n\nTo build `py-toxcore-c` and other programs using Python FFI, you need Python\ndevelopment headers. `py-toxcore-c` and `toxic` both need Python 3. Any of 3.5,\n3.6, or 3.7 works.\n\n```sh\nsudo apt install python3.5-dev\n```\n\nOn FreeBSD:\n\n```sh\nsudo pkg install python3\n```\n\n#### Native javacpp libraries\n\nStreambot needs native libraries that need to be downloaded from Maven.\n\n```sh\nwget https://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\nwget https://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\n```\n\n## Troubleshooting\n\n### Xcode version must be specified to use an Apple CROSSTOOL\n\nTry running the following:\n\n```sh\nsudo xcode-select -s /Applications/Xcode.app/Contents/Developer\nsudo xcodebuild -license\nbazel clean --expunge\n```\n\nSee\n[this](https://github.com/bazelbuild/bazel/issues/4314#issuecomment-370172472)\nGitHub comment or [this](https://stackoverflow.com/a/46460129) stackoverflow\nanswer for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoktok%2Ftoktok-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoktok%2Ftoktok-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoktok%2Ftoktok-stack/lists"}