Closed NucciTheBoss closed 1 year ago
Oh no, it looks like we have an overlap between the new CRAFT_ARCH_TRIPLET_BUILD_FOR
and the now-deprecated CRAFT_ARCH_TRIPLET
project variables (see #514).
As a workaround, you should be able to wrap the variable in brackets (${CRAFT_ARCH_TRIPLET_BUILD_FOR}
).
I'm not sure how we should go about solving this in craft-parts.
This dictionary needs to be reordered and commented upon. We also need a regression test.
Bug Description
I am trying to create a ROCK for High-Performance Linpack (HPL), a Fortran-based toolkit used to benchmark the Top 500 supercomputers in the world. HPL uses the OpenBLAS library under the hood. Since there are multiple OpenBLAS implementations available in the Ubuntu universe package repository, the Debian alternatives mechanism is used in the OpenBLAS package's postinst script to configure the system-wide OpenBLAS installation. However, since *craft's do not execute Debian package postinst scripts in part staging, I need to create the symlinks that would be created by
update-alternatives
manually in override-stage. Same situation for libpsm-infinipath1, another dependency of HPL.HPL expects libopenblas.so.0 and _libpsminfinipath.so.1 to be available under _usr/lib/x8664-linux-gnu so I want to use the CRAFT_ARCH_TRIPLET environment variable, but it is deprecated. I am using
$CRAFT_ARCH_TRIPLET_BUILD_FOR
instead, but it looks like craft-parts is instead expanding$CRAFT_ARCH_TRIPLET_BUILD_FOR
tox86_64-linux-gnu_BUILD_FOR
instead. My ROCK packing is failing sincex86_64-linux-gnu_BUILD_FOR
does not exist under stage/.To Reproduce
sudo snap install rockcraft --classic --edge
wget https://netlib.org/benchmark/hpl/hpl-2.3.tar.gz
rockcraft -v
craftctl default
completes in the override-stage step.part yaml
Relevant log output