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
