rev.ng orchestra configuration
This repository contains the orchestra configuration for rev.ng.
- Install orchestra script
pip3 cache remove orchestra pip3 install --user --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip
- Make sure
orcis in PATH
- Clone orchestra
git clone https://github.com/revng/orchestra cd orchestra
- Initialize default configuration (and list components)
Configuration for the public
The default configuration gives you read-only access to the rev.ng 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 orchestra clone revng cd sources/revng git remote add myremote <your-remote-url>
Configuration for rev.ng developers
If you have access to rev.ng GitLab, in order to access private components, your configuration should be similar to the following:
#@data/values --- #@overlay/match missing_ok=True remote_base_urls: - public: "email@example.com:revng" - private: "firstname.lastname@example.org:revng-private" #@overlay/match missing_ok=True binary_archives: - origin: "email@example.com:revng/binary-archives.git" - private: "firstname.lastname@example.org:revng-private/binary-archives.git"
Installing from binary-archives
binary-archivesand information about remote repositories:
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
#@overlay/replace build_from_source: - revng
- Install and test
orc install --test revng
- Manually build:
orc shell revng ninja 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 <myremotename>
- Switch to your branch
cd sources/<component> git switch <myremotename>/<branch> git checkout -b <branch> <myremotename>/<branch>
- Update orchestra
How do I...
Q: How do I set the number of parallel jobs for
Q: How do I print the dependency graph to build a component?
orc graph $COMPONENT | xdot -
Q: How do I uninstall a component?
orc uninstall $COMPONENT
Q: Does orchestra leave files around my
A: No! By default orchestra places everything inside the folder containing the configuration