diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index ee589cb557418f2df94415024fca7d4de3b40db2..2347e3bb6a117ba21896eb73982639c2face78c1 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -20,6 +20,7 @@ class Hpctoolkit(AutotoolsPackage):
 
     version('master', branch='master')
     version('gpu', branch='gpu')
+    version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240')
     version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c')
     version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc')
     version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9')
@@ -35,7 +36,7 @@ class Hpctoolkit(AutotoolsPackage):
 
     variant('bgq', default=False,
             description='Build for Blue Gene compute nodes, including '
-            'hpcprof-mpi.')
+            'hpcprof-mpi (up to 2019.12.28 only).')
 
     variant('mpi', default=False,
             description='Build hpcprof-mpi, the MPI version of hpcprof.')
@@ -52,39 +53,45 @@ class Hpctoolkit(AutotoolsPackage):
             'for the compute nodes.')
 
     variant('cuda', default=False,
-            description='Support CUDA on NVIDIA GPUs (gpu branch only).')
+            description='Support CUDA on NVIDIA GPUs (master or gpu branch).')
 
-    boost_libs = '+atomic +chrono +date_time +filesystem +system +thread' \
-                 '+timer +graph +regex +shared +multithreaded'
+    boost_libs = (
+        '+atomic +chrono +date_time +filesystem +system +thread +timer'
+        ' +graph +regex +shared +multithreaded visibility=global'
+    )
 
     depends_on('binutils+libiberty~nls', type='link')
     depends_on('boost' + boost_libs)
-    depends_on('boost' + ' visibility=global', when='@gpu')
     depends_on('bzip2', type='link')
     depends_on('dyninst')
     depends_on('elfutils~nls', type='link')
     depends_on('intel-tbb')
     depends_on('libdwarf')
-    depends_on('libmonitor+hpctoolkit', when='~bgq')
-    depends_on('libmonitor+hpctoolkit+bgq', when='+bgq')
+    depends_on('libmonitor+hpctoolkit')
+    depends_on('libmonitor+bgq', when='+bgq')
     depends_on('libunwind@2018.10.0:')
+    depends_on('mbedtls+pic')
     depends_on('xerces-c transcoder=iconv')
     depends_on('xz', type='link')
     depends_on('zlib')
 
     depends_on('cuda', when='+cuda')
     depends_on('intel-xed', when='target=x86_64:')
-    depends_on('mbedtls+pic', when='@gpu')
     depends_on('papi', when='+papi')
     depends_on('libpfm4', when='~papi')
     depends_on('mpi', when='+mpi')
 
     conflicts('%gcc@:4.7.99', when='^dyninst@10.0.0:',
               msg='hpctoolkit requires gnu gcc 4.8.x or later')
+
     conflicts('%gcc@:4.99.99', when='@gpu',
               msg='the gpu branch requires gnu gcc 5.x or later')
-    conflicts('+cuda', when='@2018.0.0:',
-              msg='cuda is only available on the gpu branch')
+
+    conflicts('%gcc@:4.99.99', when='@master',
+              msg='the master branch requires gnu gcc 5.x or later')
+
+    conflicts('+cuda', when='@2018.0.0:2019.99.99',
+              msg='cuda is only available on the master or gpu branches')
 
     flag_handler = AutotoolsPackage.build_system_flags
 
@@ -101,6 +108,7 @@ def configure_args(self):
             '--with-libdwarf=%s'     % spec['libdwarf'].prefix,
             '--with-libmonitor=%s'   % spec['libmonitor'].prefix,
             '--with-libunwind=%s'    % spec['libunwind'].prefix,
+            '--with-mbedtls=%s'      % spec['mbedtls'].prefix,
             '--with-xerces=%s'       % spec['xerces-c'].prefix,
             '--with-lzma=%s'         % spec['xz'].prefix,
             '--with-zlib=%s'         % spec['zlib'].prefix,
@@ -113,9 +121,6 @@ def configure_args(self):
                 '--with-cupti=%s' % cupti_path,
             ])
 
-        if spec.satisfies('@gpu'):
-            args.append('--with-mbedtls=%s' % spec['mbedtls'].prefix)
-
         if spec.target.family == 'x86_64':
             args.append('--with-xed=%s' % spec['intel-xed'].prefix)