Skip to content

Add debootstrap, rootfs, and model-db orchestra components#195

Open
revng-claudietto wants to merge 9 commits intorevng:developfrom
revng-claudietto:feature/rootfs-components
Open

Add debootstrap, rootfs, and model-db orchestra components#195
revng-claudietto wants to merge 9 commits intorevng:developfrom
revng-claudietto:feature/rootfs-components

Conversation

@revng-claudietto
Copy link

@revng-claudietto revng-claudietto commented Feb 17, 2026

Summary

  • Add debootstrap component that builds the debootstrap tool from source
  • Add 9 rootfs/* components that create minimal Linux rootfs images using debootstrap across multiple architectures (Ubuntu 20.04/22.04/24.04 x86-64, Ubuntu 24.04 i386/arm/aarch64/s390x, Debian bookworm mipsel, Debian buster mips), with companion debug-info components that pre-fetch debug symbols
  • Add model-db component that runs revng analyze import-binary on rootfs ELFs and exports the resulting models into a shared SQLite database using revng model export sqlite
  • Add win32metadata component that downloads the microsoft/win32metadata source
  • Add pdb/x86-64, pdb/i386, and pdb/aarch64 components that compile all win32metadata partitions into PDB files using clang with CodeView debug info

Depends on: revng/revng#559 for revng model export sqlite, revng model import sqlite, and REVNG_NO_FETCH_DEBUG_INFO.

Test plan

  • orc install debootstrap succeeds
  • orc install rootfs/ubuntu-24-04-x86-64 produces a rootfs with ELF binaries
  • orc install rootfs/ubuntu-24-04-x86-64/debug-info fetches debug symbols
  • orc install -b model-db builds the SQLite database and passes the round-trip test
  • orc install win32metadata downloads and installs the source tree
  • orc install pdb/x86-64 builds PDB files for all partitions
  • orc install pdb/i386 builds PDB files for all partitions
  • orc install pdb/aarch64 builds PDB files for all partitions

Add an orchestra component that builds and installs the debootstrap tool
from Ubuntu's official repository. This is used as a build dependency
for the rootfs components.
@revng-claudietto revng-claudietto force-pushed the feature/rootfs-components branch from 97a2bca to 38dd385 Compare February 17, 2026 17:30
Add orchestra components that build minimal rootfs images using
debootstrap for 9 Linux distributions across multiple architectures.
Each rootfs component downloads .deb packages, extracts them, and
retains only ELF binaries, symlinks, and ld.so.conf files. A
companion debug-info component for each rootfs fetches debug symbols.

Supported targets:
- Ubuntu 20.04/22.04/24.04 x86-64
- Ubuntu 24.04 i386/arm/aarch64/s390x
- Debian bookworm mipsel, buster mips
Add an orchestra component that imports binary models from rootfs ELF
files into a SQLite database. It runs revng analyze import-binary on
up to 5 ELFs per rootfs, then exports the resulting models into a
shared db.sqlite using revng model export sqlite. Includes a
round-trip test using revng model import sqlite.
Download and install the microsoft/win32metadata source tree, which
provides Windows API definitions organized as partitions with .rsp
compiler settings.
Add orchestra components that compile all win32metadata partitions
into PDB files using clang with CodeView debug info. Each partition's
main.cpp is compiled to an .obj, then linked into a dummy DLL to
produce the PDB. A support script (compile-to-pdb.py) generates the
ninja build file from the win32metadata .rsp settings.
@revng-claudietto revng-claudietto force-pushed the feature/rootfs-components branch from 38dd385 to 82713cb Compare February 17, 2026 18:00
configure should only set up the build directory, while install does
the actual build and installation work.
The previous commit was no longer available from the remote.
Add debug-info sub-components for each PDB architecture (x86-64,
i386, aarch64) that produce model files from PDB files. The actual
tool invocation is a placeholder (touch) for now.

Also move the ninja build step from configure to install, keeping
only the build file generation in configure.
Add pdb/x86-64/debug-info as a dependency. Copy PDB model files into
the models directory with a windows-<arch> platform prefix, then
export them to SQLite alongside the rootfs models.

Also move all build work from configure to install.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments