Manually installing fckit, jedi-cmake...with spack

A quick question from sort-of a newbie :slightly_smiling_face:

I’m trying to install jedi dependencies on my linux laptop. I had some problems with the spack-stack instructions so I just started installing the dependencies manually, but still using spack. Most of it installs with no problem. Even packages like ecbuild and eckit are known by spack and I can install them with the variants suggested by spack-stack. However, other packages like fckit, ecmwf-atlas, and jedi-cmake do not show up in the standard spack list. I was curious how these spack packages are defined by the repos. How do you install these manually with spack?

I could build these as part of a bundle with ecbuild or I could build and install them manually or I could try to debug the spack-stack installation - largely as a black box. But I would rather understand how these can be installed manually with commands like spack repo add... and spack install.... Where is this actually done in spack-stack? I can see where things are added in principle, but I don’t see any sort of config files that tell spack how to build fckit, jedi-cmake, etc in spack-ext. Thanks!

fckit ecmwf-atlas and all of these are in spack develop.

spack-stack uses a fork of spack develop (very close to develop), which is a submodule of spack-stack.

therefore all these packages are in spack-stack, too.

I would follow precisely the instructions in spack-stack readthedocs, in particular in 6. Generating new site configs — spack-stack 1.7.0 documentation

Thanks Dom - that’s useful. I understand now where that comes from. I’ll tell you the problems I am finding with the instructions when I try this on a laptop running Fedora 37. The first comes here
(I’m using the skylab-8.0.0 env)

[skylab-8.0.0] $ spack external find --scope system --exclude cmake --exclude curl --exclude openssl --exclude openssh --exclude python
==> Error: /home/mark.miesch/code/jedi/spack-stack-1.7.0/envs/skylab-8.0.0/common/packages.yaml:234: [‘@1.22.3’] is not valid under any of the given schemas

I find that error for about three different packages. If I replace require in the packages.yaml file with version then that step completes successfully. However, then later in the instructions I come to where I “Edit site config files and common config files” and then run concretize. If I edit nothing I get:

==> Error: Package ‘ewok-env’ not found.

Fine - I don’t intend to run ewok anyway. So I remove that. Then I get the same error message for ai-env. So, I tried pruning it to only jedi-fv3:

definitions:
- compilers: [“%gcc”]
- packages:
- jedi-fv3-env

But that is still not found:

==> Error: Package ‘jedi-fv3-env’ not found.

I’m not sure how to proceed with this - I can’t get the concretize step to work. That’s when I started manually installing things with spack (outside of the skylab env). Is it possible that my native installation of spack is conflicting with the submodule version that comes with spack-stack? Or should the activation of the skylab env select the correct spack-stack version?

How did you clone the code? It looks like something is off between your spack-stack parent repo and the spack submodule.