xsdk: Very preliminary xsdk.py definition for installing xSDK packages#2058
xsdk: Very preliminary xsdk.py definition for installing xSDK packages#2058BarrySmith wants to merge 0 commit intospack:developfrom BarrySmith:barry/develop
Conversation
|
@BarrySmith: even if you rebase in your fork's |
|
@tgamblin Agreed. The problem is I made a mistake of pushing when my fork was in a state with the develop branch in my fork matching the develop branch in the LLNL repository (I had move my changes to another branch). As soon as I pushed github noted the pull request branch matched the branch in the LLNL repository and so marked the pull request as complete. I couldn't find a way to reopen a complete pull request (which makes sense). So my intention was not to start a new pull request, I just did something that prematurely closed my original pull request. |
There was a problem hiding this comment.
to make it easier to install develop versions everywhere, you can add to you ~/.spack/packages.yaml something like
packages:
hypre:
version: [develop]
petsc:
version: [develop]
trilinos:
version: [develop]
variants: +xsdkflags
superlu-dist:
version: [develop]
This would essentially work as extra constraints on top of whatever you install by spack install xyz.
| depends_on('superlu-dist@:4.3', when='@:3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') | ||
| depends_on('hypre@develop~internal-superlu', when='@develop+hypre+mpi~complex') | ||
| depends_on('superlu-dist@:4.3', when='@3.6.4+superlu-dist+mpi') |
There was a problem hiding this comment.
i don't think you want to change :3.6.4 to 3.6.4 here.
| depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') | ||
| depends_on('hypre@develop~internal-superlu', when='@develop+hypre+mpi~complex') | ||
| depends_on('superlu-dist@:4.3', when='@3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0', when='@3.7+superlu-dist+mpi') |
There was a problem hiding this comment.
same here, depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') looked correct to me.
There was a problem hiding this comment.
i.e. you probably don't want to modify this line at all.
| depends_on('hypre~internal-superlu', when='+hypre+mpi~complex') | ||
| depends_on('superlu-dist@:4.3', when='@:3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') | ||
| depends_on('hypre@develop~internal-superlu', when='@develop+hypre+mpi~complex') |
There was a problem hiding this comment.
i think we generally do not enforce develop variants for packages which are build with develop. So i would remove this completely. If you need to build petsc with hypre@develop it should be fine to do spack install petsc ^hypre@develop.
| depends_on('hypre@develop~internal-superlu', when='@develop+hypre+mpi~complex') | ||
| depends_on('superlu-dist@:4.3', when='@3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0', when='@3.7+superlu-dist+mpi') | ||
| depends_on('superlu-dist@develop', when='@develop+superlu-dist+mpi') |
| depends_on('superlu-dist@5.0.0', when='@3.7+superlu-dist+mpi') | ||
| depends_on('superlu-dist@develop', when='@develop+superlu-dist+mpi') | ||
| depends_on('trilinos@12.6.2', when='@3.7+trilinos+mpi') | ||
| depends_on('trilinos@develop', when='@develop+trilinos+mpi') |
| depends_on('superlu-dist@:4.3', when='@3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0', when='@3.7+superlu-dist+mpi') | ||
| depends_on('superlu-dist@develop', when='@develop+superlu-dist+mpi') | ||
| depends_on('trilinos@12.6.2', when='@3.7+trilinos+mpi') |
There was a problem hiding this comment.
does petsc use Trilinos anyhow? Why exactly 12.6.2? It should probably also be @3.7:.
There was a problem hiding this comment.
also it's not used in config below. Installation page of petsc https://www.mcs.anl.gov/petsc/documentation/installation.html does not mention trilinos.
| depends_on('scalapack', when='+mumps') | ||
| depends_on('superlu-dist@:4.3', when='@:12.6.1+superlu-dist') | ||
| depends_on('superlu-dist', when='@12.6.2:+superlu-dist') | ||
| depends_on('superlu-dist@develop', when='@develop:+superlu-dist') |
|
just to clarify on those |
|
btw, if the point is to control |
|
@BarrySmith: I actually agree with @davydden here -- propagating the
I think the above might be useful for testing (e.g. if you know there is some bug/regression with a particular version of something). But, if One thing I've thought about is making the package constraints soft, so a user could override them if they wanted to (maybe |
one can also add those constraints in |
| url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz" | ||
|
|
||
| version('develop', git='https://github.com/xiaoyeli/superlu_dist', tag='master') | ||
| version('xsdk-0.1.0', git='https://github.com/xiaoyeli/superlu_dist', commit='0b5369f') |
There was a problem hiding this comment.
FYI, you can't build petsc@3.7: with superlu-dist@xsdk-0.1.0 because petsc depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') whereas xsdk-0.1.0 < 5.0.0.
Workaround is #1983 + develop.xsdk.0.1.0 or alike.
davydden
left a comment
There was a problem hiding this comment.
LGTM apart from a few very minor issues.
lib/spack/env/cc
Outdated
| # Unset pesky environment variables that could affect build sanity. | ||
| # | ||
| unset LD_LIBRARY_PATH | ||
| #unset LD_LIBRARY_PATH |
There was a problem hiding this comment.
i think this does not belong to this PR and requires a separate discussion. @alalazo @tgamblin @adamjstewart ping.
I suggest creating a separate PR with this change only, or at least remove it from this PR.
There was a problem hiding this comment.
Sorry this was not a "real change" for the pull request, just some intermediate mucking around.
| depends_on('hypre~internal-superlu', when='+hypre+mpi~complex') | ||
| depends_on('superlu-dist@:4.3', when='@:3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7.0:+superlu-dist+mpi') |
There was a problem hiding this comment.
there is no need to write @3.7.0: the original code @3.7: will work just fine.
| depends_on('superlu-dist@:4.3', when='@:3.6.4+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7:+superlu-dist+mpi') | ||
| depends_on('superlu-dist@5.0.0:', when='@3.7.0:+superlu-dist+mpi') | ||
| depends_on('trilinos@12.6.2:', when='@3.7.0:+trilinos+mpi') |
There was a problem hiding this comment.
out of curiosity, how does petsc@3.7.0: use trilinos?
This is a replacement for pull request #2035
After rebase over latest develop branch
I had to make a new pull request because I did not change the branch name in my fork before adding code.