diff --git a/octopus/foss2021a-cuda-mpi-config.sh b/octopus/foss2021a-cuda-mpi-config.sh
index 1d2ce55003c728d29ff2b0dbc665f8f976b27c39..b66dd2dd81c1effc0d0624b42f38edc3f901bcaf 100644
--- a/octopus/foss2021a-cuda-mpi-config.sh
+++ b/octopus/foss2021a-cuda-mpi-config.sh
@@ -7,6 +7,7 @@ export CXX="mpicxx"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="mpif90"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
@@ -47,6 +48,11 @@ unset try_mpsd_elpa_version
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
     --with-parmetis-prefix="$MPSD_PARMETIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/octopus/foss2021a-mpi-config.sh b/octopus/foss2021a-mpi-config.sh
index 59416004d1819c163f329c970c7fb6f8c0570f8f..0c5b1c181401b83050407c6085a00d69989d73d9 100644
--- a/octopus/foss2021a-mpi-config.sh
+++ b/octopus/foss2021a-mpi-config.sh
@@ -7,6 +7,7 @@ export CXX="mpicxx"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="mpif90"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
@@ -46,6 +47,11 @@ unset try_mpsd_elpa_version
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
     --with-parmetis-prefix="$MPSD_PARMETIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/octopus/foss2021a-serial-config.sh b/octopus/foss2021a-serial-config.sh
index c3e0fdec035f446d0ef58e4613e918df6197ea7c..18f2dc7df8c25249b45bbe66b927a87133507cc3 100644
--- a/octopus/foss2021a-serial-config.sh
+++ b/octopus/foss2021a-serial-config.sh
@@ -7,6 +7,7 @@ export CXX="g++"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="gfortran"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
@@ -39,6 +40,11 @@ unset try_mpsd_elpa_version
     --with-cgal="$MPSD_CGAL_ROOT" \
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/octopus/foss2022a-cuda-mpi-config.sh b/octopus/foss2022a-cuda-mpi-config.sh
index 1d2ce55003c728d29ff2b0dbc665f8f976b27c39..b66dd2dd81c1effc0d0624b42f38edc3f901bcaf 100644
--- a/octopus/foss2022a-cuda-mpi-config.sh
+++ b/octopus/foss2022a-cuda-mpi-config.sh
@@ -7,6 +7,7 @@ export CXX="mpicxx"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="mpif90"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
@@ -47,6 +48,11 @@ unset try_mpsd_elpa_version
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
     --with-parmetis-prefix="$MPSD_PARMETIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/octopus/foss2022a-mpi-config.sh b/octopus/foss2022a-mpi-config.sh
index 59416004d1819c163f329c970c7fb6f8c0570f8f..b3dfc440b6ba1cdfef98df4fe4af03449cb798b0 100644
--- a/octopus/foss2022a-mpi-config.sh
+++ b/octopus/foss2022a-mpi-config.sh
@@ -7,7 +7,7 @@ export CXX="mpicxx"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="mpif90"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
-
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
 export LDFLAGS=`echo ${LIBRARY_PATH:+:$LIBRARY_PATH} | sed -e 's/:/ -Wl,-rpath=/g'`
@@ -46,6 +46,11 @@ unset try_mpsd_elpa_version
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
     --with-parmetis-prefix="$MPSD_PARMETIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/octopus/foss2022a-serial-config.sh b/octopus/foss2022a-serial-config.sh
index 97176656ffc8ab066592021abe986e2dfa567f83..9a83fe2f713cfeab33da1523e50f3e9051a284d2 100644
--- a/octopus/foss2022a-serial-config.sh
+++ b/octopus/foss2022a-serial-config.sh
@@ -7,6 +7,7 @@ export CXX="g++"
 export CXXFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments"
 export FC="gfortran"
 export FCFLAGS="$MARCH_FLAG $OPTIMISATION_LEVEL -g -fno-var-tracking-assignments -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz"
+export LIBS_PSOLVER="-L$MPSD_BIGDFT_PSOLVER_ROOT/lib -lPSolver-1 -latlab-1 -lfutile-1"
 
 #HG: ugly hack to include rpath while linking
 #    becomes necessary for spack >= 0.19, as it does not set LD_LIBRARY_PATH anymore
@@ -41,6 +42,11 @@ unset try_mpsd_elpa_version
     --with-cgal="$MPSD_CGAL_ROOT" \
     --with-boost="$MPSD_BOOST_ROOT" \
     --with-metis-prefix="$MPSD_METIS_ROOT" \
