IRC logs for #buildstream for Thursday, 2017-06-22

*** tristan has joined #buildstream05:44
*** daitama has joined #buildstream06:04
*** ChanServ sets mode: +o tristan06:09
*** tlater has joined #buildstream07:57
*** tristan has quit IRC08:09
*** tristan has joined #buildstream08:16
*** ChanServ sets mode: +o tristan08:19
*** ssam2 has joined #buildstream08:44
*** jonathanmaw has joined #buildstream08:50
ssam2I get various weird test failures in the bzr source's unit tests09:06
ssam2some of the logs show internal errors in bzr, and other madness09:06
jonathanmawjust to check I'm not being an idiot, the correct place to put split-rules is at the root of the bst doc, right?09:08
jonathanmawi.e.09:08
jonathanmawsplit-rules:09:08
jonathanmaw  package1:09:08
jonathanmaw  - file109:08
ssam2these are the errors I see: https://pastebin.com/ugn7bZh209:08
jonathanmawssam2: latest master, I take it?09:09
jonathanmawI'll run it and check09:09
ssam2yeah09:09
ssam2it may be something unique to Fedora 2509:09
ssam2as presumably the CI would have caught it if they failed everywhere09:09
ssam2wait, i'm using Fedora 24, but same deal09:09
ssam2bzr 2.6.009:09
ssam2I can't find any docs about this, but split-rules might go under config:09:10
jonathanmawyeah, I'm not seeing that error with my system.09:11
jonathanmawit looks like it failed when shelling out to bzr09:13
jonathanmawaround13209:13
jonathanmawNo module named cov_core_init09:13
ssam2wow, actually bzr on my OS is broken09:13
ssam2running `bzr` works09:13
ssam2but `bzr branch` gives madness09:13
ssam2will try `dnf reinstall`09:13
*** daitama has quit IRC09:15
ssam2It would be nice if the bzr tests would be skipped if `bzr` wasn't available, rather than failing ... was that already discussed or should I do it?09:18
ssam2i can't see how to fix it on Fedora so i've just uninstalled it09:18
jonathanmawhrm, inside config didn't seem to work09:24
jonathanmawtristan: do you have any input on the correct way to enter splits in the .bst file?09:25
tristanjonathanmaw, split rules are public data in the bst domain09:25
jonathanmawok, so09:28
jonathanmawpublic:09:28
jonathanmaw  bst:09:28
jonathanmaw    split-rules:09:28
jonathanmaw...09:28
jonathanmaw?09:28
tristanjonathanmaw, yep09:29
tlaterI've been using a sandbox to collect the sources and scripts for the source-bundle, but element._prepare_sandbox also stages dependencies into it - I don't want that. element.__sandbox does exactly what I want, though. Should I wrap that in a public method somehow?09:37
*** jude has joined #buildstream09:38
tristantlater, I dont think that ever needs to be public no09:38
tristanalso, I have a doubt that you should be using a sandbox for this09:39
tristanwhat exactly are you using it for ?09:39
tlaterIt makes it easy to stage elements, because methods for that already exist.09:39
tlaterI only use it because those methods require a sandbox.09:40
tristanYou mean to stage sources ? Element.stage_sources() ?09:40
tlaterYep09:40
tristanOk I see09:40
tristantlater, probably best to just not use Element.stage_sources()09:41
tlaterYeah, that works.09:41
tristanThere are two options I can see, one of them is to make stage_sources() take an absolute path instead of a sandbox09:42
tristanBut I dont want that09:42
tristanI think the API for elements is better by abstracting that away09:42
tristantlater, anyway all you want is that little loop that calls source._stage()09:42
tristantlater, also, none of this is happening outside of buildstream right ?09:43
tristanSo there is no need for exposing any public API surface for this, afaics09:43
tlaterAh, gotcah09:43
tlaterWell, I meant more public than __09:44
tristanright I see what you mean yeah09:44
tristanwe only use __ on classes in buildstream which we expect to be derived09:44
tristanespecially public ones, but I think I've done it in sandbox.py too (which may be publicly derivable soon)09:45
tlaterSo __ is not allowed to be used in subclasses, and _ not in other classes?09:45
tristantlater, double underscore is a python feature09:47
tristanit performs some namespace mangling09:47
tristanSo Foo() has a self.__foo and Bar(Foo) has a self.__foo, but they are different foos09:48
tlaterOh? I thought only __x__ was a python feature, and __ vs _ was convention. I'll have to read up on that.09:48
tristan(if you want to access a __foo from outside of the code in Foo()'s class declaration, it needs to be done with __Foo_foo09:48
tristan)09:48
tristanso a bar = Bar() would have both bar.__Foo_foo and bar.__Bar_foo "in real life"09:49
tristanthe __x__ things are methods which implement builtin python object behaviors yeah, that's different09:50
tristanSingle or double leading underscore is a convention for marking something as being private API, but double underscore prefix has that extra feature baked into python09:50
tristanAha !09:52
tristanI think I screwed it up, I hope so...09:52
tristannah, I think i didnt screw it up :'(09:56
tlaterShould I add a method to stage sources absolutely?09:58
tristanmeh, yeah ok that could help10:00
tlaterThe alternative is fiddling with namespace mangling ;)10:00
tristantlater, create something like Element._stage_sources_at()10:00
tlaterOkay :)10:00
tristantlater, not afaics no it would not require that10:00
tristantlater, then, make sure you call Element._stage_sources_at() from the public Element.stage_sources()10:01
tlaterLooking at stage_sources it looks at self.__sources?10:01
tristanwith the absolute path resolved from the sandbox10:01
tristantlater, yeah that's true, but there is a generator Element.sources()10:01
tlaterOh, I missed that, nevermind then.10:01
tristantlater, in any case, with an internal _stage_sources_at(), you reuse about 5 lines of code10:02
tristanand you get the deterministic mtime and messaging for free10:02
tlaterYeah, that looks neater10:02
tristanNice !10:33
tristanOk I'll cleanup a patch and we will have a functional console again :)10:34
*** gitlab-br-bot has quit IRC10:37
*** tiagogomes has quit IRC10:38
*** tlater` has joined #buildstream10:38
*** ssam2 has quit IRC10:38
*** persia has quit IRC10:38
*** juergbi has quit IRC10:38
*** jjardon[m] has quit IRC10:38
*** dabukalam has quit IRC10:38
*** ironfoot has quit IRC10:38
*** tiagogomes has joined #buildstream10:38
*** tlater has quit IRC10:38
*** ssam2 has joined #buildstream10:38
*** persia has joined #buildstream10:38
*** juergbi has joined #buildstream10:38
*** jjardon[m] has joined #buildstream10:38
*** dabukalam has joined #buildstream10:38
*** ironfoot has joined #buildstream10:38
*** irc.poop.nl sets mode: +o ironfoot10:38
*** gitlab-br-bot has joined #buildstream10:39
* ssam2 submits pull request for adding cross compile support \o/10:46
jonathanmawhmm, it looks like split rules won't be enough for building debian sources11:14
jonathanmawit looks like DEBIAN/prerm, DEBIAN/postinst, DEBIAN/control and DEBIAN/md5sums vary between packages11:15
tristanyou mean for building debian packages from built artifacts ?11:18
tristanjonathanmaw, so I'm gonna go eat, but I think we had some plans for this11:19
tristanthe scriptlets ideally we can also get postinst into integration commands (via the same dynamic setting of public data which is TODO)11:20
tristanjonathanmaw, and the debian/control file and suchlike, we originally intended to generate that from metadata11:20
jonathanmawok11:21
*** tristan has quit IRC11:24
*** tiagogomes has quit IRC11:31
gitlab-br-botbuildstream: merge request (sam/docstring-fix->master: main.py: Fix name of tool in `bst show` documentation) #32 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3211:43
gitlab-br-botbuildstream: merge request (sam/test-fixes->master: Various test suite fixes) #33 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3311:43
gitlab-br-botbuildstream: merge request (sam/host-and-target-arch->master: Add --host-arch and --target-arch, and 'host-arches' conditional) #34 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3411:43
gitlab-br-botbuildstream: issue #40 ("Ctrl+C causes `bst shell` to exit when I don't want it to") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/4011:44
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: _sandboxbwrap.py: Fix job control in interactive mode) https://gitlab.com/BuildStream/buildstream/commit/a7aa1e24c96ce56b7b5bc9e1b80a08e55bee11b211:44
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: main.py: Fix name of tool in `bst show` documentation) https://gitlab.com/BuildStream/buildstream/commit/df0e350fd4483a9b65084128f208aa7a156c133011:44
gitlab-br-botbuildstream: merge request (sam/docstring-fix->master: main.py: Fix name of tool in `bst show` documentation) #32 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/3211:45
*** tristan has joined #buildstream12:05
*** ChanServ sets mode: +o tristan12:10
*** tiagogomes has joined #buildstream12:22
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 4 commits (last: tests/sources/bzr.py: Skip bzr source tests if `bzr` program isn't found) https://gitlab.com/BuildStream/buildstream/commit/dc30741e7fc9cd67d7fa48bcfcfa7c6ab40d71c412:36
gitlab-br-botbuildstream: merge request (sam/test-fixes->master: Various test suite fixes) #33 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/3312:36
ssam2seems the GCC native build issue I had was just from upgrading to GCC 7, nothing to do with Alpine13:15
ssam2needed to add --without-libmpx to the configure line as libmpx needs a target libc13:16
gitlab-br-botbuildstream: merge request (jonathan/fix-bzr-source->master: bzr source: Make sure the stage directory exists before bzr fetching) #30 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/3013:23
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: source.py: Ensure 'directory' exists in _stage) https://gitlab.com/BuildStream/buildstream/commit/10cb1b90828a7184972ed47fee73ac59ecb27f7313:23
tlater`I'm assuming I will need to use your glibc-baserock/sam/2.25-musl-only branch?13:25
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: compose.py: Fix possibility of referencing undefined variable) https://gitlab.com/BuildStream/buildstream/commit/ef4e57472288bc6fe47d5555038e3b81430aff5013:27
ssam2tlater, ah yes13:27
gitlab-br-botbuildstream: merge request (jonathan/fix-compose-no-integration->master: compose.py: Fix error when integration is false) #31 changed state ("closed"): https://gitlab.com/BuildStream/buildstream/merge_requests/3113:28
tlater`Wait, why am I tlater`?13:29
jonathanmawtlater`: you probably had a connection hiccup that started a new session, so it went to one of your backup usernames13:33
jonathanmawsince "tlater" was temporarily still connected13:33
jonathanmaw/nick tlater13:33
jonathanmawshould fix it13:33
tlater`Strange. I haven't set any. Might be my config here, never double checked my name.13:34
*** tlater` is now known as tlater13:34
tlaterOooooh.... If glibc is already installed, how do I get it to ignore the current definitions?13:36
ssam2i don't understand the question...13:37
tlaterHang on...13:37
tlaterI'm currently getting these errors when compiling glibc:13:38
tlaterhttps://paste.codethink.co.uk/?260313:38
ssam2buh13:38
tlaterThe definitions set when compiling are already set in the user headers13:38
ssam2might be another glibc-against-musl issue13:39
tlaterHmmm13:39
ssam2it might be worth going back to building a chroot with buildstream :/13:39
ssam2I have fixed the build issue we were hitting13:39
tlaterOh, right13:39
tlaterYeah, I'll try that13:40
ssam2i've just pushed the fixes13:41
tlaterOk, cool, let's see how this goes13:41
tlaterUgh, this build will take half an hour again :/13:41
ssam2yeah, that's an issue with all this kind of toolchain work13:42
ssam2you end up doing 3 things in parallel13:42
tristanthats true13:42
ssam2anyway, it seems like your script is generally working, if it's managing to build a few bits13:42
tlaterYeah, I'd still like to see an executable created by it, though13:43
jonathanmawtristan: what's the purpose of public data being split into domains? Would it be appropriate to put the dpkg metadata into a "dpkg" domain?13:50
tristanjonathanmaw, the purpose is to avoid namespace clashing with third party plugins13:51
tristanjonathanmaw, so yeah, we could go that way, and then nobody could add their own `dpkg` public data with a different meaning13:52
tristanwhich is not necessarily a bad thing13:52
tristanright now all the data we have in `bst` has use cases in the core13:53
tristanI think13:53
tristanintegration commands are used by Element APIs, so are split-rules13:53
tristanSo we could use the bst domain for core related stuff and have separate domains for any plugin-specific things13:53
tristanor we could use bst domain across the board for anything that is in the buildstream repo13:54
jonathanmawI'll stick with bst, then13:54
*** tristan has quit IRC13:57
*** tristan has joined #buildstream14:20
*** jonathanmaw has quit IRC16:36
*** tlater has quit IRC16:37
*** jude has quit IRC16:53
*** ssam2 has quit IRC17:16
*** tiagogomes has quit IRC18:35

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