diff options
-rw-r--r-- | var/spack/repos/builtin/packages/tempo/package.py | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/tempo/package.py b/var/spack/repos/builtin/packages/tempo/package.py index 8f71bd661c..9b89bc8b06 100644 --- a/var/spack/repos/builtin/packages/tempo/package.py +++ b/var/spack/repos/builtin/packages/tempo/package.py @@ -9,9 +9,19 @@ from spack.package import * class Tempo(AutotoolsPackage): """Tempo is a program for pulsar timing data analysis.""" - homepage = "https://tempo.sourceforge.net/" - git = "git://git.code.sf.net/p/tempo/tempo.git" + # Warning: Tempo references reads files that it's shipped with. + # It's written in Fortran and the fortran code declares strings of a certain length + # for those files. If you haven't modified some of the Spack configurations + # in terms of where the install go, hash length, etc. then it is likely + # that running tempo will fail with an error similar to + # + # more: cannot open /...../gcc-11.3.0/tempo-master-lnizs: No such file or directory + # + homepage = "http://tempo.sourceforge.net/" + git = "https://git.code.sf.net/p/tempo/tempo.git" + + version("master", branch="master", preferred=True) version("develop") version("LWA-10-17-2020", commit="6bab1083350eca24745eafed79a55156bdd1e7d5") @@ -22,5 +32,40 @@ class Tempo(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") - def setup_dependent_run_environment(self, spack_env, dependent_spec): - spack_env.set("TEMPO_DIR", self.prefix) + @run_before("configure") + def edit(self): + # By default tempo.cfg.in uses abs_top_srcdir (i.e., the staging/build directory) + # In spack this directory gets deleted by default so make the file use the + # Install prefix directory instead but only for the master version + # So we don't possibly break anything for the LWA version + if "master" in str(self.version): + tempocfg = FileFilter("tempo.cfg.in") + tempocfg.filter(r"(.*)(abs_top_srcdir)(.*)", r"\1prefix\3") + + @run_after("install") + def post_install_packages(self): + + # Copy some files over needed by TEMPO, again only for the master version + if "master" in str(self.version): + cd(self.stage.source_path) + cp = which("cp") + + cp("obsys.dat", join_path(self.prefix, "obsys.dat")) + cp("tempo.hlp", join_path(self.prefix, "tempo.hlp")) + cp("tempo.cfg", join_path(self.prefix, "tempo.cfg")) + + cp("-r", "clock", join_path(self.prefix, "clock")) + cp("-r", "ephem", join_path(self.prefix, "ephem")) + cp("-r", "tzpar", join_path(self.prefix, "tzpar")) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set("TEMPO", self.prefix) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.set("TEMPO", self.prefix) + + # For LWA-10-17-2020 version + env.set("TEMPO_DIR", self.prefix) + + def setup_run_environment(self, env): + env.set("TEMPO", self.prefix) |