IRC logs for #buildstream for Wednesday, 2017-06-21

*** tristan has quit IRC00:06
*** tristan has joined #buildstream05:26
*** tristan has quit IRC06:24
*** ssam2 has joined #buildstream08:10
*** tlater has joined #buildstream08:12
*** jonathanmaw has joined #buildstream08:23
*** tristan has joined #buildstream08:52
tristantlater, I just noticed that your MR disappeared, but I just merged it, sorry :-S09:19
tristantlater, after review I added a couple of changes too I'd like you to just briefly gloss over09:19
tristanhttps://gitlab.com/BuildStream/buildstream/commit/65aa3c8f87727b16f90df951f6fa458fbac2624b09:19
tristanhttps://gitlab.com/BuildStream/buildstream/commit/8e1fd9883036e94d4a205a2d378ccbc0471711c709:20
tristanhttps://gitlab.com/BuildStream/buildstream/commit/85c5d6aa522d13c2e452027b51d786eddda76dee09:20
tristanwell the latter two are really the same change09:20
tlaterYup, I get the changes.09:28
jonathanmawtristan: have you had time to look at https://gitlab.com/BuildStream/buildstream/merge_requests/30/diffs ?09:29
tristanjonathanmaw, ok so I think that's going to be correct09:37
tristanthen again, wait09:38
tristanI've been going back and forth on this one :-/09:38
tristanah right09:39
tristanjonathanmaw, so the directory is created by the sandbox if ever the sandbox ran in advance of staging09:39
tristanwhich happens with integration commands09:39
tristanjonathanmaw, I've been hesitant about this issue mostly because I think it needs to be clarified in the Source API09:41
tristanjonathanmaw, ok so, right now we know that tarballs and gits also work fine if the directory already exists09:42
tristanI was a bit worried that it would break for git09:42
tristanbut then again, at this point, we already know that running integration commands will cause the sandbox to create the build directory (as a result of it's mount mappings)09:42
tristanjonathanmaw, Ok so in that light, I think it makes more sense to do this in Source._stage() and not offload this uncertainty to source plugin authors09:43
jonathanmawok09:44
tristanjonathanmaw, on another topic, are you aware of: https://buildstream.gitlab.io/buildstream/buildstream.element.html#buildstream.element.Element.stage_artifact ?09:45
tristanjonathanmaw, i.e. I think you dont need to care about split rules, because that is taken into account by the stage_artifact() API09:46
tristanmaybe you need to just get a list of the split domains on the public data, so you can selectively stage those to some subdirectories09:47
jonathanmawtristan: currently, I'm just trying to make sure that those split-rules were set correctly09:49
jonathanmawand it looks like the compose element uses stage_dependency_artifacts (hence stage_artifact), so that should be carried through09:50
tristanI thought you were specifying them manually ?09:50
jonathanmawtristan: currently, yes09:50
tristanBecause there is still no way to dynamically set the public data on elements, pending some more artifact work09:50
tristanright, compose uses the recursive artifact staging09:51
tristanwhile you will want a shallow one for generating packages09:51
tristantlater, regarding some comments I read from yesterday; yes the build element builds into /buildstream/build and installs into /buildstream/install by default, and it cannot be overridden by a config file09:53
tristantlater, that was why we discussed that we need an inventive way to override variable declarations at pipeline instantiation time, so that %{build-root} resolves to /build/${element_name} and %{install-root} resolves to /09:54
tristanso that we can generate scripts which build directly into the / of a foreign arch machine, or a chroot09:55
tlaterOh, okay, I understand. Shouldn't it be enough to use the defaults and copy to / for now though?09:55
tlaterThat is, hoping nothing uses the installation root for execution.09:56
tristanThat can work yeah, so you have a master script which first moves a build dir into /buildstream/build and then moves the /buildstream/install into /09:56
tlaterYup, that's what I have at the moment09:57
tristansure, no worries then, if it's not a problem on your side, then I think I actually prefer that09:57
* tristan just touching base because he saw some commentary on that from irc09:58
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 7 commits (last: Add --except API) https://gitlab.com/BuildStream/buildstream/commit/2b1e6d7069e908aefc4720fb34b1e9c85766488210:11
gitlab-br-botbuildstream: merge request (except->master: Add --except to fetch, track and show) #28 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/2810:11
tlaterssam2: Mind having a look at my compile log? I've tried everything I can think of...10:21
ssam2sure, paste it somewhere and I can have a look10:22
tlaterThe log: https://paste.codethink.co.uk/?259110:22
tlaterBuild script: https://paste.codethink.co.uk/?259310:22
ssam2tlater, what version of glibc are you building there ?10:28
ssam2try the release/2.25/master branch10:29
tlaterOk... Hang on, let me check what I am building10:30
tlaterThat's actually surprisingly hard to see from buildstream definitions10:31
ssam2if the 'track:' field is accurate then it shouldn't be too hard10:31
tlaterbaserock/gnu-toolchain10:31
tlater:/10:31
ssam2ah, I think that's nonsense10:31
ssam2replace it with 'release/2.25/master', then run `bst track gnu-toolchain/glibc.bst`10:32
ssam2i've been building glibc 2.25 here with no problems (other than that musl issue which you shouldn't hit)10:32
tlaterOk, that would be neat, because then my scripts just work.10:32
tlaterWhich ref?10:33
tlaterThe current ref is obviously not in that branch...10:34
ssam2`bst track` will update the 'ref' field for you10:34
tlaterIt complains about being unable to find the specified commit10:34
ssam2did you update the 'track' field ?10:34
tlaterYup10:35
ssam2hmm10:35
tlaterurl?10:35
ssam2it's definitely there ... http://git.baserock.org/cgit/delta/glibc.git/log/?h=release/2.25/master10:35
tlaterThis one's tracking git://git.baserock.org/delta/, I think10:36
tlaterOh10:36
tlaterYeah...10:36
tlaterI'll remove that source from the cache, that's helped before10:36
ssam2that shouldn't be necessary10:40
ssam2could you paste the exact .bst file and the error output from `bst track` ? this is something that has always worked for me ..10:40
tlaterIt might be a problem with my branch...10:41
ssam2i think you do indeed need to update glibc by the way, this commit looks very much like it would solve the build problem: http://git.baserock.org/cgit/delta/glibc.git/commit/?h=release/2.25/master&id=d6d20de8b7ff6da6f3d29c5edb0ae3070f997f3010:41
ssam2hmm, although the warning might be harmless10:42
ssam2but let's see10:42
tlaterYup :) I'll skip pasting the error, it should be easy to reproduce later10:43
tlaterThe warning is probably harmless, this just explicitly sets it to the default.10:46
tlater^ commit10:47
ssam2yeah10:47
ssam2no idea about the next bits though; we've always been building GLIBC using Busybox tools10:47
tlaterWhatever the error is, it's as if gcc is trying to compile the output of `mkdir --version`10:48
ssam2right10:49
gitlab-br-botbuildstream: merge request (jonathan/fix-bzr-source->master: bzr source: Make sure the stage directory exists before bzr fetching) #30 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3010:49
ssam2my build logs of glibc don't have any errors from mkdir10:49
ssam2and are using busybox mkdir, although could be a different version of busybox10:50
ssam2as an aside, a `bst shell --builddir=LATEST option would be really handy` :-)10:51
ssam2maybe if you don't pass an arg to --builddir it could choose whatever builddir has the latest mtime10:51
ssam2tlater, my busybox is 1.26.210:52
tlaterAh, I'm on 1.23.110:52
tlaterI'll try building with this version first10:52
tlaterThen probably switch busybox versions10:52
tlaterThe warning is gone, at least10:56
tlaterNo, still breaks. Other busybox version, it is!10:57
tlaterI'll go have lunch while this builds...11:04
tristanssam2, https://gitlab.com/BuildStream/buildstream/issues/40 is related to how the sandbox responds with SandboxFlags.INTERACTIVE11:20
tristanit needs to mount /dev/console,or /dev/tty (which cannot be assumed to exist on, say a gitlab runner)...11:21
tristanand that's not all11:21
tristanSomething mysterious needs to be done for the shell to have a "real tty" and enable job control11:21
ssam2is job control the thing that would make ctrl+c work as expected ?11:22
*** tristan has quit IRC11:24
gitlab-br-botbuildstream: issue #39 ("Enhancement: `bst shell --builddir` automatically picking the newest available builddir") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/3911:31
gitlab-br-botbuildstream: issue #40 ("Ctrl+C causes `bst shell` to exit when I don't want it to") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/4011:34
ssam2there's a bit of a lag on that bot :-)11:41
tlaterMy libstdcxx isn't tracking :/11:58
gitlab-br-botbuildstream: merge request (jonathan/fix-compose-no-integration->master: compose.py: Fix error when integration is false) #31 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/3113:03
jonathanmawtlater: are you still having the problem with libstdcxx?13:03
tlaterLooks like it's the entirety of gcc, actually13:04
jonathanmawtlater: hrm13:05
jonathanmaware you getting an error message?13:05
tlaterYeah, this is one of them: https://paste.codethink.co.uk/?259413:06
jonathanmawhrm, "unable to find commit for specified branch name 'baserock/gnu-toolchain'"13:06
jonathanmawwhat branch of buildstream definitions are you using? build-gnome?13:06
tlaterNot sure, it says delta13:07
jonathanmawtlater: I'd like to have a look at it myself. I assume you're using the buildstream-tests repo. What branch of that are you using?13:07
tlaterNot using buildstream-tests atm, but the definitions are the same as the gnu-toolchain branch's13:08
ssam2he is hopefully using my sam/buildstream branch of definitions.git:13:08
tlater^13:08
tlaterThe strange thing is that I've managed to build with these definitions before13:09
jonathanmawssam2: ah, ok, that's in gitlab.com/baserock/definitions, by the look of it13:09
ssam2yeah13:09
ssam2i've just pushed a load of stuff to it13:10
ssam2mostly for the stage1 and stage2 elements so might not change much, but i figure it's best if we keep in sync13:10
tlaterI've changed the version of busybox from that branch to 1.26.213:10
ssam2did it help ?13:10
tlaterCan't get the base image to build...13:10
tlaterBut not because of that change13:10
tlater"image"13:11
tlater"chroot"13:11
jonathanmawtlater: the specific problem there seems to be that it's looking in this repo http://git.baserock.org/cgit/delta/gcc-tarball.git/refs/heads13:11
jonathanmawwhich doesn't have a branch named "baserock/gnu-toolchain"13:11
tlaterI've tried changing that to gcc13:11
tlaterand changing the branch to releases/2.25/master13:11
ssam2there are a few things going on here...13:12
ssam2firstly, you probably can --exclude everything before fhs-dirs13:12
ssam2as the stage1 and stage2 bits will be already cross built when we are cross bootstrapping13:12
ssam2second, the 'track' field needs to correspond to an actual git ref13:12
ssam2the 'upstream:gcc-tarball' thing is probably a bit confusing13:13
ssam2it's basically a keyed URI13:13
tlaterWhich uses the definition from project.conf, right?13:14
ssam2if you look in project.conf you can see that 'upstream:' is defined as git://git.baserock.org/delta/13:14
ssam2yeah13:14
ssam2so the repo for that component is: git://git.baserock.org/delta/gcc-tarball13:14
tlaterAnd I'm looking for a branch from that13:14
ssam2switch the git:// to a http:// and you can browse it in a browser and see what refs there are13:14
tlaterWell, I've tried a few of those branches, just reset my local copy for that error log13:15
ssam2gcc-tarball is a "special" case13:15
ssam2we import tarballs of GCC into Git13:15
tlaterThat first bit works for cross-bootstrapping, yes, but I'm trying to get a chroot with busybox 1.26.2 to test if I can even get this to build13:15
tlaterSo --except isn't useful13:15
ssam2and then manually add a couple of components, e.g.: http://git.baserock.org/cgit/delta/gcc-tarball.git/log/?h=baserock/gcc-7.1.013:15
ssam2ah, OK13:15
ssam2fair enough13:15
ssam2in my branch I've updated the bootstrap to use GCC 7.1.013:16
ssam2so maybe try rebasing your definitions changes onto the stuff I just pushed into the sam/buildstream branch13:16
tlaterHave you pushed the branch?13:16
tlaterAh, ok13:16
ssam2only just pushed it13:16
tlaterBy the way, does the value of track need to be escaped somehow? When I changed busybox's 1_23_1 to 1_26_2 it was concatenated to 1262, and failed, but with backslashes it seems to be fine13:23
ssam2oh dear13:24
ssam2probably a YAML thing13:25
ssam2yes13:25
ssam2not much we can do about that, YAML is a bit weird and places and the usual solution to add quotes13:25
ssam2*a bit weird in places13:25
tlaterWhy on earth does 1_23_1 work? x)13:26
ssam2it doesn't for me ..13:26
ssam2$ echo '1_23_1' | python3 -c 'import yaml, sys; print(yaml.load(sys.stdin));'13:26
ssam2123113:26
tlaterHuh, strange. The busybox definition should technically fail then.13:27
tlaterUnless there is a branch 1231?13:27
ssam2'track' doesn't actually do anything when you run `bst build`13:27
ssam2`bst build` follows the 'ref' field, `bst track` updates 'ref' based on the value of 'track'13:27
ssam2but `track` is a pretty new feature so a lot of the 'track' refs are actually nonsense :-)13:27
ssam2in Baserock for a long time we used to track branch names in the hope that such a feature would one day appear, in a field that had no actual meaning to any tool ...13:28
ssam2and now `bst track` finally exists, but of course a lot of the data in the fields has never been tested13:28
ssam2until recently you just had to copy the whole SHA1 around manually every time you wanted to change the version of a component13:28
tlaterWell, at least I'm doing some testing here.13:29
ssam2yeah :-)13:29
tlaterWhat's going wrong here?13:44
tlater```13:45
tlaterbst track gnu-toolchain/busybox.bst13:45
tlaterLoading:   02113:45
tlaterError loading pipeline: /home/tristanmaat/Documents/Projects/bl014/buildstream/buildstream/data/projectconfig.yaml [line 53 column 2]: Dictionary did not contain expected key 'bst-target-arch'13:45
tlater```13:45
ssam2ah, sorry13:47
ssam2this is because I told you to pull from my branch, but actually my branch requires the cross compile patch I've been working on :/13:48
ssam2might be easiest if I push that branch, it's finished apart from test fixups13:48
tlaterOk, gotcha. Can I simply replace all those with bst-arch?13:48
ssam2you can13:48
ssam2you can use gitlab.com/samthursfied/buildstream branch sam/host-and-target-arch to build if you want to avoid that13:49
ssam2will hopefully get it ready for merge this evening13:49
ssam2I need to nip out in about 40 minutes to go the dentist13:49
tlaterI'd rather stick to my branch for now, I want to use source-bundle with this.13:49
tlaterIf I can't get it to work I'll switch13:50
ssam2yeah I guess you'd have to merge the two together13:50
tlaterGood luck with the dentist ;)13:50
ssam2although it's only one commit so not too complex13:50
ssam2thanks ...13:50
* ssam2 fingers crossed13:50
jonathanmawwell, that's interesting. I printed a list of files from Element.__compute_splits(), and it broke the build. Apparently because it's a generator.13:50
jonathanmawmaking sure the generator produces a list before using it twice solved that problem :/13:51
tlaterStupid generators. Never do what you want them to do.13:51
tlaterssam2: You missed stage2-gcc-fixed-headers' track.14:08
ssam2ah, i probably did14:11
ssam2seems not to have broken anything, but worth fixing14:12
tlaterStill fails to compile :/ I didn't build the exact same environment, because alpine is local on ssam2's machine, so that may well be the issue.15:53
tlaterThe build fails to complete stage1-gcc now, with the beautiful error that my compiler cannot create executables15:54
tlaterI got one that I think is going to finish \o/ No time to wait for it anymore though.16:22
*** tlater has quit IRC16:24
*** jonathanmaw has quit IRC16:35
*** jude has quit IRC17:27
*** ssam2 has quit IRC20:13

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