+    --with-psolver-prefix="$MPSD_BIGDFT_PSOLVER_ROOT" \
+    --with-futile-prefix="$MPSD_BIGDFT_FUTILE_ROOT" \
+    --with-dftbplus-prefix="$MPSD_DFTBPLUS_ROOT" \
+    --with-netcdf-prefix="$MPSD_NETCDF_FORTRAN_ROOT" \
+    --with-etsf-io-prefix="$MPSD_ETSF_IO_ROOT" \
     "$@" | tee 00-configure.log 2>&1
 echo "-------------------------------------------------------------------------------" >&2
 echo "configure output has been saved to 00-configure.log" >&2
diff --git a/toolchains/foss2021a-cuda-mpi/spack.yaml b/toolchains/foss2021a-cuda-mpi/spack.yaml
index 9cb7b04e78d02c71090b79d4e91e2468bec4bebe..8131e6d8e048933e081351c008794140bd4b934c 100644
--- a/toolchains/foss2021a-cuda-mpi/spack.yaml
+++ b/toolchains/foss2021a-cuda-mpi/spack.yaml
@@ -30,12 +30,12 @@ spack:
     - cgal@5.0.3  # 5.2
     - hdf5@1.12.2+mpi
     - netcdf-fortran@4.6.0 ^netcdf-c+mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2+mpi
+    - bigdft-psolver@1.9.2+mpi~cuda  # octopus does not use cuda variant
+    - dftbplus@21.2~arpack~dftd3~elsi~gpu~mpi~sockets~transport+api+sharedlibs~openmp  # non gpu and non openmp variant based on the easybuild configuration (octopus does not use gpu variant)
     # - openblas@0.3.15
-    # - etsf-io@1.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3+mpi
-    # - bigdft-psolver@1.8.3+mpi
-    # - dftbplus@19.1+mpi  # 21.1+serial
   specs:
   - matrix:
     - [$mpis]
diff --git a/toolchains/foss2021a-mpi/spack.yaml b/toolchains/foss2021a-mpi/spack.yaml
index 915470c520b5a929f6236bbe9e19134692762378..4cb046d7fdd12a3ef9ea8b13d9d7e0b1cc35a09f 100644
--- a/toolchains/foss2021a-mpi/spack.yaml
+++ b/toolchains/foss2021a-mpi/spack.yaml
@@ -29,12 +29,12 @@ spack:
     - cgal@5.0.3  # 5.2
     - hdf5@1.12.2+mpi
     - netcdf-fortran@4.6.0 ^netcdf-c+mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2+mpi
+    - bigdft-psolver@1.9.2+mpi
+    - dftbplus@21.2~arpack~dftd3~elsi~gpu+mpi~sockets~transport+api+sharedlibs~openmp
     # - openblas@0.3.15
-    # - etsf-io@1.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3+mpi
-    # - bigdft-psolver@1.8.3+mpi
-    # - dftbplus@19.1+mpi  # 21.1+serial
   specs:
   - matrix:
     - [$mpis]
diff --git a/toolchains/foss2021a-serial/spack.yaml b/toolchains/foss2021a-serial/spack.yaml
index b7485b4ec4bf8f56f8adbad2364ec13cae1d74c1..5e32599ada4ad367b8c17e9d0312434e366f691a 100644
--- a/toolchains/foss2021a-serial/spack.yaml
+++ b/toolchains/foss2021a-serial/spack.yaml
@@ -22,12 +22,13 @@ spack:
     - cgal@5.0.3  # 5.2
     - hdf5@1.12.2~mpi
     - netcdf-fortran@4.6.0 ^netcdf-c~~mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2~mpi
+    - bigdft-psolver@1.9.2~mpi~scalapack
+    - dftbplus@21.2~arpack+dftd3~elsi~gpu~mpi~sockets~transport+api+sharedlibs~openmp
+
     # - openblas@0.3.15
-    # - etsf-io@1.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3~mpi
-    # - bigdft-psolver@1.8.3~mpi
-    # - dftbplus@19.1~mpi  # 21.1+serial
   specs:
   - matrix:
     - [$packages]
diff --git a/toolchains/foss2022a-cuda-mpi/spack.yaml b/toolchains/foss2022a-cuda-mpi/spack.yaml
index 5f38c4e3a6818ae2f1a52cdaebd89afdce86e1c9..8181c70d9356f4b5984f9c0f300caf5b59347b29 100644
--- a/toolchains/foss2022a-cuda-mpi/spack.yaml
+++ b/toolchains/foss2022a-cuda-mpi/spack.yaml
@@ -30,12 +30,12 @@ spack:
     - cgal@5.0.3  # 5.2
     - hdf5@1.12.2+mpi
     - netcdf-fortran@4.6.0 ^netcdf-c+mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2+mpi
