From 303f22dc865c4da70d97f2406200c056b771d330 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Sun, 26 Dec 2021 01:54:42 +0000
Subject: [PATCH] Dockerfile: FROM testing-20211220-slim with gcc-11 and spack
 v0.17.1

---
 .gitlab-ci.yml                                |  10 +-
 containers/debian/Dockerfile                  |  39 +-
 containers/jug/dev.Dockerfile                 |  61 +-
 spack.yaml                                    |   4 +-
 spack/packages/acts/acts-822.patch            |  31 -
 spack/packages/acts/package.py                | 270 --------
 spack/packages/dd4hep/cmake_language.patch    |  12 -
 spack/packages/dd4hep/package.py              | 149 +----
 spack/packages/dd4hep/tbb-workarounds.patch   |  41 --
 spack/packages/dd4hep/tbb2.patch              |  14 -
 spack/packages/madx/README.md                 |   1 -
 spack/packages/madx/package.py                |  74 +-
 spack/packages/qt/gcc10.patch                 |  22 -
 spack/packages/qt/package.py                  | 606 -----------------
 spack/packages/qt/qt3-accept.patch            |  38 --
 spack/packages/qt/qt3-headers.patch           |  30 -
 spack/packages/qt/qt4-87-configure-gcc.patch  |  20 -
 spack/packages/qt/qt4-asm-volatile.patch      | 236 -------
 spack/packages/qt/qt4-configure-gcc.patch     |  20 -
 spack/packages/qt/qt4-mac.patch               | 631 ------------------
 spack/packages/qt/qt4-pcre.patch              |  16 -
 spack/packages/qt/qt4-qforeach.patch          |  64 --
 spack/packages/qt/qt4-tools.patch             |  12 -
 spack/packages/qt/qt5-11-intel-overflow.patch |  11 -
 spack/packages/qt/qt5-12-configure.patch      |  13 -
 spack/packages/qt/qt5-12-intel-overflow.patch |  11 -
 spack/packages/qt/qt5-8-framework.patch       |  17 -
 spack/packages/qt/qt5-8-freetype.patch        |  12 -
 spack/packages/qt/qt5-asm-volatile.patch      | 235 -------
 spack/packages/qt/qt5-btn_trigger_happy.patch |  17 -
 spack/packages/qt/qt5-pcre.patch              |  33 -
 spack/packages/qt/qt5-restore-pc-files.patch  |  15 -
 spack/packages/root/find-mysql.patch          |  60 --
 .../packages/root/format-stringbuf-size.patch |  14 -
 spack/packages/root/honor-unuran-switch.patch |  26 -
 spack/packages/root/math_uint.patch           | 115 ----
 spack/packages/root/package.py                | 524 ---------------
 .../packages/root/root6-60606-mathmore.patch  |  29 -
 spack/packages/root/root7-webgui.patch        | 106 ---
 39 files changed, 87 insertions(+), 3552 deletions(-)
 delete mode 100644 spack/packages/acts/acts-822.patch
 delete mode 100644 spack/packages/acts/package.py
 delete mode 100644 spack/packages/dd4hep/cmake_language.patch
 delete mode 100644 spack/packages/dd4hep/tbb-workarounds.patch
 delete mode 100644 spack/packages/dd4hep/tbb2.patch
 delete mode 100644 spack/packages/madx/README.md
 delete mode 100644 spack/packages/qt/gcc10.patch
 delete mode 100644 spack/packages/qt/package.py
 delete mode 100644 spack/packages/qt/qt3-accept.patch
 delete mode 100644 spack/packages/qt/qt3-headers.patch
 delete mode 100644 spack/packages/qt/qt4-87-configure-gcc.patch
 delete mode 100644 spack/packages/qt/qt4-asm-volatile.patch
 delete mode 100644 spack/packages/qt/qt4-configure-gcc.patch
 delete mode 100644 spack/packages/qt/qt4-mac.patch
 delete mode 100644 spack/packages/qt/qt4-pcre.patch
 delete mode 100644 spack/packages/qt/qt4-qforeach.patch
 delete mode 100644 spack/packages/qt/qt4-tools.patch
 delete mode 100644 spack/packages/qt/qt5-11-intel-overflow.patch
 delete mode 100644 spack/packages/qt/qt5-12-configure.patch
 delete mode 100644 spack/packages/qt/qt5-12-intel-overflow.patch
 delete mode 100644 spack/packages/qt/qt5-8-framework.patch
 delete mode 100644 spack/packages/qt/qt5-8-freetype.patch
 delete mode 100644 spack/packages/qt/qt5-asm-volatile.patch
 delete mode 100644 spack/packages/qt/qt5-btn_trigger_happy.patch
 delete mode 100644 spack/packages/qt/qt5-pcre.patch
 delete mode 100644 spack/packages/qt/qt5-restore-pc-files.patch
 delete mode 100644 spack/packages/root/find-mysql.patch
 delete mode 100644 spack/packages/root/format-stringbuf-size.patch
 delete mode 100644 spack/packages/root/honor-unuran-switch.patch
 delete mode 100644 spack/packages/root/math_uint.patch
 delete mode 100644 spack/packages/root/package.py
 delete mode 100644 spack/packages/root/root6-60606-mathmore.patch
 delete mode 100644 spack/packages/root/root7-webgui.patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 81f0244bc..46e3df8ae 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,9 @@ variables:
   AFTERBURNER_VERSION: "v0.1.2"
 
   ## Spack github version
-  SPACK_VERSION: "a68abc15c5b1b8266130f765d1bee6290e71fa7c"
+  SPACK_VERSION: "e974b44e8673ded449ce4a3ed5844398b68e81a2"
+  ## Space-separated list of spack cherry-picks
+  SPACK_CHERRYPICKS: "0ab5828d0dfe2182ad108b7e7c56772303065f6e a294acfb73839c9782aff976953a969fb44e161e f181b6fef6da3b576b267799d9c47fa5c8ade67a"
 
   ## We need to enable Docker Buildkit to use cache mounts and better
   ## build performance overal
@@ -204,7 +206,8 @@ jug_dev:default:
                    -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:builder-${INTERNAL_TAG} 
                    --target=builder
                    -f containers/jug/dev.Dockerfile
-                   --build-arg SPACK_VERSION=${SPACK_VERSION}
+                   --build-arg SPACK_VERSION="${SPACK_VERSION}"
+                   --build-arg SPACK_CHERRYPICKS="${SPACK_CHERRYPICKS}"
                    --build-arg CACHE_BUST=${PACKAGE_HASH}
                    --build-arg INTERNAL_TAG=${INTERNAL_TAG}
                    --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
@@ -212,7 +215,8 @@ jug_dev:default:
     ## now build our image
     - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} ${CACHE_FLAG}
                    -f containers/jug/dev.Dockerfile
-                   --build-arg SPACK_VERSION=${SPACK_VERSION}
+                   --build-arg SPACK_VERSION="${SPACK_VERSION}"
+                   --build-arg SPACK_CHERRYPICKS="${SPACK_CHERRYPICKS}"
                    --build-arg CACHE_BUST=${PACKAGE_HASH}
                    --build-arg INTERNAL_TAG=${INTERNAL_TAG}
                    --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile
index 052ef11d1..3211e2219 100644
--- a/containers/debian/Dockerfile
+++ b/containers/debian/Dockerfile
@@ -3,7 +3,7 @@
 # Minimal container based on Debian Testing for up-to-date packages. 
 # Very lightweight container with a minimal build environment
 
-FROM  amd64/debian:testing-20210408-slim
+FROM  amd64/debian:testing-20211220-slim
 LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \
       name="debian_base" \
       march="amd64"
@@ -23,51 +23,52 @@ ENV CLICOLOR_FORCE=1                                                    \
 RUN --mount=type=cache,target=/var/cache/apt                            \
     rm -f /etc/apt/apt.conf.d/docker-clean                              \
  && apt-get -yqq update                                                 \
+ && apt-get -yqq upgrade                                                \
  && apt-get -yqq install --no-install-recommends                        \
+        bc                                                              \
         ca-certificates                                                 \
+        clang-format                                                    \
+        clang-tidy                                                      \
         curl                                                            \
         file                                                            \
         build-essential                                                 \
-        g++-10                                                          \
-        gcc-10                                                          \
+        g++-11                                                          \
+        gcc-11                                                          \
         gdb                                                             \
-        gfortran-10                                                     \
+        gfortran-11                                                     \
+        ghostscript                                                     \
         git                                                             \
         gnupg2                                                          \
+        gv                                                              \
         iproute2                                                        \
         iputils-ping                                                    \
         iputils-tracepath                                               \
+        less                                                            \
         libcbor-xs-perl                                                 \
         libjson-xs-perl                                                 \
+        libyaml-cpp-dev                                                 \
         locales                                                         \
         lua-posix                                                       \
         make                                                            \
-        unzip                                                           \
         nano                                                            \
-        vim-nox                                                         \
-        less                                                            \
-        clang-format                                                    \
-        clang-tidy                                                      \
         openssh-client                                                  \
-        wget                                                            \
-        ghostscript                                                     \
-        gv                                                              \
-        poppler-utils                                                   \
         parallel                                                        \
-        bc                                                              \
+        poppler-utils                                                   \
         time                                                            \
+        unzip                                                           \
         valgrind                                                        \
-        libyaml-cpp-dev                                                 \
+        vim-nox                                                         \
+        wget                                                            \
  && localedef -i en_US -f UTF-8 en_US.UTF-8                             \
- && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100  \
- && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100  \
+ && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100  \
+ && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100  \
  && update-alternatives --install /usr/bin/gfortran gfortran            \
-                                  /usr/bin/gfortran-10 100              \
+                                  /usr/bin/gfortran-11 100              \
  && cc --version                                                        \
  && curl -L                                                             \
     "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" \
     | bash                                                              \
- && sed -i "s/bullseye/buster/"                                         \
+ && sed -i "s/bookworm/buster/"                                         \
            /etc/apt/sources.list.d/runner_gitlab-runner.list            \
  && apt-get -yqq update                                                 \
  && apt-get -yqq install --no-install-recommends                        \
diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile
index 9fa0ea91e..1952a65f8 100644
--- a/containers/jug/dev.Dockerfile
+++ b/containers/jug/dev.Dockerfile
@@ -15,20 +15,22 @@ RUN --mount=type=cache,target=/var/cache/apt                            \
         python3                                                         \
         python3-pip                                                     \
         python3-setuptools                                              \
