Can't open a build shell on an element which was pulled
I'm trying to open a build shell on an element which was pulled from the artifacts cache, not built.
That fails because I don't have the tarball.
Steps to reproduce
(optional: this helps making this 100% reproducible from scratch) completely clean your Buildstream cache:
$ rm -rf ~/.cache/buildstream
let's do this with the freedesktop-sdk:
$ git clone https://gitlab.com/freedesktop-sdk/freedesktop-sdk.git $ cd freedesktop-sdk $ git checkout 18.08
pull the libdrm build artifacts:
$ bst build base/pkg-config.bst desktop/libdrm.bst
try opening a build shell:
$ bst shell --build desktop/libdrm.bst
What is the current bug behavior?
$ bst shell --build desktop/libdrm.bst [… snip …] [00:00:00][13b665a5][ main:desktop/libdrm.bst ] FAILURE Staging sources Error launching shell: tar source at desktop/libdrm.bst [line 26 column 4]: Error staging source: [Errno 2] No such file or directory: '/home/mathieu/.cache/buildstream/sources/tar/https___dri_freedesktop_org_libdrm_libdrm_2_4_92_tar_bz2/e9e48fdb4de139dc4d9880aa1473158a16ff6aff63d14341367bd30a51ff39fa'
What is the expected correct behavior?
A working build shell.
I guess Buildstream could download the sources itself, since that's necessary to open a build shell?
However the Buildstream UX is usually to require the user to explicitly take actions. The problem is that in this specific case, nothing seems to tell Buildstream to download the sources…
Other relevant information
… for example, I tried the following:
$ bst fetch desktop/libdrm.bst
But that did nothing, because Buildstream found that
desktop/libdrm.bst was already built and cached.
- BuildStream version affected: 1.1.7