Skip to content

[nfc][cmake] mention that some builtins are no longer bundled#21596

Open
ferdymercury wants to merge 2 commits intoroot-project:masterfrom
ferdymercury:patch-5
Open

[nfc][cmake] mention that some builtins are no longer bundled#21596
ferdymercury wants to merge 2 commits intoroot-project:masterfrom
ferdymercury:patch-5

Conversation

@ferdymercury
Copy link
Copy Markdown
Collaborator

but require internet connection

@ferdymercury ferdymercury changed the title [skip-ci][cmake] mention that builtins are no longer bundled [nfc][cmake] mention that builtins are no longer bundled Mar 13, 2026
@ferdymercury ferdymercury marked this pull request as ready for review March 13, 2026 11:56
@ferdymercury ferdymercury requested a review from bellenot as a code owner March 13, 2026 11:56
@ferdymercury ferdymercury changed the title [nfc][cmake] mention that builtins are no longer bundled [nfc][cmake] mention that some builtins are no longer bundled Mar 13, 2026
@ferdymercury ferdymercury added the skip ci Skip the full builds on the actions runners label Mar 13, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 13, 2026

Test Results

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit 1fcbce6.

♻️ This comment has been updated with latest results.

@dpiparo
Copy link
Copy Markdown
Member

dpiparo commented Mar 15, 2026

Thanks. When zstd is merged #21597 and zlib is added to the bundle, this will be merged (and maybe topped up with lzma, which is treated the same.
This nice doc will be complemented with something more substantial in the Release Notes and in the repository as well, to give a clear and simple overview of what builtins are used and what is their version.

@ferdymercury
Copy link
Copy Markdown
Collaborator Author

Thanks for the feedback Danilo :)

btw, builtin_xxhash looks like another candidate for off-loading to LCG, in the context of compression

@silverweed
Copy link
Copy Markdown
Contributor

btw, builtin_xxhash looks like another candidate for off-loading to LCG, in the context of compression

AFAIK the policy is to keep anything that is strictly required to build minimal ROOT as vendored code and xxhash is one such dependency (required e.g. to build RNTuple)

@hageboeck
Copy link
Copy Markdown
Member

btw, builtin_xxhash looks like another candidate for off-loading to LCG, in the context of compression

AFAIK the policy is to keep anything that is strictly required to build minimal ROOT as vendored code and xxhash is one such dependency (required e.g. to build RNTuple)

I think we are about to abandon this policy. For things that are readily available in most Linuxes and in homebrew, we suggest, in order of preference:

  1. Get it from the system
  2. Compile and install it to a custom location and make CMake aware of it (e.g. using CMAKE_PREFIX_PATH)
  3. Ask ROOT to download the builtin (requires network)
  4. [Not implemented yet] Provide a folder that contains the required tarballs. We are considering a config option that would tell ROOT where to pick up the tarballs.

Only option 3 requires network during the configure step. All others could be performed offline.

@ferdymercury ferdymercury requested a review from dpiparo March 31, 2026 05:58
ROOT_BUILD_OPTION(builtin_unuran OFF "Build bundled copy of unuran")
ROOT_BUILD_OPTION(builtin_vdt OFF "Build VDT internally (requires network)")
ROOT_BUILD_OPTION(builtin_xrootd OFF "Build XRootD internally (requires network)")
ROOT_BUILD_OPTION(builtin_xxhash OFF "Build bundled copy of xxHash")
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Suggested change
ROOT_BUILD_OPTION(builtin_xxhash OFF "Build bundled copy of xxHash")
ROOT_BUILD_OPTION(builtin_xxhash OFF "Build xxHash internally (requires network)")

To apply if #21806 gets merged

ROOT_BUILD_OPTION(builtin_nlohmannjson OFF "Use nlohmann/json.hpp file distributed with ROOT")
ROOT_BUILD_OPTION(builtin_openssl OFF "Build OpenSSL internally (requires network)")
ROOT_BUILD_OPTION(builtin_openui5 ON "Use openui5 bundle distributed with ROOT")
ROOT_BUILD_OPTION(builtin_pcre OFF "Build bundled copy of PCRE")
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Suggested change
ROOT_BUILD_OPTION(builtin_pcre OFF "Build bundled copy of PCRE")
ROOT_BUILD_OPTION(builtin_pcre OFF "Build PCRE2 internally (requires network)")

If #21857 gets merged

but require internet connection

[cmake] two more
ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL")
ROOT_BUILD_OPTION(builtin_gif OFF "Build bundled copy of libgif")
ROOT_BUILD_OPTION(builtin_gif OFF "Build libgif internally (requires network)")
ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps")
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Suggested change
ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build bundled copy of gl2ps")
ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build gl2ps internally (requires network)")

depending on #21895

Comment on lines +82 to +83
* The previously vendored builtins `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2` and `openssl` should be installed in the system if possible. ROOT will not automatically fall-back to their builtin versions if these are not found: the user is informed of that with a helpful message. If installing these dependencies in the system is not possible, the CMake option `-Dbuiltin_XYZ=ON` has to be consciously chosen by the user.
* For the builtin versions of `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2`, the source tarballs are now fetched from [SPI](https://spi.web.cern.ch)'s [website](https://lcgpackages.web.cern.ch/), as for the vast majority of ROOT's builtins, e.g. `openssl` or `xrootd`.
Copy link
Copy Markdown
Collaborator Author

@ferdymercury ferdymercury Apr 12, 2026

Choose a reason for hiding this comment

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

Suggested change
* The previously vendored builtins `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2` and `openssl` should be installed in the system if possible. ROOT will not automatically fall-back to their builtin versions if these are not found: the user is informed of that with a helpful message. If installing these dependencies in the system is not possible, the CMake option `-Dbuiltin_XYZ=ON` has to be consciously chosen by the user.
* For the builtin versions of `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2`, the source tarballs are now fetched from [SPI](https://spi.web.cern.ch)'s [website](https://lcgpackages.web.cern.ch/), as for the vast majority of ROOT's builtins, e.g. `openssl` or `xrootd`.
* The previously vendored builtins `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2`, `ftgl`, `gl2ps` and `openssl` should be installed in the system if possible. ROOT will not automatically fall-back to their builtin versions if these are not found: the user is informed of that with a helpful message. If installing these dependencies in the system is not possible, the CMake option `-Dbuiltin_XYZ=ON` has to be consciously chosen by the user.
* For the builtin versions of `freetype`, `xxhash`, `zlib`, `lzma`, `zstd`, `lz4`, `libpng`, `giflib`, `libjpeg`, `pcre2`, `ftgl`, `gl2ps`, the source tarballs are now fetched from [SPI](https://spi.web.cern.ch)'s [website](https://lcgpackages.web.cern.ch/), as for the vast majority of ROOT's builtins, e.g. `openssl` or `xrootd`.

ROOT_BUILD_OPTION(builtin_fftw3 OFF "Build FFTW3 internally (requires network)")
ROOT_BUILD_OPTION(builtin_freetype OFF "Build bundled copy of freetype")
ROOT_BUILD_OPTION(builtin_freetype OFF "Build freetype internally (requires network)")
ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL")
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Suggested change
ROOT_BUILD_OPTION(builtin_ftgl OFF "Build bundled copy of FTGL")
ROOT_BUILD_OPTION(builtin_ftgl OFF "Build FTGL internally (requires network)")

if #21898 goes in

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:squash on merge skip ci Skip the full builds on the actions runners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants