Build dependencies

  • GCC >= 4.1 or Clang >= 3.4
  • Python >= 2.6 or 3.x
  • SCons
  • Ragel
  • gengetopt (optional, install if you want to build tools)
  • pkg-config (optional, install if you want installed dependencies to be auto-detected)
  • config.guess script (optional, used to auto-detect the system type; may be provided by autotools, automake, or libtool package)
  • libtool, intltool, autoconf, automake, make, cmake (optional, install if you want Roc to download and build dependencies automatically)

Runtime dependencies

  • libuv >= 1.5.0
  • libunwind >= 1.2.1 (optional, install if you want backtraces on a panic or a crash)
  • OpenFEC >= 1.4.2 (optional but recommended, install if you want to enable FEC support)
  • SoX >= 14.4.0 (optional, install if you want SoX backend in tools)
  • PulseAudio >= 5.0 (optional, install if you want PulseAudio backend in tools or PulseAudio modules)


libuv versions before 1.5.0 may have problems on 64-bit ARMs.


If you want to install OpenFEC, it's highly recommended to use our fork or manually apply patches from it. The fork is automatically used when using --build-3rdparty=openfec option. The fork contains several bug fixes and improvements that are not available in the upstream.

Development dependencies

  • CppUTest >= 3.4 (optional, install if you want to build tests)
  • clang-format >= 3.8 (optional, install if you want to format code)
  • clang-tidy (optional, install if you want to run linter)
  • doxygen >= 1.6, graphviz (optional, install if you want to build doxygen or sphinx documentation)
  • sphinx, breathe (optional, install if you want to build sphinx documentation)


If you use CppUTest 3.4 or earlier, build it with --disable-memory-leak-detection option. This leak detection breaks our code. Note that we support building with clang sanitizers which include LeakSanitizer.