IRC logs for #buildstream for Thursday, 2017-07-20

gitlab-br-botpush on buildstream@summary (by Jürg Billeter): 20 commits (last: _ostree.py: Add list_remote_refs()) https://gitlab.com/BuildStream/buildstream/commit/d31d1759defb56db94541e3a8adcd297e81ad7e505:27
gitlab-br-botpush on buildstream@summary (by Jürg Billeter): 1 commit (last: userconfig.yaml: Mention push-url restriction) https://gitlab.com/BuildStream/buildstream/commit/4db12c367c4818321517360fdcafc273fd318a2f05:31
gitlab-br-botbuildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5905:32
gitlab-br-botbuildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/5906:16
gitlab-br-botpush on buildstream@push-protocol (by Jürg Billeter): 20 commits (last: _artifactcache: Use subprocess to fetch summary) https://gitlab.com/BuildStream/buildstream/commit/21f546fa35eaefef2048918afa83b1f222d6839c07:21
gitlab-br-botpush 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/2ffa3944616b94ee5ed0b73b2e4c77dd0e700c9b07:23
gitlab-br-botbuildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/6007:24
gitlab-br-botpush 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/46d62c2169759ea8af3fce4bd9cdd75b168eb12307:25
gitlab-br-botbuildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/6007:25
*** jude has joined #buildstream07:41
*** jude has quit IRC07:52
*** tiagogomes has joined #buildstream08:11
*** tlater has joined #buildstream08:33
*** jude has joined #buildstream08:34
*** tlater` has joined #buildstream08:35
*** tlater` has left #buildstream08:35
*** tlater has quit IRC08:36
*** tlater has joined #buildstream08:37
*** jonathanmaw has joined #buildstream08:41
*** ssam2 has joined #buildstream09:06
juergbii'd appreciate review of https://gitlab.com/BuildStream/buildstream/merge_requests/6009:19
juergbiit's not a large change and it fixes the push issue, so unblocks use of gnome7 and other artifact servers09:19
juergbireview 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 critical09:21
tlaterHeh, 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-botpush on buildstream@master (by Tristan Van Berkom): 20 commits (last: _artifactcache: Add fetch_remote_refs()) https://gitlab.com/BuildStream/buildstream/commit/33a337c4b7006d8d7e653c504bb42a45febaa65c09:28
gitlab-br-botbuildstream: issue #45 ("Artifact pull jobs say "SUCCESS" even when no artifact was fetched") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/4509:28
gitlab-br-botbuildstream: merge request (summary->master: OSTree summary file support) #59 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/5909:28
gitlab-br-botbuildstream: Jürg Billeter deleted branch summary09:28
*** jude has quit IRC09:32
*** locallycompact has joined #buildstream09:32
*** jude has joined #buildstream09:36
gitlab-br-botpush on buildstream@master (by Jürg Billeter): 1 commit (last: _artifactcache/pushreceive.py: Do not list all refs) https://gitlab.com/BuildStream/buildstream/commit/977210795c9ec67309eae3b78e2100c6b228182310:06
gitlab-br-botbuildstream: merge request (push-protocol->master: Push protocol fix) #60 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/6010:06
gitlab-br-botbuildstream: Jürg Billeter deleted branch push-protocol10:11
tlaterThe mknod variant is working :) Now I just have to think about how I should handle /proc, /tmp and interactive chroots.11:01
locallycompactwhere are definitions for bst11:15
ssam2you can try branch sam/buildstream of baserock definitions.git11:17
ssam2that has a conversion I did11:17
ssam2jjardon also working on https://gitlab.com/baserock/definitions/merge_requests/4311:18
ssam2some docs here http://wiki.baserock.org/BuildStream/11:18
ssam2of course that's just baserock, tristan has a bunch of other stuff converted from gnome that's totally unrelated to baserocvk11:18
ssam2*baserock11:18
locallycompactLoading:    39911:20
locallycompactWhat's it doing11:20
ssam2i would say it's loading stuff :-)11:21
tlaterLoading all elements that you specified for the build11:21
tlaterMaybe you don't want *all* elements ^^11:21
locallycompactHow long is this supposed to take11:21
ssam2i've had issues with it being slow in the past11:21
ssam2also that was the "checking" stage where it looks in the local ostree cache11:21
ssam2https://github.com/ostreedev/ostree/issues/883 might be one problem11:22
ssam2it's still not superfast but generally with warm cache it takes a few seconds for me11:22
locallycompactjust seems stuck11:23
ssam2oh maybe it's broken somehow then11:23
tlaterTry just specifying an early element to see if it works, rather than the whole build immediately.11:24
locallycompactwhy is it such that tab complete can't work11:25
ssam2yes that sucks11:25
ssam2haven't figured out a nice solution though11:25
tlaterWe could just write a bash completion script thing11:26
ssam2yeah that's probably the best option11:26
ssam2forcing all paths to be relative from a set dir rather than cwd is nice when writing the .yaml files, but just messes up the cli11:26
locallycompactOk well this doesn't work whatever it's doing11:27
locallycompactjust ticks up and halts11:27
ssam2i think you have found a bug11:27
ssam2what command are you running ?11:27
locallycompactbst build core.bst11:27
ssam2what commit of definitions.git and buildstream.git11:27
locallycompacthead and sam/buildstream head11:28
ssam2i will try the same thing on my machine11:28
ssam2for reference I was on buildstream.git commit 781fc131baae942cc8e17676297cb679f7d5320b which was working fine for me11:29
ssam2oh yeah but master hangs11:29
ssam2must be a regression since tristan rewrote the resolving code...11:30
ssam2building gnu-toolchain.bst works11:31
ssam2but building core.bst hangs11:31
* ssam2 wonders who is available to fix that11:32
locallycompactDid you get rid of the second degree of freedom that was in baserock definitions11:33
ssam2I don't understand the question11:34
locallycompactbaserock definitions has two degrees of freedom11:34
locallycompactcontainment and dependency11:34
locallycompactthis seems to only have dependency11:34
locallycompacti.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.png11:35
locallycompactrather 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.png11:35
locallycompactthat was critical for say swapping out a sysroot in a system11:37
locallycompactnow it looks if you want to swap out gnu-toolchain for a different toolchain you have to change every dependency individually11:38
ssam2you can still decide what goes into a system11:39
ssam2if 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-essential11:40
ssam2buildstream 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 se11:40
ssam2*see11:40
locallycompactIn master you do, V10 changed that11:41
ssam2if it's not in master then it hasn't happened11:41
locallycompactThis seems like a massive regression11:41
locallycompactHow is it less rigid if the chunk itself defines its own dependencies11:42
locallycompactThe strength of the strata model was that the parent container curated the dependency information11:43
locallycompactso it had juresdiction over how to arrange things11:43
locallycompactthe only thing missing from master was that systems couldn't do it for strata the same way strata did it for chunks11:43
ssam2this is something best discussed with tristan, I didn't design the buildstream model11:44
ssam2i can't say i've had any issues with it so far though11:44
ssam2i think arch conditionals and variants are the approaches chosen to solve the same class of problem that definitions V10 is aiming to solve11:45
locallycompactI see11:48
locallycompactWell 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 fast11:51
locallycompactthat's just >>= in a graph monad but I dno how you get this in python11:52
locallycompactI'd pull in a sophisticated graph library11:52
locallycompactbefore anything11:52
ssam2right11:52
ssam2i've used networkx in the past11:52
ssam2what's an smt ?11:53
ssam2(also, this is probably better discussed when tristan is actually here to listen :-)11:53
ssam2i guess the channel is logged11:54
jonathanmawthat's odd. I'm failing to checkout because the artifact I just built isn't found in the cache12:19
jonathanmawlooking at `ostree refs` I can confirm I see nothing with that cache key12:19
jonathanmawI'll look at what's supposed to happen in "Caching Artifact"12:20
tlaterShould 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
ssam2in the internal API ?14:05
tlaterActually, 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
ssam2would that work?14:06
tlaterWell, the cwd is specified in the element.yml files iirc.14:06
ssam2if you call exit in a command, the shell exits and the subprocess is finished14:06
tlaterATM I'm considering doing `chroot <dir> cd <somewhere>; <commands>`14:06
tlaterExit there should bring you to the parent shell, no?14:07
tlater^ With sh -c -e where appropriate14:07
ssam2hmm yeah14:07
ssam2have a look at sandboxlib14:08
ssam2https://github.com/CodethinkLabs/sandboxlib/blob/master/sandboxlib/chroot.py14:09
ssam2this is what ybd uses for its chroot backend14:09
ssam2https://github.com/CodethinkLabs/sandboxlib/blob/master/sandboxlib/chroot.py#L16814:09
ssam2so rather than open a shell and call `chroot`, we fork() in python and then call os.chroot() from the new Python process14:10
ssam2then os.chdir(), and only then open a shell14:10
ssam2works like a charm except that the Python interpreter may try to access files that it can no longer access due to the chroot() call14:10
tlaterAh, right, I forgot about os.chdir14:10
ssam2we work around that with some hack14:10
tlaterCool, thanks :)14:11
ssam2this is the hack: https://gitlab.com/baserock/ybd/blob/master/ybd/sandbox.py#L15914:11
ssam2and this is what happens sometimes without that hack: https://gitlab.com/baserock/ybd/issues/21114:13
jonathanmawhrm, 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 a14:14
jonathanmawrtifact 33482b6f".14:14
jonathanmawI think we might not be caching to the ref before build-commands are performed that change the cache key.14:15
locallycompactssam2, this is smt https://en.wikipedia.org/wiki/Satisfiability_modulo_theories14:17
locallycompactit's an extension of https://en.wikipedia.org/wiki/Boolean_satisfiability_problem14:18
locallycompactmaybe SAT is enough14:18
locallycompactYou pile in a load of predicates and it gives you back a model that satisfies14:18
tlaterssam2's approach works through some miracle :)15:08
tlaterchroots are almost portable now15:08
juergbijonathanmaw: 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 soon15:13
jonathanmawjuergbi: I'm not current'y working on #4115:14
jonathanmawand given I was completley stumped, probably wouldn't come back to it in any reasonable timeframe15:14
juergbiok15:14
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: Add SandboxChroot) https://gitlab.com/BuildStream/buildstream/commit/bba7968d5ed13ed9a3260dfb3289d4bddd9afed915:34
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 20 commits (last: _artifactcache: Add remote_contains()) https://gitlab.com/BuildStream/buildstream/commit/c37662f3088e0fe2c9647fa2a57c3336dac7813515:36
gitlab-br-botpush on buildstream@artifact-version (by Jürg Billeter): 1 commit (last: element.py: Introduce artifact versions) https://gitlab.com/BuildStream/buildstream/commit/cb8fd11e540fb85347d95c1f157af740b33301a915:43
gitlab-br-botbuildstream: merge request (artifact-version->master: element.py: Introduce artifact versions) #61 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/6115:44
gitlab-br-botpush on buildstream@cross_platform (by Tristan Maat): 1 commit (last: Add SandboxChroot) https://gitlab.com/BuildStream/buildstream/commit/a1dfe1b3255df65025f864d5a34aecaa532f9e2215:48
*** ssam2 has quit IRC16:03
*** ssam2 has joined #buildstream16:05
*** jude has quit IRC16:35
*** jude has joined #buildstream16:54
*** jude has joined #buildstream16:55
*** jude has quit IRC17:01
*** tlater has quit IRC17:01
*** jude has joined #buildstream17:01
*** jonathanmaw has quit IRC17:02
*** jude has quit IRC17:03
*** jude has joined #buildstream17:03
*** xjuan has joined #buildstream17:35
*** locallycompact has quit IRC17:57
*** tiagogomes has quit IRC18:20
gitlab-br-botpush on buildstream@sam/artifactcache-preflight-check (by Sam Thursfield): 20 commits (last: _artifactcache: Add remote_contains()) https://gitlab.com/BuildStream/buildstream/commit/c37662f3088e0fe2c9647fa2a57c3336dac7813519:47
gitlab-br-botbuildstream: 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/5719:47
*** ssam2 has quit IRC19:54
*** jude has quit IRC20:37
*** xjuan has quit IRC23:17

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!