summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/flux-core/package.py66
-rw-r--r--var/spack/repos/builtin/packages/flux-sched/package.py42
2 files changed, 87 insertions, 21 deletions
diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py
index e2b52f741c..0fa2e76113 100644
--- a/var/spack/repos/builtin/packages/flux-core/package.py
+++ b/var/spack/repos/builtin/packages/flux-core/package.py
@@ -14,7 +14,10 @@ class FluxCore(AutotoolsPackage):
url = "https://github.com/flux-framework/flux-core/releases/download/v0.8.0/flux-core-0.8.0.tar.gz"
git = "https://github.com/flux-framework/flux-core.git"
- version('master', branch='master')
+ version('master', branch='master')
+ version('0.11.3', sha256='91b5d7dca8fc28a77777c4e4cb8717fc3dc2c174e70611740689a71901c6de7e')
+ version('0.11.2', sha256='ab8637428cd9b74b2dff4842d10e0fc4acc8213c4e51f31d32a4cbfbdf730412')
+ version('0.11.1', sha256='3c8495db0f3b701f6dfe3e2a75aed794fc561e9f28284e8c02ac67693bfe890e')
version('0.11.0', sha256='a4d8ff92e79b4ca19d556395bb8c5f8dc02fd9d5a8cc38c4a2c66867a96de5ea')
version('0.10.0', sha256='a70cdd228077af60c9443a5c69d3da932e447dd11697f5fef9028c48dabb3041')
version('0.9.0', sha256='7b5b4aa72704b3c4432136b9e515e0d663568e6dbfc3ecd2f91c83b65841104e')
@@ -29,8 +32,8 @@ class FluxCore(AutotoolsPackage):
depends_on("libzmq@4.0.4:")
depends_on("czmq")
- depends_on("czmq@2.2:3.99", when="@0.1:0.6.99")
- depends_on("czmq@3.0.1:", when="@0.7:,master")
+ depends_on("czmq@2.2:3.99", when="@0.1:0.6")
+ depends_on("czmq@3.0.1:", when="@0.7:")
depends_on("hwloc@1.11.1:1.99")
depends_on("hwloc +cuda", when='+cuda')
# Provide version hints for lua so that the concretizer succeeds when no
@@ -42,15 +45,15 @@ class FluxCore(AutotoolsPackage):
depends_on("munge", when="@0.1.0:0.10.0")
depends_on("python", type=('build', 'run'))
depends_on("python@2.7:2.99", when="@0.1.0:0.11.0")
- depends_on("python@2.7:", when="@0.11.1:,master")
+ depends_on("python@2.7:", when="@0.11.1:")
depends_on("py-cffi", type=('build', 'run'))
- depends_on("py-six", type=('build', 'run'), when="@0.11.0:,master")
- depends_on("py-pyyaml", type=('build', 'run'), when="@0.11.0:,master")
- depends_on("py-jsonschema", type=('build', 'run'), when="@master")
+ depends_on("py-six", type=('build', 'run'), when="@0.11.0:")
+ depends_on("py-pyyaml", type=('build', 'run'), when="@0.11.0:")
+ depends_on("py-jsonschema", type=('build', 'run'), when="@0.12.0:")
depends_on("jansson")
depends_on("pkgconfig")
- depends_on("yaml-cpp", when="@:0.11.0")
- depends_on("lz4", when="@0.11.0:,master")
+ depends_on("yaml-cpp", when="@:0.11")
+ depends_on("lz4", when="@0.11.0:")
# versions up to 0.8.0 uses pylint to check Flux's python binding
# later versions provide a configure flag and disable the check by default
@@ -63,6 +66,29 @@ class FluxCore(AutotoolsPackage):
depends_on("automake", type='build', when='@master')
depends_on("libtool", type='build', when='@master')
+ # Testing Dependencies
+ depends_on("mpich pmi=pmi", type="test")
+ depends_on("valgrind", type="test")
+ depends_on("jq", type="test", when='@0.12.0:')
+
+ def url_for_version(self, version):
+ '''
+ Flux uses a fork of ZeroMQ's Collective Code Construction Contract
+ (https://github.com/flux-framework/rfc/blob/master/spec_1.adoc).
+ This model requires a repository fork for every stable release that has
+ patch releases. For example, 0.8.0 and 0.9.0 are both tags within the
+ main repository, but 0.8.1 and 0.9.5 would be releases on the v0.8 and
+ v0.9 forks, respectively.
+
+ Rather than provide an explicit URL for each patch release, make Spack
+ aware of this repo structure.
+ '''
+ if version[-1] == 0:
+ url = "https://github.com/flux-framework/flux-core/releases/download/v{0}/flux-core-{0}.tar.gz"
+ else:
+ url = "https://github.com/flux-framework/flux-core-v{1}/releases/download/v{0}/flux-core-{0}.tar.gz"
+ return url.format(version.up_to(3), version.up_to(2))
+
def setup(self):
pass
@@ -97,7 +123,7 @@ class FluxCore(AutotoolsPackage):
def setup_build_environment(self, env):
# Ensure ./fluxometer.lua can be found during flux's make check
- spack_env.append_path('LUA_PATH', './?.lua', separator=';')
+ env.append_path('LUA_PATH', './?.lua', separator=';')
def setup_run_environment(self, env):
env.prepend_path(
@@ -118,6 +144,26 @@ class FluxCore(AutotoolsPackage):
env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules)
env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd)
env.prepend_path('FLUX_RC_PATH', self.prefix.etc.flux)
+ env.prepend_path('FLUX_RC1_PATH', self.prefix.etc.flux.rc1)
+ env.prepend_path('FLUX_RC3_PATH', self.prefix.etc.flux.rc3)
+ env.prepend_path(
+ 'FLUX_CONNECTOR_PATH',
+ self.prefix.lib.flux.connectors
+ )
+ env.prepend_path(
+ 'FLUX_PMI_LIBRARY_PATH',
+ os.path.join(self.prefix.lib.flux, "libpmi.so")
+ )
+ # Wreck was removed in 0.12
+ if self.version < Version("0.12.0"):
+ env.prepend_path(
+ 'FLUX_WREXECD_PATH',
+ self.prefix.libexec.flux.wrexecd
+ )
+ env.prepend_path(
+ 'FLUX_WRECK_LUA_PATTERN',
+ os.path.join(self.prefix.etc.wreck, "lua.d", "*.lua")
+ )
def configure_args(self):
args = ['--enable-pylint=no']
diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py
index 5a77ed46ff..7e43622a7e 100644
--- a/var/spack/repos/builtin/packages/flux-sched/package.py
+++ b/var/spack/repos/builtin/packages/flux-sched/package.py
@@ -15,6 +15,7 @@ class FluxSched(AutotoolsPackage):
git = "https://github.com/flux-framework/flux-sched.git"
version('master', branch='master')
+ version('0.7.1', sha256='a35e555a353feed6b7b814ae83d05362356f9ee33ffa75d7dfb7e2fe86c21294')
version('0.7.0', sha256='69267a3aaacaedd9896fd90cfe17aef266cba4fb28c77f8123d95a31ce739a7b')
version('0.6.0', sha256='3301d4c10810414228e5969b84b75fe1285abb97453070eb5a77f386d8184f8d')
version('0.5.0', sha256='d6347f5c85c12c76364dccb39d63c007094ca9cbbbae4e8f4e98d8b1c0b07e89')
@@ -26,9 +27,9 @@ class FluxSched(AutotoolsPackage):
variant('cuda', default=False, description='Build dependencies with support for CUDA')
- depends_on("boost+graph@1.53.0,1.59.0:", when='@0.5.0:,master')
- depends_on("py-pyyaml", when="@0.7.0:,master")
- depends_on("libxml2@2.9.1:", when="@0.6.0,master")
+ depends_on("boost+graph@1.53.0,1.59.0:", when='@0.5.0:')
+ depends_on("py-pyyaml", when="@0.7.0:")
+ depends_on("libxml2@2.9.1:", when="@0.6.0")
depends_on("yaml-cpp", when="@0.7.0:")
depends_on("libuuid")
depends_on("pkgconfig")
@@ -39,6 +40,7 @@ class FluxSched(AutotoolsPackage):
depends_on("flux-core@0.9.0", when='@0.5.0')
depends_on("flux-core@0.10.0", when='@0.6.0')
depends_on("flux-core@0.11.0", when='@0.7.0')
+ depends_on("flux-core@0.11.2:0.11.99", when='@0.7.1')
depends_on("flux-core@master", when='@master')
# Need autotools when building on master:
@@ -46,6 +48,24 @@ class FluxSched(AutotoolsPackage):
depends_on("automake", type='build', when='@master')
depends_on("libtool", type='build', when='@master')
+ def url_for_version(self, version):
+ '''
+ Flux uses a fork of ZeroMQ's Collective Code Construction Contract
+ (https://github.com/flux-framework/rfc/blob/master/spec_1.adoc).
+ This model requires a repository fork for every stable release that has
+ patch releases. For example, 0.8.0 and 0.9.0 are both tags within the
+ main repository, but 0.8.1 and 0.9.5 would be releases on the v0.8 and
+ v0.9 forks, respectively.
+
+ Rather than provide an explicit URL for each patch release, make Spack
+ aware of this repo structure.
+ '''
+ if version[-1] == 0:
+ url = "https://github.com/flux-framework/flux-sched/releases/download/v{0}/flux-sched-{0}.tar.gz"
+ else:
+ url = "https://github.com/flux-framework/flux-sched-v{1}/releases/download/v{0}/flux-sched-{0}.tar.gz"
+ return url.format(version.up_to(3), version.up_to(2))
+
def setup(self):
pass
@@ -86,18 +106,18 @@ class FluxSched(AutotoolsPackage):
def lua_lib_dir(self):
return os.path.join('lib', 'lua', str(self.lua_version))
- def setup_environment(self, spack_env, run_env):
- run_env.prepend_path(
+ def setup_run_environment(self, env):
+ env.prepend_path(
'LUA_PATH',
os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'),
separator=';')
- run_env.prepend_path(
+ env.prepend_path(
'LUA_CPATH',
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'),
separator=';')
- run_env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules)
- run_env.prepend_path('FLUX_MODULE_PATH',
- self.prefix.lib.flux.modules.sched)
- run_env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd)
- run_env.prepend_path('FLUX_RC_EXTRA', self.prefix.etc.flux)
+ env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules)
+ env.prepend_path('FLUX_MODULE_PATH',
+ self.prefix.lib.flux.modules.sched)
+ env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd)
+ env.prepend_path('FLUX_RC_EXTRA', self.prefix.etc.flux)