diff --git a/var/spack/repos/builtin/packages/py-ipympl/package.py b/var/spack/repos/builtin/packages/py-ipympl/package.py index 81a937053b4..2db5501a111 100644 --- a/var/spack/repos/builtin/packages/py-ipympl/package.py +++ b/var/spack/repos/builtin/packages/py-ipympl/package.py @@ -33,7 +33,7 @@ class PyIpympl(PythonPackage): depends_on("py-jupyter-packaging@0.7") depends_on("py-jupyterlab@3") depends_on("py-setuptools@40.8:") - depends_on("yarn") + depends_on("yarn@1") with default_args(type=("build", "run")): depends_on("py-ipython@:8") diff --git a/var/spack/repos/builtin/packages/rstudio/package.py b/var/spack/repos/builtin/packages/rstudio/package.py index 1c8ab3eca15..87cca2df384 100644 --- a/var/spack/repos/builtin/packages/rstudio/package.py +++ b/var/spack/repos/builtin/packages/rstudio/package.py @@ -29,7 +29,7 @@ class Rstudio(CMakePackage): depends_on("patchelf@0.9:") depends_on("yaml-cpp@:0.6.3") # find_package fails with newest version depends_on("node-js") - depends_on("yarn") + depends_on("yarn@1") depends_on("pandoc@2.11.4:") depends_on("icu4c") depends_on("soci~static+boost+postgresql+sqlite") diff --git a/var/spack/repos/builtin/packages/yarn/package.py b/var/spack/repos/builtin/packages/yarn/package.py index c9921dff4ad..c470eadb91f 100644 --- a/var/spack/repos/builtin/packages/yarn/package.py +++ b/var/spack/repos/builtin/packages/yarn/package.py @@ -9,15 +9,18 @@ class Yarn(Package): """Fast, reliable, and secure dependency management.""" homepage = "https://yarnpkg.com" - url = "https://github.com/yarnpkg/yarn/releases/download/v1.22.22/yarn-v1.22.22.tar.gz" + url = "https://github.com/yarnpkg/berry/archive/refs/tags/@yarnpkg/cli/4.6.0.tar.gz" maintainers("cosmicexplorer") + depends_on("node-js@18.12.0:", type="run", when="@4:") depends_on("node-js@4.8.0:4.9.1,6.2.2:6.17.1,8:", type="run", when="@1.22.22") depends_on("node-js@4.0:", type="run") license("BSD-2-Clause") + version("4.7.0", sha256="3e840034175d50254578c692f795cd79512869ad257f5b2269117b82c14fa0b1") + version("4.6.0", sha256="c3a318af0deb9d284d7c46bf97a28f9d70b156142dcab8ec985481d5818dc651") version("1.22.22", sha256="88268464199d1611fcf73ce9c0a6c4d44c7d5363682720d8506f6508addf36a0") version("1.22.4", sha256="bc5316aa110b2f564a71a3d6e235be55b98714660870c5b6b2d2d3f12587fb58") version("1.22.2", sha256="de4cff575ae7151f8189bf1d747f026695d768d0563e2860df407ab79c70693d") @@ -25,5 +28,17 @@ class Yarn(Package): version("1.22.0", sha256="de8871c4e2822cba80d58c2e72366fb78567ec56e873493c9ca0cca76c60f9a5") version("1.21.1", sha256="d1d9f4a0f16f5ed484e814afeb98f39b82d4728c6c8beaafb5abc99c02db6674") + def url_for_version(self, version): + if version < Version("2.0.0"): + return f"https://github.com/yarnpkg/yarn/releases/download/v{version}/yarn-v{version}.tar.gz" + else: + return ( + f"https://github.com/yarnpkg/berry/archive/refs/tags/@yarnpkg/cli/{version}.tar.gz" + ) + def install(self, spec, prefix): - install_tree(".", prefix) + if spec.version < Version("2.0.0"): + install_tree(".", prefix) + else: + mkdirp(prefix.bin) + install("packages/yarnpkg-cli/bin/yarn.js", prefix.bin.yarn)