diff --git a/repos/spack_repo/builtin/packages/healpix_cxx/package.py b/repos/spack_repo/builtin/packages/healpix_cxx/package.py index c2ff5aaa7c9..ea16b05ae6c 100644 --- a/repos/spack_repo/builtin/packages/healpix_cxx/package.py +++ b/repos/spack_repo/builtin/packages/healpix_cxx/package.py @@ -18,6 +18,8 @@ class HealpixCxx(AutotoolsPackage): version("3.50.0", sha256="6538ee160423e8a0c0f92cf2b2001e1a2afd9567d026a86ff6e2287c1580cb4c") + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cfitsio") depends_on("libsharp", type="build") @@ -31,3 +33,9 @@ def patch(self): spec["libsharp"].prefix.lib ), ) + # Fix cfitsio version check broken by 3-part version numbers + fitshandle = FileFilter("cxxsupport/fitshandle.cc") + fitshandle.filter( + r"int v_header\s*=\s*nearest\(1000\.\*CFITSIO_VERSION\)", + "int v_header = CFITSIO_MAJOR*1000 + CFITSIO_MINOR*100", + ) diff --git a/repos/spack_repo/builtin/packages/py_healpy/package.py b/repos/spack_repo/builtin/packages/py_healpy/package.py index dbb4eb5518d..991e749094f 100644 --- a/repos/spack_repo/builtin/packages/py_healpy/package.py +++ b/repos/spack_repo/builtin/packages/py_healpy/package.py @@ -11,24 +11,41 @@ class PyHealpy(PythonPackage): """healpy is a Python package to handle pixelated data on the sphere.""" homepage = "https://healpy.readthedocs.io/" - pypi = "healpy/healpy-1.13.0.tar.gz" + pypi = "healpy/healpy-1.19.0.tar.gz" license("GPL-2.0-only") + version("1.19.0", sha256="28e839cb885a23d36c77fc3423a3cb9271a07fda94085bd12fc329f941130ec5") version("1.14.0", sha256="2720b5f96c314bdfdd20b6ffc0643ac8091faefcf8fd20a4083cedff85a66c5e") version("1.13.0", sha256="d0ae02791c2404002a09c643e9e50bc58e3d258f702c736dc1f39ce1e6526f73") version("1.7.4", sha256="3cca7ed7786ffcca70e2f39f58844667ffb8521180ac890d4da651b459f51442") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") - depends_on("py-setuptools@3.2:", type="build") + depends_on("python@:3.10", when="@:1.14") + + depends_on("py-setuptools@3.2:72", type="build", when="@:1.14") + depends_on("py-setuptools@3.2:", type="build", when="@1.15:") depends_on("py-pkgconfig", type="build") - depends_on("py-numpy@1.13:", type=("build", "run")) + depends_on("py-cython", type="build", when="@1.15:") + + depends_on("py-numpy@1.13:1", type=("build", "run"), when="@:1.14") + depends_on("py-numpy@1.13:", type=("build", "run"), when="@1.15:") depends_on("py-scipy", type=("build", "run")) depends_on("py-astropy", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) - depends_on("py-six", type=("build", "run")) + depends_on("py-six", type=("build", "run"), when="@:1.14") + depends_on("cfitsio", type=("build", "run")) - depends_on("healpix-cxx", type=("build", "run")) + depends_on("healpix-cxx", type=("build", "run"), when="@:1.14") + + def patch(self): + if self.spec.satisfies("@:1.14"): + # Fix cfitsio version check for 3-part versions + fitshandle = FileFilter("healpixsubmodule/src/cxx/cxxsupport/fitshandle.cc") + fitshandle.filter( + r"int v_header\s*=\s*nearest\(1000\.\*CFITSIO_VERSION\)", + "int v_header = CFITSIO_MAJOR*1000 + CFITSIO_MINOR*100", + )