diff --git a/install_spack_env.sh b/install_spack_env.sh
index e2ad7f3963b425d99c281f740a8329143f825b43..2c1b99ef1d2c9ac48c379c6b131ea62975279594 100644
--- a/install_spack_env.sh
+++ b/install_spack_env.sh
@@ -187,7 +187,7 @@ if [ -n "${OCI_CACHE_PREFIX}" ]; then
 fi
 
 # temporarily skip packages that fail
-spack rm hxtorch jaxsnn pynn-brainscales wf-brainscales2-demos py-bsb py-snudda r-sbtabvfgen
+spack rm hxtorch jaxsnn pynn-brainscales wf-brainscales2-demos py-snudda r-sbtabvfgen
 
 # install the environment, use 2 jobs to reduce the amount of required RAM
 # delay exit code until we have updated the cache below
diff --git a/packages/py-arborize/package.py b/packages/py-arborize/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..f897963fe137fb405143b9b74a20374543640185
--- /dev/null
+++ b/packages/py-arborize/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyArborize(PythonPackage):
+    """
+    A framework to package NEURON cell models following a clear separation between cell model description and its implementation in NEURON.
+     Cell models described using this framework are highly portable, testable and distributable.
+    """
+
+    homepage = "https://github.com/dbbs-lab/arborize"
+    pypi = "arborize/arborize-4.1.0.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.1.0", sha256="2cb88b890fa69de42a49b38ea4defd0caa4ee91b34f9b75216e1536d9058f57f")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-numpy@1.21:")
+    depends_on("py-errr@1.2:")
+    depends_on("py-morphio@3.3.6:4")
diff --git a/packages/py-blessed/package.py b/packages/py-blessed/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..c40b13ca210622b062cc0ff07767fdbefd99694c
--- /dev/null
+++ b/packages/py-blessed/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBlessed(PythonPackage):
+    """Blessed is a thin, practical wrapper around terminal capabilities in
+    Python."""
+
+    homepage = "https://github.com/jquast/blessed"
+    pypi = "blessed/blessed-1.15.0.tar.gz"
+
+    license("MIT")
+
+    # begin EBRAINS (added): add version
+    version("1.20.0", sha256="2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680")
+    # end EBRAINS
+    version("1.19.0", sha256="4db0f94e5761aea330b528e84a250027ffe996b5a94bf03e502600c9a5ad7a61")
+    version("1.18.1", sha256="8b09936def6bc06583db99b65636b980075733e13550cb6af262ce724a55da23")
+    version("1.18.0", sha256="1312879f971330a1b7f2c6341f2ae7e2cbac244bfc9d0ecfbbecd4b0293bc755")
+    version("1.17.12", sha256="580429e7e0c6f6a42ea81b0ae5a4993b6205c6ccbb635d034b4277af8175753e")
+    version("1.17.11", sha256="7d4914079a6e8e14fbe080dcaf14dee596a088057cdc598561080e3266123b48")
+    version("1.17.10", sha256="58b9464609f54e2eca5f5926db590a5b01fefef882844ce05064f483b8f96c26")
+    version("1.17.9", sha256="0d497a5be8a808b7300c00bf8303e7ba9fd11f6063a67bb924a475e5bfa7a9bb")
+    version("1.17.8", sha256="7671d057b2df6ddbefd809009fb08feb2f8d2d163d240b5e765088a90519b2f1")
+    version("1.17.7", sha256="0329a3d1db91328986a6dfd36475dbc498c867090f0433cdcc1a45a5eb2067e4")
+    version("1.17.6", sha256="a9a774fc6eda05248735b0d86e866d640ca2fef26038878f7e4d23f7749a1e40")
+    version("1.17.5", sha256="926916492220af741657ec4668aba95f54a8c32445e765cfa38c7ccd3343cc6f")
+    version("1.17.4", sha256="320a619c83298a9c9d632dbd8fafbb90ba9a38b83c7e64726c572fb186dd0781")
+    version("1.17.3", sha256="cc38547175ae0a3a3d4e5dcc7e7478a5a6bf0a6b5f4d9c6b2e5eadbe4475cb0e")
+    version("1.17.0", sha256="38632d60dd384de9e9be0ee5b6e1c6130f96efd0767c6ca530a453da36238c25")
+    version("1.16.1", sha256="a222783b09f266cf76f5a01f4dfd9de79650f07cbefe2cbc67ec7bb9577c1dfa")
+    version("1.16.0", sha256="34b78e9b56c2ba2f6a9a625cc989d6cf4ae8ae87dcc4ed8ad144660ae4cf7784")
+    version("1.15.0", sha256="777b0b6b5ce51f3832e498c22bc6a093b6b5f99148c7cbf866d26e2dec51ef21")
+
+    depends_on("py-setuptools", type="build")
+    depends_on("py-wcwidth@0.1.4:", type=("build", "run"))
+    depends_on("py-six@1.9.0:", type=("build", "run"))
diff --git a/packages/py-bsb-core/package.py b/packages/py-bsb-core/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..eacb83a4a7303df7c19502402ac069c14430834c
--- /dev/null
+++ b/packages/py-bsb-core/package.py
@@ -0,0 +1,59 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBsbCore(PythonPackage):
+    """
+    The BSB is a component framework for neural modeling, which focuses on component
+    declarations to piece together a model.
+    """
+
+    homepage = "https://bsb.readthedocs.io"
+    pypi = "bsb-core/bsb_core-5.0.0.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("5.0.2", sha256="414be0f3ba72b2f656b89f8e4636e4a1d19b1f4dc9ba9360cc984020cb1859dc")
+    version("5.0.1", sha256="7cb905ee38419709b4ead2ffb40e1005d813d2c6780706b3f5eb2696aabeb983")
+    version("5.0.0", sha256="08e1776d351a8bb5c056ffbd8108d0bd941f71518b475aecbad9f22050b7cc91")
+
+    variant('parallel', default=True,
+            description='Build with MPI bindings')
+
+    depends_on("python@3.9:3.12", type=("build", "run"))
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-numpy@1.19:")
+    depends_on("py-scipy@1.5:")
+    depends_on("py-scikit-learn@1.0:")
+    depends_on("py-rtree@1.0:")
+    depends_on("py-psutil@5.8:")
+    depends_on("py-pynrrd@1.0:")
+    depends_on("py-toml@0.10:")
+    depends_on("py-requests")
+    depends_on("py-urllib3@2:")
+    depends_on("py-appdirs@1.4:")
+    depends_on("py-neo")
+    depends_on("py-tqdm@4.50:")
+    depends_on("py-shortuuid")
+    depends_on("py-quantities@0.15.0:")
+    depends_on("py-morphio@3.3:")
+    depends_on("py-errr@1.2.0:")
+    depends_on("py-dashing@0.1.0:")
+    depends_on("py-exceptiongroup")
+    
+    depends_on('mpi', when='+parallel')
+    depends_on('py-mpi4py', when='+parallel')
+    depends_on('py-mpipool@2.2.1:3', when='+parallel')
+    depends_on('py-mpilock@1.1:', when='+parallel')
+
+
+    def setup_build_environment(self, env):
+        env.set("SPATIALINDEX_C_LIBRARY", self.spec["libspatialindex"].libs[0])
+
+    def setup_run_environment(self, env):
+        self.setup_build_environment(env) 
diff --git a/packages/py-bsb-hdf5/package.py b/packages/py-bsb-hdf5/package.py
index 059f2df3b1c74c9e70b91c3d0ed8e5ac47a2d6a8..36fbc5d08f22ef5f7c02e8e9cf68530d7e3fffc2 100644
--- a/packages/py-bsb-hdf5/package.py
+++ b/packages/py-bsb-hdf5/package.py
@@ -10,13 +10,13 @@ class PyBsbHdf5(PythonPackage):
     """An HDF-5 based storage engine for the BSB framework."""
 
     homepage = "https://github.com/dbbs-lab/bsb-hdf5"
