Skip to content

install-system-deps: replace libboost-all-dev with specific components (Ubuntu/Debian)#233

Merged
gmarzot merged 1 commit into
mainfrom
hotfix/install-deps-boost-components
May 30, 2026
Merged

install-system-deps: replace libboost-all-dev with specific components (Ubuntu/Debian)#233
gmarzot merged 1 commit into
mainfrom
hotfix/install-deps-boost-components

Conversation

@gmarzot
Copy link
Copy Markdown
Collaborator

@gmarzot gmarzot commented May 26, 2026

Closes #87.

Problem

standalone/install-system-deps.sh installs libboost-all-dev on Ubuntu/Debian, which pulls in ~100 packages — MPI, OpenMPI, InfiniBand, graph-parallel, python, etc. — that the standalone build does not need. This adds several minutes to cold CI runs on GitHub-hosted runners.

What we actually use

The standalone build (and o-rly) link these Boost components:

  • context
  • filesystem
  • program_options
  • regex
  • thread

…plus headers-only Boost (boost/optional.hpp and friends, used by folly).

Fix

Replace

libboost-all-dev

with

libboost-dev
libboost-context-dev
libboost-filesystem-dev
libboost-program-options-dev
libboost-regex-dev
libboost-thread-dev

(libboost-dev provides the header-only side of Boost; each -component-dev provides the corresponding .so/.a.)

Why Fedora/macOS are untouched

  • Fedora: boost-devel is already the conventional install on that distro — it doesn't pull the kitchen-sink the way Ubuntu's libboost-all-dev does.
  • macOS: brew's boost is a single package that provides the components moxygen needs.

So this PR only changes the Ubuntu/Debian block.

Verification

apt-cache depends libboost-all-dev on ubuntu-22.04 lists ~30 direct boost subpackage deps each with several transitive deps, totaling ~100 installed packages.
apt-cache depends libboost-context-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libboost-dev lists ~25 installed packages including their direct shared-library deps.


This change is Reviewable

Copy link
Copy Markdown
Collaborator

@afrind afrind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@afrind reviewed 1 file and all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on akash-a-n, michalhosna, mondain, Oxyd, peterchave, suhasHere, and TimEvens).

…s (Ubuntu/Debian)

libboost-all-dev pulls in ~100 packages (MPI/OpenMPI/InfiniBand,
graph-parallel, python, etc.) that the standalone build does not use,
adding several minutes to cold CI runs on GitHub-hosted runners.

The standalone build only links these boost components:
  - context
  - filesystem
  - program_options
  - regex
  - thread

Install just those component -dev packages plus libboost-dev (which
provides the header-only libraries folly uses, e.g. boost/optional.hpp).

Fedora's boost-devel is already the conventional install on that distro
(not the same wide pull as Ubuntu's libboost-all-dev), and macOS uses
brew's single 'boost' package — both left untouched.

Closes #87.
@gmarzot gmarzot force-pushed the hotfix/install-deps-boost-components branch from 7e01daa to bcff1a3 Compare May 30, 2026 18:20
@gmarzot gmarzot merged commit cd9efe1 into main May 30, 2026
7 checks passed
@gmarzot gmarzot deleted the hotfix/install-deps-boost-components branch May 30, 2026 18:47
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.

install-system-deps.sh: replace libboost-all-dev with specific components

2 participants