On Tue, Oct 27, 2020 at 3:28 PM Chandan Singh <[email protected]>
wrote:

> Exporting the build artifacts would certainly be one option. But
> depending on what you're trying to achieve, there may be other
> alternatives too. `bst shell` in particular comes to mind.
>
> The shell functionality already allows network access for purposes
> like this, and comes in two variants - build shell and runtime shell.
>
> The build shell will have all the build dependencies and sources for
> the element in exactly the same way that they would be staged during a
> `bst build`. It can be used to debug builds of the project, for
> example, to iterate on various configuration options.
>
> The runtime shell will provide access to the built artifacts  of the
> element and all its runtime dependencies. As such, it is more useful
> for testing the resulting binary.
>
> Both the shells allow network access. As such, they are not meant to
> produce deployable artifacts, but can be very useful for debugging
> purposes. There are probably still many things that could be improved
> in the shell experience. So, I'd be very interested for you to try the
> shell functionality and let us know if that works for your use case.
>
> One issue that I can already think of is that if we go with this
> approach, you will also need to have a debugger available in the
> BuildStream project and somehow add a dependency on it  for invoking
> the build shell. This topic has been a recurring discussion item, but
> we haven't solved it yet.
> https://gitlab.com/BuildStream/buildstream/-/issues/422 has some
> related background on this.
>
> A couple of references below.
>
> CLI docs:
> https://docs.buildstream.build/master/using_commands.html#invoking-shell
> Shell in action:
>
> https://docs.buildstream.build/master/tutorial/running-commands.html#run-the-hello-world-program


Thanks.  I'm picking this up again as there's an upstream change in OpenSSL
which is apparently breaking serf.  For reference, my serf-bst 2.0 project
is at [1].

Buildstream is *so* close to doing what I want here: control my version of
OpenSSL and Serf in a clean manner and do so in an isolated manner from my
host environment.

However, I need the debugger available to step through the test binaries to
figure out what's going on.  It also seems like the bst shell doesn't have
network access - I can't run any of the produced binaries to remote hosts.
Is there a step I'm missing to allow network access?  And, is the only way
to bring in the debugger is to build it into the base platform (or have a
special layer with gdb and such)?

I'm going to put this on pause for now and go back to fighting Debian sid
to see if I can get a reproducer...

Cheers.  -- justin

1. https://github.com/jerenkrantz/serf-bst

Reply via email to