-        tcl                                                             \
-        uuid-dev                                                        \
-        libfcgi-dev                                                     \
-        x11proto-xext-dev                                               \
- && pip3 install boto3                                                  \ 
+        python-is-python3                                               \
  && rm -rf /var/lib/apt/lists/*
 
 ## Setup spack
 ## parts:
 ENV SPACK_ROOT=/opt/spack
 ARG SPACK_VERSION="develop"
+ARG SPACK_CHERRYPICKS=""
 RUN echo "Part 1: regular spack install (as in containerize)"           \
  && git clone https://github.com/spack/spack.git /tmp/spack-staging     \
- && cd /tmp/spack-staging && git checkout $SPACK_VERSION && cd -        \
+ && cd /tmp/spack-staging                                               \
+ && git checkout $SPACK_VERSION                                         \
+ && if [ -n "$SPACK_CHERRYPICKS" ] ; then                               \
+      git cherry-pick -n $SPACK_CHERRYPICKS ;                           \
+    fi                                                                  \
+ && cd -                                                                \
  && mkdir -p $SPACK_ROOT/opt/spack                                      \
  && cp -r /tmp/spack-staging/bin $SPACK_ROOT/bin                        \
  && cp -r /tmp/spack-staging/etc $SPACK_ROOT/etc                        \
@@ -75,10 +77,13 @@ RUN --mount=type=cache,target=/var/cache/spack-mirror                   \
 
 ## Setup our custom environment and package overrides
 COPY spack $SPACK_ROOT/eic-spack
-RUN echo "repos:" > $SPACK_ROOT/etc/spack/repos.yaml                    \
- && echo " - $SPACK_ROOT/eic-spack" >> $SPACK_ROOT/etc/spack/repos.yaml \
+RUN spack repo add --scope site "$SPACK_ROOT/eic-spack"                 \
  && mkdir /opt/spack-environment                                        \
- && mv $SPACK_ROOT/eic-spack/spack.yaml /opt/spack-environment/spack.yaml
+ && cd /opt/spack-environment                                           \
+ && mv $SPACK_ROOT/eic-spack/spack.yaml .                               \
+ && rm -r /usr/local                                                    \
+ && spack env activate .                                                \
+ && spack concretize
 
 ## This variable will change whenevery either spack.yaml or our spack package
 ## overrides change, triggering a rebuild
@@ -89,10 +94,17 @@ ARG CACHE_BUST="hash"
 RUN --mount=type=cache,target=/var/cache/spack-mirror                   \
     cd /opt/spack-environment                                           \
  && ls /var/cache/spack-mirror                                          \
- && rm -r /usr/local                                                    \
  && spack env activate .                                                \
+ && status=0                                                            \
  && spack install -j64 --no-check-signature                             \
- && spack clean -a                                                  
+    || spack install -j64 --no-check-signature                          \
+    || ( status=$?                                                      \
+       && spack buildcache create -ua -d /var/cache/spack-mirror        \
+                       $(spack find --format {name}/{hash})             \
+       && spack buildcache update-index -d /var/cache/spack-mirror      \
+       && exit $status                                                  \
+    )                                                                   \
+ && spack clean -a
 
 ## Optional, normally commented out:
 ## Nuke the buildcache
@@ -142,24 +154,33 @@ RUN cd /opt/spack-environment                                           \
         | sed "s?LD_LIBRARY_PATH=?&/lib/x86_64-linux-gnu:?"             \
         | sed '/MANPATH/ s/;$/:;/'                                      \
     > /etc/profile.d/z10_spack_environment.sh                           \
- && cd /opt/spack-environment                                           \
+ && cd /opt/spack-environment && spack env activate .                   \
  && echo -n ""                                                          \
  && echo "Add extra environment variables for Jug, Podio and Gaudi"     \
- && spack env activate .                                                \
- && export PODIO=`spack find -p podio                                   \
-        | grep software                                                 \
-        | awk '{print $2}'`                                             \
- && echo "export PODIO=${PODIO};"                                       \
+ && echo "export PODIO=$(spack location -i podio);"                     \
         >> /etc/profile.d/z10_spack_environment.sh                      \
- && cd /opt/spack-environment && spack env activate .                   \
  && echo -n ""                                                          \
  && echo "Installing additional python packages"                        \
  && pip install --trusted-host pypi.org                                 \
                 --trusted-host files.pythonhosted.org                   \
                 --no-cache-dir                                          \
-        ipython matplotlib scipy yapf pandas pycairo pyyaml lxml        \
-        jupyter jupyterlab uproot pyunfold seaborn stashcp awkward      \
+        awkward                                                         \
+        boto3                                                           \
+        ipython                                                         \
+        jupyter                                                         \
+        jupyterlab                                                      \
         lmfit                                                           \
+        lxml                                                            \
+        matplotlib                                                      \
+        pandas                                                          \
+        pycairo                                                         \
+        pyunfold                                                        \
+        pyyaml                                                          \
+        scipy                                                           \
+        seaborn                                                         \
+        stashcp                                                         \
+        uproot                                                          \
+        yapf                                                            \
  && echo -n ""                                                          \
  && echo "Executing cmake patch for dd4hep 16.1"                        \                
  && sed -i "s/FIND_PACKAGE(Python/#&/" /usr/local/cmake/DD4hepBuild.cmake
diff --git a/spack.yaml b/spack.yaml
index 08abc9862..75c893519 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -24,7 +24,7 @@ spack:
     - opencascade@7.4.0p1
     - pkg-config@0.29.2
     - podio@0.14 build_type=RelWithDebInfo
-    - pythia8@8303 +fastjet
+    - pythia8@8.306 +fastjet
     - python@3.9.6
     - py-numpy@1.20.1
     - py-pip@20.2
@@ -38,5 +38,5 @@ spack:
   concretization: together
   packages:
     all:
-      compiler: [gcc@10.3.0]
+      compiler: [gcc]
   view: /usr/local
diff --git a/spack/packages/acts/acts-822.patch b/spack/packages/acts/acts-822.patch
deleted file mode 100644
index 8b9104720..000000000
--- a/spack/packages/acts/acts-822.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/Core/src/Geometry/CylinderVolumeBuilder.cpp b/Core/src/Geometry/CylinderVolumeBuilder.cpp
-index eba6f8617..950c5286b 100644
---- a/Core/src/Geometry/CylinderVolumeBuilder.cpp
-+++ b/Core/src/Geometry/CylinderVolumeBuilder.cpp
-@@ -542,6 +542,7 @@ Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent(
-         double zMaxD = center.z() + 0.5 * thickness;
-         lConfig.rMin =
-             std::min(lConfig.rMin, rMinD - m_cfg.layerEnvelopeR.first);
-+        lConfig.rMin = std::max(0.0, lConfig.rMin);
-         lConfig.rMax =
-             std::max(lConfig.rMax, rMaxD + m_cfg.layerEnvelopeR.second);
-         lConfig.zMin = std::min(lConfig.zMin, zMinD - m_cfg.layerEnvelopeZ);
-@@ -576,4 +577,4 @@ Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent(
- 
-   // and return what you have
-   return lConfig;
--}
-\ No newline at end of file
-+}
-diff --git a/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp b/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp
-index 4d1695abf..455481538 100644
---- a/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp
-+++ b/Plugins/DD4hep/src/DD4hepLayerBuilder.cpp
-@@ -128,6 +128,7 @@ const Acts::LayerVector Acts::DD4hepLayerBuilder::endcapLayers(
-                                      std::abs(zMax - pl.max(Acts::binZ))};
-           pl.envelope[Acts::binR] = {std::abs(rMin - pl.min(Acts::binR)),
-                                      std::abs(rMax - pl.max(Acts::binR))};
-+          pl.extent.ranges[Acts::binR] = {rMin, rMax};
-         }
-       } else {
-         throw std::logic_error(
diff --git a/spack/packages/acts/package.py b/spack/packages/acts/package.py
deleted file mode 100644
index 0c10a22f6..000000000
--- a/spack/packages/acts/package.py
+++ /dev/null
@@ -1,270 +0,0 @@
-# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
-
-
-class Acts(CMakePackage, CudaPackage):
-    """
-    A Common Tracking Software (Acts)
-    This project contains an experiment-independent set of track reconstruction
-    tools. The main philosophy is to provide high-level track reconstruction
-    modules that can be used for any tracking detector. The description of the
-    tracking detector's geometry is optimized for efficient navigation and
-    quick extrapolation of tracks. Converters for several common geometry
-    description languages exist. Having a highly performant, yet largely
-    customizable implementation of track reconstruction algorithms was a
-    primary objective for the design of this toolset. Additionally, the
-    applicability to real-life HEP experiments plays major role in the
-    development process. Apart from algorithmic code, this project also
-    provides an event data model for the description of track parameters and
-    measurements.
-    Key features of this project include: tracking geometry description which
-    can be constructed from TGeo, DD4Hep, or GDML input, simple and efficient
-    event data model, performant and highly flexible algorithms for track
-    propagation and fitting, basic seed finding algorithms.
-    """
-
-    homepage = "https://acts.web.cern.ch/ACTS/"
-    git      = "https://github.com/acts-project/acts.git"
-    list_url = "https://github.com/acts-project/acts/releases/"
-    maintainers = ['HadrienG2']
-
-    tags = ['hep']
-
-    # Supported Acts versions
-    version('main', branch='main')
-    version('master', branch='main', deprecated=True)  # For compatibility
-    version('14.1.0', commit='e883ab6acfe5033509ad1c27e8e2ba980dfa59f6', submodules=True)
-    version('14.0.0', commit='f902bef81b60133994315c13f7d32d60048c79d8', submodules=True)
-    version('13.0.0', commit='ad05672e48b693fd37156f1ad62ed57aa82f858c', submodules=True)
-    version('12.0.1', commit='a80d1ef995d8cdd4190cc09cb249276a3e0161f4', submodules=True)
-    version('12.0.0', commit='e0aa4e7dcb70df025576e050b6e652a2f736454a', submodules=True)
-    version('11.0.0', commit='eac3def261f65b343af6d8ce4bc40443ac57b57e')
-    version('10.0.0', commit='9bfe0b83f277f686408b896a84d2b9b53610f623')
-    version('9.02.0', commit='c438ee490e94eaf1c854a336ef54f398da637a48')
-    version('9.01.0', commit='bf8fd4c03dd94f497d8501df510d8f6a48434afd')
-    version('9.00.1', commit='7d59bc508d898d2cb67ba05a7150a978b9fcc32d')
-    version('9.00.0', commit='e6e3092bf3a9411aac7c11a24d7586abddb75d59')
-    version('8.03.0', commit='601c0a18b6738cae81c3e23422cfeb3ec7bddce9')
-    version('8.02.0', commit='f25cf639915fc2ac65b03882ad3eb11fb037ed00')
-    version('8.01.0', commit='ccc8c77bbc011f3adc020c565a509815be0ea029')
-    version('8.00.0', commit='50c972823144c007b406ae12d7ca25a1e0c35532')
-    version('7.00.0', commit='e663df7ab023bdb5ef206202efc2e54ccb71d416')
-    version('6.00.0', commit='a5cf04acd4b1a2c625e0826189109472a3392558')
-    version('5.00.0', commit='df77b91a7d37b8db6ed028a4d737014b5ad86bb7')
-    version('4.01.0', commit='c383bf434ef69939b47e840e0eac0ba632e6af9f')
-    version('4.00.0', commit='ed64b4b88d366b63adc4a8d1afe5bc97aa5751eb')
-    version('3.00.0', commit='e20260fccb469f4253519d3f0ddb3191b7046db3')
-    version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c')
-    version('1.02.1', commit='f6ebeb9a28297ba8c54fd08b700057dd4ff2a311')
-    version('1.02.0', commit='e69b95acc9a264e63aded7d1714632066e090542')
-    version('1.01.0', commit='836fddd02c3eff33825833ff97d6abda5b5c20a0')
-    version('1.00.0', commit='ec9ce0bcdc837f568d42a12ddf3fc9c80db62f5d')
-    version('0.32.0', commit='a4cedab7e727e1327f2835db29d147cc86b21054')
-    version('0.31.0', commit='cfbd901555579a2f32f4efe2b76a7048442b42c3')
-    version('0.30.0', commit='a71ef0a9c742731611645214079884585a92b15e')
-    version('0.29.0', commit='33aa3e701728112e8908223c4a7fd521907c8ea4')
-    version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf')
-    version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01')
-    version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f')
-    version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6')
-    version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320')
-    version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f')
-    version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42')
-    version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf')
-    version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4')
-    version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a')
-    version('0.22.0', commit='2c8228f5843685fc0ae69a8b95dd8fc001139efb')
-    version('0.21.0', commit='10b719e68ddaca15b28ac25b3daddce8c0d3368d')
-    version('0.20.0', commit='1d37a849a9c318e8ca4fa541ef8433c1f004637b')
-    version('0.19.0', commit='408335636486c421c6222a64372250ef12544df6')
-    version('0.18.0', commit='d58a68cf75b52a5e0f563bc237f09250aa9da80c')
-    version('0.17.0', commit='0789f654ff484b013fd27e5023cf342785ea8d97')
-    version('0.16.0', commit='b3d965fe0b8ae335909d79114ef261c6b996773a')
-    version('0.15.0', commit='267c28f69c561e64369661a6235b03b5a610d6da')
-    version('0.14.0', commit='38d678fcb205b77d60326eae913fbb1b054acea1')
-    version('0.13.0', commit='b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88')
-    version('0.12.1', commit='a8b3d36e7c6cb86487637589e0eff7bbe626054a')
-    version('0.12.0', commit='f9cda77299606d78c889fb1db2576c1971a271c4')
-    version('0.11.1', commit='c21196cd6c3ecc6da0f14d0a9ef227a274be584b')
-    version('0.11.0', commit='22bcea1f19adb0021ca61b843b95cfd2462dd31d')
-    version('0.10.5', commit='b6f7234ca8f18ee11e57709d019c14bf41cf9b19')
-    version('0.10.4', commit='42cbc359c209f5cf386e620b5a497192c024655e')
-    version('0.10.3', commit='a3bb86b79a65b3d2ceb962b60411fd0df4cf274c')
-    version('0.10.2', commit='64cbf28c862d8b0f95232b00c0e8c38949d5015d')
-    version('0.10.1', commit='0692dcf7824efbc504fb16f7aa00a50df395adbc')
-    version('0.10.0', commit='30ef843cb00427f9959b7de4d1b9843413a13f02')
-    version('0.09.5', commit='12b11fe8b0d428ccb8e92dda7dc809198f828672')
-    version('0.09.4', commit='e5dd9fbe179201e70347d1a3b9fa1899c226798f')
-    version('0.09.3', commit='a8f31303ee8720ed2946bfe2d59e81d0f70e307e')
-    version('0.09.2', commit='4e1f7fa73ffe07457080d787e206bf6466fe1680')
-    version('0.09.1', commit='69c451035516cb683b8f7bc0bab1a25893e9113d')
-    version('0.09.0', commit='004888b0a412f5bbaeef2ffaaeaf2aa182511494')
-    version('0.08.2', commit='c5d7568714e69e7344582b93b8d24e45d6b81bf9')
-    version('0.08.1', commit='289bdcc320f0b3ff1d792e29e462ec2d3ea15df6')
-    version('0.08.0', commit='99eedb38f305e3a1cd99d9b4473241b7cd641fa9')
-
-    # Variants that affect the core Acts library
-    variant('benchmarks', default=False, description='Build the performance benchmarks')
-    variant('examples', default=False, description='Build the examples')
-    variant('integration_tests', default=False, description='Build the integration tests')
-    variant('unit_tests', default=False, description='Build the unit tests')
-    variant('log_failure_threshold', default='MAX', description='Log level above which examples should auto-crash')
-
-    # Variants that enable / disable Acts plugins
-    variant('autodiff', default=False, description='Build the auto-differentiation plugin')
-    variant('dd4hep', default=False, description='Build the DD4hep plugin')
-    variant('digitization', default=False, description='Build the geometric digitization plugin')
-    variant('fatras', default=False, description='Build the FAst TRAcking Simulation package')
-    variant('fatras_geant4', default=False, description='Build Geant4 Fatras package')
-    variant('identification', default=False, description='Build the Identification plugin')
-    variant('json', default=False, description='Build the Json plugin')
-    variant('legacy', default=False, description='Build the Legacy package')
-    # FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime
-    # FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support
-    variant('tgeo', default=False, description='Build the TGeo plugin')
-    variant('alignment', default=False, description='Build the alignment package')
-
-    # Variants that only affect Acts examples for now
-    variant('geant4', default=False, description='Build the Geant4-based examples')
-    variant('hepmc3', default=False, description='Build the HepMC3-based examples')
-    variant('pythia8', default=False, description='Build the Pythia8-based examples')
-    variant('python', default=False, description='Build python bindings for the examples')
-    variant('analysis', default=False, description='Build analysis applications in the examples')
-
-    ## Temporary patch for ACTS 
-    ## https://github.com/acts-project/acts/issues/1015
-    patch('https://patch-diff.githubusercontent.com/raw/acts-project/acts/pull/1015.patch',
-          sha256='52f6fe981d04daaeebb68579974b25766a32a3f149b851599ae7dc6b5be38a35',
-          when='@13.0.0')
-    ## Another temporary patch for ACTS to fix issue with vertexing API
-    ## https://github.com/acts-project/acts/pull/1058
-    patch('https://patch-diff.githubusercontent.com/raw/acts-project/acts/pull/1058.patch',
-          sha256='edad00c3712d34cdce3cbc70e96365861076504023d3f9b7c3c4a240ff0d4c89',
-          when='@13.0.0')
-
-    ## Temporary patch for ACTS to address
-    ## https://github.com/acts-project/acts/issues/822
-    patch('acts-822.patch', when='@8.02.0p1')
-    patch('acts-822.patch', when='@8.03.0p1')
-
-    # Build dependencies
-    # FIXME: Use spack's autodiff package once there is one
-    # FIXME: Use spack's vecmem package once there is one
-    # (https://github.com/acts-project/acts/pull/998)
-    depends_on('boost @1.62:1.69 +program_options +test', when='@:0.10.3')
-    depends_on('boost @1.71: +filesystem +program_options +test', when='@0.10.4:')
-    depends_on('cmake @3.14:', type='build')
-    depends_on('dd4hep @1.11:', when='+dd4hep')
-    depends_on('dd4hep @1.11: +geant4', when='+dd4hep +geant4')
-    depends_on('eigen @3.3.7:')
-    depends_on('geant4', when='+fatras_geant4')
-    depends_on('geant4', when='+geant4')
-    depends_on('hepmc3 @3.2.1:', when='+hepmc3')
-    depends_on('heppdt', when='+hepmc3 @:4.0')
-    depends_on('intel-tbb @2020.1:', when='+examples')
-    depends_on('nlohmann-json @3.9.1:', when='@0.14: +json')
-    depends_on('pythia8', when='+pythia8')
-    depends_on('python', when='+python')
-    depends_on('py-pytest', when='+python +unit_tests')
-    depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
-    depends_on('root @6.20: cxxstd=17', when='+tgeo @0.8.1:')
-
-    # Some variant combinations do not make sense
-    conflicts('+autodiff', when='@:1.01')
-    conflicts('+benchmarks', when='@:0.15')
-    conflicts('+dd4hep', when='-tgeo')
-    conflicts('+examples', when='@:0.22')
-    conflicts('+examples', when='-digitization')
-    conflicts('+examples', when='-fatras')
-    conflicts('+examples', when='-identification')
-    conflicts('+examples', when='-json')
-    conflicts('+examples', when='-tgeo')
-    conflicts('+fatras', when='@:0.15')
-    conflicts('+geant4', when='@:0.22')
-    conflicts('+geant4', when='-examples')
-    conflicts('+hepmc3', when='@:0.22')
-    conflicts('+hepmc3', when='-examples')
-    conflicts('+pythia8', when='@:0.22')
-    conflicts('+pythia8', when='-examples')
-    conflicts('+python', when='@:13')
-    conflicts('+python', when='-examples')
-    conflicts('+tgeo', when='-identification')
-    conflicts('+alignment', when='@:12')
-    conflicts('%gcc@:7', when='@0.23:')
-
-    def cmake_args(self):
-        spec = self.spec
-
-        def cmake_variant(cmake_label, spack_variant):
-            enabled = spec.satisfies('+' + spack_variant)
-            return "-DACTS_BUILD_{0}={1}".format(cmake_label, enabled)
-
-        def example_cmake_variant(cmake_label, spack_variant):
-            enabled = spec.satisfies('+examples +' + spack_variant)
-            return "-DACTS_BUILD_EXAMPLES_{0}={1}".format(cmake_label, enabled)
-
-        def plugin_label(plugin_name):
-            if spec.satisfies('@0.33:'):
-                return "PLUGIN_" + plugin_name
-            else:
-                return plugin_name + "_PLUGIN"
-
-        def plugin_cmake_variant(plugin_name, spack_variant):
-            return cmake_variant(plugin_label(plugin_name), spack_variant)
-
-        integration_tests_label = "INTEGRATIONTESTS"
-        unit_tests_label = "UNITTESTS"
-        legacy_plugin_label = "LEGACY_PLUGIN"
-        if spec.satisfies('@:0.15'):
-            integration_tests_label = "INTEGRATION_TESTS"
-            unit_tests_label = "TESTS"
-        if spec.satisfies('@:0.32'):
-            legacy_plugin_label = "LEGACY"
-
-        args = [
-            plugin_cmake_variant("AUTODIFF", "autodiff"),
-            cmake_variant("BENCHMARKS", "benchmarks"),
-            plugin_cmake_variant("CUDA", "cuda"),
-            plugin_cmake_variant("DD4HEP", "dd4hep"),
-            plugin_cmake_variant("DIGITIZATION", "digitization"),
-            cmake_variant("EXAMPLES", "examples"),
-            example_cmake_variant("DD4HEP", "dd4hep"),
-            example_cmake_variant("GEANT4", "geant4"),
-            example_cmake_variant("HEPMC3", "hepmc3"),
-            example_cmake_variant("PYTHIA8", "pythia8"),
-            example_cmake_variant("PYTHON_BINDINGS", "python"),
-            cmake_variant("ANALYSIS_APPS", "analysis"),
-            cmake_variant("FATRAS", "fatras"),
-            cmake_variant("FATRAS_GEANT4", "fatras_geant4"),
-            plugin_cmake_variant("IDENTIFICATION", "identification"),
-            cmake_variant(integration_tests_label, "integration_tests"),
-            plugin_cmake_variant("JSON", "json"),
-            cmake_variant(unit_tests_label, "unit_tests"),
-            cmake_variant(legacy_plugin_label, "legacy"),
-            plugin_cmake_variant("TGEO", "tgeo"),
-            cmake_variant("ALIGNMENT", "alignment")
-        ]
-
-        log_failure_threshold = spec.variants['log_failure_threshold'].value
-        args.append("-DACTS_LOG_FAILURE_THRESHOLD={0}".format(log_failure_threshold))
-
-        cuda_arch = spec.variants['cuda_arch'].value
-        if cuda_arch != 'none':
-            args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
-
-        if 'root' in spec:
-            cxxstd = spec['root'].variants['cxxstd'].value
-            args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd))
-
-        # FIXME: Once we can use spack's autodiff package, set
-        #        ACTS_USE_SYSTEM_AUTODIFF too.
-        if spec.satisfies('@0.33: +json'):
-            args.append("-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON")
-        elif spec.satisfies('@0.14.0: +json'):
-            args.append("-DACTS_USE_BUNDLED_NLOHMANN_JSON=OFF")
-
-        return args
diff --git a/spack/packages/dd4hep/cmake_language.patch b/spack/packages/dd4hep/cmake_language.patch
deleted file mode 100644
index 096f4d805..000000000
--- a/spack/packages/dd4hep/cmake_language.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9d800190..121fa7fe 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -46,6 +46,7 @@ ENDIF()
- #############################################################
- 
- ENABLE_LANGUAGE(CXX)
-+ENABLE_LANGUAGE(C)
- 
- # Set C++ standard
- set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard used for compiling")
diff --git a/spack/packages/dd4hep/package.py b/spack/packages/dd4hep/package.py
index 27430ecf3..6e7341e45 100644
--- a/spack/packages/dd4hep/package.py
+++ b/spack/packages/dd4hep/package.py
@@ -1,149 +1,14 @@
-# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
 from spack import *
+from spack.pkg.builtin.dd4hep import Dd4hep as BuiltinDd4hep
 
 
-class Dd4hep(CMakePackage):
-    """DD4hep is a software framework for providing a complete solution for
-       full detector description (geometry, materials, visualization, readout,
-       alignment, calibration, etc.) for the full experiment life cycle
-       (detector concept development, detector optimization, construction,
-       operation). It offers a consistent description through a single source
-       of detector information for simulation, reconstruction, analysis, etc.
-       It distributed under the LGPLv3 License."""
-
-    homepage = "https://dd4hep.web.cern.ch/dd4hep/"
-    url      = "https://github.com/AIDASoft/DD4hep/archive/v01-12-01.tar.gz"
-    git      = "https://github.com/AIDASoft/DD4hep.git"
-
-    maintainers = ['vvolkl', 'drbenmorgan']
-
-    tags = ['hep']
-
-    version('master', branch='master')
-    version('1.18', sha256='1e909a42b969dfd966224fa8ab1eca5aa05136baf3c00a140f2f6d812b497152')
-    version('1.17p1', sha256='036a9908aaf1e13eaf5f2f43b6f5f4a8bdda8183ddc5befa77a4448dbb485826')
-    version('1.17', sha256='036a9908aaf1e13eaf5f2f43b6f5f4a8bdda8183ddc5befa77a4448dbb485826')
-    version('1.16.1', sha256='c8b1312aa88283986f89cc008d317b3476027fd146fdb586f9f1fbbb47763f1a')
-    version('1.16', sha256='ea9755cd255cf1b058e0e3cd743101ca9ca5ff79f4c60be89f9ba72b1ae5ec69')
-    version('1.15', sha256='992a24bd4b3dfaffecec9d1c09e8cde2c7f89d38756879a47b23208242f4e352')
-    version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717')
-    version('1.14', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895')
-    version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73')
-    version('1.13', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295')
-    version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93')
-    version('1.12', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398')
-    version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4')
-    version('1.11.1', sha256='d7902dd7f6744bbda92f6e303ad5a3410eec4a0d2195cdc86f6c1167e72893f0')
-    version('1.11', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6')
-    version('1.10', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95')
-
-    generator = 'Ninja'
-
-    # Workarounds for various TBB issues in DD4hep v1.11
-    # See https://github.com/AIDASoft/DD4hep/pull/613 .
-    patch('tbb-workarounds.patch', when='@1.11')
-    patch('tbb2.patch', when='@1.12.1')
-    # Workaround for failing build file generation in some cases
-    # See https://github.com/spack/spack/issues/24232
-    patch('cmake_language.patch', when='@:1.16.1')
-
-    # hack to fix refcount underflow
-    patch('refcount_underflow.patch', when='@1.17:')
-    patch('pdg.patch', when='@1.17:')
-    
+class Dd4hep(BuiltinDd4hep):
     # custom hash for the 2021-07-27 version, needed to include
     # https://github.com/AIDASoft/DD4hep/pull/849
     # https://github.com/AIDASoft/DD4hep/pull/851
-    patch('2021-07-27.patch', when='@1.17p1')
+    patch('2021-07-27.patch', when='@1.17')
     # patch for https://github.com/AIDASoft/DD4hep/issues/862
-    patch('0001-do-not-change-momentum-in-getParticleDirection.patch', when='@1.17p1:1.18')
-
-    variant('xercesc', default=False, description="Enable 'Detector Builders' based on XercesC")
-    variant('geant4', default=False, description="Enable the simulation part based on Geant4")
-    variant('assimp', default=False, description="Enable CAD interface based on Assimp")
-    variant('hepmc3', default=False, description="Enable build with hepmc3")
-    variant('lcio', default=False, description="Enable build with lcio")
-    variant('edm4hep', default=True, description="Enable build with edm4hep")
-    variant('geant4units', default=False, description="Use geant4 units throughout")
-    variant('debug', default=False,
-            description="Enable debug build flag - adds extra info in"
-            " some places in addtion to the debug build type")
-
-    depends_on('cmake @3.12:', type='build')
-    depends_on('ninja', type='build')
-    depends_on('boost @1.49:')
-    depends_on('root @6.08: +gdml +math +opengl +python +x')
-    extends('python')
-    depends_on('xerces-c', when='+xercesc')
-    depends_on('geant4@10.2.2:', when='+geant4')
-    depends_on('assimp@5.0.2:', when='+assimp')
-    depends_on('hepmc3', when="+hepmc3")
-    depends_on('lcio', when="+lcio")
-    depends_on('edm4hep', when="+edm4hep")
-
-    # See https://github.com/AIDASoft/DD4hep/pull/771
-    conflicts('^cmake@3.16:3.17.0', when='@1.15',
-              msg='cmake version with buggy FindPython breaks dd4hep cmake config')
-
-    def cmake_args(self):
-        spec = self.spec
-        cxxstd = spec['root'].variants['cxxstd'].value
-        # root can be built with cxxstd=11, but dd4hep requires 14
-        if cxxstd == "11":
-            cxxstd = "14"
-        args = [
-            self.define_from_variant('DD4HEP_USE_EDM4HEP', 'edm4hep'),
-            self.define_from_variant('DD4HEP_USE_XERCESC', 'xercesc'),
-            self.define_from_variant('DD4HEP_USE_GEANT4', 'geant4'),
-            self.define_from_variant('DD4HEP_USE_LCIO', 'lcio'),
-            self.define_from_variant('DD4HEP_USE_HEPMC3', 'hepmc3'),
-            self.define_from_variant('DD4HEP_USE_GEANT4_UNITS', 'geant4units'),
-            self.define_from_variant('DD4HEP_BUILD_DEBUG', 'debug'),
-            # Downloads assimp from github and builds it on the fly.
-            # However, with spack it is preferrable to have a proper external
-            # dependency, so we disable it.
-            self.define('DD4HEP_LOAD_ASSIMP', False),
-            "-DCMAKE_CXX_STANDARD={0}".format(cxxstd),
-            "-DBUILD_TESTING={0}".format(self.run_tests),
-            "-DBOOST_ROOT={0}".format(spec['boost'].prefix),
-            "-DBoost_NO_BOOST_CMAKE=ON",
-            "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command.path),
-        ]
-        return args
-
-    def setup_run_environment(self, env):
-        # used p.ex. in ddsim to find DDDetectors dir
-        env.set("DD4hepINSTALL", self.prefix)
-        env.set("DD4HEP", self.prefix.examples)
-        env.set("DD4hep_DIR", self.prefix)
-        env.set("DD4hep_ROOT", self.prefix)
-
-    def url_for_version(self, version):
-        # remove extra patch qualifiers
-        if version[-2] == 'p':
-            version=version[:-2]
-
-	# dd4hep releases are dashes and padded with a leading zero
-        # the patch version is omitted when 0
-        # so for example v01-12-01, v01-12 ...
-        base_url = self.url.rsplit('/', 1)[0]
-        if len(version) == 1:
-            major = version[0]
-            minor, patch = 0, 0
-        elif len(version) == 2:
-            major, minor = version
-            patch = 0
-        else:
-            major, minor, patch = version
-        # By now the data is normalized enough to handle it easily depending
-        # on the value of the patch version
-        if patch == 0:
-            version_str = 'v%02d-%02d.tar.gz' % (major, minor)
-        else:
-            version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch)
-
-        return base_url + '/' + version_str
+    patch('0001-do-not-change-momentum-in-getParticleDirection.patch', when='@1.17:1.18')
+    # hack to fix refcount underflow
+    patch('refcount_underflow.patch', when='@1.17:')
+    patch('pdg.patch', when='@1.17:')
diff --git a/spack/packages/dd4hep/tbb-workarounds.patch b/spack/packages/dd4hep/tbb-workarounds.patch
deleted file mode 100644
index 659232977..000000000
--- a/spack/packages/dd4hep/tbb-workarounds.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/DDDigi/CMakeLists.txt b/DDDigi/CMakeLists.txt
-index e6fb1096..88eb5c92 100644
---- a/DDDigi/CMakeLists.txt
-+++ b/DDDigi/CMakeLists.txt
-@@ -34,12 +34,10 @@ target_include_directories(DDDigi
- 
- FIND_PACKAGE(TBB QUIET)
- if(TBB_FOUND)
--  dd4hep_print( "|++> TBB_INCLUDE_DIR -->  ${TBB_INCLUDE_DIR}")
--  dd4hep_print( "|++> TBB_LIBRARY     -->  ${TBB_LIBRARY}")
-+  dd4hep_print( "|++> TBB_IMPORTED_TARGETS -->  ${TBB_IMPORTED_TARGETS}")
-   dd4hep_print( "|++> TBB found. DDDigi will run multi threaded.")
-   target_compile_definitions(DDDigi PUBLIC DD4HEP_USE_TBB)
--  target_link_libraries(DDDigi ${TBB_LIBRARY})
--  target_include_directories(DDDigi ${TBB_INCLUDE_DIRS})
-+  target_link_libraries(DDDigi PUBLIC ${TBB_IMPORTED_TARGETS})
- else()
-   dd4hep_print( "|++> TBB not found. DDDigi will only work single threaded.")
- endif()
-diff --git a/DDDigi/src/DigiKernel.cpp b/DDDigi/src/DigiKernel.cpp
-index d62c6694..f2c2e86c 100644
---- a/DDDigi/src/DigiKernel.cpp
-+++ b/DDDigi/src/DigiKernel.cpp
-@@ -91,7 +91,7 @@ public:
-   DigiEventAction*  action = 0;
-   Wrapper(DigiContext& c, DigiEventAction* a)
-     : context(c), action(a) {}
--  Wrapper(Wrapper&& copy) = delete;
-+  Wrapper(Wrapper&& copy) = default;
-   Wrapper(const Wrapper& copy) = default;
-   Wrapper& operator=(Wrapper&& copy) = delete;
-   Wrapper& operator=(const Wrapper& copy) = delete;
-@@ -111,7 +111,7 @@ class DigiKernel::Processor {
-   DigiKernel& kernel;
- public: 
-   Processor(DigiKernel& k) : kernel(k) {}
--  Processor(Processor&& l) = delete;
-+  Processor(Processor&& l) = default;
-   Processor(const Processor& l) = default;
-   void operator()()  const {
-     int todo = 1;
diff --git a/spack/packages/dd4hep/tbb2.patch b/spack/packages/dd4hep/tbb2.patch
deleted file mode 100644
index 932458001..000000000
--- a/spack/packages/dd4hep/tbb2.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/DDDigi/src/DigiKernel.cpp b/DDDigi/src/DigiKernel.cpp
-index f2c2e86c..f168ef9b 100644
---- a/DDDigi/src/DigiKernel.cpp
-+++ b/DDDigi/src/DigiKernel.cpp
-@@ -273,7 +273,7 @@ void DigiKernel::submit(const DigiAction::Actors<DigiEventAction>& actions, Digi
-   if ( parallel )   {
-     tbb::task_group que;
-     for ( auto* i : actions )
--      que.run(Wrapper(context, *i));
-+      que.run(Wrapper(context, i));
-     que.wait();
-     goto print_stamp;
-   }
-
diff --git a/spack/packages/madx/README.md b/spack/packages/madx/README.md
deleted file mode 100644
index 6ef86b4cd..000000000
--- a/spack/packages/madx/README.md
+++ /dev/null
@@ -1 +0,0 @@
-https://github.com/MethodicalAcceleratorDesign/MAD-X.git
diff --git a/spack/packages/madx/package.py b/spack/packages/madx/package.py
index c80bd06b4..bbefda84b 100644
--- a/spack/packages/madx/package.py
+++ b/spack/packages/madx/package.py
@@ -7,78 +7,24 @@ from spack import *
 
 
 class Madx(CMakePackage):
-    """
-    
-    """
+    """MAD-X (Methodical Accelerator Design) is an application
+    for designing particle accelerators."""
 
     homepage = "https://github.com/MethodicalAcceleratorDesign/MAD-X"
+    url      = "https://github.com/MethodicalAcceleratorDesign/MAD-X/archive/refs/tags/5.07.00.tar.gz"
     git      = "https://github.com/MethodicalAcceleratorDesign/MAD-X.git"
-    maintainers = ['tpersson']
 
-    tags = ['hep']
+    maintainers = ['wdconinc']
 
     # Supported MAD-X versions
     version('master', branch='master')
-    version('5.06.1', commit='f3764bceefb802f6b2a3c35d7d961adf6718d377')
+    version('5.07.00', sha256='77c0ec591dc3ea76cf57c60a5d7c73b6c0d66cca1fa7c4eb25a9071e8fc67e60')
+    version('5.06.01', sha256='cd2cd9f12463530950dab1c9a26730bb7c38f378c13afb7223fb9501c71a84be')
 
-    #variant('benchmarks', default=False, description='Build the performance benchmarks')
-    #variant('examples', default=False, description='Build the examples')
-    #variant('integration_tests', default=False, description='Build the integration tests')
-    #variant('unit_tests', default=False, description='Build the unit tests')
-
-    #variant('autodiff', default=False, description='Build the auto-differentiation plugin')
-    #variant('dd4hep', default=False, description='Build the DD4hep plugin')
-    #variant('digitization', default=False, description='Build the geometric digitization plugin')
-    #variant('fatras', default=False, description='Build the FAst TRAcking Simulation package')
-    #variant('identification', default=False, description='Build the Identification plugin')
-    #variant('json', default=False, description='Build the Json plugin')
-    #variant('legacy', default=False, description='Build the Legacy package')
-    ## FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime
-    ## FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support
-    #variant('tgeo', default=False, description='Build the TGeo plugin')
-
-    # Variants that only affect Acts examples for now
-    #variant('geant4', default=False, description='Build the Geant4-based examples')
-    #variant('hepmc3', default=False, description='Build the HepMC3-based examples')
-    #variant('pythia8', default=False, description='Build the Pythia8-based examples')
+    # patch for gcc-11 to avoid error due to variable shadowing
+    patch('https://github.com/MethodicalAcceleratorDesign/MAD-X/commit/e7a434290df675b894f70026ce0c7c217330cce5.patch',
+          sha256='ba9d00692250ab1eeeb7235a4ba7d899ecbbb4588f3ec08afc22d228dc1ea437',
+          when='@:5.07.00')
 
     depends_on("libx11")
     depends_on("zlib")
-
-    # Build dependencies
-    # FIXME: Use spack's autodiff package once there is one
-    #depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3')
-    #depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:')
-    #depends_on('cmake @3.11:', type='build')
-    #depends_on('dd4hep @1.10:', when='+dd4hep')
-    #depends_on('dd4hep @1.10: +geant4', when='+dd4hep +geant4')
-    #depends_on('eigen @3.2.9:', type='build')
-    #depends_on('geant4', when='+geant4')
-    #depends_on('hepmc3@3.1:', when='+hepmc3')
-    #depends_on('heppdt', when='+hepmc3')
-    #depends_on('intel-tbb', when='+examples')
-    #depends_on('nlohmann-json @3.2.0:', when='@0.14: +json')
-    #depends_on('pythia8', when='+pythia8')
-    #depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
-    #depends_on('root @6.10: cxxstd=17', when='+tgeo @0.8.1:')
-
-    ## Some variant combinations do not make sense
-    #conflicts('+autodiff', when='@:1.01')
-    #conflicts('+benchmarks', when='@:0.15')
-    #conflicts('+dd4hep', when='-tgeo')
-    #conflicts('+examples', when='@:0.22')
-    #conflicts('+examples', when='-digitization')
-    #conflicts('+examples', when='-fatras')
-    #conflicts('+examples', when='-identification')
-    #conflicts('+examples', when='-json')
-    #conflicts('+examples', when='-tgeo')
-    #conflicts('+fatras', when='@:0.15')
-    #conflicts('+geant4', when='@:0.22')
-    #conflicts('+geant4', when='-examples')
-    #conflicts('+hepmc3', when='@:0.22')
-    #conflicts('+hepmc3', when='-examples')
-    #conflicts('+pythia8', when='@:0.22')
-    #conflicts('+pythia8', when='-examples')
-    #conflicts('+tgeo', when='-identification')
-    #conflicts('%gcc@:7', when='@0.23:')
-
diff --git a/spack/packages/qt/gcc10.patch b/spack/packages/qt/gcc10.patch
deleted file mode 100644
index 212e91ff4..000000000
--- a/spack/packages/qt/gcc10.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
-index d475c38..c1710a6 100644
---- a/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
-+++ b/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
-@@ -5,6 +5,7 @@
- #include <unicode/ushape.h>
- 
- #include <memory>
-+#include <stdexcept>
- 
- namespace mbgl {
- 
-diff --git a/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp b/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
-index 97bfe91..30125a8 100644
---- a/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
-+++ b/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
-@@ -1,4 +1,5 @@
- #include <mbgl/util/convert.hpp>
-+#include <cstdint>
- 
- namespace mbgl {
- namespace util {
diff --git a/spack/packages/qt/package.py b/spack/packages/qt/package.py
deleted file mode 100644
index 5bcc06f46..000000000
--- a/spack/packages/qt/package.py
+++ /dev/null
@@ -1,606 +0,0 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
-from spack.operating_systems.mac_os import macos_version
-import llnl.util.tty as tty
-import itertools
-import os
-import sys
-
-MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None
-
-
-class Qt(Package):
-    """Qt is a comprehensive cross-platform C++ application framework."""
-    homepage = 'http://qt.io'
-    # Alternative location 'http://download.qt.io/official_releases/qt/'
-    url      = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz'
-    list_url = 'http://download.qt.io/archive/qt/'
-    list_depth = 3
-    maintainers = ['sethrj']
-
-    phases = ['configure', 'build', 'install']
-
-    version('5.14.2', sha256='c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa')
-    version('5.14.1', sha256='6f17f488f512b39c2feb57d83a5e0a13dcef32999bea2e2a8f832f54a29badb8')
-    version('5.14.0', sha256='be9a77cd4e1f9d70b58621d0753be19ea498e6b0da0398753e5038426f76a8ba')
-    version('5.13.1', sha256='adf00266dc38352a166a9739f1a24a1e36f1be9c04bf72e16e142a256436974e')
-    version('5.12.7', sha256='873783a0302129d98a8f63de9afe4520fb5f8d5316be8ad7b760c59875cd8a8d')
-    version('5.12.5', sha256='a2299e21db7767caf98242767bffb18a2a88a42fee2d6a393bedd234f8c91298')
-    version('5.12.2', sha256='59b8cb4e728450b21224dcaaa40eb25bafc5196b6988f2225c394c6b7f881ff5')
-    version('5.11.3', sha256='859417642713cee2493ee3646a7fee782c9f1db39e41d7bb1322bba0c5f0ff4d')
-    version('5.11.2', sha256='c6104b840b6caee596fa9a35bc5f57f67ed5a99d6a36497b6fe66f990a53ca81')
-    version('5.10.0', sha256='936d4cf5d577298f4f9fdb220e85b008ae321554a5fcd38072dc327a7296230e')
-    version('5.9.1',  sha256='7b41a37d4fe5e120cdb7114862c0153f86c07abbec8db71500443d2ce0c89795')
-    version('5.9.0',  sha256='f70b5c66161191489fc13c7b7eb69bf9df3881596b183e7f6d94305a39837517')
-    version('5.8.0',  sha256='9dc5932307ae452855863f6405be1f7273d91173dcbe4257561676a599bd58d3')
-    version('5.7.1',  sha256='c86684203be61ae7b33a6cf33c23ec377f246d697bd9fb737d16f0ad798f89b7')
-    version('5.7.0',  sha256='4661905915d6265243e17fe59852930a229cf5b054ce5af5f48b34da9112ab5f')
-    version('5.5.1',  sha256='c7fad41a009af1996b62ec494e438aedcb072b3234b2ad3eeea6e6b1f64be3b3')
-    version('5.4.2',  sha256='cfc768c55f0a0cd232bed914a9022528f8f2e50cb010bf0e4f3f62db3dfa17bd')
-    version('5.4.0',  sha256='1739633424bde3d89164ae6ff1c5c913be38b9997e451558ef873aac4bbc408a')
-    version('5.3.2',  sha256='c8d3fd2ead30705c6673c5e4af6c6f3973346b4fb2bd6079c7be0943a5b0282d')
-    version('5.2.1',  sha256='84e924181d4ad6db00239d87250cc89868484a14841f77fb85ab1f1dbdcd7da1')
-    version('4.8.7',  sha256='e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0')
-    version('4.8.6',  sha256='8b14dd91b52862e09b8e6a963507b74bc2580787d171feda197badfa7034032c')
-    version('4.8.5',  sha256='eb728f8268831dc4373be6403b7dd5d5dde03c169ad6882f9a8cb560df6aa138')
-    version('3.3.8b', sha256='1b7a1ff62ec5a9cb7a388e2ba28fda6f960b27f27999482ebeceeadb72ac9f6e')
-
-    variant('debug',      default=False,
-            description="Build debug version.")
-    variant('gtk',        default=False,
-            description="Build with gtkplus.")
-    variant('webkit',     default=False,
-            description="Build the Webkit extension")
-    variant('examples',   default=False,
-            description="Build examples.")
-    variant('framework',   default=bool(MACOS_VERSION),
-            description="Build as a macOS Framework package.")
-    variant('tools',      default=True,
-            description="Build tools, including Qt Designer.")
-    variant('dbus',       default=False,
-            description="Build with D-Bus support.")
-    variant('phonon',     default=False,
-            description="Build with phonon support.")
-    variant('opengl',     default=False,
-            description="Build with OpenGL support.")
-    variant('sql',        default=True,
-            description="Build with SQL support.")
-    variant('shared',     default=True,
-            description='Build shared libraries.')
-    variant('ssl',    default=True,
-            description="Build with OpenSSL support.")
-    variant('freetype', default='spack', description='Freetype2 support',
-            values=('spack', 'qt', 'none'), multi=False)
-
-    # Patches for gcc10
-    patch('gcc10.patch', when=('%gcc@10:'))
-
-    # Patches for qt@3
-    patch('qt3-accept.patch', when='@3')
-    patch('qt3-headers.patch', when='@3')
-
-    # Patches for qt@4
-    patch('qt4-configure-gcc.patch', when='@4:4.8.6 %gcc')
-    patch('qt4-87-configure-gcc.patch', when='@4.8.7 %gcc')
-    patch('qt4-tools.patch', when='@4+tools')
-    patch('qt4-mac.patch', when='@4.8.7 platform=darwin')
-    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925811
-    patch("qt4-qforeach.patch", when="@4 %gcc@9:")
-
-    # Patches for qt@4:
-    # https://github.com/spack/spack/issues/1517
-    patch('qt4-pcre.patch', when='@4')
-    patch('qt5-pcre.patch', when='@5:')
-    # https://bugreports.qt.io/browse/QTBUG-74196
-    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89585
-    patch('qt4-asm-volatile.patch', when='@4')
-    patch('qt5-asm-volatile.patch', when='@5.0.0:5.12.1')
-
-    # Patches for qt@5
-    # https://bugreports.qt.io/browse/QTBUG-74219
-    patch('qt5-btn_trigger_happy.patch', when='@5.7:5.12')
-    # https://bugreports.qt.io/browse/QTBUG-57656
-    patch('qt5-8-framework.patch', when='@5.8.0 +framework')
-    # https://bugreports.qt.io/browse/QTBUG-58038
-    patch('qt5-8-freetype.patch', when='@5.8.0 freetype=spack')
-    # https://codereview.qt-project.org/c/qt/qtbase/+/245425
-    patch('https://github.com/qt/qtbase/commit/a52d7861edfb5956de38ba80015c4dd0b596259b.patch',
-          sha256='c49b228c27e3ad46ec3af4bac0e9985af5b5b28760f238422d32e14f98e49b1e',
-          working_dir='qtbase',
-          when='@5.10:5.12.0 %gcc@9:')
-    # https://github.com/Homebrew/homebrew-core/pull/5951
-    patch('qt5-restore-pc-files.patch', when='@5.9:5.11 platform=darwin')
-    # https://github.com/spack/spack/issues/14400
-    patch('qt5-11-intel-overflow.patch', when='@5.11 %intel')
-    patch('qt5-12-intel-overflow.patch', when='@5.12:5.14.0 %intel')
-    # https://bugreports.qt.io/browse/QTBUG-78937
-    patch('qt5-12-configure.patch', when='@5.12')
-
-    # Build-only dependencies
-    depends_on("pkgconfig", type='build')
-    depends_on("flex", when='+webkit', type='build')
-    depends_on("bison", when='+webkit', type='build')
-    depends_on("python", when='@5.7.0:', type='build')
-
-    # Dependencies, then variant- and version-specific dependencies
-    depends_on("icu4c")
-    depends_on("jpeg")
-    depends_on("libmng")
-    depends_on("libtiff")
-    depends_on("libxml2")
-    depends_on("zlib")
-    depends_on("freetype", when='freetype=spack')
-    depends_on("gperf", when='+webkit')
-    depends_on("gtkplus", when='+gtk')
-    depends_on("openssl", when='+ssl')
-    depends_on("sqlite+column_metadata", when='+sql', type=('build', 'run'))
-
-    depends_on("libpng@1.2.57", when='@3')
-    depends_on("libsm", when='@3')
-    depends_on("pcre+multibyte", when='@5.0:5.8')
-    depends_on("inputproto", when='@:5.8')
-    depends_on("openssl@:1.0.999", when='@4:5.9+ssl')
-
-    depends_on("glib", when='@4:')
-    depends_on("libpng", when='@4:')
-    depends_on("dbus", when='@4:+dbus')
-    depends_on("gl", when='@4:+opengl')
-
-    depends_on("harfbuzz", when='@5:')
-    depends_on("double-conversion", when='@5.7:')
-    depends_on("pcre2+multibyte", when='@5.9:')
-
-    # gcc@4 is not supported as of Qt@5.14
-    # https://doc.qt.io/qt-5.14/supported-platforms.html
-    conflicts('%gcc@:4.99', when='@5.14:')
-
-    # Non-macOS dependencies and special macOS constraints
-    if MACOS_VERSION is None:
-        depends_on("fontconfig", when='freetype=spack')
-        depends_on("libsm")
-        depends_on("libx11")
-        depends_on("libxcb")
-        depends_on("libxkbcommon")
-        depends_on("xcb-util-image")
-        depends_on("xcb-util-keysyms")
-        depends_on("xcb-util-renderutil")
-        depends_on("xcb-util-wm")
-        depends_on("libxext")
-        depends_on("libxrender")
-        conflicts('+framework',
-                  msg="QT cannot be built as a framework except on macOS.")
-    else:
-        conflicts('platform=darwin', when='@4.8.6',
-                  msg="QT 4 for macOS is only patched for 4.8.7")
-
-    use_xcode = True
-
-    # Mapping for compilers/systems in the QT 'mkspecs'
-    compiler_mapping = {'intel': ('icc',),
-                        'apple-clang': ('clang-libc++', 'clang'),
-                        'clang': ('clang-libc++', 'clang'),
-                        'gcc': ('g++',)}
-    platform_mapping = {'darwin': 'macx'}
-
-    def url_for_version(self, version):
-        # URL keeps getting more complicated with every release
-        url = self.list_url
-
-        if version >= Version('4.0'):
-            url += str(version.up_to(2)) + '/'
-        else:
-            url += str(version.up_to(1)) + '/'
-
-        if version >= Version('4.8'):
-            url += str(version) + '/'
-
-        if version >= Version('5'):
-            url += 'single/'
-
-        url += 'qt-'
-
-        if version >= Version('4.6'):
-            url += 'everywhere-'
-        elif version >= Version('2.1'):
-            url += 'x11-'
-
-        if version >= Version('5.10.0'):
-            url += 'src-'
-        elif version >= Version('4.0'):
-            url += 'opensource-src-'
-        elif version >= Version('3'):
-            url += 'free-'
-
-        # 5.9 only has xz format. From 5.2.1 -> 5.8.0 .gz or .xz were possible
-        if version >= Version('5.9'):
-            url += str(version) + '.tar.xz'
-        else:
-            url += str(version) + '.tar.gz'
-
-        return url
-
-    def setup_build_environment(self, env):
-        env.set('MAKEFLAGS', '-j{0}'.format(make_jobs))
-
-    def setup_run_environment(self, env):
-        env.set('QTDIR', self.prefix)
-
-    def setup_dependent_build_environment(self, env, dependent_spec):
-        env.set('QTDIR', self.prefix)
-
-    def setup_dependent_package(self, module, dependent_spec):
-        module.qmake = Executable(join_path(self.spec.prefix.bin, 'qmake'))
-
-    def get_mkspec(self):
-        """Determine the mkspecs root directory and QT platform.
-        """
-        spec = self.spec
-        cname = spec.compiler.name
-        pname = spec.architecture.platform
-
-        # Transform spack compiler name to a list of possible QT compilers
-        cnames = self.compiler_mapping.get(cname, [cname])
-        # Transform platform name to match those in QT
-        pname = self.platform_mapping.get(pname, pname)
-
-        qtplat = None
-        mkspec_dir = 'qtbase/mkspecs' if spec.satisfies('@5:') else 'mkspecs'
-        for subdir, cname in itertools.product(('', 'unsupported/'), cnames):
-            platdirname = "".join([subdir, pname, "-", cname])
-            tty.debug("Checking for platform '{0}' in {1}".format(
-                      platdirname, mkspec_dir))
-            if os.path.exists(os.path.join(mkspec_dir, platdirname)):
-                qtplat = platdirname
-                break
-        else:
-            tty.warn("No matching QT platform was found in {0} "
-                     "for platform '{1}' and compiler {2}".format(
-                         mkspec_dir, pname, ",".join(cnames)))
-
-        return (mkspec_dir, qtplat)
-
-    @when('@4 platform=darwin')
-    def patch(self):
-        ogl = self.spec['opengl'] if '+opengl' in self.spec else None
-        deployment_target = str(MACOS_VERSION.up_to(2))
-
-        patches = {
-            'MACOSX_DEPLOYMENT_TARGET': deployment_target,
-            'PREFIX': self.prefix,
-            'OPENGL_INCDIR': ogl.prefix.include if ogl else "",
-            'OPENGL_LIBS': ogl.libs.ld_flags if ogl else "",
-        }
-
-        def repl(match):
-            # Replace the original config variable value with the one chosen
-            # here if it is mentioned in 'patches'; otherwise return the
-            # original value.
-            return patches.get(match.group(1), match.group(0))
-
-        files_to_filter = [
-            "configure",
-            "mkspecs/common/mac.conf",
-            "mkspecs/common/unix.conf",
-            "mkspecs/common/gcc-base-macx.conf",
-            "mkspecs/common/gcc-base.conf",
-            "qmake/generators/unix/unixmake.cpp",
-            "qmake/qmake.pri",
-            "src/tools/bootstrap/bootstrap.pro"
-        ]
-        if '%clang' in self.spec or '%apple-clang' in self.spec:
-            files_to_filter += [
-                "mkspecs/unsupported/macx-clang-libc++/qmake.conf",
-                "mkspecs/common/clang.conf"
-            ]
-        elif '%gcc' in self.spec:
-            files_to_filter += [
-                "mkspecs/common/g++-macx.conf",
-                "mkspecs/darwin-g++/qmake.conf"
-            ]
-
-        # Filter inserted configure variables
-        filter_file(r'@([a-zA-Z0-9_]+)@', repl, *files_to_filter)
-
-        # Remove debug build
-        files_to_filter = [
-            "src/3rdparty/webkit/Source/WebKit.pri",
-            "src/3rdparty/webkit/Source/WebKit/qt/declarative/declarative.pro",
-            "src/imports/qimportbase.pri",
-            "src/plugins/qpluginbase.pri",
-            "src/qbase.pri",
-            "tools/designer/src/components/lib/lib.pro",
-            "tools/designer/src/lib/lib.pro",
-            "tools/designer/src/plugins/activeqt/activeqt.pro",
-            "tools/designer/src/plugins/plugins.pri",
-            "tools/designer/src/uitools/uitools.pro",
-        ]
-        filter_file(r'(\+=.*)debug_and_release', r'\1', *files_to_filter)
-
-    @when('@4: %gcc')  # *NOT* darwin/mac gcc
-    def patch(self):
-        (mkspec_dir, platform) = self.get_mkspec()
-
-        def conf(name):
-            return os.path.join(mkspec_dir, 'common', name + '.conf')
-
-        # Fix qmake compilers in the default mkspec
-        filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc', conf('g++-base'))
-        filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++', conf('g++-base'))
-
-        # Don't error out on undefined symbols
-        filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ',
-                    conf('g++-unix'))
-
-        if self.spec.satisfies('@4'):
-            # Necessary to build with GCC 6 and other modern compilers
-            # http://stackoverflow.com/questions/10354371/
-            with open(conf('gcc-base'), 'a') as f:
-                f.write("QMAKE_CXXFLAGS += -std=gnu++98\n")
-                f.write("QMAKE_CXXFLAGS += -fcommon\n")
-                f.write("QMAKE_CFLAGS += -fcommon\n")
-
-    @when('@4: %intel')
-    def patch(self):
-        (mkspec_dir, platform) = self.get_mkspec()
-        conf_file = os.path.join(mkspec_dir, platform, "qmake.conf")
-
-        # Intel's `ar` equivalent might not be in the path: replace it with
-        # explicit
-        xiar = os.path.join(os.path.dirname(self.compiler.cc), 'xiar')
-        filter_file(r'\bxiar\b', xiar, conf_file)
-
-        if self.spec.satisfies('@4'):
-            with open(conf_file, 'a') as f:
-                f.write("QMAKE_CXXFLAGS += -std=gnu++98\n")
-
-    @when('@4 %clang')
-    def patch(self):
-        (mkspec_dir, platform) = self.get_mkspec()
-        conf_file = os.path.join(mkspec_dir, platform, "qmake.conf")
-
-        with open(conf_file, 'a') as f:
-            f.write("QMAKE_CXXFLAGS += -std=gnu++98\n")
-
-    @property
-    def common_config_args(self):
-        # incomplete list is here http://doc.qt.io/qt-5/configure-options.html
-        config_args = [
-            '-prefix', self.prefix,
-            '-v',
-            '-opensource',
-            '-{0}opengl'.format('' if '+opengl' in self.spec else 'no-'),
-            '-{0}'.format('debug' if '+debug' in self.spec else 'release'),
-            '-confirm-license',
-            '-optimized-qmake',
-            '-no-pch',
-        ]
-
-        if self.spec.variants['freetype'].value == 'spack':
-            config_args.extend([
-                '-system-freetype'
-            ])
-            config_args.extend(
-                self.spec['freetype'].headers.include_flags.split()
-            )
-            if not MACOS_VERSION:
-                config_args.append('-fontconfig')
-
-        elif self.spec.variants['freetype'].value == 'qt':
-            config_args.append('-qt-freetype')
-        else:
-            config_args.append('-no-freetype')
-
-        if '+ssl' in self.spec:
-            openssl = self.spec['openssl']
-            config_args.extend([
-                '-openssl-linked',
-                openssl.libs.search_flags,
-                openssl.headers.include_flags,
-            ])
-        else:
-            config_args.append('-no-openssl')
-
-        if '+sql' in self.spec:
-            sqlite = self.spec['sqlite']
-            config_args.extend([
-                '-system-sqlite',
-                '-R', sqlite.prefix.lib,
-            ])
-        else:
-            comps = ['db2', 'ibase', 'oci', 'tds', 'mysql', 'odbc', 'psql',
-                     'sqlite', 'sqlite2']
-            config_args.extend("-no-sql-" + component for component in comps)
-
-        if '+shared' in self.spec:
-            config_args.append('-shared')
-        else:
-            config_args.append('-static')
-
-        if self.spec.satisfies('@5:'):
-            pcre = self.spec['pcre'] if self.spec.satisfies('@5.0:5.8') \
-                else self.spec['pcre2']
-            harfbuzz = self.spec['harfbuzz']
-            config_args.extend([
-                '-system-harfbuzz',
-                harfbuzz.libs.search_flags,
-                harfbuzz.headers.include_flags,
-                '-system-pcre',
-                pcre.libs.search_flags,
-                pcre.headers.include_flags
-            ])
-
-        if self.spec.satisfies('@5.7:'):
-            dc = self.spec['double-conversion']
-            config_args.extend([
-                '-system-doubleconversion',
-                dc.libs.search_flags,
-                dc.headers.include_flags
-            ])
-
-        if '@:5.7.1' in self.spec:
-            config_args.append('-no-openvg')
-        else:
-            # FIXME: those could work for other versions
-            png = self.spec['libpng']
-            config_args.append('-system-libpng')
-            if not png.external:
-                config_args.extend([
-                    png.libs.search_flags,
-                    png.headers.include_flags
-                ])
-
-            jpeg = self.spec['jpeg']
-            config_args.append('-system-libjpeg')
-            if not jpeg.external:
-                config_args.extend([
-                    jpeg.libs.search_flags,
-                    jpeg.headers.include_flags,
-                ])
-            zlib = self.spec['zlib']
-            config_args.append('-system-zlib')
-            if not zlib.external:
-                config_args.extend([
-                    zlib.libs.search_flags,
-                    zlib.headers.include_flags
-                ])
-
-        if '@:5.7.0' in self.spec:
-            config_args.extend([
-                # NIS is deprecated in more recent glibc,
-                # but qt-5.7.1 does not recognize this option
-                '-no-nis',
-            ])
-
-        if '~examples' in self.spec:
-            config_args.extend(['-nomake', 'examples'])
-
-        if '~tools' in self.spec:
-            config_args.extend(['-nomake', 'tools'])
-
-        if '+dbus' in self.spec:
-            dbus = self.spec['dbus'].prefix
-            config_args.append('-dbus-linked')
-            config_args.append('-I%s/dbus-1.0/include' % dbus.lib)
-            config_args.append('-I%s/dbus-1.0' % dbus.include)
-            config_args.append('-L%s' % dbus.lib)
-        else:
-            config_args.append('-no-dbus')
-
-        if MACOS_VERSION:
-            config_args.append('-{0}framework'.format(
-                '' if '+framework' in self.spec else 'no-'))
-
-        (_, qtplat) = self.get_mkspec()
-        if qtplat is not None:
-            config_args.extend(['-platform', qtplat])
-
-        return config_args
-
-    @when('@3')
-    def configure(self, spec, prefix):
-        # A user reported that this was necessary to link Qt3 on ubuntu.
-        # However, if LD_LIBRARY_PATH is not set the qt build fails, check
-        # and set LD_LIBRARY_PATH if not set, update if it is set.
-        if os.environ.get('LD_LIBRARY_PATH'):
-            os.environ['LD_LIBRARY_PATH'] += os.pathsep + os.getcwd() + '/lib'
-        else:
-            os.environ['LD_LIBRARY_PATH'] = os.pathsep + os.getcwd() + '/lib'
-
-        configure('-prefix', prefix,
-                  '-v',
-                  '-thread',
-                  '-shared',
-                  '-release',
-                  '-fast')
-
-    @when('@4')
-    def configure(self, spec, prefix):
-        config_args = self.common_config_args
-
-        config_args.extend([
-            '-fast',
-            '-no-declarative-debug',
-            '-{0}gtkstyle'.format('' if '+gtk' in spec else 'no-'),
-            '-{0}webkit'.format('' if '+webkit' in spec else 'no-'),
-            '-{0}phonon'.format('' if '+phonon' in spec else 'no-'),
-            '-arch', str(spec.target.family),
-            '-xmlpatterns',
-        ])
-
-        # Disable phonon backend until gstreamer is setup as dependency
-        if '+phonon' in self.spec:
-            config_args.append('-no-phonon-backend')
-
-        if '~examples' in self.spec:
-            config_args.extend(['-nomake', 'demos'])
-
-        if MACOS_VERSION:
-            sdkpath = which('xcrun')('--show-sdk-path', output=str).strip()
-            config_args.extend([
-                '-cocoa',
-                '-sdk', sdkpath])
-
-        configure(*config_args)
-
-    @when('@5')
-    def configure(self, spec, prefix):
-        config_args = self.common_config_args
-        version = self.version
-
-        config_args.extend([
-            '-no-eglfs',
-            '-no-directfb',
-            '-{0}gtk{1}'.format(
-                '' if '+gtk' in spec else 'no-',
-                '' if version >= Version('5.7') else 'style')
-        ])
-
-        if MACOS_VERSION:
-            config_args.extend([
-                '-no-xcb-xlib',
-                '-no-pulseaudio',
-                '-no-alsa',
-            ])
-            if version < Version('5.12'):
-                config_args.append('-no-xinput2')
-        else:
-            # Linux-only QT5 dependencies
-            config_args.append('-system-xcb')
-
-        if '~webkit' in spec:
-            config_args.extend([
-                '-skip',
-                'webengine' if version >= Version('5.7') else 'qtwebkit',
-            ])
-
-        if spec.satisfies('@5.7'):
-            config_args.extend(['-skip', 'virtualkeyboard'])
-
-        if version >= Version('5.8'):
-            # relies on a system installed wayland, i.e. no spack package yet
-            # https://wayland.freedesktop.org/ubuntu16.04.html
-            # https://wiki.qt.io/QtWayland
-            config_args.extend(['-skip', 'wayland'])
-
-        if version >= Version('5.10') and '~opengl' in spec:
-            config_args.extend([
-                '-skip', 'webglplugin',
-                '-skip', 'qt3d',
-            ])
-
-        if version >= Version('5.14') and '~opengl' in spec:
-            config_args.extend([
-                '-skip', 'qtquick3d',
-            ])
-
-        configure(*config_args)
-
-    def build(self, spec, prefix):
-        make()
-
-    def install(self, spec, prefix):
-        make("install")
diff --git a/spack/packages/qt/qt3-accept.patch b/spack/packages/qt/qt3-accept.patch
deleted file mode 100644
index 32dfb9df0..000000000
--- a/spack/packages/qt/qt3-accept.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- qt-x11-free-3.3.8b/configure	2008-01-15 13:09:15.000000000 -0600
-+++ qt-x11-free-3.3.8b-fixes/configure	2015-07-08 15:49:03.379560633 -0500
-@@ -2339,7 +2339,7 @@
-         else
-             echo "Do you accept the terms of the $TheLicense? \c"
-         fi
--        read acceptance
-+        acceptance=yes
-         echo
- 	if [ "$acceptance" = yes ]; then
- 	    break
-@@ -2397,7 +2397,7 @@
- 	else
- 	    echo "Do you accept the terms of $affix license? \c"
- 	fi
--	read acceptance
-+        acceptance=yes
- 	echo
- 	if [ "$acceptance" = "yes" ]; then
- 	    break
-@@ -2443,7 +2443,7 @@
- 	else
- 	    echo "Do you accept the terms of the license? \c"
- 	fi
--	read acceptance
-+        acceptance=yes
- 	echo
- 	if [ "$acceptance" = "yes" ]; then
- 	    break
-@@ -2524,7 +2524,7 @@
- 	else
- 	    echo "Do you accept the terms of the $Platform License? \c"
- 	fi
--	read acceptance
-+        acceptance=yes
- 	echo
- 	if [ "$acceptance" = "yes" ]; then
- 	    break
diff --git a/spack/packages/qt/qt3-headers.patch b/spack/packages/qt/qt3-headers.patch
deleted file mode 100644
index 52b133b57..000000000
--- a/spack/packages/qt/qt3-headers.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/src/tools/qmap.h	2008-01-16 06:09:13.000000000 +1100
-+++ b/src/tools/qmap.h	2018-01-07 11:32:38.720893324 +1100
-@@ -52,6 +52,7 @@
- #ifndef QT_NO_STL
- #include <iterator>
- #include <map>
-+#include <stddef.h>
- #endif
- 
- //#define QT_CHECK_MAP_RANGE
---- a/src/tools/qvaluelist.h	2008-01-16 06:09:13.000000000 +1100
-+++ b/src/tools/qvaluelist.h	2018-01-07 11:33:03.393206961 +1100
-@@ -50,6 +50,7 @@
- #ifndef QT_NO_STL
- #include <iterator>
- #include <list>
-+#include <stddef.h>
- #endif
- 
- //#define QT_CHECK_VALUELIST_RANGE
---- qt-x11-free-3.3.8b/src/tools/qvaluevector.h	2008-01-15 13:09:13.000000000 -0600
-+++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluevector.h	2015-07-08 15:47:34.758565247 -0500
-@@ -47,6 +47,7 @@
- 
- #ifndef QT_NO_STL
- #include <vector>
-+#include <cstddef>
- #endif
- 
- template <class T>
diff --git a/spack/packages/qt/qt4-87-configure-gcc.patch b/spack/packages/qt/qt4-87-configure-gcc.patch
deleted file mode 100644
index ee3a6cd52..000000000
--- a/spack/packages/qt/qt4-87-configure-gcc.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/configure.orig	2018-09-18 07:02:33.866633000 +1000
-+++ b/configure	2018-09-18 07:05:21.935194000 +1000
-@@ -7708,7 +7708,7 @@
- 
- 	# Check gcc's version
- 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
--	    4*)
-+	    [4-8]*)
- 		;;
- 	    3.4*)
- 		canBuildQtXmlPatterns="no"
-@@ -7729,7 +7729,7 @@
-     *-g++*)
- 	# Check gcc's version
- 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
--	    5*|4*|3.4*)
-+	    [4-8]*|3.4*)
- 		;;
-             3.3*)
-                 canBuildWebKit="no"
diff --git a/spack/packages/qt/qt4-asm-volatile.patch b/spack/packages/qt/qt4-asm-volatile.patch
deleted file mode 100644
index e3d3cae1f..000000000
--- a/spack/packages/qt/qt4-asm-volatile.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From 97ec1d1882a83c23c91f0f7daea48e05858d8c32 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Mon, 28 Jan 2019 14:33:12 -0800
-Subject: [PATCH] Fix build with GCC 8.3
-
-Qualifiers in the asm statement are not allowed in the global scope. I
-thought they were necessary for LTO, but I the commit to this file that
-added them predates my work on setting up LTO for GCC.
-
-Change-Id: Id98140e1c2f0426cabbefffd157e23e5ece67a49
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-**BACKPORTED** for use in QT4 by Omar Padron <omar.padron@kitware.com>
----
- .../JavaScriptCore/jit/JITStubs.cpp           | 48 +++++++++----------
- 1 file changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-index 1abdf8b..9f60761 100644
---- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp	2019-05-30 10:25:30.712979194 -0400
-+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp	2019-05-30 10:24:29.666340851 -0400
-@@ -116,7 +116,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -138,7 +138,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -154,7 +154,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
-     
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -179,7 +179,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -206,7 +206,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -222,7 +222,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -242,7 +242,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -269,7 +269,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -287,7 +287,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -305,7 +305,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- 
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -323,7 +323,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "mov pc, lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -418,7 +418,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -440,7 +440,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -456,7 +456,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
-     
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -480,7 +480,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -515,7 +515,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -531,7 +531,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -551,7 +551,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -578,7 +578,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -596,7 +596,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -614,7 +614,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- 
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -632,7 +632,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "mov pc, lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -1024,7 +1024,7 @@ static NEVER_INLINE void throwStackOverflowError(CallFrame* callFrame, JSGlobalD
-     extern "C" { \
-         rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
-     }; \
--    asm volatile ( \
-+    asm ( \
-         ".text" "\n" \
-         ".align 2" "\n" \
-         ".globl " SYMBOL_STRING(cti_##op) "\n" \
-@@ -1053,7 +1053,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, thunkReturnAddress) == THUNK_RETUR
-     extern "C" { \
-         rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
-     }; \
--    asm volatile ( \
-+    asm ( \
-         ".globl " SYMBOL_STRING(cti_##op) "\n" \
-         HIDE_SYMBOL(cti_##op) "\n"             \
-         SYMBOL_STRING(cti_##op) ":" "\n" \
diff --git a/spack/packages/qt/qt4-configure-gcc.patch b/spack/packages/qt/qt4-configure-gcc.patch
deleted file mode 100644
index 38a1c350f..000000000
--- a/spack/packages/qt/qt4-configure-gcc.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/configure.orig	2018-09-18 07:02:33.866633000 +1000
-+++ b/configure	2018-09-18 07:05:21.935194000 +1000
-@@ -7708,7 +7708,7 @@
- 
- 	# Check gcc's version
- 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
--	    4*)
-+	    [4-8]*)
- 		;;
- 	    3.4*)
- 		canBuildQtXmlPatterns="no"
-@@ -7729,7 +7729,7 @@
-     *-g++*)
- 	# Check gcc's version
- 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
--	    4*|3.4*)
-+	    [4-8]*|3.4*)
- 		;;
-             3.3*)
-                 canBuildWebKit="no"
diff --git a/spack/packages/qt/qt4-mac.patch b/spack/packages/qt/qt4-mac.patch
deleted file mode 100644
index d163f4189..000000000
--- a/spack/packages/qt/qt4-mac.patch
+++ /dev/null
@@ -1,631 +0,0 @@
-diff --git a/src/gui/painting/qpaintengine_mac.cpp b/src/gui/painting/qpaintengine_mac.cpp
-index 4aa0668..63b646d 100644
---- a/src/gui/painting/qpaintengine_mac.cpp
-+++ b/src/gui/painting/qpaintengine_mac.cpp
-@@ -340,13 +340,7 @@ CGColorSpaceRef QCoreGraphicsPaintEngine::macDisplayColorSpace(const QWidget *wi
-     }
- 
-     // Get the color space from the display profile.
--    CGColorSpaceRef colorSpace = 0;
--    CMProfileRef displayProfile = 0;
--    CMError err = CMGetProfileByAVID((CMDisplayIDType)displayID, &displayProfile);
--    if (err == noErr) {
--        colorSpace = CGColorSpaceCreateWithPlatformColorSpace(displayProfile);
--        CMCloseProfile(displayProfile);
--    }
-+    CGColorSpaceRef colorSpace = CGDisplayCopyColorSpace(displayID);
- 
-     // Fallback: use generic DeviceRGB
-     if (colorSpace == 0)
-diff -r -u a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
---- a/src/gui/kernel/qt_cocoa_helpers_mac.mm	2015-05-07 10:14:43.000000000 -0400
-+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm	2019-03-20 09:30:22.000000000 -0400
-@@ -73,6 +73,9 @@
- **
- ****************************************************************************/
- 
-+// Needed for macOS 10.13 (High Sierra)
-+#define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 1
-+
- #include <private/qcore_mac_p.h>
- #include <qaction.h>
- #include <qwidget.h>
-diff -r -u a/src/gui/text/qfontengine_coretext.mm b/src/gui/text/qfontengine_coretext.mm
---- a/src/gui/text/qfontengine_coretext.mm	2015-05-07 10:14:43.000000000 -0400
-+++ b/src/gui/text/qfontengine_coretext.mm	2019-03-20 09:30:22.000000000 -0400
-@@ -886,7 +886,7 @@
- 
- QFixed QCoreTextFontEngine::emSquareSize() const
- {
--    return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
-+    return QFixed(int(CTFontGetUnitsPerEm(ctfont)));
- }
- 
- QFontEngine *QCoreTextFontEngine::cloneWithSize(qreal pixelSize) const
-diff -r -u a/config.tests/unix/compile.test b/config.tests/unix/compile.test
---- a/config.tests/unix/compile.test	2015-05-07 10:14:42.000000000 -0400
-+++ b/config.tests/unix/compile.test	2019-03-20 09:30:21.000000000 -0400
-@@ -73,7 +73,7 @@
- rm -f "$EXE" "${EXE}.exe"
- 
- echo "QT_BUILD_TREE = $OUTDIR" > "$OUTDIR/$TEST/.qmake.cache"
--"$OUTDIR/bin/qmake" -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG-=debug_and_release" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
-+"$OUTDIR/bin/qmake" -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG-=debug_and_release app_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CFLAGS*=$CXXFLAGS" "QMAKE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS*=$CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_OBJECTIVE_CXXFLAGS*=$CXXFLAGS" "QMAKE_OBJECTIVE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
- 
- if [ "$VERBOSE" = "yes" ]; then
-     $MAKE
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/configure qt-everywhere-opensource-src-4.8.7/configure
---- qt-everywhere-opensource-src-4.8.7.orig/configure	2019-04-04 15:44:58.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/configure	2019-04-04 16:50:38.000000000 -0400
-@@ -3472,9 +3472,8 @@
- # auto-detect support for -Xarch on the mac
- if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" = "auto" ]; then
-     if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
--        CFG_MAC_XARCH=no
--    else
--        CFG_MAC_XARCH=yes
-+      echo >&2 "error: -Xarch flag support is required to build on macOS."
-+      exit 1
-     fi
- fi
- 
-@@ -5013,8 +5012,8 @@
-                 # Avoid overriding the default configuration settings when building with clang/libc++
-                 ;;
-             *)
--                # For all other configurations require a minimum of 10.5
--                echo "export MACOSX_DEPLOYMENT_TARGET = 10.5" >> "$mkfile"
-+                # For all other configurations require a minimum of 10.13
-+                echo "export MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@" >> "$mkfile"
-                 ;;
-             esac
- 
-@@ -5025,20 +5024,11 @@
-             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
-             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
-             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
--	    if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then # matches both x86 and x86_64
--		X86_CFLAGS="-arch i386"
--		X86_LFLAGS="-arch i386"
--		EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
--		EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
--                EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
--            fi
--	    if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then # matches both ppc and ppc64
--		PPC_CFLAGS="-arch ppc"
--		PPC_LFLAGS="-arch ppc"
--		EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
--		EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
--                EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
--            fi
-+            ARCH_CFLAGS="-arch x86_64"
-+            ARCH_LFLAGS="-arch x86_64"
-+            EXTRA_CFLAGS="$ARCH_CFLAGS $EXTRA_CFLAGS"
-+            EXTRA_CXXFLAGS="$ARCH_CFLAGS $EXTRA_CXXFLAGS"
-+            EXTRA_LFLAGS="$EXTRA_LFLAGS $ARCH_LFLAGS"
- 	    if [ '!' -z "$CFG_SDK" ]; then
- 		echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
- 		echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
-@@ -7224,19 +7214,7 @@
- 
- # set the global Mac deployment target. This is overridden on an arch-by-arch basis
- # in some cases, see code further down
--case "$PLATFORM,$CFG_MAC_COCOA" in
--*macx-clang-libc++,yes)
--    # Avoid overriding the default configuration setting when building with clang/libc++
--    ;;
--macx*,yes)
--    # Cocoa
--    QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
--    ;;
--macx*,no)
--    # gcc, Carbon
--    QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
--    ;;
--esac
-+QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET @MACOSX_DEPLOYMENT_TARGET@
- 
- # disable Qt 3 support on VxWorks, Symbian and INTEGRITY
- case "$XPLATFORM" in
-@@ -7515,7 +7493,6 @@
-     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GUI"
- fi
- 
--
- if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
-     #On Mac we implicitly link against libz, so we
-     #never use the 3rdparty stuff.
-@@ -7975,39 +7952,19 @@
-     QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
- fi
- 
--# On Mac, set the minimum deployment target for the different architechtures 
--# using the Xarch compiler option when supported (10.5 and up).  On 10.4 the
--# deployment version is set to 10.4 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
--# env. variable.
-+# On Mac, set the minimum deployment target for the different architectures 
- if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ]; then
-     case "$PLATFORM" in
-     *macx-clang-libc++)
-         # Avoid overriding the default settings when building clang/libc++.
-         ;;
-     *)
--        if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
--            QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
--        fi
--        if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
--            QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
--            QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.4"
--        fi
-         if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
--            QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
--        fi
--        if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
--            QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
--            QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
-+            QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
-+            QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
-+            QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
-+            QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
-+            QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
-         fi
-         ;;
-     esac
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/clang.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/clang.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/clang.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/clang.conf	2019-04-04 15:59:33.000000000 -0400
-@@ -2,8 +2,8 @@
- # Qmake configuration for Clang on Linux and Mac
- #
- 
--QMAKE_CC  = clang
--QMAKE_CXX = clang++
-+QMAKE_CC  = cc
-+QMAKE_CXX = c++
- 
- QMAKE_LINK       = $$QMAKE_CXX
- QMAKE_LINK_SHLIB = $$QMAKE_CXX
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/g++-base.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/g++-base.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/g++-base.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/g++-base.conf	2019-04-04 15:59:15.000000000 -0400
-@@ -8,14 +8,14 @@
- # you can use the manual test in tests/manual/mkspecs.
- #
- 
--QMAKE_CC = gcc
-+QMAKE_CC = cc
- 
- QMAKE_LINK_C       = $$QMAKE_CC
- QMAKE_LINK_C_SHLIB = $$QMAKE_CC
- 
- QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g
- 
--QMAKE_CXX = g++
-+QMAKE_CXX = c++
- 
- QMAKE_LINK       = $$QMAKE_CXX
- QMAKE_LINK_SHLIB = $$QMAKE_CXX
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/gcc-base-macx.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/gcc-base-macx.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/gcc-base-macx.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/gcc-base-macx.conf	2019-04-04 15:47:55.000000000 -0400
-@@ -29,12 +29,21 @@
- QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
- QMAKE_OBJECTIVE_CFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
- QMAKE_OBJECTIVE_CFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
--QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
-+QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS
- QMAKE_OBJECTIVE_CFLAGS_X86      = $$QMAKE_CFLAGS_X86
- QMAKE_OBJECTIVE_CFLAGS_X86_64   = $$QMAKE_CFLAGS_X86_64
- QMAKE_OBJECTIVE_CFLAGS_PPC      = $$QMAKE_CFLAGS_PPC
- QMAKE_OBJECTIVE_CFLAGS_PPC_64   = $$QMAKE_CFLAGS_PPC_64
- 
-+QMAKE_OBJECTIVE_CXXFLAGS          = $$QMAKE_CXXFLAGS
-+QMAKE_OBJECTIVE_CXXFLAGS_WARN_ON  = $$QMAKE_CXXFLAGS_WARN_ON
-+QMAKE_OBJECTIVE_CXXFLAGS_WARN_OFF = $$QMAKE_CXXFLAGS_WARN_OFF
-+QMAKE_OBJECTIVE_CXXFLAGS_DEBUG    = $$QMAKE_CXXFLAGS_DEBUG
-+QMAKE_OBJECTIVE_CXXFLAGS_RELEASE  = $$QMAKE_CXXFLAGS_RELEASE
-+QMAKE_OBJECTIVE_CXXFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
-+QMAKE_OBJECTIVE_CXXFLAGS_X86      = $$QMAKE_CXXFLAGS_X86
-+QMAKE_OBJECTIVE_CXXFLAGS_X86_64   = $$QMAKE_CXXFLAGS_X86_64
-+
- QMAKE_LFLAGS_X86    += $$QMAKE_CFLAGS_X86
- QMAKE_LFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
- QMAKE_LFLAGS_PPC    += $$QMAKE_CFLAGS_PPC
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/gcc-base.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/gcc-base.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/gcc-base.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/gcc-base.conf	2019-04-04 16:00:32.000000000 -0400
-@@ -42,7 +42,7 @@
- QMAKE_CFLAGS_YACC           += -Wno-unused -Wno-parentheses
- QMAKE_CFLAGS_HIDESYMS       += -fvisibility=hidden
- 
--QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS
-+QMAKE_CXXFLAGS            += -std=gnu++98 $$QMAKE_CFLAGS
- QMAKE_CXXFLAGS_DEPS       += $$QMAKE_CFLAGS_DEPS
- QMAKE_CXXFLAGS_WARN_ON    += $$QMAKE_CFLAGS_WARN_ON
- QMAKE_CXXFLAGS_WARN_OFF   += $$QMAKE_CFLAGS_WARN_OFF
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/mac.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/mac.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/mac.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/mac.conf	2019-04-04 15:50:20.000000000 -0400
-@@ -9,15 +9,14 @@
- QMAKE_LIBDIR		=
- QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]
- QMAKE_LIBDIR_QT		= $$[QT_INSTALL_LIBS]
--QMAKE_INCDIR_OPENGL	= /System/Library/Frameworks/OpenGL.framework/Headers \
--	/System/Library/Frameworks/AGL.framework/Headers/
-+QMAKE_INCDIR_OPENGL	= @OPENGL_INCDIR@
- 
- QMAKE_FIX_RPATH         = install_name_tool -id 
- 
- QMAKE_LFLAGS_RPATH	=
- 
- QMAKE_LIBS_DYNLOAD	=
--QMAKE_LIBS_OPENGL	= -framework OpenGL -framework AGL
-+QMAKE_LIBS_OPENGL	= @OPENGL_LIBS@
- QMAKE_LIBS_OPENGL_QT	= $$QMAKE_LIBS_OPENGL
- QMAKE_LIBS_THREAD	=
- 
-@@ -38,7 +37,6 @@
- QMAKE_DEL_DIR		= rmdir
- QMAKE_CHK_DIR_EXISTS	= test -d
- QMAKE_MKDIR		= mkdir -p
--QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 # overridden to 10.5 for Cocoa on the compiler command line
--
-+QMAKE_MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
- 
- include(unix.conf)
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/debug.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/debug.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/debug.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/debug.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -3,6 +3,7 @@
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_DEBUG
- QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG
- QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_DEBUG
-+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_DEBUG
- QMAKE_LFLAGS += $$QMAKE_LFLAGS_DEBUG
- QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_DEBUG
- !debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(debug, release)
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/default_post.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/default_post.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/default_post.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/default_post.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -1,5 +1,5 @@
- load(default_post)
--!no_objective_c:CONFIG += objective_c
-+!no_objective_c:CONFIG += split_sources objective_c objective_cxx
- 
- # Pick a suitable default architecture for qmake-based applications.
- # If the Qt package contains one of x86 and x86_64, pick that one. If it
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/objective_c.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/objective_c.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/objective_c.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/objective_c.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -1,23 +1,18 @@
--
--for(source, SOURCES) {
--    contains(source,.*\\.mm?$) {
--        warning(Objective-C source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
--        SOURCES -= $$source
--        OBJECTIVE_SOURCES += $$source
--    }
--}
-+# Add compiler directives for Objective C (.m) only
-+#
-+# OBJECTIVE_C_SOURCES has already been set in "split_sources"
- 
- isEmpty(QMAKE_OBJECTIVE_CC):QMAKE_OBJECTIVE_CC = $$QMAKE_CC
- 
- OBJECTIVE_C_OBJECTS_DIR = $$OBJECTS_DIR
- isEmpty(OBJECTIVE_C_OBJECTS_DIR):OBJECTIVE_C_OBJECTS_DIR = .
--isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .mm .m
-+isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .m
- 
- objective_c.dependency_type = TYPE_C
- objective_c.variables = QMAKE_OBJECTIVE_CFLAGS
--objective_c.commands = $$QMAKE_OBJECTIVE_CC -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
-+objective_c.commands = $$QMAKE_OBJECTIVE_CC -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
- objective_c.output = $$OBJECTIVE_C_OBJECTS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
--objective_c.input = OBJECTIVE_SOURCES
-+objective_c.input = OBJECTIVE_C_SOURCES
- objective_c.name = Compile ${QMAKE_FILE_IN}
- silent:objective_c.commands = @echo objective-c ${QMAKE_FILE_IN} && $$objective_c.commands
- QMAKE_EXTRA_COMPILERS += objective_c
-diff -N -r -u qt-orig/mkspecs/features/mac/objective_cxx.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/objective_cxx.prf
---- qt-orig/mkspecs/features/mac/objective_cxx.prf	1969-12-31 19:00:00.000000000 -0500
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/objective_cxx.prf	2019-03-29 09:52:51.000000000 -0400
-@@ -0,0 +1,18 @@
-+# Add compiler directives for Objective C (.mm) only
-+#
-+# OBJECTIVE_CXX_SOURCES has already been set in "split_sources"
-+
-+isEmpty(QMAKE_OBJECTIVE_CXX):QMAKE_OBJECTIVE_CXX = $$QMAKE_CC
-+
-+OBJECTIVE_CXX_OBJECTS_DIR = $$OBJECTS_DIR
-+isEmpty(OBJECTIVE_CXX_OBJECTS_DIR):OBJECTIVE_CXX_OBJECTS_DIR = .
-+isEmpty(QMAKE_EXT_OBJECTIVE_CXX):QMAKE_EXT_OBJECTIVE_CXX = .mm
-+
-+objective_cxx.dependency_type = TYPE_C
-+objective_cxx.variables = QMAKE_OBJECTIVE_CXXFLAGS
-+objective_cxx.commands = $$QMAKE_OBJECTIVE_CXX -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CXXFLAGS) $(DEFINES) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
-+objective_cxx.output = $$OBJECTIVE_CXX_OBJECTS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
-+objective_cxx.input = OBJECTIVE_CXX_SOURCES
-+objective_cxx.name = Compile ${QMAKE_FILE_IN}
-+silent:objective_cxx.commands = @echo objective-cxx ${QMAKE_FILE_IN} && $$objective_cxx.commands
-+QMAKE_EXTRA_COMPILERS += objective_cxx
-diff -N -r -u qt-orig/mkspecs/features/mac/split_sources.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/split_sources.prf
---- qt-orig/mkspecs/features/mac/split_sources.prf	1969-12-31 19:00:00.000000000 -0500
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/split_sources.prf	2019-03-29 09:52:51.000000000 -0400
-@@ -0,0 +1,52 @@
-+# move Objective C and C++ files from SOURCES to OBJECTIVE_SOURCES
-+
-+for(source, SOURCES) {
-+    contains(source,.*\\.m$) {
-+        warning(Objective-C source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
-+        SOURCES -= $$source
-+        OBJECTIVE_SOURCES += $$source
-+    } else {
-+        contains(source,.*\\.mm$) {
-+            warning(Objective-C++ source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
-+            SOURCES -= $$source
-+            OBJECTIVE_SOURCES += $$source
-+ 	}
-+    }
-+}
-+
-+# move C and C++ files from OBJECTIVE_SOURCES to SOURCES
-+
-+for(source, OBJECTIVE_SOURCES) {
-+    contains(source,.*\\.c$) {
-+        warning(C source \'$$source\' found in SOURCES but should be in SOURCES)
-+        OBJECTIVE_SOURCES -= $$source
-+        SOURCES += $$source
-+    } else {
-+      	contains(source,.*\\.cc$) {
-+            warning(C++ source \'$$source\' found in SOURCES but should be in SOURCES)
-+            OBJECTIVE_SOURCES -= $$source
-+            SOURCES += $$source
-+        } else {
-+    	    contains(source,.*\\.cpp$) {
-+	        warning(C++ source \'$$source\' found in SOURCES but should be in SOURCES)
-+		OBJECTIVE_SOURCES -= $$source
-+		SOURCES += $$source
-+            }
-+        }
-+    }
-+}
-+
-+# split Objective C and C++ sources into their own variables
-+
-+for(source, OBJECTIVE_SOURCES) {
-+    contains(source,.*\\.mm$) {
-+        OBJECTIVE_CXX_SOURCES += $$source
-+    } else {
-+        contains(source,.*\\.m$) {
-+            OBJECTIVE_C_SOURCES += $$source
-+        } else {
-+            warning(Source \'$$source\' was found in OBJECTIVE_SOURCES but its file extension is not a typical objective C (\'.m\') or C++ (\'.mm\') extension; assuming Objective C.)
-+            OBJECTIVE_C_SOURCES += $$source
-+	}
-+    }
-+}
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/sdk.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/sdk.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/sdk.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/sdk.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -2,6 +2,7 @@
-     !macx-xcode:!macx-pbuilder {
-         QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK
-         QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_MAC_SDK
-+        QMAKE_OBJECTIVE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK
-         QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK
-         QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK
-     }
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/x86.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/x86.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/x86.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/x86.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -2,6 +2,7 @@
- } else {
-    QMAKE_CFLAGS += $$QMAKE_CFLAGS_X86
-    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_X86
-+   QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_X86
-    QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_X86
-    QMAKE_LFLAGS += $$QMAKE_LFLAGS_X86
- }
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/x86_64.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/x86_64.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/mac/x86_64.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/mac/x86_64.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -2,6 +2,7 @@
- } else {
-    QMAKE_CFLAGS += $$QMAKE_CFLAGS_X86_64
-    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_X86_64
-+   QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_X86_64
-    QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_X86_64
-    QMAKE_LFLAGS += $$QMAKE_LFLAGS_X86_64
- }
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/release.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/release.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/release.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/release.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -2,6 +2,7 @@
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE
- QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE
- QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_RELEASE
-+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_RELEASE
- QMAKE_LFLAGS += $$QMAKE_LFLAGS_RELEASE
- QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE
--!debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(release, debug)
-\ No newline at end of file
-+!debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(release, debug)
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/unix/hide_symbols.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/unix/hide_symbols.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/unix/hide_symbols.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/unix/hide_symbols.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -1,4 +1,5 @@
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_HIDESYMS
- QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_HIDESYMS
- QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_HIDESYMS
-+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_HIDESYMS
- QMAKE_LFLAGS += $$QMAKE_LFLAGS_HIDESYMS
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/warn_off.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/warn_off.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/warn_off.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/warn_off.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -1,4 +1,5 @@
- CONFIG -= warn_on
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_OFF
- QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_OFF
--QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_OFF
-\ No newline at end of file
-+QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_OFF
-+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_WARN_OFF
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/warn_on.prf qt-everywhere-opensource-src-4.8.7/mkspecs/features/warn_on.prf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/features/warn_on.prf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/features/warn_on.prf	2019-04-04 15:47:55.000000000 -0400
-@@ -2,4 +2,4 @@
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_ON
- QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_ON
- QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_ON
--
-+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_WARN_ON
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/unsupported/macx-clang/qmake.conf qt-everywhere-opensource-src-4.8.7/mkspecs/unsupported/macx-clang/qmake.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/unsupported/macx-clang/qmake.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/unsupported/macx-clang/qmake.conf	2019-04-04 16:10:40.000000000 -0400
-@@ -13,6 +13,13 @@
- include(../../common/gcc-base-macx.conf)
- include(../../common/clang.conf)
- 
-+QMAKE_MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
-+
-+QMAKE_CFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
-+QMAKE_CXXFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
-+QMAKE_OBJECTIVE_CXXFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
-+QMAKE_LFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
-+
- QMAKE_OBJCFLAGS_PRECOMPILE       = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
- QMAKE_OBJCFLAGS_USE_PRECOMPILE   = $$QMAKE_CFLAGS_USE_PRECOMPILE
- QMAKE_OBJCXXFLAGS_PRECOMPILE     = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/mkspecs/unsupported/macx-clang-libc++/qmake.conf qt-everywhere-opensource-src-4.8.7/mkspecs/unsupported/macx-clang-libc++/qmake.conf
---- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/unsupported/macx-clang-libc++/qmake.conf	2015-05-07 10:14:42.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/mkspecs/unsupported/macx-clang-libc++/qmake.conf	2019-04-04 16:10:36.000000000 -0400
-@@ -13,10 +13,11 @@
- include(../../common/gcc-base-macx.conf)
- include(../../common/clang.conf)
- 
--QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 # Libc++ is available from 10.7 onwards
-+QMAKE_MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
- 
- QMAKE_CFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
- QMAKE_CXXFLAGS += -stdlib=libc++ -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
-+QMAKE_OBJECTIVE_CXXFLAGS += -stdlib=libc++ -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
- QMAKE_LFLAGS += -stdlib=libc++ -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET
- 
- QMAKE_OBJCFLAGS_PRECOMPILE       = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/qmake/qmake.pri qt-everywhere-opensource-src-4.8.7/qmake/qmake.pri
---- qt-everywhere-opensource-src-4.8.7.orig/qmake/qmake.pri	2019-04-04 15:46:06.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/qmake/qmake.pri	2019-04-04 15:47:55.000000000 -0400
-@@ -135,7 +135,7 @@
-         SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp
-         mac {
-           SOURCES += qcore_mac.cpp qsettings_mac.cpp
--          QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported)
-+          QMAKE_MACOSX_DEPLOYMENT_TARGET = @MACOSX_DEPLOYMENT_TARGET@
-           LIBS += -framework ApplicationServices
-         }
-     } else:win32 {
-diff -r -u qt-everywhere-opensource-src-4.8.7.orig/src/tools/bootstrap/bootstrap.pro qt-everywhere-opensource-src-4.8.7/src/tools/bootstrap/bootstrap.pro
---- qt-everywhere-opensource-src-4.8.7.orig/src/tools/bootstrap/bootstrap.pro	2019-04-04 16:54:09.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.7/src/tools/bootstrap/bootstrap.pro	2019-04-04 16:54:16.000000000 -0400
-@@ -103,7 +103,7 @@
- else:win32:SOURCES += ../../corelib/tools/qlocale_win.cpp
- 
- macx: {
--   QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported)
-+   QMAKE_MACOSX_DEPLOYMENT_TARGET = @QMAKE_MACOSX_DEPLOYMENT_TARGET@
-    SOURCES += ../../corelib/kernel/qcore_mac.cpp
-    LIBS += -framework CoreServices -framework ApplicationServices
- }
-diff -r -u a/tools/macdeployqt/shared/shared.cpp b/tools/macdeployqt/shared/shared.cpp
---- a/tools/macdeployqt/shared/shared.cpp	2015-05-07 10:14:40.000000000 -0400
-+++ b/tools/macdeployqt/shared/shared.cpp	2019-03-20 09:30:21.000000000 -0400
-@@ -141,7 +141,7 @@
-                 state = DylibName;
-                 continue;
-             } else if (part < parts.count() && parts.at(part).endsWith(".framework")) {
--                info.installName += "/" + (qtPath + "lib/").simplified();
-+                info.installName += "/" + (qtPath + "Frameworks/").simplified();
-                 info.frameworkDirectory = info.installName;
-                 state = FrameworkName;
-                 continue;
-diff -r -u a/tools/qtconfig/main.cpp b/tools/qtconfig/main.cpp
---- a/tools/qtconfig/main.cpp	2015-05-07 10:14:41.000000000 -0400
-+++ b/tools/qtconfig/main.cpp	2019-03-20 09:30:22.000000000 -0400
-@@ -51,6 +51,13 @@
- {
-     Q_INIT_RESOURCE(qtconfig);
- 
-+    const QByteArray graphicsSystem = qgetenv("QT_GRAPHICSSYSTEM");
-+    if (graphicsSystem.isNull() || graphicsSystem.isEmpty()) {
-+        // force native graphics mode unless the user set one via QT_GRAPHICSSYSTEM.
-+        // We have to use QT_GRAPHICSSYSTEM because that will override any previous
-+        // settings stored in our own settings store.
-+        qputenv("QT_GRAPHICSSYSTEM", "Native");
-+    }
-     QApplication app(argc, argv);
- 
-     QTranslator translator;
-diff -r -u a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp
---- a/tools/qtconfig/mainwindow.cpp	2015-05-07 10:14:41.000000000 -0400
-+++ b/tools/qtconfig/mainwindow.cpp	2019-03-20 09:30:22.000000000 -0400
-@@ -227,6 +227,7 @@
-     connect(ui->rtlExtensionsCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified()));
-     connect(ui->inputStyleCombo, SIGNAL(activated(int)), SLOT(somethingModified()));
-     connect(ui->inputMethodCombo, SIGNAL(activated(int)), SLOT(somethingModified()));
-+    connect(ui->graphicsSystemCombo, SIGNAL(activated(int)), SLOT(somethingModified()));
-     connect(ui->guiStyleCombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString)));
-     connect(ui->familySubstitutionCombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString)));
-     connect(ui->tunePaletteButton, SIGNAL(clicked()), SLOT(tunePalette()));
-@@ -416,7 +417,26 @@
-     ui->inputMethodCombo->hide();
-     ui->inputMethodLabel->hide();
- #endif
--
-+#ifdef Q_OS_MAC
-+    ui->graphicsSystemCombo->setToolTip(tr("Select the graphicsssystem to be used by default.\n"
-+        "Native: use native CoreGraphics rendering\n"
-+        "Raster: use raster graphics\n"
-+        "OpenGL: use OpenGL (experimental!)\n"
-+        "Raster mode is the preferred default except on Mac OS 10.14 and newer where it causes flickering.\n"
-+        "Use Native rendering on those newer OS versions (or if you experience other graphics glitches).\n"
-+        "Note that Raster mode is not compatible with certain built-in widget styles like CDE or Plastique."));
-+    QStringList graphicsSystems;
-+    QString defaultGraphicsSystem = settings.value(QLatin1String("DefaultGraphicsSystem"), QLatin1String("(unset)")).toString();
-+
-+    graphicsSystems << "(unset)" << "Native" << "Raster" << "OpenGL";
-+    ui->graphicsSystemCombo->addItems(graphicsSystems);
-+    if (!defaultGraphicsSystem.isNull() && !defaultGraphicsSystem.isEmpty()) {
-+        ui->graphicsSystemCombo->setCurrentIndex(graphicsSystems.indexOf(QRegExp(defaultGraphicsSystem, Qt::CaseInsensitive)));
-+    }
-+#else
-+    ui->graphicsSystemLabel->hide();
-+    ui->graphicsSystemCombo->hide();
-+#endif
-     ui->fontEmbeddingCheckBox->setChecked(settings.value(QLatin1String("embedFonts"), true)
-                                           .toBool());
-     fontpaths = settings.value(QLatin1String("fontPath")).toStringList();
-@@ -573,6 +593,13 @@
- #if defined(Q_WS_X11) && !defined(QT_NO_XIM)
-         settings.setValue(QLatin1String("DefaultInputMethod"), ui->inputMethodCombo->currentText());
- #endif
-+#ifdef Q_OS_MAC
-+        if (ui->graphicsSystemCombo->currentIndex() > 0) {
-+            settings.setValue(QLatin1String("DefaultGraphicsSystem"), ui->graphicsSystemCombo->currentText());
-+        } else {
-+            settings.remove(QLatin1String("DefaultGraphicsSystem"));
-+        }
-+#endif
- 
-         QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString();
-         QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString();
diff --git a/spack/packages/qt/qt4-pcre.patch b/spack/packages/qt/qt4-pcre.patch
deleted file mode 100644
index 854e564bf..000000000
--- a/spack/packages/qt/qt4-pcre.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -U5 -Nru qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h
---- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h	2014-04-10 14:37:12.000000000 -0400
-+++ qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h	2016-08-29 15:30:02.216546252 -0400
-@@ -32,11 +32,11 @@
- 
- #include "MacroAssembler.h"
- #include "RegexPattern.h"
- #include <UString.h>
- 
--#include <pcre.h>
-+#include <pcre/pcre.h>
- struct JSRegExp; // temporary, remove when fallback is removed.
- 
- #if CPU(X86) && !COMPILER(MSVC)
- #define YARR_CALL __attribute__ ((regparm (3)))
- #else
diff --git a/spack/packages/qt/qt4-qforeach.patch b/spack/packages/qt/qt4-qforeach.patch
deleted file mode 100644
index ae54cdbc1..000000000
--- a/spack/packages/qt/qt4-qforeach.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From c35a3f519007af44c3b364b9af86f6a336f6411b Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Tue, 11 Feb 2014 16:17:46 -0800
-Subject: [PATCH] Redo the Q_FOREACH loop control without GCC statement
- expressions
-
-It's possible to do without them, which probably makes the number of
-supported compilers a lot bigger: they just need to support decltype()
-or __typeof__.
-
-That includes the Intel compiler. The old code was also apparently
-working, but no one had realized the old workaround for some old version
-was still in place.
-
-The loop overhead is more or less the same. I have not done benchmarks,
-but inspection of the generated assembly shows more or less the same
-number of instructions.
-
-Change-Id: I32d499c84a6ddd19d994b49f17a469acb5c3a3f1
-Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
-Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
-
-Backported to Qt 4
-
---- a/src/corelib/global/qglobal.h
-+++ b/src/corelib/global/qglobal.h
-@@ -2482,22 +2482,32 @@ typedef uint Flags;
- 
- #endif /* Q_NO_TYPESAFE_FLAGS */
- 
--#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT)
-+#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT))
- /* make use of typeof-extension */
- template <typename T>
- class QForeachContainer {
- public:
--    inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { }
-+    inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { }
-     const T c;
-     int brk;
-     typename T::const_iterator i, e;
-+    int control;
- };
- 
-+// Explanation of the control word:
-+//  - it's initialized to 1
-+//  - that means both the inner and outer loops start
-+//  - if there were no breaks, at the end of the inner loop, it's set to 0, which
-+//    causes it to exit (the inner loop is run exactly once)
-+//  - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing
-+//    the outer loop to continue executing
-+//  - if there was a break inside the inner loop, it will exit with control still
-+//    set to 1; in that case, the outer loop will invert it to 0 and will exit too
- #define Q_FOREACH(variable, container)                                \
- for (QForeachContainer<__typeof__(container)> _container_(container); \
--     !_container_.brk && _container_.i != _container_.e;              \
--     __extension__  ({ ++_container_.brk; ++_container_.i; }))                       \
--    for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;}))
-+     _container_.control && _container_.i != _container_.e;         \
-+     ++_container_.i, _container_.control ^= 1)                     \
-+    for (variable = *_container_.i; _container_.control; _container_.control = 0)
- 
- #else
- 
diff --git a/spack/packages/qt/qt4-tools.patch b/spack/packages/qt/qt4-tools.patch
deleted file mode 100644
index 39ccff297..000000000
--- a/spack/packages/qt/qt4-tools.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -r -u a/tools/linguist/linguist/messagemodel.cpp b/tools/linguist/linguist/messagemodel.cpp
---- a/tools/linguist/linguist/messagemodel.cpp	2015-05-07 10:14:39.000000000 -0400
-+++ b/tools/linguist/linguist/messagemodel.cpp	2019-03-20 09:30:21.000000000 -0400
-@@ -183,7 +183,7 @@
-         if (ContextItem *c = one->findContext(oc->context())) {
-             for (int j = 0; j < oc->messageCount(); ++j) {
-                 MessageItem *m = oc->messageItem(j);
--                if (c->findMessage(m->text(), m->comment()) >= 0)
-+                if (c->findMessage(m->text(), m->comment()))
-                     ++inBoth;
-             }
-         }
diff --git a/spack/packages/qt/qt5-11-intel-overflow.patch b/spack/packages/qt/qt5-11-intel-overflow.patch
deleted file mode 100644
index 5bb0b1e03..000000000
--- a/spack/packages/qt/qt5-11-intel-overflow.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/qtbase/src/corelib/global/qnumeric_p.h	2018-11-25 06:51:11.000000000 -0600
-+++ b/qtbase/src/corelib/global/qnumeric_p.h	2020-01-07 14:13:12.103818264 -0600
-@@ -168,7 +168,7 @@
- // size_t. Implementations for 8- and 16-bit types will work but may not be as
- // efficient. Implementations for 64-bit may be missing on 32-bit platforms.
- 
--#if (defined(Q_CC_GNU) && (Q_CC_GNU >= 500) || (defined(Q_CC_INTEL) && !defined(Q_OS_WIN))) || QT_HAS_BUILTIN(__builtin_add_overflowx)
-+#if (defined(Q_CC_GNU) && (Q_CC_GNU >= 500) && !defined(Q_CC_INTEL) || (defined(Q_CC_INTEL) && (Q_CC_INTEL >= 1800) && (Q_CC_GNU >= 500) && !defined(Q_OS_WIN))) || QT_HAS_BUILTIN(__builtin_add_overflowx)
- // GCC 5, ICC 18, and Clang 3.8 have builtins to detect overflows
- 
- template <typename T> inline
diff --git a/spack/packages/qt/qt5-12-configure.patch b/spack/packages/qt/qt5-12-configure.patch
deleted file mode 100644
index 42681a162..000000000
--- a/spack/packages/qt/qt5-12-configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/qtbase/src/corelib/tools/qsimd_p.h b/qtbase/src/corelib/tools/qsimd_p.h
-index 2130a1f..3a14715 100644
---- a/qtbase/src/corelib/tools/qsimd_p.h
-+++ b/qtbase/src/corelib/tools/qsimd_p.h
-@@ -346,7 +346,7 @@ extern Q_CORE_EXPORT QBasicAtomicInteger<unsigned> qt_cpu_features[2];
- #endif
- Q_CORE_EXPORT void qDetectCpuFeatures();
- 
--#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND)
-+#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) && !defined(QT_BOOTSTRAPPED)
- Q_CORE_EXPORT qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW;
- #else
- static inline qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW
diff --git a/spack/packages/qt/qt5-12-intel-overflow.patch b/spack/packages/qt/qt5-12-intel-overflow.patch
deleted file mode 100644
index bfe5c8e4f..000000000
--- a/spack/packages/qt/qt5-12-intel-overflow.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/qtbase/src/corelib/global/qnumeric_p.h	2019-08-31 03:29:31.000000000 -0500
-+++ b/qtbase/src/corelib/global/qnumeric_p.h	2020-01-06 14:23:40.719851927 -0600
-@@ -231,7 +231,7 @@
- // size_t. Implementations for 8- and 16-bit types will work but may not be as
- // efficient. Implementations for 64-bit may be missing on 32-bit platforms.
- 
--#if (defined(Q_CC_GNU) && (Q_CC_GNU >= 500) || (defined(Q_CC_INTEL) && !defined(Q_OS_WIN))) || QT_HAS_BUILTIN(__builtin_add_overflow)
-+#if (defined(Q_CC_GNU) && (Q_CC_GNU >= 500) && !defined(Q_CC_INTEL) || (defined(Q_CC_INTEL) && (Q_CC_INTEL >= 1800) && (Q_CC_GNU >= 500) && !defined(Q_OS_WIN))) || QT_HAS_BUILTIN(__builtin_add_overflow)
- // GCC 5, ICC 18, and Clang 3.8 have builtins to detect overflows
- 
- template <typename T> inline
diff --git a/spack/packages/qt/qt5-8-framework.patch b/spack/packages/qt/qt5-8-framework.patch
deleted file mode 100644
index b1ba47fa0..000000000
--- a/spack/packages/qt/qt5-8-framework.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
-index f6cbf99..ec31e45 100644
---- a/qtbase/mkspecs/features/qt_module.prf
-+++ b/qtbase/mkspecs/features/qt_module.prf
-@@ -68,9 +68,9 @@ load(qt_build_paths)
- 
- header_module {
-     TEMPLATE     = aux
--    CONFIG      += \
--        force_qt \  # Needed for the headers_clean tests.
--        qt_no_install_library
-+    CONFIG      += force_qt  # Needed for the headers_clean tests.
-+    !lib_bundle: \
-+        CONFIG  += qt_no_install_library
- } else {
-     TEMPLATE     = lib
- }
diff --git a/spack/packages/qt/qt5-8-freetype.patch b/spack/packages/qt/qt5-8-freetype.patch
deleted file mode 100644
index c8d71105a..000000000
--- a/spack/packages/qt/qt5-8-freetype.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/qtbase/src/3rdparty/freetype/freetype.pro b/qtbase/src/3rdparty/freetype/freetype.pro
-index 5b1eb92..390a6da 100644
---- a/qtbase/src/3rdparty/freetype/freetype.pro
-+++ b/qtbase/src/3rdparty/freetype/freetype.pro
-@@ -69,6 +69,7 @@ DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
- include(../zlib_dependency.pri)
-
- DEFINES += FT_CONFIG_OPTION_USE_PNG
-+include($$OUT_PWD/../../gui/qtgui-config.pri)
- QMAKE_USE_PRIVATE += libpng
-
- DEFINES += TT_CONFIG_OPTION_SUBPIXEL_HINTING
diff --git a/spack/packages/qt/qt5-asm-volatile.patch b/spack/packages/qt/qt5-asm-volatile.patch
deleted file mode 100644
index c49fe3f34..000000000
--- a/spack/packages/qt/qt5-asm-volatile.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-From 97ec1d1882a83c23c91f0f7daea48e05858d8c32 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Mon, 28 Jan 2019 14:33:12 -0800
-Subject: [PATCH] Fix build with GCC 8.3
-
-Qualifiers in the asm statement are not allowed in the global scope. I
-thought they were necessary for LTO, but I the commit to this file that
-added them predates my work on setting up LTO for GCC.
-
-Change-Id: Id98140e1c2f0426cabbefffd157e23e5ece67a49
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
----
- .../JavaScriptCore/jit/JITStubs.cpp           | 48 +++++++++----------
- 1 file changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-index 1abdf8b..9f60761 100644
---- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp
-@@ -116,7 +116,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -138,7 +138,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -154,7 +154,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
-     
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -179,7 +179,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_s
- COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -206,7 +206,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -222,7 +222,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -242,7 +242,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -269,7 +269,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -287,7 +287,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -305,7 +305,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- 
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
- SYMBOL_STRING(ctiTrampoline) ":" "\n"
-@@ -323,7 +323,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "mov pc, lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -418,7 +418,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -440,7 +440,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -456,7 +456,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
-     
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -480,7 +480,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_
- COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
- COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -515,7 +515,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -531,7 +531,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "ret" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
- HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
- SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-@@ -551,7 +551,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
- #endif
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-@@ -578,7 +578,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-@@ -596,7 +596,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-     "bx lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".text" "\n"
- ".align 2" "\n"
- ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-@@ -614,7 +614,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- 
- #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
- 
--asm volatile (
-+asm (
- ".text\n"
- ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
- HIDE_SYMBOL(ctiTrampoline) "\n"
-@@ -632,7 +632,7 @@ SYMBOL_STRING(ctiTrampoline) ":" "\n"
-     "mov pc, lr" "\n"
- );
- 
--asm volatile (
-+asm (
- ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
- HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
- SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
-@@ -1024,7 +1024,7 @@ static NEVER_INLINE void throwStackOverflowError(CallFrame* callFrame, JSGlobalD
-     extern "C" { \
-         rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
-     }; \
--    asm volatile ( \
-+    asm ( \
-         ".text" "\n" \
-         ".align 2" "\n" \
-         ".globl " SYMBOL_STRING(cti_##op) "\n" \
-@@ -1053,7 +1053,7 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, thunkReturnAddress) == THUNK_RETUR
-     extern "C" { \
-         rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
-     }; \
--    asm volatile ( \
-+    asm ( \
-         ".globl " SYMBOL_STRING(cti_##op) "\n" \
-         HIDE_SYMBOL(cti_##op) "\n"             \
-         SYMBOL_STRING(cti_##op) ":" "\n" \
diff --git a/spack/packages/qt/qt5-btn_trigger_happy.patch b/spack/packages/qt/qt5-btn_trigger_happy.patch
deleted file mode 100644
index e6a27d5fa..000000000
--- a/spack/packages/qt/qt5-btn_trigger_happy.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp	2016-08-08 11:34:44.517184658 -0500
-+++ b/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp	2016-08-08 11:36:42.371995567 -0500
-@@ -262,10 +262,10 @@
-     m_buttonsMap[BTN_TR2] = QGamepadManager::ButtonR2;
-     m_buttonsMap[BTN_THUMB] = m_buttonsMap[BTN_THUMBL] = QGamepadManager::ButtonL3;
-     m_buttonsMap[BTN_THUMBR] = QGamepadManager::ButtonR3;
--    m_buttonsMap[BTN_TRIGGER_HAPPY1] = QGamepadManager::ButtonLeft;
--    m_buttonsMap[BTN_TRIGGER_HAPPY2] = QGamepadManager::ButtonRight;
--    m_buttonsMap[BTN_TRIGGER_HAPPY3] = QGamepadManager::ButtonUp;
--    m_buttonsMap[BTN_TRIGGER_HAPPY4] = QGamepadManager::ButtonDown;
-+    m_buttonsMap[0x2c0] = QGamepadManager::ButtonLeft;
-+    m_buttonsMap[0x2c1] = QGamepadManager::ButtonRight;
-+    m_buttonsMap[0x2c2] = QGamepadManager::ButtonUp;
-+    m_buttonsMap[0x2c3] = QGamepadManager::ButtonDown;
- 
-     if (m_productId)
-         m_backend->saveSettings(m_productId, QVariant());
diff --git a/spack/packages/qt/qt5-pcre.patch b/spack/packages/qt/qt5-pcre.patch
deleted file mode 100644
index 8fdf25661..000000000
--- a/spack/packages/qt/qt5-pcre.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/runtime/RegExp.cpp	2016-09-17 20:55:14.000000000 +0000
-+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/runtime/RegExp.cpp	2017-05-17 01:55:10.000000000 +0000
-@@ -44,7 +44,7 @@
- #include "JIT.h"
- #include "WRECGenerator.h"
- #endif
--#include <pcre/pcre.h>
-+#include "../pcre/pcre.h"
- 
- #endif
- 
---- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp	2016-09-17 20:55:14.000000000 +0000
-+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp	2017-05-17 01:55:51.000000000 +0000
-@@ -32,7 +32,7 @@
- #include "MacroAssembler.h"
- #include "RegexCompiler.h"
- 
--#include "pcre.h" // temporary, remove when fallback is removed.
-+#include "../pcre/pcre.h" // temporary, remove when fallback is removed.
- 
- #if ENABLE(YARR_JIT)
- 
---- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h	2016-09-17 20:55:14.000000000 +0000
-+++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h	2017-05-17 01:55:36.000000000 +0000
-@@ -34,7 +34,7 @@
- #include "RegexPattern.h"
- #include <UString.h>
- 
--#include <pcre.h>
-+#include "../pcre/pcre.h"
- struct JSRegExp; // temporary, remove when fallback is removed.
- 
- #if CPU(X86) && !COMPILER(MSVC)
diff --git a/spack/packages/qt/qt5-restore-pc-files.patch b/spack/packages/qt/qt5-restore-pc-files.patch
deleted file mode 100644
index 35fbaddd4..000000000
--- a/spack/packages/qt/qt5-restore-pc-files.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Partially reverts <https://codereview.qt-project.org/#/c/140954/>.
-
-diff --git i/qtbase/mkspecs/features/qt_module.prf w/qtbase/mkspecs/features/qt_module.prf
-index bb28af97..36bb6483 100644
---- i/qtbase/mkspecs/features/qt_module.prf
-+++ w/qtbase/mkspecs/features/qt_module.prf
-@@ -245,7 +245,7 @@ load(qt_installs)
- load(qt_targets)
-
- # this builds on top of qt_common
--!internal_module:!lib_bundle:if(unix|mingw) {
-+!internal_module:if(unix|mingw) {
-     CONFIG += create_pc
-     QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-     host_build: \
diff --git a/spack/packages/root/find-mysql.patch b/spack/packages/root/find-mysql.patch
deleted file mode 100644
index 230da73d7..000000000
--- a/spack/packages/root/find-mysql.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/cmake/modules/FindMySQL.cmake b/cmake/modules/FindMySQL.cmake
-index c818f5a..755da92 100644
---- a/cmake/modules/FindMySQL.cmake
-+++ b/cmake/modules/FindMySQL.cmake
-@@ -10,11 +10,18 @@ if(MYSQL_INCLUDE_DIR OR MYSQL_)
- endif()
- 
- if(NOT WIN32)
--  find_program(MYSQL_CONFIG_EXECUTABLE mysql_config
--    /usr/bin/
--    /usr/local/bin
--    ${MYSQL_DIR}/bin $ENV{MYSQL_DIR}/bin
--  )
-+  # Split into two find_program invocations to avoid user-specified
-+  # mariadb_config being overridden by system mysql_config.
-+  find_program(MYSQL_CONFIG_EXECUTABLE NAMES mysql_config mariadb_config
-+    PATH_SUFFIXES bin
-+    NO_DEFAULT_PATH
-+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
-+    )
-+  # Will not overwrite if MYSQL_CONFIG_EXECUTABLE is already set.
-+  find_program(MYSQL_CONFIG_EXECUTABLE NAMES mysql_config mariadb_config
-+    PATH_SUFFIXES bin
-+    PATHS /usr/local /usr
-+    )
- endif()
- 
- if(MYSQL_CONFIG_EXECUTABLE)
-@@ -26,17 +33,22 @@ if(MYSQL_CONFIG_EXECUTABLE)
-   execute_process(COMMAND ${MYSQL_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE MYSQL_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
- else()
-   find_path(MYSQL_INCLUDE_DIR mysql.h
--    /usr/local/mysql/include
--    /usr/local/include/mysql
--    /usr/local/include
--    /usr/include/mysql
--    /usr/include
--    /usr/mysql/include
--    $ENV{MYSQL_DIR}/include
--  )
-+    PATH_SUFFIXES include/mysql include/mariadb
-+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
-+    NO_DEFAULT_PATH
-+    )
-+  if (NOT MYSQL_INCLUDE_DIR)
-+    find_path(MYSQL_INCLUDE_DIR mysql.h
-+      PATH_SUFFIXES include/mysql include/mariadb
-+      PATHS /usr/local/mysql /usr/local /usr
-+      )
-+  endif()
-   set(MYSQL_NAMES mysqlclient mysqlclient_r)
-   find_library(MYSQL_LIBRARY NAMES ${MYSQL_NAMES}
--    PATHS /usr/local/mysql/lib /usr/local/lib /usr/lib $ENV{MYSQL_DIR}/lib $ENV{MYSQL_DIR}/lib/opt
-+    PATH_SUFFIXES lib lib/mariadb lib/mysql
-+    lib/opt lib/opt/mariadb lib/opt/mysql
-+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
-+    PATHS /usr/local/mysql /usr/local /usr
-   )
-   set(MYSQL_LIBRARIES ${MYSQL_LIBRARY})
- endif()
diff --git a/spack/packages/root/format-stringbuf-size.patch b/spack/packages/root/format-stringbuf-size.patch
deleted file mode 100644
index 5cb507ab2..000000000
--- a/spack/packages/root/format-stringbuf-size.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur core/base/src/TString.cxx core/base/src/TString.cxx
---- core/base/src/TString.cxx	2016-02-03 03:15:51.000000000 -0600
-+++ core/base/src/TString.cxx	2016-02-22 16:51:35.283316959 -0600
-@@ -2397,8 +2397,8 @@
- 
- static char *Format(const char *format, va_list ap)
- {
--   static const int cb_size  = 4096;
--   static const int fld_size = 2048;
-+   static const int cb_size  = 3*4096;
-+   static const int fld_size = 3*2048;
- 
-    // a circular formating buffer
-    TTHREAD_TLS_ARRAY(char,cb_size,gFormbuf); // gFormbuf[cb_size]; // some slob for form overflow
diff --git a/spack/packages/root/honor-unuran-switch.patch b/spack/packages/root/honor-unuran-switch.patch
deleted file mode 100644
index 1ea73d80b..000000000
--- a/spack/packages/root/honor-unuran-switch.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 20be628aeb0e2548693966b560fdde3e8d19c2d0 Mon Sep 17 00:00:00 2001
-From: Guilherme Amadio <amadio@cern.ch>
-Date: Tue, 8 May 2018 15:12:55 +0200
-Subject: [PATCH] Do not search for unuran or enable builtin_unuran if
- unuran=OFF
-
----
- cmake/modules/SearchInstalledSoftware.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
-index f69158e..b47ba34 100644
---- a/cmake/modules/SearchInstalledSoftware.cmake
-+++ b/cmake/modules/SearchInstalledSoftware.cmake
-@@ -60,7 +60,7 @@ if(builtin_zlib)
- endif()
- 
- #---Check for Unuran ------------------------------------------------------------------
--if(NOT builtin_unuran)
-+if(unuran AND NOT builtin_unuran)
-   message(STATUS "Looking for Unuran")
-   find_Package(Unuran)
-   if(NOT UNURAN_FOUND)
--- 
-1.8.3.1
-
diff --git a/spack/packages/root/math_uint.patch b/spack/packages/root/math_uint.patch
deleted file mode 100644
index ff4a38b91..000000000
--- a/spack/packages/root/math_uint.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 5f3faffdd869bce5e254ae70f69290e4651a061d Mon Sep 17 00:00:00 2001
-From: Lorenzo Moneta <Lorenzo.Moneta@cern.ch>
-Date: Mon, 4 Jan 2016 15:38:23 +0100
-Subject: [PATCH] Fix ROOT-7886. Use unsigned int instead of uint
-
----
- math/mathcore/inc/Math/Delaunay2D.h |  2 +-
- math/mathcore/src/Delaunay2D.cxx    | 30 +++++++++++++++---------------
- 2 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/math/mathcore/inc/Math/Delaunay2D.h b/math/mathcore/inc/Math/Delaunay2D.h
-index 6255e78..472bded 100644
---- a/math/mathcore/inc/Math/Delaunay2D.h
-+++ b/math/mathcore/inc/Math/Delaunay2D.h
-@@ -273,7 +273,7 @@ class Delaunay2D  {
-    double fYCellStep; //! inverse denominator to calculate X cell = fNCells / (fYNmax - fYNmin)
-    std::set<UInt_t> fCells[(fNCells+1)*(fNCells+1)]; //! grid cells with containing triangles
- 
--   inline unsigned int Cell(uint x, uint y) const {
-+   inline unsigned int Cell(UInt_t x, UInt_t y) const {
- 	   return x*(fNCells+1) + y;
-    }
- 
-diff --git a/math/mathcore/src/Delaunay2D.cxx b/math/mathcore/src/Delaunay2D.cxx
-index c4d4680..9a82858 100644
---- a/math/mathcore/src/Delaunay2D.cxx
-+++ b/math/mathcore/src/Delaunay2D.cxx
-@@ -190,7 +190,7 @@ void Delaunay2D::DoFindTriangles() {
- 
- 				Triangle tri;
- 
--				auto transform = [&] (const uint i) {
-+				auto transform = [&] (const unsigned int i) {
- 					tri.x[i] = face.vertex(i)->point().x();
- 					tri.y[i] = face.vertex(i)->point().y();
- 					tri.idx[i] = face.vertex(i)->info();
-@@ -326,7 +326,7 @@ void Delaunay2D::DoFindTriangles() {
- 	for(int t = 0; t < out.numberoftriangles; ++t){
- 		Triangle tri;
- 
--		auto transform = [&] (const uint v) {
-+		auto transform = [&] (const unsigned int v) {
- 			//each triangle as numberofcorners vertices ( = 3)
- 			tri.idx[v] = out.trianglelist[t*out.numberofcorners + v];
- 
-@@ -354,14 +354,14 @@ void Delaunay2D::DoFindTriangles() {
- 		auto bx = std::minmax({tri.x[0], tri.x[1], tri.x[2]});
- 		auto by = std::minmax({tri.y[0], tri.y[1], tri.y[2]});
- 
--		uint cellXmin = CellX(bx.first);
--		uint cellXmax = CellX(bx.second);
-+		unsigned int cellXmin = CellX(bx.first);
-+		unsigned int cellXmax = CellX(bx.second);
- 
--		uint cellYmin = CellY(by.first);
--		uint cellYmax = CellY(by.second);
-+		unsigned int cellYmin = CellY(by.first);
-+		unsigned int cellYmax = CellY(by.second);
- 
--		for(uint i = cellXmin; i <= cellXmax; ++i)
--			for(uint j = cellYmin; j <= cellYmax; ++j){
-+		for(unsigned int i = cellXmin; i <= cellXmax; ++i)
-+			for(unsigned int j = cellYmin; j <= cellYmax; ++j){
- 				//printf("(%u,%u) = %u\n", i, j, Cell(i,j));
- 				fCells[Cell(i,j)].insert(t);
- 			}
-@@ -382,7 +382,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
-    ///  FindAllTriangles();
- 
-     //see comment in header for CGAL fallback section
--    auto bayCoords = [&] (const uint t) -> std::tuple<double, double, double> {
-+    auto bayCoords = [&] (const unsigned int t) -> std::tuple<double, double, double> {
-     	double la = ( (fTriangles[t].y[1] - fTriangles[t].y[2])*(xx - fTriangles[t].x[2])
-     					 + (fTriangles[t].x[2] - fTriangles[t].x[1])*(yy - fTriangles[t].y[2]) ) * fTriangles[t].invDenom;
-     	double lb = ( (fTriangles[t].y[2] - fTriangles[t].y[0])*(xx - fTriangles[t].x[2])
-@@ -401,7 +401,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
- 	if(cX < 0 || cX > fNCells || cY < 0 || cY > fNCells)
- 		return fZout; //TODO some more fancy interpolation here
- 
--    for(uint t : fCells[Cell(cX, cY)]){
-+    for(unsigned int t : fCells[Cell(cX, cY)]){
-     	auto coords = bayCoords(t);
- 
-     	if(inTriangle(coords)){
-@@ -415,7 +415,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
- 
-     //debugging
- 
--    /*for(uint t = 0; t < fNdt; ++t){
-+    /*for(unsigned int t = 0; t < fNdt; ++t){
-     	auto coords = bayCoords(t);
- 
-     	if(inTriangle(coords)){
-@@ -423,17 +423,17 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
-     		//brute force found a triangle -> grid not
-     		printf("Found triangle %u for (%f,%f) -> (%u,%u)\n", t, xx,yy, cX, cY);
-     		printf("Triangles in grid cell: ");
--    		for(uint x : fCells[Cell(cX, cY)])
-+    		for(unsigned int x : fCells[Cell(cX, cY)])
-     			printf("%u ", x);
-     		printf("\n");
- 
-     		printf("Triangle %u is in cells: ", t);
--    		for(uint i = 0; i <= fNCells; ++i)
--    			for(uint j = 0; j <= fNCells; ++j)
-+    		for(unsigned int i = 0; i <= fNCells; ++i)
-+    			for(unsigned int j = 0; j <= fNCells; ++j)
-     				if(fCells[Cell(i,j)].count(t))
-     					printf("(%u,%u) ", i, j);
-     		printf("\n");
--    		for(uint i = 0; i < 3; ++i)
-+    		for(unsigned int i = 0; i < 3; ++i)
-     			printf("\tpoint %u (%u): (%f,%f) -> (%u,%u)\n", i, fTriangles[t].idx[i], fTriangles[t].x[i], fTriangles[t].y[i], CellX(fTriangles[t].x[i]), CellY(fTriangles[t].y[i]));
- 
-     		//we found the triangle -> interpolate using the barycentric interpolation
diff --git a/spack/packages/root/package.py b/spack/packages/root/package.py
deleted file mode 100644
index c9dd0f813..000000000
--- a/spack/packages/root/package.py
+++ /dev/null
@@ -1,524 +0,0 @@
-# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-
-from spack import *
-from spack.util.environment import is_system_path
-import sys
-
-
-class Root(CMakePackage):
-    """ROOT is a data analysis framework."""
-
-    homepage = "https://root.cern.ch"
-    url      = "https://root.cern/download/root_v6.16.00.source.tar.gz"
-
-    tags = ['hep']
-
-    maintainers = ['chissg', 'HadrienG2', 'drbenmorgan', 'vvolkl']
-
-    # ###################### Versions ##########################
-
-    # Master branch
-    version('master', git="https://github.com/root-project/root.git",
-            branch='master')
-
-    # Development version (when more recent than production).
-
-    # Production version
-    version('6.24.06', sha256='907f69f4baca1e4f30eeb4979598ca7599b6aa803ca046e80e25b6bbaa0ef522')
-    version('6.24.02', sha256='0507e1095e279ccc7240f651d25966024325179fa85a1259b694b56723ad7c1c')
-    version('6.24.00', sha256='9da30548a289211c3122d47dacb07e85d35e61067fac2be6c5a5ff7bda979989')
-    version('6.22.08', sha256='6f061ff6ef8f5ec218a12c4c9ea92665eea116b16e1cd4df4f96f00c078a2f6f')
-    version('6.22.06', sha256='c4688784a7e946cd10b311040b6cf0b2f75125a7520e04d1af0b746505911b57')
-    version('6.22.02', sha256='89784afa9c9047e9da25afa72a724f32fa8aa646df267b7731e4527cc8a0c340')
-    version('6.22.00', sha256='efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed')
-    version('6.20.08', sha256='d02f224b4908c814a99648782b927c353d44db79dea2cadea86138c1afc23ae9')
-    version('6.20.06', sha256='9a734758a91598d8a58a3d64d7d606aeb17bdf6fd8214e33f5c4d9947d391951')
-    version('6.20.04', sha256='1f8c76ccdb550e64e6ddb092b4a7e9d0a10655ef80044828cba12d5e7c874472')
-    version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6')
-    version('6.20.00', sha256='68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0')
-    version('6.18.04', sha256='315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4')
-
-    # Old versions
-    version('6.18.02', sha256='50ffffdbf2585a536c77a03f54aa631926138275ffeee02e5a16dde87e978c1d')
-    version('6.18.00', sha256='e6698d6cfe585f186490b667163db65e7d1b92a2447658d77fa831096383ea71')
-    version('6.16.00', sha256='2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8')
-    version('6.14.08', sha256='1b63b51cfb4dc20f1f5749faac6bbd1098eccab777f8b49911257d77186c73c4')
-    version('6.14.06', sha256='0fb943b61396f282b289e35c455a9ab60126229be1bd3f04a8f00b37c13ab432')
-    version('6.14.04', sha256='463ec20692332a422cfb5f38c78bedab1c40ab4d81be18e99b50cf9f53f596cf')
-    version('6.14.02', sha256='93816519523e87ac75924178d87112d1573eaa108fc65691aea9a9dd5bc05b3e')
-    version('6.14.00', sha256='7946430373489310c2791ff7a3520e393dc059db1371272bcd9d9cf0df347a0b')
-    version('6.12.06', sha256='aedcfd2257806e425b9f61b483e25ba600eb0ea606e21262eafaa9dc745aa794')
-    version('6.10.08', sha256='2cd276d2ac365403c66f08edd1be62fe932a0334f76349b24d8c737c0d6dad8a')
-    version('6.08.06', sha256='ea31b047ba6fc04b0b312667349eaf1498a254ccacd212144f15ffcb3f5c0592')
-    version('6.06.08', sha256='7cb836282014cce822ef589cad27811eb7a86d7fad45a871fa6b0e6319ec201a')
-    version('6.06.06', sha256='0a7d702a130a260c72cb6ea754359eaee49a8c4531b31f23de0bfcafe3ce466b')
-    version('6.06.04', sha256='ab86dcc80cbd8e704099af0789e23f49469932ac4936d2291602301a7aa8795b')
-    version('6.06.02', sha256='18a4ce42ee19e1a810d5351f74ec9550e6e422b13b5c58e0c3db740cdbc569d1')
-
-    # ###################### Patches ##########################
-
-    # Widely used patch (CMS, FNAL) to increase the size of static
-    # buffers used to improve the operation of TString.
-    patch('format-stringbuf-size.patch', level=0)
-    # Support use of `mariadb-c-client` and `mariadb` to provide the
-    # MySQL API _cf_
-    # https://github.com/root-project/root/commit/9c0fa8c554a569c971185249f9acfff4418c0c13.
-    patch('find-mysql.patch', level=1, when='@:6.16.00')
-    # Some ROOT versions did not honor the option to avoid building an
-    # internal version of unuran, _cf_
-    # https://github.com/root-project/ROOT/commit/3e60764f133218b6938e5aa4986de760e8f058d9.
-    patch('honor-unuran-switch.patch', level=1, when='@6.08.06:6.13.99')
-    # 6.16.00 fails to handle particular build option combinations, _cf_
-    # https://github.com/root-project/ROOT/commit/e0ae0483985d90a71a6cabd10d3622dfd1c15611.
-    patch('root7-webgui.patch', level=1, when='@6.16.00')
-
-    if sys.platform == 'darwin':
-        # Resolve non-standard use of uint, _cf_
-        # https://sft.its.cern.ch/jira/browse/ROOT-7886.
-        patch('math_uint.patch', when='@6.06.02')
-        # Resolve circular dependency, _cf_
-        # https://sft.its.cern.ch/jira/browse/ROOT-8226.
-        patch('root6-60606-mathmore.patch', when='@6.06.06')
-
-    # ###################### Variants ##########################
-    # See README.md for specific notes about what ROOT configuration
-    # options are or are not supported, and why.
-
-    variant('aqua', default=False,
-            description='Enable Aqua interface')
-    variant('davix', default=True,
-            description='Compile with external Davix')
-    variant('emacs', default=False,
-            description='Enable Emacs support')
-    variant('examples', default=True,
-            description='Install examples')
-    variant('fftw', default=False,
-            description='Enable Fast Fourier Transform support')
-    variant('fits', default=False,
-            description='Enable support for images and data from FITS files')
-    variant('fortran', default=False,
-            description='Enable the Fortran components of ROOT')
-    variant('graphviz', default=False,
-            description='Enable graphviz support')
-    variant('gdml', default=True,
-            description='Enable GDML writer and reader')
-    variant('gminimal', default=True,
-            description='Ignore most of Root\'s feature defaults except for '
-            'basic graphic options')
-    variant('gsl', default=True,
-            description='Enable linking against shared libraries for GSL')
-    variant('http', default=False,
-            description='Enable HTTP server support')
-    variant('jemalloc', default=False,
-            description='Enable using the jemalloc allocator')
-    variant('math', default=True,
-            description='Build the new libMathMore extended math library')
-    variant('memstat', default=False,
-            description='Enable a memory stats utility to detect memory leaks')
-    # Minuit must not be installed as a dependency of root
-    # otherwise it crashes with the internal minuit library
-    variant('minuit', default=True,
-            description='Automatically search for support libraries')
-    variant('mlp', default=False,
-            description="Enable support for TMultilayerPerceptron "
-            "classes' federation")
-    variant('mysql', default=False)
-    variant('opengl', default=True,
-            description='Enable OpenGL support')
-    variant('postgres', default=False,
-            description='Enable postgres support')
-    variant('pythia6', default=False,
-            description='Enable pythia6 support')
-    variant('pythia8', default=False,
-            description='Enable pythia8 support')
-    variant('python', default=True,
-            description='Enable Python ROOT bindings')
-    variant('qt4', default=False,
-            description='Enable Qt graphics backend')
-    variant('r', default=False,
-            description='Enable R ROOT bindings')
-    variant('rpath', default=True,
-            description='Enable RPATH')
-    variant('roofit', default=True,
-            description='Build the libRooFit advanced fitting package')
-    variant('root7', default=False,
-            description='Enable ROOT 7 support')
-    variant('shadow', default=False,
-            description='Enable shadow password support')
-    variant('spectrum', default=False,
-            description='Enable support for TSpectrum')
-    variant('sqlite', default=False,
-            description='Enable SQLite support')
-    variant('ssl', default=False,
-            description='Enable SSL encryption support')
-    variant('table', default=False,
-            description='Build libTable contrib library')
-    variant('tbb', default=True,
-            description='TBB multi-threading support')
-    variant('threads', default=True,
-            description='Enable using thread library')
-    variant('tmva', default=False,
-            description='Build TMVA multi variate analysis library')
-    variant('unuran', default=True,
-            description='Use UNURAN for random number generation')
-    variant('vc', default=False,
-            description='Enable Vc for adding new types for SIMD programming')
-    variant('vdt', default=True,
-            description='Enable set of fast and vectorisable math functions')
-    variant('vmc', default=False,
-            description='Enable the Virtual Monte Carlo interface')
-    variant('x', default=True,
-            description='Enable set of graphical options')
-    variant('xml', default=True,
-            description='Enable XML parser interface')
-    variant('xrootd', default=False,
-            description='Build xrootd file server and its client')
-
-    # ###################### Compiler variants ########################
-
-    variant('cxxstd',
-            default='11',
-            values=('11', '14', '17'),
-            multi=False,
-            description='Use the specified C++ standard when building.')
-
-    # ###################### Dependencies ######################
-
-    depends_on('cmake@3.4.3:', type='build', when='@:6.16.99')
-    depends_on('cmake@3.9:', type='build', when='@6.18.00:')
-    depends_on('pkgconfig', type='build')
-
-    depends_on('blas')
-    depends_on('freetype')
-    depends_on('jpeg')
-    depends_on('libice')
-    depends_on('libpng')
-    depends_on('lz4', when='@6.13.02:')  # See cmake_args, below.
-    depends_on('ncurses')
-    depends_on('nlohmann-json', when='@6.24:')
-    depends_on('pcre')
-    depends_on('xxhash', when='@6.13.02:')  # See cmake_args, below.
-    depends_on('xz')
-    depends_on('zlib')
-    depends_on('zstd', when='@6.20:')
-
-    # X-Graphics
-    depends_on('libx11',  when="+x")
-    depends_on('libxext', when="+x")
-    depends_on('libxft',  when="+x")
-    depends_on('libxpm',  when="+x")
-    depends_on('libsm',   when="+x")
-
-    # OpenGL
-    depends_on('ftgl@2.4.0:',  when="+x+opengl")
-    depends_on('glew',  when="+x+opengl")
-    depends_on('gl',    when="+x+opengl")
-    depends_on('glu',   when="+x+opengl")
-    depends_on('gl2ps', when="+x+opengl")
-
-    # Qt4
-    depends_on('qt@:4.999', when='+qt4')
-
-    # Python
-    depends_on('python@2.7:', when='+python', type=('build', 'run'))
-    depends_on('py-numpy', type=('build', 'run'), when='+tmva')
-    # This numpy dependency was not intended and will hopefully
-    # be fixed in 6.20.06.
-    # See: https://sft.its.cern.ch/jira/browse/ROOT-10626
-    depends_on('py-numpy', type=('build', 'run'),
-               when='@6.20.00:6.20.05 +python')
-
-    # Optional dependencies
-    depends_on('davix @0.7.1:', when='+davix')
-    depends_on('cfitsio',   when='+fits')
-    depends_on('fftw',      when='+fftw')
-    depends_on('graphviz',  when='+graphviz')
-    depends_on('gsl',       when='+gsl')
-    depends_on('jemalloc',  when='+jemalloc')
-    depends_on('mysql-client',   when='+mysql')
-    depends_on('openssl',   when='+ssl')
-    depends_on('openssl',   when='+davix')  # Also with davix
-    depends_on('postgresql', when='+postgres')
-    depends_on('pythia6+root', when='+pythia6')
-    depends_on('pythia8',   when='+pythia8')
-    depends_on('r',         when='+r', type=('build', 'run'))
-    depends_on('r-rcpp',    when='+r', type=('build', 'run'))
-    depends_on('r-rinside', when='+r', type=('build', 'run'))
-    depends_on('readline',  when='+r')
-    depends_on('shadow',    when='+shadow')
-    depends_on('sqlite',    when='+sqlite')
-    depends_on('tbb',       when='+tbb')
-    # See: https://github.com/root-project/root/issues/6933
-    conflicts('^intel-tbb@2021.1:', when='@:6.22',
-              msg='Please use an older intel-tbb version')
-    conflicts('^intel-oneapi-tbb@2021.1:', when='@:6.22',
-              msg='Please use an older intel-tbb/intel-oneapi-tbb version')
-    # depends_on('intel-tbb@:2021.0', when='@:6.22 ^intel-tbb')
-    depends_on('unuran',    when='+unuran')
-    depends_on('vc',        when='+vc')
-    depends_on('vdt',       when='+vdt')
-    depends_on('libxml2',   when='+xml')
-    depends_on('xrootd',          when='+xrootd')
-    depends_on('xrootd@:4.99.99', when='@:6.22.03 +xrootd')
-
-    # ###################### Conflicts ######################
-
-    # I was unable to build root with any Intel compiler
-    # See https://sft.its.cern.ch/jira/browse/ROOT-7517
-    conflicts('%intel')
-
-    # ROOT <6.08 was incompatible with the GCC 5+ ABI
-    conflicts('%gcc@5.0.0:', when='@:6.07.99')
-
-    # The version of Clang featured in ROOT <6.12 fails to build with
-    # GCC 9.2.1, which we can safely extrapolate to the GCC 9 series.
-    conflicts('%gcc@9.0.0:', when='@:6.11.99')
-
-    # ROOT <6.14 was incompatible with Python 3.7+
-    conflicts('^python@3.7:', when='@:6.13.99 +python')
-
-    # See README.md
-    ## S. Joosten --> commented out, this is not an issue when building in
-    ##                our container
-    #conflicts('+http',
-    #          msg='HTTP server currently unsupported due to dependency issues')
-
-    # Incompatible variants
-    conflicts('+opengl', when='~x', msg='OpenGL requires X')
-    conflicts('+tmva', when='~gsl', msg='TVMA requires GSL')
-    conflicts('+tmva', when='~mlp', msg='TVMA requires MLP')
-    conflicts('cxxstd=11', when='+root7', msg='root7 requires at least C++14')
-
-    # Feature removed in 6.18:
-    for pkg in ('memstat', 'qt4', 'table'):
-        conflicts('+' + pkg, when='@6.18.00:',
-                  msg='Obsolete option +{0} selected.'.format(pkg))
-
-    def cmake_args(self):
-        spec = self.spec
-        define = self.define
-        define_from_variant = self.define_from_variant
-        options = []
-
-        # ###################### Boolean Options ######################
-        # For option list format see _process_opts(), below.
-
-        # Options controlling gross build / config behavior.
-        options += [
-            define('cxxmodules', False),
-            define('exceptions', True),
-            define('explicitlink', True),
-            define('fail-on-missing', True),
-            define_from_variant('fortran'),
-            define_from_variant('gminimal'),
-            define('gnuinstall', False),
-            define('libcxx', False),
-            define('pch', True),
-            define('roottest', False),
-            define_from_variant('rpath'),
-            define('runtime_cxxmodules', False),
-            define('shared', True),
-            define('soversion', True),
-            define('testing', self.run_tests),
-            define_from_variant('thread', 'threads')
-        ]
-
-        # Options related to ROOT's ability to download and build its own
-        # dependencies. Per Spack convention, this should generally be avoided.
-        options += [
-            define_from_variant('builtin_afterimage', 'x'),
-            define('builtin_cfitsio', False),
-            define('builtin_davix', False),
-            define('builtin_fftw3', False),
-            define('builtin_freetype', False),
-            define('builtin_ftgl', False),
-            define('builtin_gl2ps', False),
-            define('builtin_glew', False),
-            define('builtin_gsl', False),
-            define('builtin_llvm', True),
-            define('builtin_lz4', self.spec.satisfies('@6.12.02:6.12.99')),
-            define('builtin_lzma', False),
-            define('builtin_nlohmannjson', False),
-            define('builtin_openssl', False),
-            define('builtin_pcre', False),
-            define('builtin_tbb', False),
-            define('builtin_unuran', False),
-            define('builtin_vc', False),
-            define('builtin_vdt', False),
-            define('builtin_veccore', False),
-            define('builtin_xrootd', False),
-            define('builtin_xxhash', self.spec.satisfies('@6.12.02:6.12.99')),
-            define('builtin_zlib', False)
-        ]
-
-        # Features
-        options += [
-            define('afdsmrgd', False),
-            define('afs', False),
-            define('alien', False),
-            define('arrow', False),
-            define('asimage', True),
-            define('astiff', True),
-            define('bonjour', False),
-            define('castor', False),
-            define('ccache', False),
-            define('chirp', False),
-            define('cling', True),
-            define_from_variant('cocoa', 'aqua'),
-            define('dataframe', True),
-            define_from_variant('davix'),
-            define('dcache', False),
-            define_from_variant('fftw3', 'fftw'),
-            define_from_variant('fitsio', 'fits'),
-            define_from_variant('ftgl', 'opengl'),
-            define_from_variant('gdml'),
-            define_from_variant('genvector', 'math'),
-            define('geocad', False),
-            define('gfal', False),
-            define_from_variant('gl2ps', 'opengl'),
-            define('glite', False),
-            define('globus', False),
-            define_from_variant('gsl_shared', 'gsl'),
-            define_from_variant('gviz', 'graphviz'),
-            define('hdfs', False),
-            define_from_variant('http'),  # See conflicts
-            define_from_variant('imt', 'tbb'),
-            define_from_variant('jemalloc'),
-            define('krb5', False),
-            define('ldap', False),
-            define_from_variant('mathmore', 'math'),
-            define_from_variant('memstat'),  # See conflicts
-            define('minimal', False),
-            define_from_variant('minuit'),
-            define_from_variant('minuit2', 'minuit'),
-            define_from_variant('mlp'),
-            define('monalisa', False),
-            define_from_variant('mysql'),
-            define('odbc', False),
-            define_from_variant('opengl'),
-            define('oracle', False),
-            define_from_variant('pgsql', 'postgres'),
-            define_from_variant('pythia6'),
-            define_from_variant('pythia8'),
-            define_from_variant('qt', 'qt4'),  # See conflicts
-            define_from_variant('qtgsi', 'qt4'),  # See conflicts
-            define_from_variant('r'),
-            define('rfio', False),
-            define_from_variant('roofit'),
-            define_from_variant('root7'),  # See conflicts
-            define('ruby', False),
-            define('sapdb', False),
-            define_from_variant('shadowpw', 'shadow'),
-            define_from_variant('spectrum'),
-            define_from_variant('sqlite'),
-            define('srp', False),
-            define_from_variant('ssl'),
-            define_from_variant('table'),
-            define_from_variant('tbb'),
-            define('tcmalloc', False),
-            define_from_variant('tmva'),
-            define_from_variant('unuran'),
-            define_from_variant('vc'),
-            define_from_variant('vdt'),
-            define('veccore', False),
-            define_from_variant('vmc'),
-            define_from_variant('webui', 'root7'),  # requires root7
-            define_from_variant('x11', 'x'),
-            define_from_variant('xft', 'x'),
-            define_from_variant('xml'),
-            define_from_variant('xrootd')
-        ]
-
-        # Some special features
-        if self.spec.satisfies('@6.20:'):
-            options.append(define_from_variant('pyroot', 'python'))
-        else:
-            options.append(define_from_variant('python'))
-
-        # #################### Compiler options ####################
-
-        if sys.platform == 'darwin' and self.compiler.cc == 'gcc':
-            cflags = '-D__builtin_unreachable=__builtin_trap'
-            options.extend([
-                define('CMAKE_C_FLAGS', cflags),
-                define('CMAKE_CXX_FLAGS', cflags),
-            ])
-
-        # Method for selecting C++ standard depends on ROOT version
-        if self.spec.satisfies('@6.18.00:'):
-            options.append(define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'))
-        else:
-            options.append(define('cxx' + self.spec.variants['cxxstd'].value,
-                                  True))
-
-        if '+x+opengl' in self.spec:
-            ftgl_prefix = self.spec['ftgl'].prefix
-            options.append(define('FTGL_ROOT_DIR', ftgl_prefix))
-            options.append(define('FTGL_INCLUDE_DIR', ftgl_prefix.include))
-        if '+python' in self.spec:
-            # See https://github.com/spack/spack/pull/11579
-            options.append(define('PYTHON_EXECUTABLE',
-                                  spec['python'].command.path))
-
-        return options
-
-    def setup_build_environment(self, env):
-        spec = self.spec
-
-        if 'lz4' in spec:
-            env.append_path('CMAKE_PREFIX_PATH', spec['lz4'].prefix)
-
-        # This hack is made necessary by a header name collision between
-        # asimage's "import.h" and Python's "import.h" headers...
-        env.set('SPACK_INCLUDE_DIRS', '', force=True)
-
-        # ...but it breaks header search for any ROOT dependency which does not
-        # use CMake. To resolve this, we must bring back those dependencies's
-        # include paths into SPACK_INCLUDE_DIRS.
-        #
-        # But in doing so, we must be careful not to inject system header paths
-        # into SPACK_INCLUDE_DIRS, even in a deprioritized form, because some
-        # system/compiler combinations don't like having -I/usr/include around.
-        def add_include_path(dep_name):
-            include_path = spec[dep_name].prefix.include
-            if not is_system_path(include_path):
-                env.append_path('SPACK_INCLUDE_DIRS', include_path)
-
-        # With that done, let's go fixing those deps
-        if spec.satisfies('@:6.12.99'):
-            add_include_path('zlib')
-        if '+x' in spec:
-            if spec.satisfies('@:6.08.99') or spec.satisfies('@6.22:'):
-                add_include_path('xextproto')
-            add_include_path('fontconfig')
-            add_include_path('libx11')
-            add_include_path('xproto')
-        if '+opengl' in spec:
-            add_include_path('glew')
-            add_include_path('mesa-glu')
-
-    def setup_run_environment(self, env):
-        env.set('ROOTSYS', self.prefix)
-        env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
-        env.prepend_path('PYTHONPATH', self.prefix.lib)
-
-    def setup_dependent_build_environment(self, env, dependent_spec):
-        env.set('ROOTSYS', self.prefix)
-        env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
-        env.prepend_path('PYTHONPATH', self.prefix.lib)
-        env.prepend_path('PATH', self.prefix.bin)
-        env.append_path('CMAKE_MODULE_PATH', self.prefix.cmake)
-        if "+rpath" not in self.spec:
-            env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
-
-    def setup_dependent_run_environment(self, env, dependent_spec):
-        env.set('ROOTSYS', self.prefix)
-        env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
-        env.prepend_path('PYTHONPATH', self.prefix.lib)
-        env.prepend_path('PATH', self.prefix.bin)
-        if "+rpath" not in self.spec:
-            env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
diff --git a/spack/packages/root/root6-60606-mathmore.patch b/spack/packages/root/root6-60606-mathmore.patch
deleted file mode 100644
index d009a5af0..000000000
--- a/spack/packages/root/root6-60606-mathmore.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/math/mathmore/inc/Math/QuantFuncMathMore.h b/math/mathmore/inc/Math/QuantFuncMathMore.h
-index fd6679c..03ccc03 100644
---- a/math/mathmore/inc/Math/QuantFuncMathMore.h
-+++ b/math/mathmore/inc/Math/QuantFuncMathMore.h
-@@ -25,17 +25,6 @@
-   **********************************************************************/
- 
- 
--#if defined(__CINT__) && !defined(__MAKECINT__)
--// avoid to include header file when using CINT
--#ifndef _WIN32
--#include "../lib/libMathMore.so"
--#else
--#include "../bin/libMathMore.dll"
--#endif
--
--#else
--
--
- #ifndef ROOT_Math_QuantFuncMathMore
- #define ROOT_Math_QuantFuncMathMore
- 
-@@ -190,5 +179,3 @@ namespace MathMore {
- 
- 
- #endif // ROOT_Math_QuantFuncMathMore
--
--#endif // if defined (__CINT__) && !defined(__MAKECINT__)
-
diff --git a/spack/packages/root/root7-webgui.patch b/spack/packages/root/root7-webgui.patch
deleted file mode 100644
index 61cf5150d..000000000
--- a/spack/packages/root/root7-webgui.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake
-index 71f628f7f6..56d64fee43 100644
---- a/cmake/modules/CheckCompiler.cmake
-+++ b/cmake/modules/CheckCompiler.cmake
-@@ -130,10 +130,10 @@ if(cxx17)
- endif()
- if(root7)
-   if(cxx11)
--    message(STATUS "ROOT7 interfaces require >= cxx14 which is disabled. Switching OFF root7 option")
--    set(root7 OFF CACHE BOOL "" FORCE)
-+    message(FATAL ERROR "ROOT 7 requires C++14 or higher")
-+  elseif(NOT http)
-+    set(http ON CACHE BOOL "(Enabled since it's needed by ROOT 7)" FORCE)
-   endif()
--    set(http ON CACHE BOOL "" FORCE)
- endif()
- 
- #---Check for libcxx option------------------------------------------------------------
-diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake
-index f1e6237592..4406549367 100644
---- a/cmake/modules/RootBuildOptions.cmake
-+++ b/cmake/modules/RootBuildOptions.cmake
-@@ -156,6 +156,7 @@ ROOT_BUILD_OPTION(qt5web OFF "Enable support for Qt5 web-based display (requires
- ROOT_BUILD_OPTION(r OFF "Enable support for R bindings (requires R, Rcpp, and RInside)")
- ROOT_BUILD_OPTION(rfio OFF "Enable support for RFIO (Remote File IO) for CASTOR")
- ROOT_BUILD_OPTION(roofit ON "Build RooFit advanced fitting package")
-+ROOT_BUILD_OPTION(webui ON "Build Web-based UI components of ROOT (requires C++14 standard or higher)")
- ROOT_BUILD_OPTION(root7 OFF "Build ROOT 7 components of ROOT (requires C++14 standard or higher)")
- ROOT_BUILD_OPTION(rpath OFF "Link libraries with built-in RPATH (run-time search path)")
- ROOT_BUILD_OPTION(runtime_cxxmodules OFF "Enable runtime support for C++ modules")
-@@ -317,6 +318,17 @@ endforeach()
- #---Apply root7 versus language------------------------------------------------------------------
- if(cxx14 OR cxx17 OR cxx14_defval OR cxx17_defval)
-   set(root7_defvalue ON)
-+else()
-+  set(root7_defvalue OFF)
-+  set(webui_defvalue OFF)
-+endif()
-+
-+if(webui)
-+  if(cxx11)
-+    message(FATAL_ERROR "WebUI requires C++14 or higher")
-+  elseif(NOT http)
-+    set(http ON CACHE BOOL "(Enabled since it's needed by webui)" FORCE)
-+  endif()
- endif()
- 
- #---roottest option implies testing
-diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
-index 8273d5e382..7598ccaaeb 100644
---- a/cmake/modules/SearchInstalledSoftware.cmake
-+++ b/cmake/modules/SearchInstalledSoftware.cmake
-@@ -1599,14 +1599,16 @@ endif()
- 
- 
- #------------------------------------------------------------------------------------
--ExternalProject_Add(
--   OPENUI5
--   URL ${CMAKE_SOURCE_DIR}/net/http/openui5/openui5.tar.gz
--   URL_HASH SHA256=32e50e3e8808295c67ecb7561ea9cd9beb76dd934263170fbbd05ff59b6d501d
--   CONFIGURE_COMMAND ""
--   BUILD_COMMAND ""
--   INSTALL_COMMAND ""
--   SOURCE_DIR ${CMAKE_BINARY_DIR}/etc/http/openui5dist)
-+if(webui)
-+  ExternalProject_Add(
-+    OPENUI5
-+    URL ${CMAKE_SOURCE_DIR}/net/http/openui5/openui5.tar.gz
-+    URL_HASH SHA256=32e50e3e8808295c67ecb7561ea9cd9beb76dd934263170fbbd05ff59b6d501d
-+    CONFIGURE_COMMAND ""
-+    BUILD_COMMAND ""
-+    INSTALL_COMMAND ""
-+    SOURCE_DIR ${CMAKE_BINARY_DIR}/etc/http/openui5dist)
-+endif()
- 
- #---Report removed options---------------------------------------------------
- foreach(opt afs glite sapdb srp chirp ios)
-diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
-index 499c427180..38b73b29cd 100644
---- a/gui/CMakeLists.txt
-+++ b/gui/CMakeLists.txt
-@@ -6,7 +6,7 @@ add_subdirectory(guihtml)
- add_subdirectory(recorder)
- add_subdirectory(sessionviewer)
- 
--if(cxx14 OR cxx17 OR root7)
-+if(webui)
-    add_subdirectory(webdisplay)
-    if(cefweb)
-       add_subdirectory(cefdisplay)
-@@ -15,11 +15,10 @@ if(cxx14 OR cxx17 OR root7)
-       add_subdirectory(qt5webdisplay)
-    endif()
-    add_subdirectory(webgui6)
--endif()
--
--if(root7)
--  add_subdirectory(canvaspainter)
--  add_subdirectory(fitpanelv7)
-+   if(root7)
-+     add_subdirectory(canvaspainter)
-+     add_subdirectory(fitpanelv7)
-+   endif()
- endif()
- if(qtgsi)
-   add_subdirectory(qtgsi)
-- 
GitLab