Skip to content

bst shell should automatically pull necessary dependencies

Summary

Not sure if this was a design decision but It seems confusing for me:

I was trying to enter a shell to build a single element, and my first idea was to run

bst shell base/opus.bst

but that doesn't include what I need to build. A bit confusing but ok;

I then checked the docs (https://docs.buildstream.build/using_commands.html#bst-shell) and I discovered bst shell --build; "Use the –build option to create a temporary sysroot for building the element instead." So I tried it:

bst shell --build base/opus.bst

but then I got an error:

[jjardon@edoras freedesktop-sdk (18.08)]$ bst shell --build base/opus.bst 
[--:--:--][][] START   Loading elements
[00:00:00][][] SUCCESS Loading elements
[--:--:--][][] START   Resolving elements
[00:00:00][][] SUCCESS Resolving elements
[--:--:--][][] START   Resolving cached state
[00:00:00][][] SUCCESS Resolving cached state

Error launching shell: Elements need to be built or downloaded before staging a shell environment

    base/p11-kit.bst
    base/gnutls.bst
    base/e2fsprogs.bst
    base/krb5.bst
    base/curl.bst
    base/python3.bst
    base/git.bst

Asking in IRC, Seems I have to run another command before:

bst build --all base/opus.bst

This works but I would expect bst shell --build base/opus.bst to do that for me (ie, automatically cache build deps)? Also taking account what the documentation link mentioned before says about bst shell --build

What is the expected correct behavior?

This command would be enough to have everything I need to build:

bst shell --build base/opus.bst

Other relevant information

  • BuildStream version affected: 1.2.2
Edited by Chandan Singh
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information