diff --git a/README/ReleaseNotes/v642/index.md b/README/ReleaseNotes/v642/index.md index 18ba40b6bfa2a..a57a1342c30cb 100644 --- a/README/ReleaseNotes/v642/index.md +++ b/README/ReleaseNotes/v642/index.md @@ -45,6 +45,14 @@ The following people have contributed to this new version: * The `builtin_zeromq` and `builtin_cppzmq` build options that were deprecated in ROOT 6.40 are now removed. * The ROOT **auth** package together with `TVirtualAuth` and `TROOT::GetListOfSecContexts()`, and the **authenticated sockets** (`TSocket::CreateAuthSocket()`) feature are now removed following deprecation in ROOT 6.40. +## Build System + +### Moving from builtin dependencies to system-provided packages + +* The general direction of the ROOT project is to become more and more reliant on system packages. It is *recommended* to make the packages required by ROOT available on the system, e.g. via a package manager, and not with the builtin mechanism. This allows for timely updates and reduces the size of the installed binaries. +* The previously vendored builtins `ftgl`, `gl2ps`, `gtest`, `nlohmann_json`, `xxhash`, `pcre2`, 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 `ftgl`, `gl2ps`, `gtest`, `nlohmann_json`, `unuran`, `civetweb`, `xxhash`, `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. + ## Python Interface ## I/O diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake index c589c3014ec89..6d35f40cd10b4 100644 --- a/cmake/modules/RootBuildOptions.cmake +++ b/cmake/modules/RootBuildOptions.cmake @@ -80,35 +80,35 @@ endfunction() ROOT_BUILD_OPTION(arrow OFF "Enable support for Apache Arrow") ROOT_BUILD_OPTION(asimage ON "Enable support for image processing via libAfterImage") ROOT_BUILD_OPTION(asserts OFF "Enable asserts (defaults to ON for CMAKE_BUILD_TYPE=Debug and/or dev=ON)") -ROOT_BUILD_OPTION(builtin_cfitsio OFF "Build CFITSIO internally (requires network)") +ROOT_BUILD_OPTION(builtin_cfitsio OFF "Build CFITSIO from an externally provided source tarball (requires network)") ROOT_BUILD_OPTION(builtin_clang ON "Build bundled copy of Clang") ROOT_BUILD_OPTION(builtin_cling ON "Build bundled copy of Cling. Only build with an external cling if you know what you are doing: associating ROOT commits with cling commits is tricky.") MARK_AS_ADVANCED(builtin_cling) -ROOT_BUILD_OPTION(builtin_civetweb ON "Use civetweb distributed with ROOT") -ROOT_BUILD_OPTION(builtin_fftw3 OFF "Build FFTW3 internally (requires network) [GPL]") -ROOT_BUILD_OPTION(builtin_freetype OFF "Build bundled copy of freetype") -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_gl2ps OFF "Build bundled copy of gl2ps") -ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL internally (requires network) [GPL]") -ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest internally (requires network)") -ROOT_BUILD_OPTION(builtin_jpeg OFF "Build bundled copy of libjpeg") +ROOT_BUILD_OPTION(builtin_civetweb ON "Build civetweb from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_fftw3 OFF "Build FFTW3 from an externally provided source tarball (requires network) [GPL]") +ROOT_BUILD_OPTION(builtin_freetype OFF "Build freetype from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_ftgl OFF "Build FTGL from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_gif OFF "Build libgif from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build gl2ps from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_gsl OFF "Build GSL from an externally provided source tarball (requires network) [GPL]") +ROOT_BUILD_OPTION(builtin_gtest OFF "Build googletest from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_jpeg OFF "Build libjpeg from an externally provided source tarball (requires network)") ROOT_BUILD_OPTION(builtin_llvm ON "Build bundled copy of LLVM") -ROOT_BUILD_OPTION(builtin_lz4 OFF "Build bundled copy of lz4") -ROOT_BUILD_OPTION(builtin_lzma OFF "Build bundled copy of lzma") -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_lz4 OFF "Build lz4 from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_lzma OFF "Build lzma from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_nlohmannjson OFF "Build nlohmann/json from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_openssl OFF "Build OpenSSL from an externally provided source tarball (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") -ROOT_BUILD_OPTION(builtin_png OFF "Build bundled copy of libpng") -ROOT_BUILD_OPTION(builtin_tbb OFF "Build TBB internally (requires network)") -ROOT_BUILD_OPTION(builtin_tiff OFF "Build libtiff internally (requires network)") -ROOT_BUILD_OPTION(builtin_unuran OFF "Build bundled copy of unuran [GPL]") -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") -ROOT_BUILD_OPTION(builtin_zlib OFF "Build bundled copy of zlib") -ROOT_BUILD_OPTION(builtin_zstd OFF "Build included libzstd, or use system libzstd") +ROOT_BUILD_OPTION(builtin_pcre OFF "Build PCRE2 from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_png OFF "Build libpng from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_tbb OFF "Build TBB from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_tiff OFF "Build libtiff from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_unuran OFF "Build unuran from an externally provided source tarball (requires network) [GPL]") +ROOT_BUILD_OPTION(builtin_vdt OFF "Build VDT from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_xrootd OFF "Build XRootD from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_xxhash OFF "Build xxHash from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_zlib OFF "Build zlib from an externally provided source tarball (requires network)") +ROOT_BUILD_OPTION(builtin_zstd OFF "Build zstd from an externally provided source tarball (requires network)") ROOT_BUILD_OPTION(ccache OFF "Enable ccache usage for speeding up builds") ROOT_BUILD_OPTION(cefweb OFF "Enable support for CEF (Chromium Embedded Framework) web-based display") ROOT_BUILD_OPTION(check_connection ON "Fail the configuration step if there is no internet connection, but it's required for the build")