summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO132
-rw-r--r--PKGBUILD234
-rw-r--r--adding_directories_needed_to_use_libxml.patch22
-rw-r--r--fix_compile_time_install_clad.patch154
-rw-r--r--rename_based_fix_for_rconfig_on_case_sensitive_systems.patch723
-rw-r--r--root.xml14
-rw-r--r--rootd37
-rw-r--r--settings-cuda.cmake115
-rw-r--r--settings.cmake114
9 files changed, 1545 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..170a0aff03d3
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,132 @@
+pkgbase = root-py2
+ pkgdesc = C++ data analysis framework and interpreter from CERN.
+ pkgver = 6.16.00
+ pkgrel = 1
+ url = http://root.cern.ch
+ arch = x86_64
+ license = LGPL2.1
+ makedepends = ccache
+ makedepends = cern-vdt
+ makedepends = cfitsio
+ makedepends = cmake
+ makedepends = cuda
+ makedepends = fcgi
+ makedepends = fftw
+ makedepends = ftgl
+ makedepends = blas
+ makedepends = gcc-fortran
+ makedepends = giflib
+ makedepends = git
+ makedepends = gl2ps
+ makedepends = glew
+ makedepends = go-pie
+ makedepends = gsl
+ makedepends = hicolor-icon-theme
+ makedepends = intel-tbb
+ makedepends = libafterimage
+ makedepends = libmariadbclient
+ makedepends = librsvg
+ makedepends = libxpm
+ makedepends = ocaml
+ makedepends = ocaml-ctypes
+ makedepends = openssl
+ makedepends = postgresql-libs
+ makedepends = pythia8>=8.2.40-1
+ makedepends = python2
+ makedepends = python2-numpy
+ makedepends = sqlite
+ makedepends = tex-gyre-fonts
+ makedepends = unuran
+ makedepends = vc
+ makedepends = xmlrpc-c
+ makedepends = xrootd>=4.6.0-2
+ makedepends = xxhash>=0.6.5-1
+ makedepends = z3
+ depends = blas
+ depends = desktop-file-utils
+ depends = fcgi
+ depends = fftw
+ depends = ftgl
+ depends = giflib
+ depends = gl2ps
+ depends = glew
+ depends = gsl
+ depends = hicolor-icon-theme
+ depends = intel-tbb
+ depends = libafterimage
+ depends = librsvg
+ depends = libxpm
+ depends = tex-gyre-fonts
+ depends = xxhash>=0.6.5-1
+ optdepends = cfitsio: Read images and data from FITS files
+ optdepends = cern-vdt: Add a set of fast and vectorisable mathematical functions
+ optdepends = libmariadbclient: MySQL support
+ optdepends = openssl: OpenSSL support
+ optdepends = postgresql-libs: PostgreSQL support
+ optdepends = pythia8>=8.2.40-1: Pythia8 EG support
+ optdepends = sqlite: SQLite support
+ optdepends = tcsh: Legacy CSH support
+ optdepends = unuran: Support non-uniform random numbers
+ optdepends = vc: Add types for portable and intuitive SIMD programming
+ optdepends = libxml2: XML parser interface
+ optdepends = xrootd: Support remote file server and client
+ source = https://root.cern.ch/download/root_v6.16.00.source.tar.gz
+ source = root.xml
+ source = rootd
+ source = settings.cmake
+ source = settings-cuda.cmake
+ source = fix_compile_time_install_clad.patch
+ source = adding_directories_needed_to_use_libxml.patch
+ source = rename_based_fix_for_rconfig_on_case_sensitive_systems.patch
+ sha256sums = 2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8
+ sha256sums = 50c08191a5b281a39aa05ace4feb8d5405707b4c54a5dcba061f954649c38cb0
+ sha256sums = 3c45b03761d5254142710b7004af0077f18efece7c95511910140d0542c8de8a
+ sha256sums = 0110fd393a6de68c9d65abad7ec626b298e0bb4431210e6cd75285078052a39a
+ sha256sums = 114c6ae5ac03ebed30f93ccf9431475eb797086e1a9d97d45f84e59c7212b09d
+ sha256sums = de32dcc6c9d8527cb08360a2703c1ca1e586a5b7cc12ea12fd07125795ea5104
+ sha256sums = 51e5de01a423b89c113d19918c731a060e6d9b018d086c97b3dde10818cbd1fe
+ sha256sums = 09fabd3927a57b9a1e0cda7dfe3a53e82eea5ae1fe1c47f778e751603b1c0549
+
+pkgname = root-py2
+ optdepends = cfitsio: Read images and data from FITS files
+ optdepends = cern-vdt: Add a set of fast and vectorisable mathematical functions
+ optdepends = libmariadbclient: MySQL support
+ optdepends = openssl: OpenSSL support
+ optdepends = postgresql-libs: PostgreSQL support
+ optdepends = pythia8>=8.2.40-1: Pythia8 EG support
+ optdepends = sqlite: SQLite support
+ optdepends = tcsh: Legacy CSH support
+ optdepends = unuran: Support non-uniform random numbers
+ optdepends = vc: Add types for portable and intuitive SIMD programming
+ optdepends = libxml2: XML parser interface
+ optdepends = xrootd: Support remote file server and client
+ optdepends = gcc-fortran: Enable the Fortran components of ROOT
+ provides = root
+ provides = python2-pyroot
+ conflicts = root
+ conflicts = python-pyroot
+
+pkgname = root-cuda-py2
+ pkgdesc = C++ data analysis framework and interpreter from CERN with GPU (CUDA) features enabled.
+ depends = blas
+ depends = desktop-file-utils
+ depends = fcgi
+ depends = fftw
+ depends = ftgl
+ depends = giflib
+ depends = gl2ps
+ depends = glew
+ depends = gsl
+ depends = hicolor-icon-theme
+ depends = intel-tbb
+ depends = libafterimage
+ depends = librsvg
+ depends = libxpm
+ depends = tex-gyre-fonts
+ depends = xxhash>=0.6.5-1
+ depends = cuda
+ provides = root
+ provides = python2-pyroot
+ conflicts = root
+ conflicts = python2-pyroot
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..27f0e0ccd79d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,234 @@
+# Maintainer: Konstantin Gizdov < arch at kge dot pw >
+# Contributor: Frank Siegert < frank.siegert at googlemail dot com >
+# Contributor: Scott Lawrence < bytbox at gmail dot com >
+# Contributor: Thomas Dziedzic < gostrc at gmail dot com >
+# Contributor: Sebastian Voecking < voeck at web dot de >
+
+pkgbase=root-py2
+pkgname=('root-py2' 'root-cuda-py2')
+_pkgbase=root
+pkgver=6.16.00
+pkgrel=1
+pkgdesc='C++ data analysis framework and interpreter from CERN.'
+arch=('x86_64')
+url='http://root.cern.ch'
+license=('LGPL2.1')
+makedepends=('ccache'
+ 'cern-vdt'
+ 'cfitsio'
+ 'cmake'
+ 'cuda'
+ 'fcgi'
+ 'fftw'
+ 'ftgl'
+ 'blas'
+ 'gcc-fortran'
+ 'giflib'
+ 'git'
+ 'gl2ps'
+ 'glew'
+ 'go-pie'
+ 'gsl'
+ 'hicolor-icon-theme'
+ 'intel-tbb'
+ 'libafterimage'
+ 'libmariadbclient'
+ 'librsvg'
+ 'libxpm'
+ 'ocaml'
+ 'ocaml-ctypes'
+ 'openssl'
+ 'postgresql-libs'
+ 'pythia8>=8.2.40-1'
+ 'python2'
+ 'python2-numpy'
+ 'sqlite'
+ 'tex-gyre-fonts'
+ 'unuran'
+ 'vc'
+ 'xmlrpc-c'
+ 'xrootd>=4.6.0-2'
+ 'xxhash>=0.6.5-1'
+ 'z3')
+depends=('blas'
+ 'desktop-file-utils'
+ 'fcgi'
+ 'fftw'
+ 'ftgl'
+ 'giflib'
+ 'gl2ps'
+ 'glew'
+ 'gsl'
+ 'hicolor-icon-theme'
+ 'intel-tbb'
+ 'libafterimage'
+ 'librsvg'
+ 'libxpm'
+ 'tex-gyre-fonts'
+ 'xxhash>=0.6.5-1')
+optdepends=('cfitsio: Read images and data from FITS files'
+ 'cern-vdt: Add a set of fast and vectorisable mathematical functions'
+ 'libmariadbclient: MySQL support'
+ 'openssl: OpenSSL support'
+ 'postgresql-libs: PostgreSQL support'
+ 'pythia8>=8.2.40-1: Pythia8 EG support'
+ 'sqlite: SQLite support'
+ 'tcsh: Legacy CSH support'
+ 'unuran: Support non-uniform random numbers'
+ 'vc: Add types for portable and intuitive SIMD programming'
+ 'libxml2: XML parser interface'
+ 'xrootd: Support remote file server and client')
+source=("https://root.cern.ch/download/root_v${pkgver}.source.tar.gz"
+ 'root.xml'
+ 'rootd'
+ 'settings.cmake'
+ 'settings-cuda.cmake'
+ 'fix_compile_time_install_clad.patch'
+ 'adding_directories_needed_to_use_libxml.patch'
+ 'rename_based_fix_for_rconfig_on_case_sensitive_systems.patch')
+sha256sums=('2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8'
+ '50c08191a5b281a39aa05ace4feb8d5405707b4c54a5dcba061f954649c38cb0'
+ '3c45b03761d5254142710b7004af0077f18efece7c95511910140d0542c8de8a'
+ '0110fd393a6de68c9d65abad7ec626b298e0bb4431210e6cd75285078052a39a'
+ '114c6ae5ac03ebed30f93ccf9431475eb797086e1a9d97d45f84e59c7212b09d'
+ 'de32dcc6c9d8527cb08360a2703c1ca1e586a5b7cc12ea12fd07125795ea5104'
+ '51e5de01a423b89c113d19918c731a060e6d9b018d086c97b3dde10818cbd1fe'
+ '09fabd3927a57b9a1e0cda7dfe3a53e82eea5ae1fe1c47f778e751603b1c0549')
+get_py2ver () {
+ python2 -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))'
+}
+prepare() {
+ # cd "${srcdir}/${_pkgbase}-${pkgver}"
+
+ 2to3 -w "${srcdir}/${_pkgbase}-${pkgver}"/etc/dictpch/makepch.py 2>&1 > /dev/null
+
+ patch -d "${srcdir}/${_pkgbase}-${pkgver}" -Np1 -i "${srcdir}/fix_compile_time_install_clad.patch"
+ patch -d "${srcdir}/${_pkgbase}-${pkgver}" -Np1 -i "${srcdir}/adding_directories_needed_to_use_libxml.patch"
+ patch -d "${srcdir}/${_pkgbase}-${pkgver}" -Np1 -i "${srcdir}/rename_based_fix_for_rconfig_on_case_sensitive_systems.patch"
+
+ # don't let ROOT play around with lib paths
+ sed -i -e 's@SetLibraryPath();@@g' \
+ "${srcdir}/${_pkgbase}-${pkgver}/rootx/src/rootx.cxx"
+
+ # trust system to find GSL
+ rm "${srcdir}/${_pkgbase}-${pkgver}/cmake/modules/FindGSL.cmake"
+
+ cp -r "${_pkgbase}-${pkgver}" "${_pkgbase}-${pkgver}-cuda"
+}
+
+build() {
+ ## ROOT
+ mkdir -p "${srcdir}/build"
+ cd "${srcdir}/build"
+
+ CFLAGS="${CFLAGS} -pthread" \
+ CXXFLAGS="${CXXFLAGS} -pthread" \
+ LDFLAGS="${LDFLAGS} -pthread -Wl,--no-undefined" \
+ cmake -C "${srcdir}/settings.cmake" -DTARGET_ARCHITECTURE:STRING=generic -DPYTHON_EXECUTABLE:PATH=/usr/bin/python2 \
+ "${srcdir}/${_pkgbase}-${pkgver}"
+
+ cd "${srcdir}/build"
+ make
+
+ ## ROOT with CUDA
+ mkdir -p "${srcdir}/build-cuda"
+ cd "${srcdir}/build-cuda"
+
+ CFLAGS="${CFLAGS} -pthread" \
+ CXXFLAGS="${CXXFLAGS} -pthread" \
+ LDFLAGS="${LDFLAGS} -pthread -Wl,--no-undefined" \
+ cmake -C "${srcdir}/settings-cuda.cmake" -DTARGET_ARCHITECTURE:STRING=generic -DPYTHON_EXECUTABLE:PATH=/usr/bin/python2 \
+ "${srcdir}/${_pkgbase}-${pkgver}-cuda"
+
+ cd "${srcdir}/build-cuda"
+ make
+}
+
+package_root-py2() {
+ provides=('root' 'python2-pyroot')
+ conflicts=('root' 'python-pyroot')
+ optdepends+=('gcc-fortran: Enable the Fortran components of ROOT')
+ cd "${srcdir}/build"
+
+ make DESTDIR="${pkgdir}" install
+
+ # fix python env call
+ sed -e 's/@python@/python2/' -i "${pkgdir}/usr/lib/root/cmdLineUtils.py"
+
+ # try to deal with weird PyROOT, PyMVA and JupyROOT stuff
+ install -d "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages"
+ ln -s "/usr/lib/root/ROOT.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/_pythonization.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/cmdLineUtils.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/cppyy.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/JsMVA/" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/JupyROOT/" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libPyROOT.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libPyMVA.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libJupyROOT.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+
+ install -D "${srcdir}/rootd" \
+ "${pkgdir}/etc/rc.d/rootd"
+ install -D -m644 "${srcdir}/root.xml" \
+ "${pkgdir}/usr/share/mime/packages/root.xml"
+
+ install -D -m644 "${srcdir}/${_pkgbase}-${pkgver}/build/package/debian/root-system-bin.desktop.in" \
+ "${pkgdir}/usr/share/applications/root-system-bin.desktop"
+
+ # replace @prefix@ with /usr for the desktop
+ sed -e 's_@prefix@_/usr_' -i "${pkgdir}/usr/share/applications/root-system-bin.desktop"
+
+ install -D -m644 "${srcdir}/${_pkgbase}-${pkgver}/build/package/debian/root-system-bin.png" \
+ "${pkgdir}/usr/share/icons/hicolor/48x48/apps/root-system-bin.png"
+
+ # use a file that pacman can track instead of adding directly to ld.so.conf
+ install -d "${pkgdir}/etc/ld.so.conf.d"
+ echo '/usr/lib/root' > "${pkgdir}/etc/ld.so.conf.d/root.conf"
+
+ rm -rf "${pkgdir}/etc/root/daemons"
+}
+
+package_root-cuda-py2() {
+ pkgdesc='C++ data analysis framework and interpreter from CERN with GPU (CUDA) features enabled.'
+ provides=('root' 'python2-pyroot')
+ conflicts=('root' 'python2-pyroot')
+ depends+=('cuda')
+ cd "${srcdir}/build-cuda"
+
+ make DESTDIR="${pkgdir}" install
+
+ # fix python env call
+ sed -e 's/@python@/python2/' -i "${pkgdir}/usr/lib/root/cmdLineUtils.py"
+
+ # try to deal with weird PyROOT, PyMVA and JupyROOT stuff
+ install -d "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages"
+ ln -s "/usr/lib/root/ROOT.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/_pythonization.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/cmdLineUtils.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/cppyy.py" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/JsMVA/" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/JupyROOT/" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libPyROOT.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libPyMVA.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+ ln -s "/usr/lib/root/libJupyROOT.so" "${pkgdir}/usr/lib/python$(get_py2ver)/site-packages/"
+
+ install -D "${srcdir}/rootd" \
+ "${pkgdir}/etc/rc.d/rootd"
+ install -D -m644 "${srcdir}/root.xml" \
+ "${pkgdir}/usr/share/mime/packages/root.xml"
+
+ install -D -m644 "${srcdir}/${_pkgbase}-${pkgver}-cuda/build/package/debian/root-system-bin.desktop.in" \
+ "${pkgdir}/usr/share/applications/root-system-bin.desktop"
+
+ # replace @prefix@ with /usr for the desktop
+ sed -e 's_@prefix@_/usr_' -i "${pkgdir}/usr/share/applications/root-system-bin.desktop"
+
+ install -D -m644 "${srcdir}/${_pkgbase}-${pkgver}-cuda/build/package/debian/root-system-bin.png" \
+ "${pkgdir}/usr/share/icons/hicolor/48x48/apps/root-system-bin.png"
+
+ # use a file that pacman can track instead of adding directly to ld.so.conf
+ install -d "${pkgdir}/etc/ld.so.conf.d"
+ echo '/usr/lib/root' > "${pkgdir}/etc/ld.so.conf.d/root.conf"
+
+ rm -rf "${pkgdir}/etc/root/daemons"
+}
diff --git a/adding_directories_needed_to_use_libxml.patch b/adding_directories_needed_to_use_libxml.patch
new file mode 100644
index 000000000000..e6609e8c7651
--- /dev/null
+++ b/adding_directories_needed_to_use_libxml.patch
@@ -0,0 +1,22 @@
+From fa8d620472891f1f5a30a616469dea8b65453fe6 Mon Sep 17 00:00:00 2001
+From: Henry Fredrick Schreiner <henry.fredrick.schreiner@cern.ch>
+Date: Tue, 5 Feb 2019 14:41:51 +0100
+Subject: [PATCH] Adding directories needed to use LibXML
+
+---
+ io/xmlparser/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/io/xmlparser/CMakeLists.txt b/io/xmlparser/CMakeLists.txt
+index 09f4ba5d4dc..45108058136 100644
+--- a/io/xmlparser/CMakeLists.txt
++++ b/io/xmlparser/CMakeLists.txt
+@@ -3,7 +3,7 @@
+ # @author Pere Mato, CERN
+ ############################################################################
+
+-include_directories(${LIBXML2_INCLUDE_DIR})
++include_directories(${LIBXML2_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIRS})
+ add_definitions(${LIBXML2_DEFINITIONS})
+
+ if(WIN32)
diff --git a/fix_compile_time_install_clad.patch b/fix_compile_time_install_clad.patch
new file mode 100644
index 000000000000..4a46e80f380d
--- /dev/null
+++ b/fix_compile_time_install_clad.patch
@@ -0,0 +1,154 @@
+From b669d9e6428dfc231ced16c56669f35dfda0754e Mon Sep 17 00:00:00 2001
+From: Oksana Shadura <oksana.shadura@cern.ch>
+Date: Tue, 29 Jan 2019 20:42:39 +0100
+Subject: [PATCH] [ROOT-9924] Fixing compile time installation of clad in
+ CMAKE_INSTALL_PATH
+
+[ROOT-9924] Installing headers for clad
+---
+ CMakeLists.txt | 8 +++-
+ interpreter/CMakeLists.txt | 13 ------
+ .../cling/tools/plugins/clad/CMakeLists.txt | 41 +++++++++++--------
+ 3 files changed, 30 insertions(+), 32 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d7fa80406a6..74d24d4419c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -139,7 +139,7 @@ if (build_timing)
+ # FIXME: This currently will override the use of ccache if -Dbuild_timing=On -Dccache=On is passed.
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_COMMAND} -E time")
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time")
+- #set_property(GLOBAL PROPERTY RULE_LAUNCH_CUSTOM "${CMAKE_COMMAND} -E time")
++ #set_property(GLOBAL PROPERTY RULE_LAUNCH_CUSTOM "${CMAKE_COMMAND} -E time")
+ endif()
+
+ #---Enable CTest package -----------------------------------------------------------------------
+@@ -472,6 +472,12 @@ set(root_kernel_file kernel.json)
+ configure_file(etc/${root_kernel_dir}/${root_kernel_file}.in etc/${root_kernel_dir}/${root_kernel_file})
+ install(FILES ${CMAKE_BINARY_DIR}/etc/${root_kernel_dir}/${root_kernel_file} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/${root_kernel_dir})
+
++#---install clad header files-------------------------------------------------------------------
++if(clad)
++ install(DIRECTORY ${CMAKE_BINARY_DIR}/etc/cling/plugins/
++ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/cling/plugins)
++endif()
++
+ #---Configure Testing using CTest----------------------------------------------------------------
+ configure_file(${CMAKE_SOURCE_DIR}/cmake/modules/CTestCustom.cmake ${CMAKE_BINARY_DIR} COPYONLY)
+ if(testing)
+diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt
+index ffb89181141..7345246286e 100644
+--- a/interpreter/CMakeLists.txt
++++ b/interpreter/CMakeLists.txt
+@@ -29,19 +29,6 @@ set(LLVM_TOOL_LLVM_AR_BUILD OFF CACHE BOOL "")
+ set(CLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD OFF CACHE BOOL "")
+ set(LLVM_FORCE_USE_OLD_TOOLCHAIN ON CACHE BOOL "")
+
+-# FIXME: We cannot use etcdir or prefix from RootConfiguration.cmake because it
+-# is included very late.
+-if(gnuinstall)
+- set(prefix ${CMAKE_INSTALL_PREFIX})
+-else()
+- set(prefix ${ROOTSYS})
+-endif()
+-if(IS_ABSOLUTE ${CMAKE_INSTALL_SYSCONFDIR})
+- set(etcdir ${CMAKE_INSTALL_SYSCONFDIR})
+-else()
+- set(etcdir ${prefix}/${CMAKE_INSTALL_SYSCONFDIR})
+-endif()
+-set(CLING_PLUGIN_INSTALL_PREFIX "${etcdir}/cling/plugins/" CACHE STRING "" FORCE)
+ set(LLVM_DIR "${CMAKE_BINARY_DIR}/interpreter/llvm/src")
+ if (clad)
+ set(CLING_BUILD_PLUGINS ON)
+diff --git a/interpreter/cling/tools/plugins/clad/CMakeLists.txt b/interpreter/cling/tools/plugins/clad/CMakeLists.txt
+index b6f53fb37b9..e2db703248c 100644
+--- a/interpreter/cling/tools/plugins/clad/CMakeLists.txt
++++ b/interpreter/cling/tools/plugins/clad/CMakeLists.txt
+@@ -6,12 +6,19 @@
+ # LICENSE.TXT for details.
+ #-------------------------------------------------------------------------------
+
+-set(_clad_byproduct_binary_dir
+- ${CMAKE_CURRENT_BINARY_DIR}/clad-prefix/src/clad-build/)
+-set(CLADDIFFERENTIATOR_LIB
+- ${_clad_byproduct_binary_dir}/lib/Differentiator/${CMAKE_STATIC_LIBRARY_PREFIX}cladDifferentiator${CMAKE_STATIC_LIBRARY_SUFFIX}
+- ${_clad_byproduct_binary_dir}/tools/${CMAKE_STATIC_LIBRARY_PREFIX}cladPlugin${CMAKE_STATIC_LIBRARY_SUFFIX}
++set(clad_install_dir ${CMAKE_BINARY_DIR}/etc/cling/)
++# Specify include dirs for clad
++set(CLAD_INCLUDE_DIRS ${clad_install_dir})
++# Clad Libraries
++set(_CLAD_LIBRARY_PATH ${clad_install_dir}/plugins/lib)
++
++# build byproducts only needed by Ninja
++if("${CMAKE_GENERATOR}" STREQUAL "Ninja")
++ set(CLAD_BYPRODUCTS
++ ${_CLAD_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}cladPlugin${CMAKE_STATIC_LIBRARY_SUFFIX}
++ ${_CLAD_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}cladDifferentiator${CMAKE_STATIC_LIBRARY_SUFFIX}
+ )
++endif()
+
+ if(MSVC)
+ if (winrtdebug)
+@@ -25,14 +32,16 @@ if(MSVC)
+ GIT_TAG v0.4
+ UPDATE_COMMAND ""
+ CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCLAD_BUILD_STATIC_ONLY=ON
+- -DCMAKE_INSTALL_PREFIX=${CLING_PLUGIN_INSTALL_PREFIX}
++ -DCMAKE_INSTALL_PREFIX=${clad_install_dir}/plugins
+ -DCLAD_PATH_TO_LLVM_BUILD=${LLVM_BINARY_DIR}
+ -DCLANG_INCLUDE_DIRS=${CLANG_INCLUDE_DIRS}
+ BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${_clad_build_type}
++ INSTALL_COMMAND ${CMAKE_COMMAND} --build . --config ${_clad_build_type} --target install
+ # Wrap download, configure and build steps in a script to log output
+ LOG_DOWNLOAD ON
+ LOG_CONFIGURE ON
+ LOG_BUILD ON
++ LOG_INSTALL ON
+ # We need the target clangBasic to be built before building clad. However, we
+ # support building prebuilt clang and adding clangBasic breaks this case.
+ # Delegate the dependency resolution to the clingInterpreter target (which
+@@ -58,16 +67,19 @@ else()
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_INSTALL_PREFIX=${CLING_PLUGIN_INSTALL_PREFIX}
++ -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
+ -DCLAD_PATH_TO_LLVM_BUILD=${LLVM_BINARY_DIR}
+ -DCLANG_INCLUDE_DIRS=${CLANG_INCLUDE_DIRS}
+ -DCLAD_BUILD_STATIC_ONLY=ON
+ ${_clad_extra_cmake_args}
+- BUILD_BYPRODUCTS ${CLADDIFFERENTIATOR_LIB}
++ INSTALL_COMMAND env DESTDIR=${CMAKE_BINARY_DIR}/plugins ${CMAKE_COMMAND} --build . --target install
++ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/plugins/${CMAKE_INSTALL_PREFIX}/ ${clad_install_dir}/plugins
++ BUILD_BYPRODUCTS ${CLAD_BYPRODUCTS}
+ # Wrap download, configure and build steps in a script to log output
+ LOG_DOWNLOAD ON
+ LOG_CONFIGURE ON
+ LOG_BUILD ON
++ LOG_INSTALL ON
+ # We need the target clangBasic to be built before building clad. However, we
+ # support building prebuilt clang and adding clangBasic breaks this case.
+ # Delegate the dependency resolution to the clingInterpreter target (which
+@@ -76,18 +88,11 @@ else()
+ )
+ endif()
+
+-# Specify include dirs for clad
+-ExternalProject_Get_Property(clad source_dir)
+-set(CLAD_INCLUDE_DIRS ${source_dir}/clad/include/)
+-
+-# Libraries
+-ExternalProject_Get_Property(clad binary_dir)
+-set(_CLAD_LIBRARY_PATH ${binary_dir})
+-
+ # Register cladPlugin, cladDifferentiator
+ foreach (lib cladPlugin cladDifferentiator)
+ add_library(${lib} IMPORTED STATIC GLOBAL)
+ add_dependencies(${lib} clad)
+ endforeach()
+-set_property(TARGET cladPlugin PROPERTY IMPORTED_LOCATION ${_CLAD_LIBRARY_PATH}/tools/${_clad_build_type}/${CMAKE_STATIC_LIBRARY_PREFIX}cladPlugin${CMAKE_STATIC_LIBRARY_SUFFIX})
+-set_property(TARGET cladDifferentiator PROPERTY IMPORTED_LOCATION ${_CLAD_LIBRARY_PATH}/lib/Differentiator/${_clad_build_type}/${CMAKE_STATIC_LIBRARY_PREFIX}cladDifferentiator${CMAKE_STATIC_LIBRARY_SUFFIX})
++
++set_property(TARGET cladPlugin PROPERTY IMPORTED_LOCATION ${_CLAD_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}cladPlugin${CMAKE_STATIC_LIBRARY_SUFFIX})
++set_property(TARGET cladDifferentiator PROPERTY IMPORTED_LOCATION ${_CLAD_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}cladDifferentiator${CMAKE_STATIC_LIBRARY_SUFFIX})
diff --git a/rename_based_fix_for_rconfig_on_case_sensitive_systems.patch b/rename_based_fix_for_rconfig_on_case_sensitive_systems.patch
new file mode 100644
index 000000000000..a92fe0adba16
--- /dev/null
+++ b/rename_based_fix_for_rconfig_on_case_sensitive_systems.patch
@@ -0,0 +1,723 @@
+From 183c4161893e29f1c673dad3dd2d17d688167701 Mon Sep 17 00:00:00 2001
+From: Henry Fredrick Schreiner <henry.fredrick.schreiner@cern.ch>
+Date: Fri, 1 Feb 2019 08:41:47 +0100
+Subject: [PATCH] Rename based fix for RConfig on case-insensitive systems
+
+(cherry picked from commit 19e4890c9c5e42de75e3d6c63066d16a11ed1766)
+---
+ build/unix/module.modulemap | 4 +++-
+ build/win/makeresource.sh | 2 +-
+ core/base/inc/RConfig.h | 6 +++---
+ core/base/inc/ROOT/{RConfig.h => RConfig.hxx} | 0
+ core/base/inc/RStipples.h | 2 +-
+ core/base/inc/Rstrstream.h | 2 +-
+ core/base/inc/RtypesCore.h | 2 +-
+ core/base/inc/Strlen.h | 2 +-
+ core/base/inc/TException.h | 2 +-
+ core/base/src/String.cxx | 2 +-
+ core/base/src/TDatime.cxx | 2 +-
+ core/base/src/TROOT.cxx | 2 +-
+ core/base/src/TString.cxx | 2 +-
+ core/clib/inc/snprintf.h | 2 +-
+ core/clib/inc/strlcpy.h | 2 +-
+ core/clib/res/mmconfig.h | 2 +-
+ core/clib/src/snprintf.c | 2 +-
+ core/clib/src/strlcat.c | 2 +-
+ core/clib/src/strlcpy.c | 2 +-
+ core/clingutils/src/RStl.cxx | 2 +-
+ core/clingutils/src/TClingUtils.cxx | 2 +-
+ core/dictgen/src/TModuleGenerator.cxx | 2 +-
+ core/dictgen/src/rootcling_impl.cxx | 2 +-
+ core/foundation/inc/TClassEdit.h | 2 +-
+ core/lz4/src/ZipLZ4.cxx | 2 +-
+ core/rootcling_stage1/src/rootcling_stage1.cxx | 2 +-
+ core/thread/inc/ThreadLocalStorage.h | 2 +-
+ core/unix/src/TUnixSystem.cxx | 2 +-
+ graf2d/mathtext/src/fontembed.cxx | 2 +-
+ graf2d/mathtext/src/fontembedps.cxx | 2 +-
+ io/gfal/src/TGFALFile.cxx | 2 +-
+ io/io/src/TFile.cxx | 2 +-
+ main/src/hadd.cxx | 2 +-
+ main/src/pmain.cxx | 2 +-
+ main/src/rootcling.cxx | 2 +-
+ misc/memstat/src/TMemStatHook.cxx | 2 +-
+ net/net/src/TApplicationServer.cxx | 2 +-
+ net/net/src/TFTP.cxx | 2 +-
+ net/rpdutils/src/daemon.cxx | 2 +-
+ net/rpdutils/src/net.cxx | 2 +-
+ net/rpdutils/src/netpar.cxx | 2 +-
+ net/rpdutils/src/rpdconn.cxx | 2 +-
+ net/rpdutils/src/rpdutils.cxx | 3 ++-
+ proof/proof/src/TProofServ.cxx | 2 +-
+ proof/proof/src/TProofServLite.cxx | 2 +-
+ proof/proofd/inc/XrdProofdPlatform.h | 2 +-
+ proof/proofx/src/TXProofServ.cxx | 2 +-
+ roofit/roofitcore/inc/RooFit.h | 2 +-
+ tree/dataframe/src/RSqliteDS.cxx | 2 +-
+ tree/dataframe/test/datasource_sqlite.cxx | 2 +-
+ tree/tree/src/TTree.cxx | 2 +-
+ 51 files changed, 55 insertions(+), 52 deletions(-)
+ rename core/base/inc/ROOT/{RConfig.h => RConfig.hxx} (100%)
+
+diff --git a/build/unix/module.modulemap b/build/unix/module.modulemap
+index 5f4f685b2fb..da55cc3b54e 100644
+--- a/build/unix/module.modulemap
++++ b/build/unix/module.modulemap
+@@ -14,7 +14,9 @@ module ROOT_Foundation_C {
+ module ROOT_Config {
+ // These headers are supposed to be only textually expanded for each TU.
+ module "RVersion.h" { textual header "RVersion.h" export * }
+- module "RConfig.h" { textual header "RConfig.h" export * }
++ module "RConfig.h" { header "RConfig.h" export * }
++ module "ROOT/RConfig.h" { header "ROOT/RConfig.h" export * }
++ module "ROOT/RConfig.hxx" { textual header "ROOT/RConfig.hxx" export * }
+ module "RConfigure.h" { textual header "RConfigure.h" export * }
+ // FIXME: There is little benefit in keeping DllImport as a separate header.
+ // The majority of its uses already include Rtypes.h which includes DllImport.
+diff --git a/build/win/makeresource.sh b/build/win/makeresource.sh
+index d33a1898f32..aab7d3e6371 100755
+--- a/build/win/makeresource.sh
++++ b/build/win/makeresource.sh
+@@ -56,7 +56,7 @@ cat > $RC <<EOF
+ // ROOT version resource file for $FILENAME
+ // Generated by $0 on $DATE
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <windows.h>
+ #include <winver.h>
+
+diff --git a/core/base/inc/RConfig.h b/core/base/inc/RConfig.h
+index cc08a99daca..9f84c71f141 100644
+--- a/core/base/inc/RConfig.h
++++ b/core/base/inc/RConfig.h
+@@ -13,13 +13,13 @@
+
+ /*************************************************************************
+ * *
+- * Old RConfig.h forwarding to ROOT/RConfig.h *
++ * Old RConfig.h forwarding to ROOT/RConfig.hxx *
+ * *
+- * Please #include ROOT/RConfig.h instead, e.g. to avoid clashes with *
++ * Please #include ROOT/RConfig.hxx instead, e.g. to avoid clashes with *
+ * R's Rconfig.h *
+ * *
+ *************************************************************************/
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #endif // ROOT_RConfig_fwd
+diff --git a/core/base/inc/ROOT/RConfig.h b/core/base/inc/ROOT/RConfig.hxx
+similarity index 100%
+rename from core/base/inc/ROOT/RConfig.h
+rename to core/base/inc/ROOT/RConfig.hxx
+diff --git a/core/base/inc/RStipples.h b/core/base/inc/RStipples.h
+index 341248e77c5..fe3b4f1109c 100644
+--- a/core/base/inc/RStipples.h
++++ b/core/base/inc/RStipples.h
+@@ -11,7 +11,7 @@
+ #ifndef ROOT_Stipples
+ #define ROOT_Stipples
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ //////////////////////////////////////////////////////////////////////////
+ // //
+diff --git a/core/base/inc/Rstrstream.h b/core/base/inc/Rstrstream.h
+index 3d059ab0bf7..5562908f54a 100644
+--- a/core/base/inc/Rstrstream.h
++++ b/core/base/inc/Rstrstream.h
+@@ -12,7 +12,7 @@
+ #ifndef ROOT_Rstrstream
+ #define ROOT_Rstrstream
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #if defined(R__ANSISTREAM)
+ # if defined(R__SSTREAM)
+diff --git a/core/base/inc/RtypesCore.h b/core/base/inc/RtypesCore.h
+index ed7941509c1..21fde2632bc 100644
+--- a/core/base/inc/RtypesCore.h
++++ b/core/base/inc/RtypesCore.h
+@@ -20,7 +20,7 @@
+ //////////////////////////////////////////////////////////////////////////
+
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include <stddef.h> // size_t, NULL
+
+diff --git a/core/base/inc/Strlen.h b/core/base/inc/Strlen.h
+index 085c402c6df..355780fabc4 100644
+--- a/core/base/inc/Strlen.h
++++ b/core/base/inc/Strlen.h
+@@ -11,7 +11,7 @@
+ #ifndef ROOT_Strlen
+ #define ROOT_Strlen
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #ifdef NEED_STRING
+ #include <string.h>
+diff --git a/core/base/inc/TException.h b/core/base/inc/TException.h
+index 450cdd1e39a..0e845f0647b 100644
+--- a/core/base/inc/TException.h
++++ b/core/base/inc/TException.h
+@@ -29,7 +29,7 @@ struct sigjmp_buf;
+ struct jmp_buf;
+ #endif
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "DllImport.h"
+
+ struct ExceptionContext_t {
+diff --git a/core/base/src/String.cxx b/core/base/src/String.cxx
+index 436104c0ad9..3661ea3c34a 100644
+--- a/core/base/src/String.cxx
++++ b/core/base/src/String.cxx
+@@ -15,7 +15,7 @@
+ // //
+ //////////////////////////////////////////////////////////////////////////
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <string>
+ #include "TBuffer.h"
+
+diff --git a/core/base/src/TDatime.cxx b/core/base/src/TDatime.cxx
+index 1ef321ef448..28993d8a6de 100644
+--- a/core/base/src/TDatime.cxx
++++ b/core/base/src/TDatime.cxx
+@@ -24,7 +24,7 @@ date/time of data taking events and the like. If absolute time is
+ required, use TTimeStamp.
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include <time.h>
+
+diff --git a/core/base/src/TROOT.cxx b/core/base/src/TROOT.cxx
+index 014739c355d..073b54d3d25 100644
+--- a/core/base/src/TROOT.cxx
++++ b/core/base/src/TROOT.cxx
+@@ -66,7 +66,7 @@ of a main program creating an interactive version is shown below:
+ ~~~
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "RConfigure.h"
+ #include "RConfigOptions.h"
+ #include "RVersion.h"
+diff --git a/core/base/src/TString.cxx b/core/base/src/TString.cxx
+index 31673a53b44..a4f2b65b0ce 100644
+--- a/core/base/src/TString.cxx
++++ b/core/base/src/TString.cxx
+@@ -35,7 +35,7 @@ as a TString, construct a TString from it, eg:
+ ~~~
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include <list>
+diff --git a/core/clib/inc/snprintf.h b/core/clib/inc/snprintf.h
+index 4c8c85510ec..05466a001c8 100644
+--- a/core/clib/inc/snprintf.h
++++ b/core/clib/inc/snprintf.h
+@@ -10,7 +10,7 @@
+ #ifndef ROOT_snprintf
+ #define ROOT_snprintf
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <stdio.h>
+
+ #ifndef __CINT__
+diff --git a/core/clib/inc/strlcpy.h b/core/clib/inc/strlcpy.h
+index d457d4a409d..460ac9e8599 100644
+--- a/core/clib/inc/strlcpy.h
++++ b/core/clib/inc/strlcpy.h
+@@ -9,7 +9,7 @@
+ #ifndef ROOT_strlcpy
+ #define ROOT_strlcpy
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #ifndef HAS_STRLCPY
+
+diff --git a/core/clib/res/mmconfig.h b/core/clib/res/mmconfig.h
+index 347c506c685..7adab9a5271 100644
+--- a/core/clib/res/mmconfig.h
++++ b/core/clib/res/mmconfig.h
+@@ -11,7 +11,7 @@
+ #ifndef MMCONFIG_H
+ #define MMCONFIG_H
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #ifndef WIN32
+ # ifndef INVALID_HANDLE_VALUE
+diff --git a/core/clib/src/snprintf.c b/core/clib/src/snprintf.c
+index ec898bad925..b3b90e9840c 100644
+--- a/core/clib/src/snprintf.c
++++ b/core/clib/src/snprintf.c
+@@ -34,7 +34,7 @@
+ #include <stdio.h>
+ #include <string.h>
+
+-#include <ROOT/RConfig.h> /* for NEED_SNPRINTF */
++#include <ROOT/RConfig.hxx> /* for NEED_SNPRINTF */
+
+ #if defined(NEED_SNPRINTF) || defined(SNTEST)
+
+diff --git a/core/clib/src/strlcat.c b/core/clib/src/strlcat.c
+index cbcab1473a8..d543461531c 100644
+--- a/core/clib/src/strlcat.c
++++ b/core/clib/src/strlcat.c
+@@ -16,7 +16,7 @@
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+-#include <ROOT/RConfig.h> /* for HAS_STRLCPY */
++#include <ROOT/RConfig.hxx> /* for HAS_STRLCPY */
+
+ #ifndef HAS_STRLCPY
+
+diff --git a/core/clib/src/strlcpy.c b/core/clib/src/strlcpy.c
+index 80bc67ce221..16001845bd1 100644
+--- a/core/clib/src/strlcpy.c
++++ b/core/clib/src/strlcpy.c
+@@ -16,7 +16,7 @@
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+-#include <ROOT/RConfig.h> /* for HAS_STRLCPY */
++#include <ROOT/RConfig.hxx> /* for HAS_STRLCPY */
+
+ #ifndef HAS_STRLCPY
+
+diff --git a/core/clingutils/src/RStl.cxx b/core/clingutils/src/RStl.cxx
+index bd97c1f1300..d7e40c60cc8 100644
+--- a/core/clingutils/src/RStl.cxx
++++ b/core/clingutils/src/RStl.cxx
+@@ -10,7 +10,7 @@
+ *************************************************************************/
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include "RStl.h"
+ #include "TClassEdit.h"
+diff --git a/core/clingutils/src/TClingUtils.cxx b/core/clingutils/src/TClingUtils.cxx
+index 1a9eb1ca565..02abe7a6630 100644
+--- a/core/clingutils/src/TClingUtils.cxx
++++ b/core/clingutils/src/TClingUtils.cxx
+@@ -24,7 +24,7 @@
+ #include <unordered_set>
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "Rtypes.h"
+
+ #include "RStl.h"
+diff --git a/core/dictgen/src/TModuleGenerator.cxx b/core/dictgen/src/TModuleGenerator.cxx
+index b6c35bfaa11..73b406f49c8 100644
+--- a/core/dictgen/src/TModuleGenerator.cxx
++++ b/core/dictgen/src/TModuleGenerator.cxx
+@@ -20,7 +20,7 @@
+
+ #include "TClingUtils.h"
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include "cling/Interpreter/CIFactory.h"
+ #include "clang/Basic/SourceManager.h"
+diff --git a/core/dictgen/src/rootcling_impl.cxx b/core/dictgen/src/rootcling_impl.cxx
+index d301d4c5efa..fdb2647dd76 100644
+--- a/core/dictgen/src/rootcling_impl.cxx
++++ b/core/dictgen/src/rootcling_impl.cxx
+@@ -167,7 +167,7 @@ const char *rootClingHelp =
+ #include "rootcling_impl.h"
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include <iostream>
+ #include <iomanip>
+diff --git a/core/foundation/inc/TClassEdit.h b/core/foundation/inc/TClassEdit.h
+index 391523d5691..fbbb7165123 100644
+--- a/core/foundation/inc/TClassEdit.h
++++ b/core/foundation/inc/TClassEdit.h
+@@ -13,7 +13,7 @@
+ #ifndef ROOT_TClassEdit
+ #define ROOT_TClassEdit
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "RConfigure.h"
+ #include <stdlib.h>
+ #ifdef R__WIN32
+diff --git a/core/lz4/src/ZipLZ4.cxx b/core/lz4/src/ZipLZ4.cxx
+index 9e7cf3b2d46..8dfcf2cde1b 100644
+--- a/core/lz4/src/ZipLZ4.cxx
++++ b/core/lz4/src/ZipLZ4.cxx
+@@ -10,7 +10,7 @@
+
+ #include "ZipLZ4.h"
+
+-#include "ROOT/RConfig.h"
++#include "ROOT/RConfig.hxx"
+
+ #include <cinttypes>
+ #include <cstdint>
+diff --git a/core/rootcling_stage1/src/rootcling_stage1.cxx b/core/rootcling_stage1/src/rootcling_stage1.cxx
+index cd60a9c8c0f..440efe79f96 100644
+--- a/core/rootcling_stage1/src/rootcling_stage1.cxx
++++ b/core/rootcling_stage1/src/rootcling_stage1.cxx
+@@ -10,7 +10,7 @@
+
+ #include "rootcling_impl.h"
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <stdlib.h>
+
+ extern "C" {
+diff --git a/core/thread/inc/ThreadLocalStorage.h b/core/thread/inc/ThreadLocalStorage.h
+index 99bf25292eb..51ee894adf1 100644
+--- a/core/thread/inc/ThreadLocalStorage.h
++++ b/core/thread/inc/ThreadLocalStorage.h
+@@ -61,7 +61,7 @@
+ #include "RtypesCore.h"
+ #endif
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include "RConfigure.h"
+
+diff --git a/core/unix/src/TUnixSystem.cxx b/core/unix/src/TUnixSystem.cxx
+index e5ac06b2968..cad40f537ed 100644
+--- a/core/unix/src/TUnixSystem.cxx
++++ b/core/unix/src/TUnixSystem.cxx
+@@ -18,7 +18,7 @@
+ //////////////////////////////////////////////////////////////////////////
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "TUnixSystem.h"
+ #include "TROOT.h"
+ #include "TError.h"
+diff --git a/graf2d/mathtext/src/fontembed.cxx b/graf2d/mathtext/src/fontembed.cxx
+index cf38f693f90..4bfe6b17ba6 100644
+--- a/graf2d/mathtext/src/fontembed.cxx
++++ b/graf2d/mathtext/src/fontembed.cxx
+@@ -25,7 +25,7 @@
+ #endif
+
+ // ROOT integration
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #ifdef R__BYTESWAP
+ #ifndef LITTLE_ENDIAN
+ #define LITTLE_ENDIAN 1
+diff --git a/graf2d/mathtext/src/fontembedps.cxx b/graf2d/mathtext/src/fontembedps.cxx
+index 59a9996413b..0947f015b82 100644
+--- a/graf2d/mathtext/src/fontembedps.cxx
++++ b/graf2d/mathtext/src/fontembedps.cxx
+@@ -25,7 +25,7 @@
+ #endif
+
+ // ROOT integration
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #ifdef R__BYTESWAP
+ #ifndef LITTLE_ENDIAN
+ #define LITTLE_ENDIAN 1
+diff --git a/io/gfal/src/TGFALFile.cxx b/io/gfal/src/TGFALFile.cxx
+index c99d01b0849..fd2d458a606 100644
+--- a/io/gfal/src/TGFALFile.cxx
++++ b/io/gfal/src/TGFALFile.cxx
+@@ -44,7 +44,7 @@ Note that for the TGFALFile plugin to work, all these pathnames
+ should be prepended by gfal:.
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "TROOT.h"
+ #include "TUrl.h"
+
+diff --git a/io/io/src/TFile.cxx b/io/io/src/TFile.cxx
+index 4c082f7930c..2500990c8e3 100644
+--- a/io/io/src/TFile.cxx
++++ b/io/io/src/TFile.cxx
+@@ -71,7 +71,7 @@ End_Macro
+ The structure of a directory is shown in TDirectoryFile::TDirectoryFile
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #ifdef R__LINUX
+ // for posix_fadvise
+diff --git a/main/src/hadd.cxx b/main/src/hadd.cxx
+index a30f76e59a9..a0db30b0f8c 100644
+--- a/main/src/hadd.cxx
++++ b/main/src/hadd.cxx
+@@ -70,7 +70,7 @@
+ Toby Burnett implemented the possibility to use indirect files.
+ */
+ #include "Compression.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "ROOT/TIOFeatures.hxx"
+ #include <string>
+ #include "TFile.h"
+diff --git a/main/src/pmain.cxx b/main/src/pmain.cxx
+index 921cbd46ef6..168a136d87e 100644
+--- a/main/src/pmain.cxx
++++ b/main/src/pmain.cxx
+@@ -30,7 +30,7 @@
+ #include <stdlib.h>
+ #include <sys/types.h>
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "RConfigure.h"
+ #ifdef R__AFS
+ #include "TAFS.h"
+diff --git a/main/src/rootcling.cxx b/main/src/rootcling.cxx
+index 2d9660248a0..09aa0bd8ef7 100644
+--- a/main/src/rootcling.cxx
++++ b/main/src/rootcling.cxx
+@@ -12,7 +12,7 @@
+ #include "rootclingIO.h"
+ #include "rootcling_impl.h"
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "TSystem.h"
+
+ extern "C" {
+diff --git a/misc/memstat/src/TMemStatHook.cxx b/misc/memstat/src/TMemStatHook.cxx
+index 45f3f3736e4..e17d8347e6e 100644
+--- a/misc/memstat/src/TMemStatHook.cxx
++++ b/misc/memstat/src/TMemStatHook.cxx
+@@ -12,7 +12,7 @@
+ #include <iostream>
+ // MemStat
+ #include "TMemStatHook.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ // TODO: move it to a separate file
+ #if defined(__APPLE__)
+diff --git a/net/net/src/TApplicationServer.cxx b/net/net/src/TApplicationServer.cxx
+index 1916f7bfafa..c57fa94f291 100644
+--- a/net/net/src/TApplicationServer.cxx
++++ b/net/net/src/TApplicationServer.cxx
+@@ -19,7 +19,7 @@
+ //////////////////////////////////////////////////////////////////////////
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "Riostream.h"
+
+ #ifdef WIN32
+diff --git a/net/net/src/TFTP.cxx b/net/net/src/TFTP.cxx
+index 718ecba3d4b..85a29167e98 100644
+--- a/net/net/src/TFTP.cxx
++++ b/net/net/src/TFTP.cxx
+@@ -19,7 +19,7 @@
+ // //
+ //////////////////////////////////////////////////////////////////////////
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include <fcntl.h>
+ #include <errno.h>
+diff --git a/net/rpdutils/src/daemon.cxx b/net/rpdutils/src/daemon.cxx
+index 90151846ea8..a3f65fae445 100644
+--- a/net/rpdutils/src/daemon.cxx
++++ b/net/rpdutils/src/daemon.cxx
+@@ -38,7 +38,7 @@
+ #include <sys/wait.h>
+ #endif
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #ifndef NOFILE
+ # define NOFILE 0
+diff --git a/net/rpdutils/src/net.cxx b/net/rpdutils/src/net.cxx
+index 84b1fc83ef9..981bfa18e96 100644
+--- a/net/rpdutils/src/net.cxx
++++ b/net/rpdutils/src/net.cxx
+@@ -17,7 +17,7 @@
+ // //
+ //////////////////////////////////////////////////////////////////////////
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #include <stdio.h>
+ #include <string.h>
+diff --git a/net/rpdutils/src/netpar.cxx b/net/rpdutils/src/netpar.cxx
+index 206c7438aac..00f759a6c9c 100644
+--- a/net/rpdutils/src/netpar.cxx
++++ b/net/rpdutils/src/netpar.cxx
+@@ -18,7 +18,7 @@
+ // //
+ //////////////////////////////////////////////////////////////////////////
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ // avoid warning due to wrong bzero prototype (used by FD_ZERO macro)
+ #include <stdio.h>
+diff --git a/net/rpdutils/src/rpdconn.cxx b/net/rpdutils/src/rpdconn.cxx
+index 7b3a2ad0f66..7fb6fa89414 100644
+--- a/net/rpdutils/src/rpdconn.cxx
++++ b/net/rpdutils/src/rpdconn.cxx
+@@ -32,7 +32,7 @@
+ #include <sys/types.h>
+ #include <sys/un.h>
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ #define RPD_MAXLEN 8192
+
+diff --git a/net/rpdutils/src/rpdutils.cxx b/net/rpdutils/src/rpdutils.cxx
+index b80190ab37a..a29ffed71e4 100644
+--- a/net/rpdutils/src/rpdutils.cxx
++++ b/net/rpdutils/src/rpdutils.cxx
+@@ -18,7 +18,8 @@
+ //////////////////////////////////////////////////////////////////////////
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include "TError.h"
++#include <ROOT/RConfig.hxx>
+
+ #include <ctype.h>
+ #include <fcntl.h>
+diff --git a/proof/proof/src/TProofServ.cxx b/proof/proof/src/TProofServ.cxx
+index 9868f9f0161..61d6c96c7b8 100644
+--- a/proof/proof/src/TProofServ.cxx
++++ b/proof/proof/src/TProofServ.cxx
+@@ -20,7 +20,7 @@ master server.
+ */
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "Riostream.h"
+
+ #ifdef WIN32
+diff --git a/proof/proof/src/TProofServLite.cxx b/proof/proof/src/TProofServLite.cxx
+index e65e77e095e..b395c7e3482 100644
+--- a/proof/proof/src/TProofServLite.cxx
++++ b/proof/proof/src/TProofServLite.cxx
+@@ -30,7 +30,7 @@ eliminated, optimizing the number of messages exchanged and created / destroyed.
+ //////////////////////////////////////////////////////////////////////////
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "Riostream.h"
+
+ #ifdef WIN32
+diff --git a/proof/proofd/inc/XrdProofdPlatform.h b/proof/proofd/inc/XrdProofdPlatform.h
+index 8c468964bc3..3fd8034ecf6 100644
+--- a/proof/proofd/inc/XrdProofdPlatform.h
++++ b/proof/proofd/inc/XrdProofdPlatform.h
+@@ -23,7 +23,7 @@
+ // //
+ //////////////////////////////////////////////////////////////////////////
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ // 32 or 64 bits
+ #if ((defined(__hpux) && defined(__LP64__)) || \
+diff --git a/proof/proofx/src/TXProofServ.cxx b/proof/proofx/src/TXProofServ.cxx
+index 46c8ab0d27f..5f7b450e462 100644
+--- a/proof/proofx/src/TXProofServ.cxx
++++ b/proof/proofx/src/TXProofServ.cxx
+@@ -18,7 +18,7 @@ for the underlying connection technology.
+ */
+
+ #include "RConfigure.h"
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "Riostream.h"
+
+ #ifdef WIN32
+diff --git a/roofit/roofitcore/inc/RooFit.h b/roofit/roofitcore/inc/RooFit.h
+index 240cae4db44..0920855a7bd 100644
+--- a/roofit/roofitcore/inc/RooFit.h
++++ b/roofit/roofitcore/inc/RooFit.h
+@@ -16,7 +16,7 @@
+ #ifndef ROO_FIT
+ #define ROO_FIT
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+
+ // Global include file to fix occasional compiler issues
+ // An error in the construction of the system and C++ header files on
+diff --git a/tree/dataframe/src/RSqliteDS.cxx b/tree/dataframe/src/RSqliteDS.cxx
+index 0b7586a988f..fa168c9434d 100644
+--- a/tree/dataframe/src/RSqliteDS.cxx
++++ b/tree/dataframe/src/RSqliteDS.cxx
+@@ -17,7 +17,7 @@
+ // clang-format on
+
+ #include <ROOT/RSqliteDS.hxx>
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <ROOT/RDF/Utils.hxx>
+ #include <ROOT/RMakeUnique.hxx>
+
+diff --git a/tree/dataframe/test/datasource_sqlite.cxx b/tree/dataframe/test/datasource_sqlite.cxx
+index 73028008467..97004e94d7d 100644
+--- a/tree/dataframe/test/datasource_sqlite.cxx
++++ b/tree/dataframe/test/datasource_sqlite.cxx
+@@ -1,4 +1,4 @@
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include <ROOT/RDataFrame.hxx>
+ #include <ROOT/RMakeUnique.hxx>
+ #include <ROOT/RSqliteDS.hxx>
+diff --git a/tree/tree/src/TTree.cxx b/tree/tree/src/TTree.cxx
+index ffd238d3136..80ce55f3800 100644
+--- a/tree/tree/src/TTree.cxx
++++ b/tree/tree/src/TTree.cxx
+@@ -333,7 +333,7 @@ End_Macro
+ ~~~
+ */
+
+-#include <ROOT/RConfig.h>
++#include <ROOT/RConfig.hxx>
+ #include "TTree.h"
+
+ #include "ROOT/TIOFeatures.hxx"
diff --git a/root.xml b/root.xml
new file mode 100644
index 000000000000..eb2c73eea473
--- /dev/null
+++ b/root.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-root">
+ <comment>ROOT file</comment>
+ <comment xml:lang="de">ROOT-Datei</comment>
+ <comment xml:lang="en">ROOT-File</comment>
+ <comment xml:lang="fr">ROOT-Fichier</comment>
+ <comment xml:lang="it">ROOT-File</comment>
+ <glob pattern="*.root"/>
+ <magic priority="80">
+ <match value="root" type="string" offset="0:64"/>
+ </magic>
+ </mime-type>
+</mime-info>
diff --git a/rootd b/rootd
new file mode 100644
index 000000000000..3767e57f09f8
--- /dev/null
+++ b/rootd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/rootd`
+case "$1" in
+ start)
+ stat_busy "Starting ROOT file server daemon"
+ [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/rootd`
+ echo $PID >/var/run/rootd.pid
+ add_daemon rootd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ROOT file server daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon rootd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/settings-cuda.cmake b/settings-cuda.cmake
new file mode 100644
index 000000000000..0e1ad26cd627
--- /dev/null
+++ b/settings-cuda.cmake
@@ -0,0 +1,115 @@
+set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
+set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) # this option is currently incompatible
+set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_SYSCONFDIR /etc/root CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_DATAROOTDIR /usr/share CACHE PATH "" FORCE)
+set (afdsmgrd OFF CACHE BOOL "" FORCE) # broken, bug in string_view include
+set (alien OFF CACHE BOOL "" FORCE)
+set (all OFF CACHE BOOL "" FORCE)
+set (asimage ON CACHE BOOL "" FORCE)
+set (astiff ON CACHE BOOL "" FORCE)
+set (bonjour OFF CACHE BOOL "" FORCE) # depricated
+set (builtin_afterimage OFF CACHE BOOL "" FORCE)
+set (builtin_clang ON CACHE BOOL "" FORCE)
+set (CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "" FORCE)
+set (CLANG_ANALYZER_BUILD_Z3 ON CACHE BOOL "" FORCE)
+set (builtin_cfitsio OFF CACHE BOOL "" FORCE)
+set (builtin_davix OFF CACHE BOOL "" FORCE)
+set (builtin_fftw3 OFF CACHE BOOL "" FORCE)
+set (builtin_ftgl OFF CACHE BOOL "" FORCE)
+set (builtin_freetype OFF CACHE BOOL "" FORCE)
+set (builtin_gl2ps OFF CACHE BOOL "" FORCE)
+set (builtin_glew OFF CACHE BOOL "" FORCE)
+set (builtin_gsl OFF CACHE BOOL "" FORCE)
+set (builtin_lzma OFF CACHE BOOL "" FORCE)
+set (builtin_llvm ON CACHE BOOL "" FORCE)
+set (builtin_openssl OFF CACHE BOOL "" FORCE)
+set (builtin_pcre OFF CACHE BOOL "" FORCE)
+set (builtin_tbb OFF CACHE BOOL "" FORCE)
+set (builtin_unuran OFF CACHE BOOL "" FORCE)
+set (builtin_vc OFF CACHE BOOL "" FORCE)
+set (builtin_xxhash OFF CACHE BOOL "" FORCE)
+set (builtin_xrootd OFF CACHE BOOL "" FORCE)
+set (builtin_zlib OFF CACHE BOOL "" FORCE)
+set (castor OFF CACHE BOOL "" FORCE)
+set (ccache OFF CACHE BOOL "" FORCE)
+set (clad ON CACHE BOOL "" FORCE)
+set (cling ON CACHE BOOL "" FORCE)
+set (cocoa OFF CACHE BOOL "" FORCE) # MacOS only
+set (cuda ON CACHE BOOL "" FORCE)
+set (cxx11 OFF CACHE BOOL "" FORCE)
+set (cxx14 ON CACHE BOOL "" FORCE)
+set (cxx17 OFF CACHE BOOL "" FORCE)
+set (davix OFF CACHE BOOL "" FORCE)
+set (dcache OFF CACHE BOOL "" FORCE)
+set (exceptions ON CACHE BOOL "" FORCE)
+set (explicitlink ON CACHE BOOL "" FORCE)
+set (fail-on-missing ON CACHE BOOL "" FORCE)
+set (fftw3 ON CACHE BOOL "" FORCE)
+set (fitsio ON CACHE BOOL "" FORCE)
+set (fortran OFF CACHE BOOL "" FORCE) # gcc7 doesn't provide fortran
+set (gdml ON CACHE BOOL "" FORCE)
+set (geocad OFF CACHE BOOL "" FORCE)
+set (genvector ON CACHE BOOL "" FORCE)
+set (gfal OFF CACHE BOOL "" FORCE)
+set (gl2ps ON CACHE BOOL "" FORCE)
+set (globus OFF CACHE BOOL "" FORCE)
+set (gminimal OFF CACHE BOOL "" FORCE)
+set (gnuinstall ON CACHE BOOL "" FORCE)
+set (gsl_shared ON CACHE BOOL "" FORCE)
+set (gviz OFF CACHE BOOL "" FORCE) # depricated
+set (hdfs OFF CACHE BOOL "" FORCE)
+set (http ON CACHE BOOL "" FORCE)
+set (imt ON CACHE BOOL "" FORCE)
+set (jemalloc OFF CACHE BOOL "" FORCE)
+set (krb5 OFF CACHE BOOL "" FORCE) # depricated
+set (ldap OFF CACHE BOOL "" FORCE) # depricated
+set (mathmore ON CACHE BOOL "" FORCE)
+set (memstat OFF CACHE BOOL "" FORCE)
+set (minimal OFF CACHE BOOL "" FORCE)
+set (minuit2 ON CACHE BOOL "" FORCE)
+set (monalisa OFF CACHE BOOL "" FORCE)
+set (mt ON CACHE BOOL "" FORCE)
+set (mysql ON CACHE BOOL "" FORCE)
+set (odbc OFF CACHE BOOL "" FORCE) # depricated
+set (opengl ON CACHE BOOL "" FORCE)
+set (OpenGL_GL_PREFERENCE GLVND CACHE STRING "" FORCE) # use new policy since 3.11
+set (oracle OFF CACHE BOOL "" FORCE)
+set (pch ON CACHE BOOL "" FORCE)
+set (pgsql ON CACHE BOOL "" FORCE)
+set (pythia6 OFF CACHE BOOL "" FORCE)
+set (pythia6_nolink OFF CACHE BOOL "" FORCE)
+set (pythia8 ON CACHE BOOL "" FORCE)
+# set (python3 ON CACHE BOOL "" FORCE)
+set (python ON CACHE BOOL "" FORCE)
+set (qt OFF CACHE BOOL "" FORCE) # depricated
+set (qtgsi OFF CACHE BOOL "" FORCE) # depricated
+set (rfio OFF CACHE BOOL "" FORCE)
+set (roofit ON CACHE BOOL "" FORCE)
+set (root7 ON CACHE BOOL "" FORCE)
+set (roottest OFF CACHE BOOL "" FORCE)
+set (rpath OFF CACHE BOOL "" FORCE)
+set (runtime_cxxmodules OFF CACHE BOOL "" FORCE) # broken - circular dependency
+set (r OFF CACHE BOOL "" FORCE) # requires r-rcpp
+set (shadowpw ON CACHE BOOL "" FORCE)
+set (shared ON CACHE BOOL "" FORCE)
+set (soversion OFF CACHE BOOL "" FORCE)
+set (sqlite ON CACHE BOOL "" FORCE)
+set (ssl ON CACHE BOOL "" FORCE)
+set (table OFF CACHE BOOL "" FORCE) # depricated
+set (tbb ON CACHE BOOL "" FORCE)
+set (tcmalloc OFF CACHE BOOL "" FORCE)
+set (testing OFF CACHE BOOL "" FORCE)
+set (thread ON CACHE BOOL "" FORCE) # cannot be disabled
+set (tmva ON CACHE BOOL "" FORCE)
+set (tmva-cpu OFF CACHE BOOL "" FORCE)
+set (tmva-gpu ON CACHE BOOL "" FORCE)
+set (tmva-pymva ON CACHE BOOL "" FORCE)
+set (unuran ON CACHE BOOL "" FORCE)
+set (vc ON CACHE BOOL "" FORCE)
+set (vdt ON CACHE BOOL "" FORCE)
+set (winrtdebug OFF CACHE BOOL "" FORCE) # windows only
+set (x11 ON CACHE BOOL "" FORCE)
+set (xft ON CACHE BOOL "" FORCE)
+set (xml ON CACHE BOOL "" FORCE)
+set (xrootd ON CACHE BOOL "" FORCE)
diff --git a/settings.cmake b/settings.cmake
new file mode 100644
index 000000000000..c0fc5e4b8229
--- /dev/null
+++ b/settings.cmake
@@ -0,0 +1,114 @@
+set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
+set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) # this option is currently incompatible
+set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_SYSCONFDIR /etc/root CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_DATAROOTDIR /usr/share CACHE PATH "" FORCE)
+set (afdsmgrd OFF CACHE BOOL "" FORCE) # broken, bug in string_view include
+set (alien OFF CACHE BOOL "" FORCE)
+set (all OFF CACHE BOOL "" FORCE)
+set (asimage ON CACHE BOOL "" FORCE)
+set (astiff ON CACHE BOOL "" FORCE)
+set (bonjour OFF CACHE BOOL "" FORCE) # depricated
+set (builtin_afterimage OFF CACHE BOOL "" FORCE)
+set (builtin_clang ON CACHE BOOL "" FORCE)
+set (CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "" FORCE)
+set (CLANG_ANALYZER_BUILD_Z3 ON CACHE BOOL "" FORCE)
+set (builtin_cfitsio OFF CACHE BOOL "" FORCE)
+set (builtin_davix OFF CACHE BOOL "" FORCE)
+set (builtin_fftw3 OFF CACHE BOOL "" FORCE)
+set (builtin_ftgl OFF CACHE BOOL "" FORCE)
+set (builtin_freetype OFF CACHE BOOL "" FORCE)
+set (builtin_gl2ps OFF CACHE BOOL "" FORCE)
+set (builtin_glew OFF CACHE BOOL "" FORCE)
+set (builtin_gsl OFF CACHE BOOL "" FORCE)
+set (builtin_lzma OFF CACHE BOOL "" FORCE)
+set (builtin_llvm ON CACHE BOOL "" FORCE)
+set (builtin_openssl OFF CACHE BOOL "" FORCE)
+set (builtin_pcre OFF CACHE BOOL "" FORCE)
+set (builtin_tbb OFF CACHE BOOL "" FORCE)
+set (builtin_unuran OFF CACHE BOOL "" FORCE)
+set (builtin_vc OFF CACHE BOOL "" FORCE)
+set (builtin_xxhash OFF CACHE BOOL "" FORCE)
+set (builtin_xrootd OFF CACHE BOOL "" FORCE)
+set (builtin_zlib OFF CACHE BOOL "" FORCE)
+set (castor OFF CACHE BOOL "" FORCE)
+set (ccache OFF CACHE BOOL "" FORCE)
+set (clad ON CACHE BOOL "" FORCE)
+set (cling ON CACHE BOOL "" FORCE)
+set (cocoa OFF CACHE BOOL "" FORCE) # MacOS only
+set (cuda OFF CACHE BOOL "" FORCE)
+set (cxx11 OFF CACHE BOOL "" FORCE)
+set (cxx14 OFF CACHE BOOL "" FORCE)
+set (cxx17 ON CACHE BOOL "" FORCE)
+set (davix OFF CACHE BOOL "" FORCE)
+set (dcache OFF CACHE BOOL "" FORCE)
+set (exceptions ON CACHE BOOL "" FORCE)
+set (explicitlink ON CACHE BOOL "" FORCE)
+set (fail-on-missing ON CACHE BOOL "" FORCE)
+set (fftw3 ON CACHE BOOL "" FORCE)
+set (fitsio ON CACHE BOOL "" FORCE)
+set (fortran ON CACHE BOOL "" FORCE)
+set (gdml ON CACHE BOOL "" FORCE)
+set (geocad OFF CACHE BOOL "" FORCE)
+set (genvector ON CACHE BOOL "" FORCE)
+set (gfal OFF CACHE BOOL "" FORCE)
+set (gl2ps ON CACHE BOOL "" FORCE)
+set (globus OFF CACHE BOOL "" FORCE)
+set (gminimal OFF CACHE BOOL "" FORCE)
+set (gnuinstall ON CACHE BOOL "" FORCE)
+set (gsl_shared ON CACHE BOOL "" FORCE)
+set (gviz OFF CACHE BOOL "" FORCE) # depricated
+set (hdfs OFF CACHE BOOL "" FORCE)
+set (http ON CACHE BOOL "" FORCE)
+set (imt ON CACHE BOOL "" FORCE)
+set (jemalloc OFF CACHE BOOL "" FORCE)
+set (krb5 OFF CACHE BOOL "" FORCE) # depricated
+set (ldap OFF CACHE BOOL "" FORCE) # depricated
+set (mathmore ON CACHE BOOL "" FORCE)
+set (memstat OFF CACHE BOOL "" FORCE)
+set (minimal OFF CACHE BOOL "" FORCE)
+set (minuit2 ON CACHE BOOL "" FORCE)
+set (monalisa OFF CACHE BOOL "" FORCE)
+set (mt ON CACHE BOOL "" FORCE)
+set (mysql ON CACHE BOOL "" FORCE)
+set (odbc OFF CACHE BOOL "" FORCE) # depricated
+set (opengl ON CACHE BOOL "" FORCE)
+set (OpenGL_GL_PREFERENCE GLVND CACHE STRING "" FORCE) # use new policy since 3.11
+set (oracle OFF CACHE BOOL "" FORCE)
+set (pch ON CACHE BOOL "" FORCE)
+set (pgsql ON CACHE BOOL "" FORCE)
+set (pythia6 OFF CACHE BOOL "" FORCE)
+set (pythia6_nolink OFF CACHE BOOL "" FORCE)
+set (pythia8 ON CACHE BOOL "" FORCE)
+# set (python3 ON CACHE BOOL "" FORCE)
+set (python ON CACHE BOOL "" FORCE)
+set (qt OFF CACHE BOOL "" FORCE) # depricated
+set (qtgsi OFF CACHE BOOL "" FORCE) # depricated
+set (rfio OFF CACHE BOOL "" FORCE)
+set (roofit ON CACHE BOOL "" FORCE)
+set (root7 ON CACHE BOOL "" FORCE)
+set (roottest OFF CACHE BOOL "" FORCE)
+set (rpath OFF CACHE BOOL "" FORCE)
+set (runtime_cxxmodules OFF CACHE BOOL "" FORCE) # broken - circular dependency
+set (r OFF CACHE BOOL "" FORCE) # requires r-rcpp
+set (shadowpw ON CACHE BOOL "" FORCE)
+set (shared ON CACHE BOOL "" FORCE)
+set (soversion OFF CACHE BOOL "" FORCE)
+set (sqlite ON CACHE BOOL "" FORCE)
+set (ssl ON CACHE BOOL "" FORCE)
+set (table OFF CACHE BOOL "" FORCE) # depricated
+set (tbb ON CACHE BOOL "" FORCE)
+set (tcmalloc OFF CACHE BOOL "" FORCE)
+set (testing OFF CACHE BOOL "" FORCE)
+set (thread ON CACHE BOOL "" FORCE) # cannot be disabled
+set (tmva ON CACHE BOOL "" FORCE)
+set (tmva-cpu ON CACHE BOOL "" FORCE)
+set (tmva-pymva ON CACHE BOOL "" FORCE)
+set (unuran ON CACHE BOOL "" FORCE)
+set (vc ON CACHE BOOL "" FORCE)
+set (vdt ON CACHE BOOL "" FORCE)
+set (winrtdebug OFF CACHE BOOL "" FORCE) # windows only
+set (x11 ON CACHE BOOL "" FORCE)
+set (xft ON CACHE BOOL "" FORCE)
+set (xml ON CACHE BOOL "" FORCE)
+set (xrootd ON CACHE BOOL "" FORCE)