flux: update flux-core package and add a flux-sched package#8818
flux: update flux-core package and add a flux-sched package#8818scheibelp merged 14 commits intospack:developfrom
Conversation
| depends_on("lua-luaposix") | ||
| depends_on("munge") | ||
| depends_on("libuuid") | ||
| depends_on("python") |
There was a problem hiding this comment.
Probably type=('build', 'run')?
|
|
||
| # 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 | ||
| depends_on("py-pylint", when='@:0.8.0') |
| 'PYTHONPATH', | ||
| os.path.join( | ||
| self.spec.prefix.lib, | ||
| "python{}".format(self.spec['python'].version.up_to(2)), |
There was a problem hiding this comment.
These needs to be {0} for Python 2.6 support. That's what is causing the tests to fail.
| ) | ||
| run_env.prepend_path( | ||
| 'FLUX_MODULE_PATH', | ||
| os.path.join(self.spec.prefix.lib, 'flux', 'modules')) |
There was a problem hiding this comment.
You can actually use self.prefix.lib.flux.modules here, same elsewhere. No need for spec or os.path.join.
There was a problem hiding this comment.
OOOO. That's really slick. Thanks!
There was a problem hiding this comment.
I'm glad you like it! That's actually one of my proudest contributions to Spack (#4591). See https://github.com/spack/spack/blob/develop/lib/spack/spack/util/prefix.py#L58,L59 for the 2 lines of code that make all the magic happen!
| os.path.join(self.spec.prefix, 'etc', 'flux')) | ||
|
|
||
| def setup_dependent_environment(self, spack_env, run_env, dependent_spec): | ||
| self.setup_environment(spack_env, run_env) |
There was a problem hiding this comment.
I'm not sure if this is what we want. Is #8639 what you have in mind?
There was a problem hiding this comment.
Whoops. I think I threw this in while debugging some stuff. Removing
| args.append('--disable-docs') | ||
| return args | ||
|
|
||
| # Default AutotoolsPackage check method fails to find 'check' target |
There was a problem hiding this comment.
Let me look into this. I overhauled this method quite a bit in #8223. Do you still have this problem on the latest develop?
There was a problem hiding this comment.
This is the output from spack install --test=root --keep-stage flux-core@master on this branch (i.e., latest develop + my PR):
==> RUN-TESTS: build-time tests [check]
==> 'make' '-j56' '-q' 'test'
make: *** No rule to make target `test'. Stop.
==> Target 'test' not found in Makefile
==> 'make' '-j56' '-q' 'check' [2618/5974]
Making check in .
make[1]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build'
make check-local
make[2]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build'
Making all in .
Making all in src
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src'
Making all in common
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/common'
Making all in libtap
Making all in libev
Making all in libminilzo
Making all in libpmi
Making all in liblsd
Making all in libutil
Making all in libflux
Making all in libkvs
Making all in libjsc
Making all in libsubprocess
Making all in libcompat
Making all in liboptparse
Making all in libidset
Making all in libtomlc99
Making all in libkz
Making all in libjobspec
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/common'
Making all in modules
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/modules'
Making all in barrier
Making all in connector-local
Making all in kvs
Making all in content-sqlite
Making all in wreck
Making all in resource-hwloc
Making all in cron
Making all in aggregator
Making all in userdb
Making all in pymod
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/modules'
Making all in broker
Making all in connectors
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/connectors'
Making all in local
Making all in shmem
Making all in loop
Making all in ssh
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/connectors'
Making all in bindings
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/bindings'
Making all in lua
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src/bindings'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-DrPfq7/flux-core/spack-build'
make: *** [check-recursive] Error 1
==> Target 'check' not found in Makefile
Side-note: why am I seeing this output at the terminal when i press v during the install, but I'm not seeing it in the spack-build.out file in the stage directory after the installation. The spack-build.out only has the ./autogen.sh, configure, make, make install phases.
If I keep the overridden check method:
spack install --overwrite --keep-stage --test=root flux-core@master
<snip>
=> RUN-TESTS: build-time tests [check]
==> 'make' '-j56' 'check'
Making check in .
make[1]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
make check-local
make[2]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
Making all in .
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
Making all in src
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src'
Making all in common
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common'
Making all in libtap
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
Making all in libev
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libev'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libev'
Making all in libminilzo
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
Making all in libpmi
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libpmi'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libpmi'
Making all in liblsd
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/liblsd'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/liblsd'
Making all in libutil
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libutil'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libutil'
Making all in libflux
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libflux'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libflux'
Making all in libkvs
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libkvs'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libkvs'
Making all in libjsc
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libjsc'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libjsc'
Making all in libsubprocess
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libsubproce
ss'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libsubproces
s'
Making all in libcompat
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libcompat'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libcompat'
Making all in liboptparse
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/liboptparse
'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/liboptparse'
Making all in libidset
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libidset'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libidset'
Making all in libtomlc99
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtomlc99'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtomlc99'
Making all in libkz
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libkz'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libkz'
Making all in libjobspec
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libjobspec'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libjobspec'
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common'
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common'
Making all in modules
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules'
Making all in barrier
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/barrier'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/barrier'
Making all in connector-local
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/connector-
local'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/connector-l
ocal'
Making all in kvs
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/kvs'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/kvs'
Making all in content-sqlite
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/content-sq
lite'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/content-sql
ite'
Making all in wreck
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/wreck'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/wreck'
Making all in resource-hwloc
ake[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/resource-h
wloc'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/resource-hw
loc'
Making all in cron
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/cron'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/cron'
Making all in aggregator
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/aggregator
'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/aggregator'
Making all in userdb
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/userdb'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/userdb'
Making all in pymod
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/pymod'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules/pymod'
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules'
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/modules'
Making all in broker
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/broker'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/broker'
Making all in connectors
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors'
Making all in local
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/local'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/local'
Making all in shmem
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/shmem'
make[5]: Nothing to be done for `all'.
ake[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/shmem'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/shmem'
Making all in loop
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/loop'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/loop'
Making all in ssh
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/ssh'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors/ssh'
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors'
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/connectors'
Making all in bindings
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings'
Making all in lua
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/lua'
LN flux.so -> .libs/flux.so
LN flux/affinity.so -> flux/.libs/affinity.so
LN flux/hostlist.so -> flux/.libs/hostlist.so
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/lua'
Making all in python
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python'
Making all in flux
make[6]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/fl
ux'
Making all in core
make[7]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/fl
ux/core'
echo Copying core libraries to where they can be used by python out of tree
Copying core libraries to where they can be used by python out of tree
[ "/usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-core-master-ax7lswmzn2koloklj5zinph2efc2acqr/flux-core
" != "../../../../.." ] && cp /usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-core-master-ax7lswmzn2kolo
klj5zinph2efc2acqr/flux-core/src/bindings/python/flux/core/*.py ./ || true
make[7]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/flu
x/core'
make[7]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/fl
ux'
echo Copying libraries to where they can be used by python in-tree
Copying libraries to where they can be used by python in-tree
for LIB in _core.so _kvs.so _jsc.so _kz.so ; do \
cp -f .libs/$LIB ./ ; \
done
[ "/usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-core-master-ax7lswmzn2koloklj5zinph2efc2acqr/flux-core
" != "../../../.." ] && cp /usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-core-master-ax7lswmzn2koloklj5
zinph2efc2acqr/flux-core/src/bindings/python/flux/*.py ./ || true
make[7]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/flu
x'
make[6]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python/flu
x'
make[6]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python'
make[6]: Nothing to be done for `all-am'.
make[6]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python'
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings/python'
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings'
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/bindings'
aking all in cmd
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/cmd'
GEN builtin-cmds.c
make all-am
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/cmd'
CC builtin-cmds.o
CCLD flux
make[5]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/cmd'
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/cmd'
Making all in test
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/test'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/test'
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src'
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src'
Making all in doc
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc'
Making all in man1
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man1'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man1'
Making all in man3
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man3'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man3'
Making all in man7
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man7'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/man7'
Making all in test
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/test'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc/test'
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc'
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/doc'
Making all in etc
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/etc'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/etc'
Making all in t
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/t'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/t'
make[2]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
make[1]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build'
Making check in src
make[1]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src'
Making check in common
make[2]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common'
Making check in libtap
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
make libtap.la
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
CC tap.lo
CCLD libtap.la
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libtap'
Making check in libev
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libev'
make[3]: Nothing to be done for `check'.
make[3]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libev'
Making check in libminilzo
make[3]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
make test_mini.t
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
CC test/mini.o
CCLD test_mini.t
make[4]: Leaving directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
make check-TESTS
make[4]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
make[5]: Entering directory `/tmp/herbein1/spack-stage/spack-stage-q0qDK0/flux-core/spack-build/src/common/libminilzo'
PASS: test_mini.t 1 - lzo_int() works
PASS: test_mini.t 2 - compressed 131072 bytes into 593 bytes
PASS: test_mini.t 3 - block contains no incompressible data
PASS: test_mini.t 4 - decompressed 593 bytes back into 131072 bytes
============================================================================
Testsuite summary for flux-core 0.10.0-7-g90f05e9
============================================================================
# TOTAL: 4
# PASS: 4
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
...
<snip>
...
PASS: t1003-kvs-stress.t 16 - kvs: test that KVS_NO_MERGE works with kvs_commit()
PASS: t1003-kvs-stress.t 17 - kvs: transaction-merge disabling works
============================================================================
Testsuite summary for flux-core 0.10.0-7-g90f05e9
============================================================================
# TOTAL: 1727
# PASS: 1710
# SKIP: 14
# XFAIL: 3
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
Side note 2: I see this output in spack-build.out.
There was a problem hiding this comment.
Based on that output, I think I know what the problem is. The first concerning thing is that make -q check shouldn't run make check. From the man page:
-q, --question
``Question mode''. Do not run any commands, or print anything;
just return an exit status that is zero if the specified targets
are already up to date, nonzero otherwise.
This leads me to believe that you aren't using GNU Make. Can you give me the output of:
$ make --versionAs for why it isn't being added to spack-build.out, I think that's because it's an internal check, not part of the build phase. The actual call to make check (without the -q) should be in spack-build.out.
There was a problem hiding this comment.
# herbein1 at hype2 in /usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-sched-master-hmcxsptomvev43ivz26k46gt5wpplpmc/flux-sched on git:master ✖︎ [19:22:05]
→ make --version
GNU Make 3.82
Built for x86_64-redhat-linux-gnu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
# herbein1 at hype2 in /usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-sched-master-hmcxsptomvev43ivz26k46gt5wpplpmc/flux-sched on git:master ✖︎ [19:22:08]
→ spack env flux-core@master make --version
GNU Make 3.82
Built for x86_64-redhat-linux-gnu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
There was a problem hiding this comment.
# herbein1 at hype2 in /usr/workspace/wsb/herbein1/spack_toss3/var/spack/stage/flux-sched-master-hmcxsptomvev43ivz26k46gt5wpplpmc/flux-sched on git:master ✖︎ [19:22:41]
→ make -q --help
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d Print lots of debugging information.
--debug[=FLAGS] Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
--eval=STRING Evaluate STRING as a makefile statement.
-f FILE, --file=FILE, --makefile=FILE
Read FILE as a makefile.
-h, --help Print this message and exit.
-i, --ignore-errors Ignore errors from recipes.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
-k, --keep-going Keep going when some targets can't be made.
-l [N], --load-average[=N], --max-load[=N]
Don't start multiple jobs unless load is below N.
-L, --check-symlink-times Use the latest mtime between symlinks and target.
-n, --just-print, --dry-run, --recon
Don't actually run any recipe; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-p, --print-data-base Print make's internal database.
-q, --question Run no recipe; exit status says if up to date.
-r, --no-builtin-rules Disable the built-in implicit rules.
-R, --no-builtin-variables Disable the built-in variable settings.
-s, --silent, --quiet Don't echo recipes.
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch Touch targets instead of remaking them.
-v, --version Print the version number of make and exit.
-w, --print-directory Print the current directory.
--no-print-directory Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables Warn when an undefined variable is referenced.
--warn-undefined-functions Warn when an undefined user function is called.
This program built for x86_64-redhat-linux-gnu
Report bugs to <[email protected]>
This make's --help seems to agree with you, but you are right, it doesn't appear to be doing what is says it should be doing. 🤷♂️
There was a problem hiding this comment.
For the purposes of this PR, would you like me to keep or remove the check method from the flux-core and flux-sched packages?
There was a problem hiding this comment.
Alternatively, we might be able to check the exit status of make -n check.
There was a problem hiding this comment.
So taking another look at the documentation for -q:
-q, --question
``Question mode''. Do not run any commands, or print anything; just return an exit status that is zero if the specified targets are already up to date, nonzero otherwise.
It only returns an exit status of zero if the specified target is up to date. This will never be the case with flux-core and flux-sched immediately after running make, because there are test-specific files that are only compiled when make check is called. So I don't think the --question flag is broken, I think it is just asking a different question.
There was a problem hiding this comment.
Alternatively, we might be able to check the exit status of
make -n check
I agree, -n seems to be the way to go:
# herbein1 at hype2 in ~/Repositories/flux-framework/flux-sched/sched on git:upmaster ✖︎ [20:12:30]
→ make -n check > /dev/null && echo "Success" || echo "Failure"
Success
# herbein1 at hype2 in ~/Repositories/flux-framework/flux-sched/sched on git:upmaster ✖︎ [20:12:37]
→ make -n foobadfansdfionj > /dev/null && echo "Success" || echo "Failure"
make: *** No rule to make target `foobadfansdfionj'. Stop.
Failure
There was a problem hiding this comment.
I think I've got this working now. PR incoming!
| variant('cuda', default=False, description='Build dependencies with support for CUDA') | ||
|
|
||
| depends_on("boost+graph", when='@0.5.0:') | ||
| depends_on("boost+graph", when='@master') |
There was a problem hiding this comment.
You can combine these using when='@0.5.0:,master'
| version('master', branch='master') | ||
| version('0.8.0', 'b0fec05acedc530bcdf75b2477ac22f39d2adddc7af8ff76496208a5e1e8185b1b4a18677871d95c3cfbf34b05f391953651200917fe029931f4e2beb79d70df') | ||
| version('0.9.0', '70eaec1005aa49e8d8cf397570789cebedfb5d917efe963390d456ee4c473eefb15b0c81ea83f60a1fd057fe7be356bbafdebcae64b499844d194c48f6aefa05') | ||
| version('0.10.0', 'a84a1ed53a69c805c253bc940540cbf667a059b2008fd2a6a9bb890a985ead08e88dcbba68c01567f887357306fbfded41b93cc33edfa7809955ba5ba5870284') |
There was a problem hiding this comment.
Can you sort these from newest to oldest?
|
|
||
| version('0.4.0', '82732641ac4594ffe9b94ca442a99e92bf5f91bc14745af92203a887a40610dd44edda3ae07f9b6c8d63799b2968d87c8da28f1488edef1310d0d12be9bd6319') | ||
| version('0.5.0', 'a9835c9c478aa41123a4e12672500052228aaf1ea770f74cb0901dbf4a049bd7d329e99d8d3484e39cfed1f911705030b2775dcfede39bc8bea59c6afe2549b1') | ||
| version('master', branch='master') |
| # https://www.gnu.org/software/autoconf-archive/ax_lua.html | ||
| with working_dir(prefix.lib): | ||
| # e.g., liblua.so.5.1.5 | ||
| src_path = 'liblua.{}.{}'.format(dso_suffix, |
There was a problem hiding this comment.
🤦♂️ my bad. thanks for catching that.
| Version(str(self.version.up_to(2))).joined] | ||
| for version_str in version_formats: | ||
| for joiner in ['', '-']: | ||
| dest_path = 'liblua{}{}.{}'.format(joiner, |
233437f to
1679499
Compare
|
@adamjstewart: since the Makefile target has been spun off onto another PR (#8819), are you OK if I remove the overridden Besides that, is there anything else blocking this PR from being merged? |
|
Yeah, go ahead and remove those overrides. I just moved to a new aprt and have no internet so I'll check the rest of the PR when I'm not on mobile. |
|
@adamjstewart: Thanks, and best of luck with moving! I pushed the changes, but Travis test that hung and produced no output. Once you are off mobile and on stable internet, could you restart that test? I don't seem to be able to restart the test myself (I guess you have to be a maintainer?). |
| spack_env.append_path('LUA_PATH', './?.lua', separator=';') | ||
|
|
||
| run_env.prepend_path( | ||
| 'LUA_PATH', |
There was a problem hiding this comment.
Rather than doing this, would it be possible to just extend('lua') & extend('python')?
There was a problem hiding this comment.
Try it, if it works that would be preferable for sure. IIRC it used to be limited to one extension per package.
There was a problem hiding this comment.
Ok. I subscribed to #987. Once it gets closed, I'll switch flux over to extending both python and lua rather than manually adding the paths.
- fix infinite symlink link with workaround documented in PR spack#3543 - when installing master from git, checkout entire repo so that flux-version works - override default check method so that `--test=root` works correctly with flux
ax_lua.m4 from the autoconf-archive searches for libraries in the following order (assuming the lua version is 5.1): - liblua5.1.so - liblu51.so - liblua-5.1.so - liblua-51.so - liblua.so The old package only installed liblua.so, liblua.so.5, and liblua.so.5.1. So a system-installed version of lua that follows any of the other naming conventions would "co-opt" the Spack-installed version.
Flux-core provides lua and python bindings, so update LUA_PATH, LUA_CPATH, and PYTHONPATH accordingly. Also sets several Flux-specific environment variables.
- removed several unnecessary os.path.join + self.spec.prefix combos - added types to several dependencies - python 2.6 compatible string formatting - ordering versions from newest to oldest - removed overridden 'check' methods
|
Thanks @scheibelp and @adamjstewart! |
#8223 replaced regex-based makefile target parsing with an invocation of "make -q". #8818 discovered that "make -q" can result in an error for some packages. Also, the "make -q" strategy relied on interpreting the error code, which only worked for GNU Make and not BSD Make (which was deemed acceptable at the time). As an added bonus, this implementation ignores the exit code and instead parses STDERR for any indications that the target does not exist; this works for both GNU Make and BSD Make. #8223 also updated ninja target detection to use "ninja -t targets". This does not change that behavior but makes it more-explicit with "ninja -t targets all" This also adds tests for detection of "make" and "ninja" targets.
spack#8223 replaced regex-based makefile target parsing with an invocation of "make -q". spack#8818 discovered that "make -q" can result in an error for some packages. Also, the "make -q" strategy relied on interpreting the error code, which only worked for GNU Make and not BSD Make (which was deemed acceptable at the time). As an added bonus, this implementation ignores the exit code and instead parses STDERR for any indications that the target does not exist; this works for both GNU Make and BSD Make. spack#8223 also updated ninja target detection to use "ninja -t targets". This does not change that behavior but makes it more-explicit with "ninja -t targets all" This also adds tests for detection of "make" and "ninja" targets.
Renames the
fluxpackage toflux-coreand updates its dependencies, versions, and variants.Adds a
flux-schedpackage.This also updates two of the dependent packages:
luaandczmq.Major thanks to @trws for helping debug the flux-sched linking failures.