gitlab-br-bot | push on buildstream@summary (by Jürg Billeter): 20 commits (last: _ostree.py: Add list_remote_refs()) https://gitlab.com/BuildStream/buildstream/commit/d31d1759defb56db94541e3a8adcd297e81ad7e5 | 05:27 |
---|---|---|
gitlab-br-bot | push on buildstream@summary (by Jürg Billeter): 1 commit (last: userconfig.yaml: Mention push-url restriction) https://gitlab.com/BuildStream/buildstream/commit/4db12c367c4818321517360fdcafc273fd318a2f | 05:31 |
gitlab-br-bot | buildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/59 | 05:32 |
gitlab-br-bot | buildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/59 | 06:16 |
gitlab-br-bot | push on buildstream@push-protocol (by Jürg Billeter): 20 commits (last: _artifactcache: Use subprocess to fetch summary) https://gitlab.com/BuildStream/buildstream/commit/21f546fa35eaefef2048918afa83b1f222d6839c | 07:21 |
gitlab-br-bot | push on buildstream@push-protocol (by Jürg Billeter): 1 commit (last: _artifactcache/pushreceive.py: Do not list all refs) https://gitlab.com/BuildStream/buildstream/commit/2ffa3944616b94ee5ed0b73b2e4c77dd0e700c9b | 07:23 |
gitlab-br-bot | buildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/60 | 07:24 |
gitlab-br-bot | push on buildstream@push-protocol (by Jürg Billeter): 1 commit (last: _artifactcache/pushreceive.py: Do not list all refs) https://gitlab.com/BuildStream/buildstream/commit/46d62c2169759ea8af3fce4bd9cdd75b168eb123 | 07:25 |
gitlab-br-bot | buildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/60 | 07:25 |
*** jude has joined #buildstream | 07:41 | |
*** jude has quit IRC | 07:52 | |
*** tiagogomes has joined #buildstream | 08:11 | |
*** tlater has joined #buildstream | 08:33 | |
*** jude has joined #buildstream | 08:34 | |
*** tlater` has joined #buildstream | 08:35 | |
*** tlater` has left #buildstream | 08:35 | |
*** tlater has quit IRC | 08:36 | |
*** tlater has joined #buildstream | 08:37 | |
*** jonathanmaw has joined #buildstream | 08:41 | |
*** ssam2 has joined #buildstream | 09:06 | |
juergbi | i'd appreciate review of https://gitlab.com/BuildStream/buildstream/merge_requests/60 | 09:19 |
juergbi | it's not a large change and it fixes the push issue, so unblocks use of gnome7 and other artifact servers | 09:19 |
juergbi | review of https://gitlab.com/BuildStream/buildstream/merge_requests/59 (OSTree summary file) would also be great but that's a larger change set and less critical | 09:21 |
tlater | Heh, turns out the /dev/null unmounting issue was just me opening /dev/null in python, because that's where I currently redirect stdout. | 09:28 |
gitlab-br-bot | push on buildstream@master (by Tristan Van Berkom): 20 commits (last: _artifactcache: Add fetch_remote_refs()) https://gitlab.com/BuildStream/buildstream/commit/33a337c4b7006d8d7e653c504bb42a45febaa65c | 09:28 |
gitlab-br-bot | buildstream: issue #45 ("Artifact pull jobs say "SUCCESS" even when no artifact was fetched") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/45 | 09:28 |
gitlab-br-bot | buildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/59 | 09:28 |
gitlab-br-bot | buildstream: Jürg Billeter deleted branch summary | 09:28 |
*** jude has quit IRC | 09:32 | |
*** locallycompact has joined #buildstream | 09:32 | |
*** jude has joined #buildstream | 09:36 | |
gitlab-br-bot | push on buildstream@master (by Jürg Billeter): 1 commit (last: _artifactcache/pushreceive.py: Do not list all refs) https://gitlab.com/BuildStream/buildstream/commit/977210795c9ec67309eae3b78e2100c6b2281823 | 10:06 |
gitlab-br-bot | buildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/60 | 10:06 |
gitlab-br-bot | buildstream: Jürg Billeter deleted branch push-protocol | 10:11 |
tlater | The mknod variant is working :) Now I just have to think about how I should handle /proc, /tmp and interactive chroots. | 11:01 |
locallycompact | where are definitions for bst | 11:15 |
ssam2 | you can try branch sam/buildstream of baserock definitions.git | 11:17 |
ssam2 | that has a conversion I did | 11:17 |
ssam2 | jjardon also working on https://gitlab.com/baserock/definitions/merge_requests/43 | 11:18 |
ssam2 | some docs here http://wiki.baserock.org/BuildStream/ | 11:18 |
ssam2 | of course that's just baserock, tristan has a bunch of other stuff converted from gnome that's totally unrelated to baserocvk | 11:18 |
ssam2 | *baserock | 11:18 |
locallycompact | Loading: 399 | 11:20 |
locallycompact | What's it doing | 11:20 |
ssam2 | i would say it's loading stuff :-) | 11:21 |
tlater | Loading all elements that you specified for the build | 11:21 |
tlater | Maybe you don't want *all* elements ^^ | 11:21 |
locallycompact | How long is this supposed to take | 11:21 |
ssam2 | i've had issues with it being slow in the past | 11:21 |
ssam2 | also that was the "checking" stage where it looks in the local ostree cache | 11:21 |
ssam2 | https://github.com/ostreedev/ostree/issues/883 might be one problem | 11:22 |
ssam2 | it's still not superfast but generally with warm cache it takes a few seconds for me | 11:22 |
locallycompact | just seems stuck | 11:23 |
ssam2 | oh maybe it's broken somehow then | 11:23 |
tlater | Try just specifying an early element to see if it works, rather than the whole build immediately. | 11:24 |
locallycompact | why is it such that tab complete can't work | 11:25 |
ssam2 | yes that sucks | 11:25 |
ssam2 | haven't figured out a nice solution though | 11:25 |
tlater | We could just write a bash completion script thing | 11:26 |
ssam2 | yeah that's probably the best option | 11:26 |
ssam2 | forcing all paths to be relative from a set dir rather than cwd is nice when writing the .yaml files, but just messes up the cli | 11:26 |
locallycompact | Ok well this doesn't work whatever it's doing | 11:27 |
locallycompact | just ticks up and halts | 11:27 |
ssam2 | i think you have found a bug | 11:27 |
ssam2 | what command are you running ? | 11:27 |
locallycompact | bst build core.bst | 11:27 |
ssam2 | what commit of definitions.git and buildstream.git | 11:27 |
locallycompact | head and sam/buildstream head | 11:28 |
ssam2 | i will try the same thing on my machine | 11:28 |
ssam2 | for reference I was on buildstream.git commit 781fc131baae942cc8e17676297cb679f7d5320b which was working fine for me | 11:29 |
ssam2 | oh yeah but master hangs | 11:29 |
ssam2 | must be a regression since tristan rewrote the resolving code... | 11:30 |
ssam2 | building gnu-toolchain.bst works | 11:31 |
ssam2 | but building core.bst hangs | 11:31 |
* ssam2 wonders who is available to fix that | 11:32 | |
locallycompact | Did you get rid of the second degree of freedom that was in baserock definitions | 11:33 |
ssam2 | I don't understand the question | 11:34 |
locallycompact | baserock definitions has two degrees of freedom | 11:34 |
locallycompact | containment and dependency | 11:34 |
locallycompact | this seems to only have dependency | 11:34 |
locallycompact | i.e baserock had this picture https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Series-parallel_partial_order.svg/300px-Series-parallel_partial_order.svg.png | 11:35 |
locallycompact | rather than this picture https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Hasse_diagram_of_powerset_of_3.svg/250px-Hasse_diagram_of_powerset_of_3.svg.png | 11:35 |
locallycompact | that was critical for say swapping out a sysroot in a system | 11:37 |
locallycompact | now it looks if you want to swap out gnu-toolchain for a different toolchain you have to change every dependency individually | 11:38 |
ssam2 | you can still decide what goes into a system | 11:39 |
ssam2 | if you want to swap build-essential in Baserock definitions for some other toolchain stratum you also need to modify everything that explicitly depends on build-essential | 11:40 |
ssam2 | buildstream has a less rigid dependency model (any element can depend on any other element, and can express whether it's a build or runtime dependency) but that's the only change I se | 11:40 |
ssam2 | *see | 11:40 |
locallycompact | In master you do, V10 changed that | 11:41 |
ssam2 | if it's not in master then it hasn't happened | 11:41 |
locallycompact | This seems like a massive regression | 11:41 |
locallycompact | How is it less rigid if the chunk itself defines its own dependencies | 11:42 |
locallycompact | The strength of the strata model was that the parent container curated the dependency information | 11:43 |
locallycompact | so it had juresdiction over how to arrange things | 11:43 |
locallycompact | the only thing missing from master was that systems couldn't do it for strata the same way strata did it for chunks | 11:43 |
ssam2 | this is something best discussed with tristan, I didn't design the buildstream model | 11:44 |
ssam2 | i can't say i've had any issues with it so far though | 11:44 |
ssam2 | i think arch conditionals and variants are the approaches chosen to solve the same class of problem that definitions V10 is aiming to solve | 11:45 |
locallycompact | I see | 11:48 |
locallycompact | Well I don't fully understand variants yet but it seems to me like if you can solve the problem with SMT isolated from the context, and then blast a subgraph at a vertex and reconnect it, that might be fast | 11:51 |
locallycompact | that's just >>= in a graph monad but I dno how you get this in python | 11:52 |
locallycompact | I'd pull in a sophisticated graph library | 11:52 |
locallycompact | before anything | 11:52 |
ssam2 | right | 11:52 |
ssam2 | i've used networkx in the past | 11:52 |
ssam2 | what's an smt ? | 11:53 |
ssam2 | (also, this is probably better discussed when tristan is actually here to listen :-) | 11:53 |
ssam2 | i guess the channel is logged | 11:54 |
jonathanmaw | that's odd. I'm failing to checkout because the artifact I just built isn't found in the cache | 12:19 |
jonathanmaw | looking at `ostree refs` I can confirm I see nothing with that cache key | 12:19 |
jonathanmaw | I'll look at what's supposed to happen in "Caching Artifact" | 12:20 |
tlater | Should I consider a potential eval-like vulnerability in specifying the cwd (stuff like `cd /; rm -r /`)? Considering arbitrary commands can be specified anyway that seems a bit redundant. | 14:03 |
ssam2 | in the internal API ? | 14:05 |
tlater | Actually, it's possible to break out of the chroot with `exit; rm -r /` this way. Ugh, this thing is even more wide open than chroot usually is. | 14:05 |
ssam2 | would that work? | 14:06 |
tlater | Well, the cwd is specified in the element.yml files iirc. | 14:06 |
ssam2 | if you call exit in a command, the shell exits and the subprocess is finished | 14:06 |
tlater | ATM I'm considering doing `chroot <dir> cd <somewhere>; <commands>` | 14:06 |
tlater | Exit there should bring you to the parent shell, no? | 14:07 |
tlater | ^ With sh -c -e where appropriate | 14:07 |
ssam2 | hmm yeah | 14:07 |
ssam2 | have a look at sandboxlib | 14:08 |
ssam2 | https://github.com/CodethinkLabs/sandboxlib/blob/master/sandboxlib/chroot.py | 14:09 |
ssam2 | this is what ybd uses for its chroot backend | 14:09 |
ssam2 | https://github.com/CodethinkLabs/sandboxlib/blob/master/sandboxlib/chroot.py#L168 | 14:09 |
ssam2 | so rather than open a shell and call `chroot`, we fork() in python and then call os.chroot() from the new Python process | 14:10 |
ssam2 | then os.chdir(), and only then open a shell | 14:10 |
ssam2 | works like a charm except that the Python interpreter may try to access files that it can no longer access due to the chroot() call | 14:10 |
tlater | Ah, right, I forgot about os.chdir | 14:10 |
ssam2 | we work around that with some hack | 14:10 |
tlater | Cool, thanks :) | 14:11 |
ssam2 | this is the hack: https://gitlab.com/baserock/ybd/blob/master/ybd/sandbox.py#L159 | 14:11 |
ssam2 | and this is what happens sometimes without that hack: https://gitlab.com/baserock/ybd/issues/211 | 14:13 |
jonathanmaw | hrm, I think some combination of strong/weak cache and dynamic public data might be responsible for `bst checkout` failing. When the element (a dpkg-build test element) is cached, it's done with strong ref script-test/dpkg-build-test/e96d7fa71067f7b382f7efec282a55e7d0c8a3a3aeee4ab2359be5b6b34b835c, and weak ref script-test/dpkg-build-test/432e452e12236a652bf90b627d362af828b6fd3637cc37efebcb60de37326868. When I checkout, it fails with "Missing a | 14:14 |
jonathanmaw | rtifact 33482b6f". | 14:14 |
jonathanmaw | I think we might not be caching to the ref before build-commands are performed that change the cache key. | 14:15 |
locallycompact | ssam2, this is smt https://en.wikipedia.org/wiki/Satisfiability_modulo_theories | 14:17 |
locallycompact | it's an extension of https://en.wikipedia.org/wiki/Boolean_satisfiability_problem | 14:18 |
locallycompact | maybe SAT is enough | 14:18 |
locallycompact | You pile in a load of predicates and it gives you back a model that satisfies | 14:18 |
tlater | ssam2's approach works through some miracle :) | 15:08 |
tlater | chroots are almost portable now | 15:08 |
juergbi | jonathanmaw: you're working on dpkg and not #41 right now, or are you still working on both? i might have time to start looking into #41 soon | 15:13 |
jonathanmaw | juergbi: I'm not current'y working on #41 | 15:14 |
jonathanmaw | and given I was completley stumped, probably wouldn't come back to it in any reasonable timeframe | 15:14 |
juergbi | ok | 15:14 |
gitlab-br-bot | push on buildstream@cross_platform (by Tristan Maat): 1 commit (last: Add SandboxChroot) https://gitlab.com/BuildStream/buildstream/commit/bba7968d5ed13ed9a3260dfb3289d4bddd9afed9 | 15:34 |
gitlab-br-bot | push on buildstream@cross_platform (by Tristan Maat): 20 commits (last: _artifactcache: Add remote_contains()) https://gitlab.com/BuildStream/buildstream/commit/c37662f3088e0fe2c9647fa2a57c3336dac78135 | 15:36 |
gitlab-br-bot | push on buildstream@artifact-version (by Jürg Billeter): 1 commit (last: element.py: Introduce artifact versions) https://gitlab.com/BuildStream/buildstream/commit/cb8fd11e540fb85347d95c1f157af740b33301a9 | 15:43 |
gitlab-br-bot | buildstream: merge request (artifact-version->master: element.py: Introduce artifact versions) #61 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/61 | 15:44 |
gitlab-br-bot | push on buildstream@cross_platform (by Tristan Maat): 1 commit (last: Add SandboxChroot) https://gitlab.com/BuildStream/buildstream/commit/a1dfe1b3255df65025f864d5a34aecaa532f9e22 | 15:48 |
*** ssam2 has quit IRC | 16:03 | |
*** ssam2 has joined #buildstream | 16:05 | |
*** jude has quit IRC | 16:35 | |
*** jude has joined #buildstream | 16:54 | |
*** jude has joined #buildstream | 16:55 | |
*** jude has quit IRC | 17:01 | |
*** tlater has quit IRC | 17:01 | |
*** jude has joined #buildstream | 17:01 | |
*** jonathanmaw has quit IRC | 17:02 | |
*** jude has quit IRC | 17:03 | |
*** jude has joined #buildstream | 17:03 | |
*** xjuan has joined #buildstream | 17:35 | |
*** locallycompact has quit IRC | 17:57 | |
*** tiagogomes has quit IRC | 18:20 | |
gitlab-br-bot | push on buildstream@sam/artifactcache-preflight-check (by Sam Thursfield): 20 commits (last: _artifactcache: Add remote_contains()) https://gitlab.com/BuildStream/buildstream/commit/c37662f3088e0fe2c9647fa2a57c3336dac78135 | 19:47 |
gitlab-br-bot | buildstream: merge request (sam/artifactcache-preflight-check->master: Check for write access to remote artifact cache early on in the pipeline) #57 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/57 | 19:47 |
*** ssam2 has quit IRC | 19:54 | |
*** jude has quit IRC | 20:37 | |
*** xjuan has quit IRC | 23:17 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!