-    url = "https://pypi.org/packages/py3/b/bsb_hdf5/bsb_hdf5-0.8.3-py3-none-any.whl"
+    pypi = "bsb-hdf5/bsb_hdf5-5.0.4.tar.gz"
 
-    maintainers = ["helveg"]
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
 
-    version('0.8.3', sha256="38162bfe9470b87cb30a2bff78dce68fc1b97f2df7d7e3b288c16b671f7579e5", expand=False)
+    version('5.0.2', sha256='ed11177887848a3f177982201e1adb5770131bd541055a96935af38b39439fac')
 
-    depends_on("py-setuptools", type="build")
-    # depends_on("py-bsb@4.0.0a57:")
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-bsb-core@5.0.0:",when='@5.0.2')
     depends_on("py-shortuuid")
-    depends_on("py-h5py@3.0:")
diff --git a/packages/py-bsb-json/package.py b/packages/py-bsb-json/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..c692a2c5a6f0b09c4989a59566453a53a20baefa
--- /dev/null
+++ b/packages/py-bsb-json/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBsbJson(PythonPackage):
+    """A plugin that allows the user to write their models' configuration in the json format, for the BSB framework."""
+
+    homepage = "https://github.com/dbbs-lab/bsb-json"
+    pypi = "bsb-json/bsb_json-4.2.2.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.2.2", sha256="0c9e0af2a50f8ebbce353ba19bd11bafaf2536d74f0a79af3b0b6d8241fa6937")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-bsb-core@5.0.0:")
+    depends_on("py-shortuuid")
diff --git a/packages/py-bsb-nest/package.py b/packages/py-bsb-nest/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d81556a860aad45d834cec30b09136fdb0b09be
--- /dev/null
+++ b/packages/py-bsb-nest/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBsbNest(PythonPackage):
+    """
+    The BSB-NEST is a component framework for neural modeling, used for simulate SNN with NEST software.
+    """
+
+    homepage = "https://github.com/dbbs-lab/bsb-nest"
+    pypi = "bsb-nest/bsb_nest-4.3.2.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.3.2", sha256="478aa2937ca554ff291ce726cc69e1c1b283d7353a56e3b6878b585ed0684041")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-bsb-core@5.0.2:")
+    depends_on("nest")
diff --git a/packages/py-bsb-neuron/package.py b/packages/py-bsb-neuron/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..6e4ec130bb75ded76917d248d43f3e01db0bbfe5
--- /dev/null
+++ b/packages/py-bsb-neuron/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBsbNeuron(PythonPackage):
+    """
+    The BSB-NEURON is a component framework for neural modeling, used for simulate with NEURON software.
+    """
+
+    homepage = "https://github.com/dbbs-lab/bsb-neuron"
+    pypi = "bsb-neuron/bsb_neuron-4.2.2.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.2.2", sha256="e7570c0cb17d31349eb8e88487e8ba48653f0fad0d7c232df8815cadde34a941")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-bsb-core@5.0.2:")
+    depends_on("neuron")
+    depends_on("py-arborize@4.1:")
+    depends_on("py-nrn-patch@4:")
diff --git a/packages/py-bsb-yaml/package.py b/packages/py-bsb-yaml/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..d91b3301d65e361289df2301c3d9f1b399a9259b
--- /dev/null
+++ b/packages/py-bsb-yaml/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyBsbYaml(PythonPackage):
+    """A plugin that allows the user to write their models' configuration in the yaml format, for the BSB framework."""
+
+    homepage = "https://github.com/dbbs-lab/bsb-yaml"
+    pypi = "bsb-yaml/bsb_yaml-4.2.2.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.2.2", sha256="c5614bc5fe57b78a445303756819a8d4ba032924484f88a07f6c26dd7e5afbec")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-bsb-core@5.0.0:")
+    depends_on("py-pyyaml@6.0:")
+    depends_on("py-shortuuid")
diff --git a/packages/py-bsb/package.py b/packages/py-bsb/package.py
deleted file mode 100644
index 397bdbd3af00464bb89db6c2de7e5cd2a7529041..0000000000000000000000000000000000000000
--- a/packages/py-bsb/package.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2013-2024 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.package import *
-
-
-class PyBsb(PythonPackage):
-    """
-    The BSB is a component framework for neural modeling, which focuses on component
-    declarations to piece together a model.
-    """
-
-    homepage = "https://bsb.readthedocs.io"
-    url = "https://pypi.org/packages/py3/b/bsb/bsb-4.0.0a57-py3-none-any.whl"
-
-    maintainers = ["helveg"]
-
-    version("4.0.0a57", sha256="5da15799aa8994894ff5371561d534b43beffaa79461189c94080071359f4076", expand=False)
-
-    depends_on("python@3.8:", type=("build", "run"))
-    depends_on("py-setuptools", type="build")
-    depends_on("py-numpy@1.19:")
-    depends_on("py-scipy@1.5:")
-    depends_on("py-scikit-learn@1.0:")
-    depends_on("py-plotly")
-    depends_on("py-rtree@1.0:")
-    depends_on("py-psutil@5.8:")
-    depends_on("py-pynrrd@1.0:")
-    depends_on("py-toml")
-    depends_on("py-requests")
-    depends_on("py-appdirs@1.4:")
-    depends_on("py-neo")
-    depends_on("py-tqdm@4.50:")
-    depends_on("py-shortuuid")
-    depends_on("py-quantities")
-    depends_on("py-pyyaml@6.0:")
-    depends_on("py-morphio@3.3:")
-    depends_on("py-bsb-hdf5@0.8.3:")
-    depends_on("py-errr@1.2.0:")
-    depends_on("py-colour@0.1.5:")
-
-    def setup_build_environment(self, env):
-        env.set("SPATIALINDEX_C_LIBRARY", self.spec["libspatialindex"].libs[0])
-
-    def setup_run_environment(self, env):
-        self.setup_build_environment(env)
-
-    skip_modules = ['bsb.simulators.arbor', 'bsb.simulators.arbor.devices']
-    
diff --git a/packages/py-dashing/package.py b/packages/py-dashing/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..48d63dc4d1f3dccbba02dae152f5f9d131ab9c05
--- /dev/null
+++ b/packages/py-dashing/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyDashing(PythonPackage):
+    """Dashing is a library to quickly create terminal-based dashboards in Python."""
+
+    homepage = "https://github.com/FedericoCeratto/dashing"
+    pypi = "dashing-next/dashing_next-0.1.0.tar.gz"
+
+    version("0.1.0", sha256="9d48e97fce430a9cfb47d5627041b001ab306b65e97d6967fe86e2c25e324612")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-blessed@1.20.0:")
diff --git a/packages/py-exceptiongroup/package.py b/packages/py-exceptiongroup/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..1fe03cd45fd240264e40bf6109e9787332d72638
--- /dev/null
+++ b/packages/py-exceptiongroup/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyExceptiongroup(PythonPackage):
+    """A backport of the BaseExceptionGroup and ExceptionGroup classes from Python 3.11."""
+
+    homepage = "https://github.com/agronholm/exceptiongroup"
+    pypi = "exceptiongroup/exceptiongroup-1.0.4.tar.gz"
+
+    # begin EBRAINS (added): add version
+    version("1.2.0", sha256="91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68")
+    # end EBRAINS
+    version("1.1.1", sha256="d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785")
+    version("1.0.4", sha256="bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec")
+
+    depends_on("py-flit-scm", type="build")
diff --git a/packages/py-mpilock/package.py b/packages/py-mpilock/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..16e9a60cb3d3b6f027c1622bdec1b45523eb1428
--- /dev/null
+++ b/packages/py-mpilock/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyMpilock(PythonPackage):
+    """mpilock offers a WindowController class with a high-level API for parallel access to resources. """
+
+    homepage = "https://github.com/Helveg/mpilock"
+    pypi = "mpilock/mpilock-1.1.0-py3-none-any.whl"
+
+    version("1.1.0", sha256="0902ef859a7b3dfb4312a3c46332302493aa14fa398b610554706b0b9e7cb57c", expand=False)
+
+    maintainers=["helveg"]
+
+    depends_on("py-setuptools", type="build")
+    depends_on("py-mpi4py@3.0.3:")
+    depends_on("py-numpy@1.20.0:")
diff --git a/packages/py-mpipool/package.py b/packages/py-mpipool/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb6f112a8b70caecb251795805f035b6953f8e30
--- /dev/null
+++ b/packages/py-mpipool/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyMpipool(PythonPackage):
+    """mpipool offers MPI based parallel execution of tasks through implementations of Python's standard library interfaces"""
+
+    homepage = "https://github.com/mpipool/mpipool"
+    pypi = "mpipool/mpipool-2.2.1.tar.gz"
+
+    version("2.2.1", sha256="dc735b994349ae3e06fce7c3601523ba062125ffa6dd4c6c51a94c168c9ff92c")
+
+    maintainers=["helveg"]
+
+    depends_on("py-flit-core@3.2:4", type="build")
+    depends_on("py-mpi4py@3.0.3:")
+    depends_on("py-errr@1.0:")
+    depends_on("py-tblib@1.7.0:")
+    depends_on("py-dill@0.3.3:")
diff --git a/packages/py-nmodl-glia/package.py b/packages/py-nmodl-glia/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..acd06eaf5934697ae1d40c52e664acd6401c8af5
--- /dev/null
+++ b/packages/py-nmodl-glia/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyNmodlGlia(PythonPackage):
+    """
+    Patch to use NMODL within the BSB
+    """
+
+    homepage = "https://github.com/dbbs-lab/glia"
+    pypi = "nmodl-glia/nmodl_glia-4.0.1.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.0.1", sha256="c3b3dad203eac1f394d6a4ca6e4f42d25d5eebc013970309f1453c7ca3e5c5a3")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-numpy@1.21:")
+    depends_on("py-errr@1.2:")
+    depends_on("py-nmodl@0.5:")
diff --git a/packages/py-nmodl/fix-setup-requirements.patch b/packages/py-nmodl/fix-setup-requirements.patch
new file mode 100644
index 0000000000000000000000000000000000000000..52ec60c20f9a468047b10b505adf509f8946843d
--- /dev/null
+++ b/packages/py-nmodl/fix-setup-requirements.patch
@@ -0,0 +1,21 @@
+diff --git a/setup.py b/setup.py
+index c956004c9..671a6619e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -131,16 +131,6 @@ setup(
+     zip_safe=False,
+     setup_requires=[
+         "jinja2>=2.9.3",
+-        "jupyter-client",
+-        "jupyter",
+-        "myst_parser",
+-        "mistune<3",  # prevents a version conflict with nbconvert
+-        "nbconvert",
+-        "nbsphinx>=0.3.2",
+-        "pytest>=3.7.2",
+-        "sphinxcontrib-applehelp<1.0.3",
+-        "sphinx<6",
+-        "sphinx-rtd-theme",
+     ]
+     + install_requirements,
+     install_requires=install_requirements,
diff --git a/packages/py-nmodl/package.py b/packages/py-nmodl/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd5fb0118803f1c4e32ac943e5de271f45ee9a16
--- /dev/null
+++ b/packages/py-nmodl/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyNmodl(PythonPackage):
+    """The NMODL Framework is a code generation engine for NEURON MODeling Language (NMODL)."""
+
+    homepage = "https://github.com/BlueBrain/nmodl"
+
+    git = "https://github.com/BlueBrain/nmodl"
+
+    license("Apache-2.0")
+    maintainers = ["bbp.opensource"]
+
+    version("0.5", tag="0.5", commit="ac272785dc444c8444b085d121f08b7575bb6647", submodules=True)
+
+    patch("fix-setup-requirements.patch", when="@:0.6")
+
+    depends_on("flex@2.6:")
+    depends_on("bison@3.0:")
+    depends_on("cmake@3.15:", type="build")
+    depends_on("python@3.9:", type=("build","run"))
+    depends_on("py-setuptools", type="build")
+    depends_on("py-scikit-build", type="build")
+    depends_on("py-jinja2@2.9.3:", type="build")
+    depends_on("py-pyyaml@3.13:", type="build")
+    depends_on("py-pytest")
+    depends_on("py-sympy@1.3:", type=("build","run"))
+    depends_on("py-find-libpython", type=("build","run"))
+    depends_on("py-importlib-metadata", when="^python@:3.8", type=("build","run"))
+    depends_on("py-importlib-resources", when="^python@:3.8", type=("build","run"))
+
+    def setup_build_environment(self, env):
+        env.set("NMODL_WHEEL_VERSION", self.version)
diff --git a/packages/py-nrn-patch/package.py b/packages/py-nrn-patch/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..aaf40362a939c8ee13d31ead0ca5a9ea5f08acaa
--- /dev/null
+++ b/packages/py-nrn-patch/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2024 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.package import *
+
+
+class PyNrnPatch(PythonPackage):
+    """A patch to make the BSB interface with NEURON software"""
+
+    homepage = "https://github.com/dbbs-lab/patch"
+    pypi = "nrn-patch/nrn_patch-4.0.0.tar.gz"
+
+    license("GPL-3.0-only")
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.0.0", sha256="0f95243798c7363826d7835023f7c9215577edd8d6695cc7caeb65a7fe8a54c0")
+
+    depends_on("py-flit-core@3.2:4.0", type="build")
+    depends_on("py-numpy@1.21:")
+    depends_on("py-errr@1.2:")
+    depends_on("py-click@8.0:")
+    depends_on("py-appdirs@1.0:")
+    depends_on("py-cookiecutter@2.0:")
+    depends_on("py-black@0.24:")
+    depends_on("py-toml@0.1:")
+    depends_on("py-nmodl-glia@4.0:")
+    depends_on("neuron@8:10")
diff --git a/packages/wf-bsb/package.py b/packages/wf-bsb/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e843818fe7a321b2c9d699c07a44524e2bf0e4b
--- /dev/null
+++ b/packages/wf-bsb/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2024 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 WfBsb(BundlePackage):
+    """Meta-package to collect all dependencies for the BSB."""
+
+    homepage="https://github.com/dbbs-lab/bsb"
+
+    maintainers = ["helveg","filimarc","drodarie"]
+
+    version("4.4")
+
+    variant('nest', default=False,
+            description='Build with NEST interface')
+    variant('neuron', default=False,
+            description='Build with NEURON interface')
+
+    depends_on("py-bsb-core@5.0.2:")
+    depends_on("py-bsb-hdf5@5.0.2:")
+    depends_on("py-bsb-json@4.2.2:")
+    depends_on("py-bsb-yaml@4.2.2:")
+
+    depends_on("py-bsb-nest",when="+nest")
+    depends_on("py-bsb-neuron",when="+neuron")
diff --git a/spack.yaml b/spack.yaml
index 95062095a8c24f6d77445b7c460a510a599307e7..738c774ac7c617eb57b6c82e27a3b07b1bc91600 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -19,7 +19,12 @@ spack:
     - py-bluepyefe@2.3.6
     - py-bluepymm@0.8.7
     - py-bluepyopt@1.14.11
-    - py-bsb@4.0.0a57
+    - py-bsb-core@5.0.2
+    - py-bsb-hdf5@5.0.2
+    - py-bsb-yaml@4.2.2
+    - py-bsb-json@4.2.2
+    - py-bsb-nest@4.3.2
+    - py-bsb-neuron@4.2.2
     - py-ebrains-drive@0.6.0
     - py-ebrains-kg-core@0.9.15
     - py-ebrains-validation-client@0.9.1
@@ -65,6 +70,7 @@ spack:
     # Workflows (meta-packages)
     - wf-biobb
     - wf-brainscales2-demos@9.0-a8
+    - wf-bsb@4.4 +nest +neuron
 #    - wf-protein-association-rates@0.1
     - wf-multi-area-model@1.2.0
     - wf-human-multi-area-model@2.0.1