Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation orchestra configuration

This repository contains the orchestra configuration for


  • Clone orchestra
    git clone
    cd orchestra
  • Install dependencies (currently Ubuntu-only):
  • Install orchestra script
    pip3 cache remove orchestra
    pip3 install --user --force-reinstall
  • Make sure orc is in PATH
    export PATH="$HOME/.local/bin:$PATH"
  • Initialize default configuration (and list components)
    orc components


If you do not want to install orchestra globally, you can use a virtualenv.

  • Create and activate a virtualenv
    python3 -m venv venv
    source venv/bin/activate
  • Install and upgrade wheel inside the virtualenv
    pip install --upgrade pip wheel
  • Install orchestra
    pip cache remove orchestra
    pip install --force-reinstall
  • Install dependencies (Ubuntu only)

Configuration for the public

The default configuration gives you read-only access to the open source components.

If you want to work a fork of certain components the suggested workflow is to add your remote to the repository as cloned by orchestra. For example, to fork the revng project do the following:

# Ensure the revng component is cloned
orc clone revng
cd sources/revng
git remote add myremote <your-remote-url>

Configuration for developers

If you have access to GitLab, in order to access private components, your configuration should be similar to the following:

#@overlay/match missing_ok=True
  - public: ""
  - private: ""

#@overlay/match missing_ok=True
  - origin: ""
  - private: ""

Installing from binary-archives

  • Update binary-archives and information about remote repositories:
    orc update
  • Install revng
    orc install revng

Building from source

In order to build from source certain components, as opposed to fetch them from binary-archives, you need to list them in .orchestra/config/user_options.yml:

  - revng
  • Install and test revng
    orc install --test revng
  • Manually build:
    orc shell -c revng
    ctest -j$(nproc)

Building from a fork

The recommended workflow is:

  • Clone the component you want to fork
    orc clone <component>
  • Add a remote to the component
    cd sources/<component>
    git remote add <myremotename> <remote-url>
    git fetch --all
  • Switch to your branch
    cd sources/<component>
    git switch <myremotename>/<branch>
    git checkout -b <branch> <myremotename>/<branch>
  • Update orchestra
    orc update

How do I...

  • Q: How do I set the number of parallel jobs for make/ninja?

    A: In .orchestra/config/user_options.yml:

    parallelism: 4
  • Q: How do I print the dependency graph to build a component?

    A: orc graph $COMPONENT | xdot -

  • Q: How do I uninstall a component?

    A: orc uninstall $COMPONENT

  • Q: Does orchestra leave files around my $HOME or elsewhere?

    A: No! By default orchestra places everything inside the folder containing the configuration

Writing components

See docs/

About configuration for orchestra. The starting point for any development.







No releases published


No packages published