As a packager I want spack buildcache to be able to analyze the DAG of an installed package and show which nodes are relocatable so that I could get a quantitative idea on how many packages encode their install prefix in e.g. .rodata.
Rationale
This is a follow up from #7123 (comment) and discussion below. The proposal basically boils down to have a new sub-command:
$ spack buildcache preview <installed package>
that shows to users which nodes are relocatable and which are not.
Description
An example output might be something like:
$ spack buildcache --help
usage: spack buildcache [-h] SUBCOMMAND ...
create, download and install binary packages
positional arguments:
SUBCOMMAND buildcache sub-commands
create create a binary package from an existing install
install install from a binary package
list list binary packages available from mirrors
preview analyzes an installed package and reports whether
executables and libraries are relocatable
keys get public keys available on mirrors
optional arguments:
-h, --help show this help message and exit
$ spack buildcache preview hdf5 ^mpich
Relocatable packages
--------------------------------
[+] hdf5@1.10.3%gcc@8.0.1~cxx~debug~fortran~hl+mpi+pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
[+] ^mpich@3.2.1%gcc@8.0.1 device=ch3 +hydra netmod=tcp +pmi+romio~verbs arch=linux-ubuntu18.04-x86_64
[-] ^zlib@1.2.11%gcc@8.0.1+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
meaning that hdf5 and mpich are relocatable, while zlib is not. Note that the example is a mock and I didn't look for real into these three packages as I did for pkgconf and ncurses.
Additional information
Waiting for feedback before implementing this. Feel free to close if you consider this not necessary.
@gartung @tgamblin @scheibelp @becker33 @mathstuf @bryonbean
As a packager I want
spack buildcacheto be able to analyze the DAG of an installed package and show which nodes are relocatable so that I could get a quantitative idea on how many packages encode their install prefix in e.g..rodata.Rationale
This is a follow up from #7123 (comment) and discussion below. The proposal basically boils down to have a new sub-command:
that shows to users which nodes are relocatable and which are not.
Description
An example output might be something like:
meaning that
hdf5andmpichare relocatable, whilezlibis not. Note that the example is a mock and I didn't look for real into these three packages as I did forpkgconfandncurses.Additional information
Waiting for feedback before implementing this. Feel free to close if you consider this not necessary.
@gartung @tgamblin @scheibelp @becker33 @mathstuf @bryonbean