+    - bigdft-psolver@1.9.2+mpi~cuda  # octopus does not use cuda variant
+    - dftbplus@21.2~arpack~dftd3~elsi~gpu~mpi~sockets~transport+api+sharedlibs~openmp # non gpu and non openmp variant based on the easybuild configuration (octopus does not use gpu variant)
     # - openblas@0.3.15
-    # - etsf-io@1.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3+mpi
-    # - bigdft-psolver@1.8.3+mpi
-    # - dftbplus@19.1+mpi  # 21.1+serial
   specs:
   - matrix:
     - [$mpis]
diff --git a/toolchains/foss2022a-mpi/spack.yaml b/toolchains/foss2022a-mpi/spack.yaml
index 2a7ea8bfab231b648e268264ae43a645cf464233..83ee9d194db8c88c96797a5c49dcb37f7c0f9ab8 100644
--- a/toolchains/foss2022a-mpi/spack.yaml
+++ b/toolchains/foss2022a-mpi/spack.yaml
@@ -29,12 +29,12 @@ spack:
     - cgal@5.0.3  # 5.2
     - hdf5@1.12.2+mpi
     - netcdf-fortran@4.6.0 ^netcdf-c+mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2+mpi
+    - bigdft-psolver@1.9.2+mpi
+    - dftbplus@21.2~arpack~dftd3~elsi~gpu+mpi~sockets~transport+api+sharedlibs~openmp
     # - openblas@0.3.15
-    # - etsf-io@1.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3+mpi
-    # - bigdft-psolver@1.8.3+mpi
-    # - dftbplus@19.1+mpi  # 21.1+serial
   specs:
   - matrix:
     - [$mpis]
diff --git a/toolchains/foss2022a-serial/spack.yaml b/toolchains/foss2022a-serial/spack.yaml
index b7fee28c064fa5cf9c7b2649f92496f4b24237ed..023215267e3315f473cfe951729fb7ba64b10340 100644
--- a/toolchains/foss2022a-serial/spack.yaml
+++ b/toolchains/foss2022a-serial/spack.yaml
@@ -23,11 +23,12 @@ spack:
     - hdf5@1.12.2~mpi
     - etsf-io@1.0.4
     - netcdf-fortran@4.6.0 ^netcdf-c~~mpi
+    - etsf-io@1.0.4
+    - bigdft-futile@1.9.2~mpi
+    - bigdft-psolver@1.9.2~mpi~scalapack
+    - dftbplus@21.2~arpack+dftd3~elsi~gpu~mpi~sockets~transport+api+sharedlibs~openmp
     # - flexiblas@3.0.4
     # - libpspio@0.2.4  # missing in spack
-    # - bigdft-futile@1.8.3~mpi
-    # - bigdft-psolver@1.8.3~mpi
-    # - dftbplus@19.1~mpi  # 21.1+serial
   specs:
   - matrix:
     - [$packages]
@@ -36,3 +37,6 @@ spack:
   concretizer:
     reuse: false
     unify: true
+  packages:
+    all:
+      variants: ~~mpi
diff --git a/toolchains/global/global_packages.list b/toolchains/global/global_packages.list
index 6b4fda4fdf619937fb1ae9c6bd5a8ce7a2a1e99f..c849ef751fe144208072c26e1c665952a559fd4b 100644
--- a/toolchains/global/global_packages.list
+++ b/toolchains/global/global_packages.list
@@ -1,4 +1,4 @@
-octopus@12.1%gcc@11.3.0+mpi+netcdf+parmetis+arpack+cgal+pfft+python+likwid+libyaml+elpa+nlopt \
+octopus@13.0%gcc@11.3.0+mpi+netcdf+parmetis+arpack+cgal+pfft+python+likwid+libyaml+elpa+nlopt \
    ^parmetis@4.0.3 \
    ^cgal@5.0.3 \
    ^pfft@1.0.8-alpha \
@@ -11,7 +11,7 @@ octopus@12.1%gcc@11.3.0+mpi+netcdf+parmetis+arpack+cgal+pfft+python+likwid+libya
    ^hdf5@1.12.2+fortran
 
 # The octopus package has an additional "+cuda_arch=..." variant. I (Martin) do not know if using it is has any advantage.
-octopus@12.1%gcc@11.3.0+mpi+cuda+netcdf+parmetis+arpack+cgal+pfft+python+likwid+libyaml+elpa+nlopt \
+octopus@13.0%gcc@11.3.0+mpi+cuda+netcdf+parmetis+arpack+cgal+pfft+python+likwid+libyaml+elpa+nlopt \
    ^openmpi@4.1.4+cuda cuda_arch=70 fabrics=ucx schedulers=slurm \
    ^ucx@1.13.1+cma+cuda+dc+dm+gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem \
    ^cuda@11.4+allow-unsupported-compilers \