spack / spack

A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
https://spack.io
Other
4.29k stars 2.27k forks source link

`superlu-dist`: Old Versions Wrongly Removed #12938

Closed citibeth closed 5 years ago

citibeth commented 5 years ago

@tgamblin @scheibelp Try running the command: spack spec petsc@3.4.4. This produces the output below. Note that it chose superlu-dist@xsdk-0.2.0, instead of, say superlu-dist@4.3. This is clearly a bug. Non-checksummable versions should NEVER be chosen by default. (And this version doesn't work with petsc@3.4.4 anyway).

Input spec
--------------------------------
petsc@3.4.4

Concretized
--------------------------------
petsc@3.4.4%gcc@4.9.3~X clanguage=C ~complex~debug+double+hdf5+hypre~int64+metis+mpi~mumps+shared~suite-sparse+superlu-dist~trilinos arch=linux-centos7-x86_64 
    ^hdf5@1.10.4%gcc@4.9.3~cxx~debug+fortran+hl+mpi+pic+shared~szip~threadsafe arch=linux-centos7-x86_64 
        ^numactl@2.0.12%gcc@4.9.3 arch=linux-centos7-x86_64 
            ^autoconf@2.69%gcc@4.9.3 arch=linux-centos7-x86_64 
                ^m4@1.4.18%gcc@4.9.3 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,c0a408fbffb7255fcc75e26bd8edab116fc81d216bfd18b473668b7739a4158e,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-centos7-x86_64 
                    ^libsigsegv@2.11%gcc@4.9.3 arch=linux-centos7-x86_64 
                ^perl@5.26.2%gcc@4.9.3+cpanm patches=0eac10ed90aeb0459ad8851f88081d439a4e41978e586ec743069e8b059370ac +shared+threads arch=linux-centos7-x86_64 
                    ^gdbm@1.18.1%gcc@4.9.3 arch=linux-centos7-x86_64 
                        ^readline@7.0%gcc@4.9.3 arch=linux-centos7-x86_64 
                            ^ncurses@6.1%gcc@4.9.3~symlinks~termlib arch=linux-centos7-x86_64 
                                ^pkgconf@1.5.4%gcc@4.9.3 arch=linux-centos7-x86_64 
            ^automake@1.16.1%gcc@4.9.3 arch=linux-centos7-x86_64 
            ^libtool@2.4.6%gcc@4.9.3 arch=linux-centos7-x86_64 
        ^openmpi@3.1.3%gcc@4.9.3~cuda+cxx_exceptions fabrics=auto ~java~legacylaunchers~memchecker~pmi schedulers=auto ~sqlite3~thread_multiple+vt arch=linux-centos7-x86_64 
            ^hwloc@1.11.11%gcc@4.9.3~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-centos7-x86_64 
                ^libpciaccess@0.13.5%gcc@4.9.3 arch=linux-centos7-x86_64 
                    ^util-macros@1.19.1%gcc@4.9.3 arch=linux-centos7-x86_64 
                ^libxml2@2.9.8%gcc@4.9.3~python arch=linux-centos7-x86_64 
                    ^libiconv@1.15%gcc@4.9.3 arch=linux-centos7-x86_64 
                    ^xz@5.2.4%gcc@4.9.3 arch=linux-centos7-x86_64 
                    ^zlib@1.2.11%gcc@4.9.3+optimize+pic+shared arch=linux-centos7-x86_64 
    ^hypre@2.13.0%gcc@4.9.3~debug~int64~internal-superlu+mpi+shared arch=linux-centos7-x86_64 
        ^openblas@0.3.5%gcc@4.9.3 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-centos7-x86_64 
    ^metis@5.1.0%gcc@4.9.3 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1 +real64+shared arch=linux-centos7-x86_64 
        ^cmake@3.13.3%gcc@4.9.3~doc+ncurses+openssl+ownlibs~qt arch=linux-centos7-x86_64 
            ^openssl@1.1.1%gcc@4.9.3+systemcerts arch=linux-centos7-x86_64 
    ^parmetis@4.0.3%gcc@4.9.3 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-centos7-x86_64 
    ^superlu-dist@xsdk-0.2.0%gcc@4.9.3 build_type=RelWithDebInfo ~int64+shared arch=linux-centos7-x86_64 
citibeth commented 5 years ago

Turns out that #9445 caused this bug. @balay can you please fix it?

citibeth commented 5 years ago

Never mind... I see that upstream removed the old versions. I'll change PETSc to use superlu-dist@5.2.2, which seemed to work in the past.

citibeth commented 5 years ago

I'm wrong again. The old versions are available, just not on GitHub. Again... old versions should be kept in the Spack recipe!

citibeth commented 5 years ago

Here are the old versions. But now I see they're not CMake (probably autotools). And we've never really come up with a solution at Spack on how to handle this properly while keeping old versions.

    version('4.3', 'ee66c84e37b4f7cc557771ccc3dc43ae',
        url='https://portal.nersc.gov/project/sparse/superlu/superlu_dist_4.3.tar.gz')
    version('4.2', 'ae9fafae161f775fbac6eba11e530a65',
        url='https://portal.nersc.gov/project/sparse/superlu/superlu_dist_4.2.tar.gz')
    version('4.1', '4edee38cc29f687bd0c8eb361096a455',
        url='https://portal.nersc.gov/project/sparse/superlu/superlu_dist_4.1.tar.gz')
    version('4.0', 'c0b98b611df227ae050bc1635c6940e0',
        url='https://portal.nersc.gov/project/sparse/superlu/superlu_dist_4.0.tar.gz')
    version('3.3', 'f4805659157d93a962500902c219046b',
        url='https://portal.nersc.gov/project/sparse/superlu/superlu_dist_3.3.tar.gz')
citibeth commented 5 years ago

This probably was actually a bug in #12941. I needed to remove my .spack-env stuff in order to make my changes to superlu-dist/package.py take effect.