IRC logs for #buildstream for Thursday, 2017-10-26

*** valentind has quit IRC00:14
*** brlogger has joined #buildstream04:28
*** tristan has quit IRC05:44
*** tristan has joined #buildstream05:54
*** semanticdesign_ has joined #buildstream06:33
*** semanticdesign has joined #buildstream06:33
*** adds68 has joined #buildstream06:47
*** jude has joined #buildstream06:49
*** adds68 has quit IRC06:52
*** bochecha has joined #buildstream07:06
*** igor has joined #buildstream07:24
*** igor has quit IRC07:25
*** adds68 has joined #buildstream07:48
*** adds68_ has joined #buildstream08:03
*** adds68 has quit IRC08:03
*** gitlab-br-bot has joined #buildstream08:19
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: _pipeline.py: Improve error message when --except fails.) https://gitlab.com/BuildStream/buildstream/commit/640e7e57842ca4c2ec3a8641258f54ff7c42d3c008:24
tristanhrmmm, no more notifications when issue state changes ?08:27
gitlab-br-botbuildstream: issue #132 ("Loading external plugins works without explicit requirement in project.conf") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/13208:34
tristanAha, there we are08:36
gitlab-br-botpush on buildstream@jonathan/external-plugins (by Tristan Van Berkom): 8 commits (last: Issue #124: Add test for staging to element build directory) https://gitlab.com/BuildStream/buildstream/commit/35d7051a07451e0647f60963d0485908b1d0139a08:37
tristanAh I see, gitlab-br-bot lost it's connection for a moment08:37
gitlab-br-botbuildstream: merge request (jonathan/external-plugins->master: Remove and refer to elements that have been moved to bst-external) #122 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12208:37
tristannow if only we can get it to stop notifying about pushes to branches that are not protected branches08:37
*** adds68__ has joined #buildstream08:40
*** adds68_ has quit IRC08:41
*** valentind has joined #buildstream08:41
*** jonathanmaw has joined #buildstream08:59
*** ssam2 has joined #buildstream09:07
*** tlater has joined #buildstream09:08
*** adds68__ has quit IRC09:36
*** adds68__ has joined #buildstream09:36
tlatertristan: For the tracking changes, do you think it would be sensible to have a switch such as `--track-only-inconsistent` or somesuch, to only track elements that don't have a ref? It would work like `--track-save`.09:49
tlaterThis is brought up by juergbi in one of the issues, your response was to have tracking domains but I don't think they quite cover the same use case09:50
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 3 commits (last: Remove dpkg and x86image elements) https://gitlab.com/BuildStream/buildstream/commit/47bf951c2ade22d1bc2120c49a732345b05f26d009:51
gitlab-br-botbuildstream: merge request (jonathan/external-plugins->master: Remove and refer to elements that have been moved to bst-external) #122 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/12209:51
gitlab-br-botbuildstream: Jonathan Maw deleted branch jonathan/external-plugins09:51
tristantlater, can we close https://gitlab.com/BuildStream/buildstream/issues/107 please, before talking about other stuff ?09:55
*** adds68__ has quit IRC09:56
tristanthis is a game of backgammon09:56
tristanlast things first :)09:56
tlaterAlright, sure :)09:56
tlatertristan: Alright, #107 looks to be completely independent from #128 - going back to the commit before what caused #107 I still have the issues from #128.10:10
tlaterHowever, when #128 happens, SIGINT is ignored now, since the ticker is required for python to respond to that - apparently that's a python bug.10:11
tlaterSo with that branch it's currently impossible to interrupt the tracking stage - though it seems that that has been the case for a few months now.10:12
*** adds68 has joined #buildstream10:14
*** valentind has quit IRC10:15
jonathanmawtristan: I'm looking at #97 (pep3102), iiuc, the methods that need to be altered are all the public ones in buildstream/*.py that don't start with underscores?10:16
jonathanmawplus finding every use of that method and making sure it's calling the positional args correctly.10:21
jonathanmawIs any arg that sets a default meant to be a keyword option?10:22
jonathanmawe.g. Context has load(self, config=None). is config a keyword argument, or a positional arg with a default?10:23
tristanjonathanmaw, there will be some decision making in the process10:24
tristanjonathanmaw, so how about the bugs I filed in bst-external before moving on ?10:25
tristanjonathanmaw, looks like we have to be careful, it might just be that your CI was only passing because the elements are not yet removed from buildstream ?10:25
jonathanmawtristan: ah, ok. I hadn't noticed.10:25
tristanalso https://gitlab.com/BuildStream/buildstream/issues/13210:26
jonathanmawtristan: I ran the tests locally, too. I'll run them locally again just to be sure that I was using a version of buildstream without them internally.10:26
tristanjonathanmaw, ^^^ that one I filed in buildstream, I cant say for sure how it's possible that bst-external integration tests work, and maybe it needs a fix in buildstream10:26
tristanIt should not be possible without any mention in project.conf I think10:26
*** adds68 has quit IRC10:27
tristanI mean, it should *explicitly* fail, because we're not telling buildstream how to look for the plugins, they dont magically appear out of thin air, if they do; it seems we're picking up random stuff; which is bad10:27
*** adds68 has joined #buildstream10:29
tristanSigh, so the debootstrap base image for building GNOME is *HUGE* now10:35
tristanI think I better change https://gitlab.com/BuildStream/gnome-modulesets-base/blob/master/elements/base/base-configure.bst10:36
tristanTo add `rm -rf a /whole/lot of/crap`10:36
tristanthen make sure it's cached on the artifact server, and hopefully reduce the initial download size by > 50%10:37
* tristan looks briefly at what is #107 and #12810:39
tristantlater, OK I dont understand; one issue at a time: 107 is the freaking important one causing me nightmares10:40
tristan128 is just a silly ticker10:41
tlatertristan: Mostly, but #128 does get worse if the branch for #107 is merged10:41
tristantlater, can we fix 107 without making buildstream ignore SIGINT ?10:41
tristanEh ?10:41
tlatertristan: The SIGINT ignoring specifically happens when the ticker doesn't respond anymore10:42
tristanOk that doesnt mean much to me... you mean 'tickers tick even less' ?10:42
tlatertristan: No, only in the case that #128 happens does python start ignoring SIGINT.10:42
tlaterBecause the ticker wakes up the main thread for a little bit, which is enough time for it to handle the SIGINT10:42
tristanOk well, I expect this means we have to order the unregistering and re-registering of event loop handlers for SIGINT in the proper way while suspended, right ?10:43
tristanRegarding 12810:43
tristanAnyway; is #107 a sane proper fix ? does a fix exist ?10:44
tlaterYes, I'll put up the MR for it10:44
gitlab-br-botbuildstream: merge request (107-failing-child-processes-when-tracking-missing-git-branches->master: Issue #107: Stop attaching the child watcher multiple times) #124 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12410:45
tristanjuergbi, any comments on that change (https://gitlab.com/BuildStream/buildstream/merge_requests/124) before merging ?10:46
tristanjuergbi, we set (and leak ?) an event loop with every invocation of running the scheduler ?10:47
juergbitristan: what do you mean by leaking?10:48
tristanmaybe we're not10:48
tristanit seems weird to "set the default event loop"10:48
tristanbut eh10:48
juergbithe first time there shouldn't be a default loop yet, so we just explicitly create one instead of implicitly10:48
tristanThis might not be only for tests, too10:49
juergbiin the multi-test scenario, we replace the loop but the old one should get destroyed using regular ref counting10:49
tristanright, Ok I hope so10:49
tlatertristan: There's no reference to a 'delete' function for these, so presumably asyncio is smart enough to clean them10:49
juergbias we're not interested in keeping multiple event loops alive at the same time, i consider this the better approach instead of explicitly attaching to a non-default loop everywhere10:50
gitlab-br-botpush on buildstream@107-failing-child-processes-when-tracking-missing-git-branches (by Tristan Van Berkom): 5 commits (last: _pipeline.py: Improve error message when --except fails.) https://gitlab.com/BuildStream/buildstream/commit/640e7e57842ca4c2ec3a8641258f54ff7c42d3c010:50
juergbibtw: new_event_loop docu even mentions "You must call set_event_loop() to make this the current event loop"10:50
juergbii.e., this isn't considered odd use of new_event_loop10:50
tristanso probably it's keeping it alive, and next time we re-enter scheduler.run() is when garbage collection happens on the old loop10:51
tristanor, a set_event_loop(None) would do it in advance, but I dont care10:51
juergbiyes, not sure whether that's supported. if it is, we could definitely consider it10:51
juergbii don't expect any practical difference, though10:52
tlaterset_event_loop(None) just restores the original one, actually.10:52
tristanRather, what is more delicate, and probably needs consideration separately in #124, is that tearing down scheduler.run() needs to be perfect10:52
tristanIf we have event sources and such registered, that will cause weird side effects if it keeps the old loop alive10:52
juergbiif someone were to run the loop again, possibly10:53
gitlab-br-botbuildstream: merge request (107-failing-child-processes-when-tracking-missing-git-branches->master: Issue #107: Stop attaching the child watcher multiple times) #124 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12410:53
gitlab-br-botbuildstream: Tristan Van Berkom created branch 107-failing-child-processes-when-tracking-missing-git-branches10:53
juergbii agree, we should aim to properly tear everything down10:53
juergbihowever, i also don't expect any practical issues without it with the current code structure10:54
tristanI can foresee, possibly with your recursive pipeline stuff... practical use cases for invoking a scheduler twice in the same `bst command ...`10:54
tristanAlso, fwiw; there are code paths which are known to run in child tasks, and code paths which run in the main task10:55
gitlab-br-botbuildstream: merge request (107-failing-child-processes-when-tracking-missing-git-branches->master: Issue #107: Stop attaching the child watcher multiple times) #124 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12410:55
tristanWhile it is *possible* that we call directly some code that normally runs in a child task... in the main process, I want to avoid that completely10:55
tristanI.e. I would hope to consider calling Source.something_that_runs_scheduled() directly in the main thread as a bug10:56
tristanBecause; it doubles our calling context and bug surface (which is another reason to make sure we run the scheduler for anything, which might mean running it twice or more)10:57
juergbiwe do call loop.close(), not sure whether that cleans up everything10:57
*** adds68 has quit IRC10:57
juergbiyes, we have to be careful about the main process (e.g., must never be multi-threaded)10:58
tristanalmost 1hrs in... debootstrap base still only at 64%... bad10:59
gitlab-br-botbuildstream: issue #133 ("Bash completions dont complete `--except` arguments") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/13311:05
*** adds68 has joined #buildstream11:20
*** adds68 has joined #buildstream11:21
tristanltu, do we still have this infamous intel machine to run builds on ?11:22
tlatertristan: It's next to me11:31
gitlab-br-botpush on buildstream@master (by Tristan Van Berkom): 1 commit (last: Issue #107: Stop attaching the child watcher multiple times) https://gitlab.com/BuildStream/buildstream/commit/6976ba5d8c222aee61bfd5666b5df1b07f76b9bd11:31
gitlab-br-botbuildstream: issue #107 ("Failing child processes when tracking missing git branches") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/10711:31
gitlab-br-botbuildstream: merge request (107-failing-child-processes-when-tracking-missing-git-branches->master: Issue #107: Stop attaching the child watcher multiple times) #124 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/12411:32
gitlab-br-botbuildstream: Tristan Van Berkom deleted branch 107-failing-child-processes-when-tracking-missing-git-branches11:32
*** tlater` has joined #buildstream11:33
*** tlater has quit IRC11:34
*** tlater` is now known as tlater11:40
tristangrrr, looks like we're running that code which downloads the artifact summary unconditionally11:41
tristanso obnoxious pause when merely running `bst shell`11:41
tristanor things which I think, dont really need to know that11:41
tristanhmmm what is /usr/share/texlive ?11:54
tristan213MB worth nuking from existence ?11:54
tlatertristan: things required for latex processing :)11:57
* tlater wonders why writing to sys.stdout gives a BrokenPipeError11:59
tristancrap12:00
gitlab-br-botbuildstream: Jonathan Maw created branch 132-loading-external-plugins-works-without-explicit-requirement-in-project-conf12:00
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: WIP: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12512:00
tristanthats too much12:00
tristan213MB for generating docs ?!12:00
* tristan is grasping for a quick fix to reduce the size of this 3GB download12:00
gitlab-br-botbuildstream: merge request (132-loading-external-plugins-works-without-explicit-requirement-in-project-conf->master: WIP: Resolve "Loading external plugins works without explicit requirement in project.conf") #125 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12512:01
tlatertristan: tbf, most of those are latex addons that are only required for very specific scientific domains. Little of it is actually useful for everybody installing the package.12:02
ssam2tristan, removing locales is a big win, if you don't care about i18n working12:02
*** adds68 has quit IRC12:03
tristanssam2, 158M12:03
ssam2ah, not as big as i thought12:04
tristanssam2, /usr/share/doc is 294M12:04
tristanthe above is /usr/share/locale12:04
tristan49MB of /usr/share/icons12:04
tristanand 24MB of /usr/share/man12:04
tristanonly 2.3MB of /usr/share/help12:04
tristanAll of that is safe to remove12:04
tristanwhat is poppler ?12:05
ssam2pdf viewer12:05
tristanhrm12:05
ssam2library used by evince i think12:05
tristanit's reached by some GNOME sysdep12:05
bochechassam2: you think right12:06
tristanbut I wonder if the sysdep requires the 12MB of stuff in /usr/share/poppler, or just the rest of it12:06
bochechatristan: might be needed by something like gtk-doc to build pdf docs ?12:06
tristanmaybe12:06
tristanI would really like to get rid of some of this 219MB of /usr/share/texlive12:07
tristanif only I knew which part of it we dont need :-S12:07
bochechaall of it /o\12:08
bochechado people really build the docs?12:08
tristanbochecha, well yeah12:09
tristanthey do12:09
tristanWe dont need any docs in the buildstream build env for GNOME, but we need GNOME modules to be able to at least assert that they successfully build their docs12:09
bochechaok, first thing I do when I build flatpaks/jhbuild is to disable the docs for everything :)12:09
tristanyeah, and then you probably take care of it at distcheck time - when things break12:10
tristanone thing we certainly do, is if you're going to build GNOME, even without --enable-gtk-doc on your favorite modules, is build gtk-doc itself :)12:11
tristanonce you do that; it seems like a no brainer that you can build docs12:11
bochechawell then you'll have to keep those 219MB of texlive :)12:12
tristanuhg12:12
bochechatex stuff is generally a pain, it's super hard to figure out what you need12:12
bochechaand when you're missing a module, the error messages are awful, not telling you "you're missing $module" but failing much later on what it thinks is a syntax error12:13
tristanWell - the only redeeming thing to all of this is, as with the original ostree source of the debian image, the artifact downloads is also ostree12:13
bochechaunfortunately, installing it all is the only way to keep your sanity12:13
tristanSo, yeah you need the disk space, and you need to spend that time downloading something once12:13
tristanBut, when we add dependencies and something changes; the download is only a delta12:13
bochechaI mean, look at the texlive spec file for the Fedora packages: https://src.fedoraproject.org/rpms/texlive/blob/master/f/texlive.spec12:14
bochecha(yes, it takes time to display that page, the spec file is... huge)12:14
tristanhaha12:15
tristanalways nice to see the warts12:15
tristanbochecha, at least it aint tizen ;-)12:15
bochechait's actually generated from a template, by an ad-hoc tool written in C (and maintained in the same repo)12:16
bochechathe Fedora developer who made that thing quit his job at Red Hat shortly after, seemingly disappearing from the community... I hope he's alright :-/12:16
bochechaare those 219MB really worth it? :)12:17
tristanI'm also not sure if we really need the 27MB in /usr/share/gir-1.012:18
tristanbut I wont dare delete that12:18
tristan(I mean, we do build gobject-introspection and depend on the girs we generate, so it would be a mistake I think to pickup stuff from there, but... meh)12:19
*** xjuan has joined #buildstream12:22
bochechaone thing which can shave a few tens of MB sometimes is all the static libs: most of them can be safely removed if you always build shared objects (a few actually are needed no matter what)12:25
*** cs_shadow_ has quit IRC12:29
tristanbochecha, aha ! good point12:32
*** adds68 has joined #buildstream12:32
tristanI wonder what those would be though... lemme at least check how much all the .a files cost12:32
tristanand the .la files if they exist, they could all go12:32
bochechaeven better is to not build those unneeded static libs at all, when the build system allows it (I'm looking at you, Boost)12:32
bochechaoh yeah, .la files don't take much space, but they can be such a pain12:33
tristanyeah, but we wont have the pain of .la files with buildstream12:35
tristanbut if debian installed some, we can safely remove12:35
*** xjuan has quit IRC12:35
tristanhmmm: du -hs `cat list_of_files.txt` doesnt give me a summary... is there a way ?12:40
tristan--total12:42
tristan582MB of static libs !12:42
tristanhttps://bpaste.net/show/2582abbf0258 hard to say which ones I can remove12:43
bochechaonly a 6th of the total, that's nothing :)12:43
bochechathe only one I found was really necessary was the libgcc* ones12:43
tristanI already removed ~500MB12:44
*** xjuan has joined #buildstream12:44
tristanSo maybe together, brings 3GB down to around 2GB12:44
tristanbochecha, I'm skeptical about removing all the LLVM stuff in that list12:44
tristanI suspect it's similar to the gcc thingies, and the compiler will use them12:44
bochechaoh, I've never done anything with llvm, so I have no idea whether they are needed or not12:45
bochechayeah, they might very well be similar to the gcc ones12:45
tristanalso anything libc, means that maybe some intentionally statically linked stuff might not work12:45
tristanmaybe12:45
tristanlike libm.a ?12:45
tristanehhhh12:45
*** adds68 has quit IRC12:59
*** adds68 has joined #buildstream13:01
tristantlater, so weird thing, I can confirm that with the timer ticker bug, it's not happening after continue of a failed build13:11
tristanVery strange that this would be particular to `bst track`13:11
tristanstrange and... telling13:12
tlatertristan: I've considered it being part of the trackingqueue13:12
tristanOr ostree13:12
tlaterHowever uncommenting everything except the basic functionality doesn't change the behavior.13:12
tlaterostree?13:12
tristanostree does some freaky things to your process13:12
tlaterThat would make a surprising amount of sense13:12
tristanWhich is why we *never* use it in the main thread, if we do; that's gotta go13:13
tristans/thread/process13:13
* tlater will take a peek, this might be only on ostree elements failing to track13:13
tristanexcept the tracking is done in a child process, so it logically should not effect the parent13:13
tristanbut - something smells like dirtying the process environment at track time13:14
tristansomething running in process and messing with signal state ?13:14
tlatertristan: So, this only happens when there is an ostree element in the pipeline that attempts to retry its tracking13:20
tristantlater, I did not confirm that, did you ?13:20
tlatertristan: I just did, you can try if you want to13:21
tristanI'm just clarifying, I believe you :)13:21
jonathanmawhrm, is anyone else having trouble pushing to repos in the buildstream project?13:32
* tristan hasnt had trouble today13:32
jonathanmawwhen I'm trying to push to bst-external, I get "GitLab: API is not accessible. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists."13:32
tristanbut... this is gitlab.com we're talking about13:32
jonathanmawwhen trying to push the branch "1-coverage-report-not-combined"13:33
tristanI assume, you have been able to push before13:33
tristanand it suddenly doesnt work13:33
tristanWhich would mean... try again in a couple hours, it'll probably work, cause it's gitlab.com ?13:34
jonathanmawtristan: I've been able to push to master13:35
jonathanmawI'll try pushing to a new branch, and check whether that branch has become protected somehow13:36
tristanAPI is not accessible to me means, similar to the error we see on the web interface at times13:37
tristanwhich means to me; just dont expect reliability from an unreliable service13:37
tristantlater, is this something that is fixed by a branch you created: https://gitlab.com/BuildStream/buildstream/issues/48 ?13:42
tlatertristan: No, it's not fixed yet13:43
tristanah13:43
* tlater got different issues whenever I sat down to do that one, but occasionally touched it.13:44
tlatertristan: Interestingly, `bst track` doesn't have the problems `bst build --track` has. It does, however, take significantly longer to terminate after an ostree element has failed.13:45
tlaterI'm kind of stuck trying to find something evil ostree does though :/13:45
tristannah, you wont find the evil thing that ostree does13:47
tristanleave that to colin13:47
tristanif ever13:47
*** jude has quit IRC14:00
tristanartifact server back online \o/ !14:06
tristanwell, push-wise, pulling was working this week I think14:07
tristanexcepting that expired cert, which is also fixed14:07
tristanwait a sec... is there a bug here ?14:07
tristanSo... we had an expired cert... and when trying `bst track base/base.bst`... it was giving me an error about the cert14:08
tristanBut... when we download the summary... I didnt get an error of even any warning !14:08
tristanjaysus, I keep finding bugs14:09
* tlater is developing a hatred for multiprocessing14:11
*** cs_shadow_ has joined #buildstream14:18
tristantlater, what we're doing is not supposed to be easy - add to that the python distortion in between, and it's not gonna be fun14:23
*** adds68_ has joined #buildstream14:32
gitlab-br-botbuildstream: merge request (incremental-build->master: WIP: Incremental build) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12614:32
*** adds68 has quit IRC14:33
*** tristan has quit IRC14:35
*** jjardon has joined #buildstream14:36
*** jjardon has left #buildstream14:36
gitlab-br-botbuildstream: merge request (incremental-build->master: WIP: Incremental build) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12614:37
*** tristan has joined #buildstream14:39
tristanwhoa - cs_shadow_ you are quick, I filed a bug against gitlab because I thought the toggle buttons *must* have been an accident on their part ;-)14:43
gitlab-br-botbuildstream: merge request (incremental-build->master: WIP: Incremental build) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12614:44
*** cs_shadow_ is now known as cs_shadow14:52
* cs_shadow updates his username first :) Not sure where the trailing underscore came from14:53
* tlater can reproduce the issue by raising an uncaught exception in the track function of the ostree plugin14:54
tristantlater, does that mean you've reproduced it now without ever invoking ostree in the child process ?14:55
tlatertristan: Yup14:55
tristantlater, since this is a really tricky issue; it would be good to note these things in the issue as you find them out, this way we dont forget them once you figure out something, three things later :)14:56
gitlab-br-botbuildstream: merge request (incremental-build->master: WIP: Incremental build) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12614:56
tristannote I've updated the issue with our latest findings an hour or so ago14:56
tlaterWill do, that's a good note, I just keep them in my own logs. Probably more useful to have them on gitlab though.14:56
*** adds68_ has quit IRC15:00
tristanGah !15:02
tristanMoved from home to here, and now: "Checking connectivity to remote artifact cache"15:02
tristanhangs15:02
tristanwhat the hell15:02
tristanssam2, could that somehow be due to my changing ip address ?15:03
ssam2shouldn't be15:03
ssam2i think the timeout is 3 seconds15:03
tristanssam2, sorry for blind ping but I remember you were looking into that auth a long time ago15:03
ssam2for push15:03
tristanhmmm15:03
ssam2if it hangs longer than that, something is definitely broken15:03
tristanit's hanging15:04
tristannot on push, but on the checking connectivity thingy15:04
* tristan was happily pushing a while ago15:04
ssam2any child processes ?15:05
ssam2the actual check calls `ssh`, so if that hangs for some reason...15:05
tristanyep15:05
tristanssh -l artifacts -p 10007 gnome7.codethink.co.uk -oConnectTimeout=3 bst-artifact-receive artifacts15:05
ssam2right15:05
tristantimeout 3, hangs forever15:05
tristanon the server...15:05
ssam2if I run that command myself it hangs15:06
ssam2which is weird, it should just print some garbage15:06
tristanah did you ?15:06
tristanssam2, are you right now ?15:06
ssam2i did just try it15:06
tristanok ... but you are not hanging *right now*15:07
tristanit looks like when you did it, it showed the bst-artifact-receive process15:07
ssam2ah ok15:07
tristanI am hanging and I only see:15:07
tristan1438 ?        Ss     0:00  \_ sshd: artifacts [priv]15:07
tristan 1461 ?        S      0:00  |   \_ sshd: artifacts@notty15:07
ssam2right, ostree.baserock.org hangs too, but i'm pushing stuff to that right now15:08
ssam2i guess the client sends the hello message, so that's expected15:08
tristanok so now... I interrupted, and that thing is still there15:08
ssam2very weird15:08
tristanI have an idea15:09
tristanright, I'm stupid15:10
tristanI have this really bad idea in my ~/.ssh/config:15:10
tristanHost gnome7.codethink.co.uk15:10
tristanControlMaster auto15:10
tristanControlPath /run/user/1000/ssh-%r@%h:%p15:10
tristanControlPersist 1h15:10
tristanSo, if I ever change wifi, sucks to be me for an hour15:11
tristanOK - now we start a build of GNOME, from scratch, logging everything, pushing results to artifact share :)15:13
tristanHah, oh crap :)15:26
tristanrm -rf /usr/share/doc was a bad idea15:26
tristanbecause !15:29
tristanc++ bindings mm-common.bst needs to do: cp /usr/share/doc/*/libstdc++/user/libstdc++.tag doctags/15:29
tristanto avoid trying a wget15:29
tlaterGah, the ostree thing looks to have been a red herring. I can reproduce everything with no changes or failures anywhere simply trying to `bst build --track core-deps/WebKit.bst`15:30
tristanwhat is a good glob pattern for rm here, rm -rf /usr/share/doc/{everything that is not */libstdc++/user/libstdc++.tag}15:30
tlaterNot sure why that doesn't happen when building apps.bst, but possibly because it's harder to notice when you have a lot of elements tracking at the same time.15:30
tristantlater, raising an exception without doing anything, on a very simple one-element pipeline, seems like your closest bet to reducing the problem to something manageable15:31
tristanso far15:31
tristanmaybe you need 2 elements in order to reproduce, though15:32
tlatertristan: It doesn't happen then, or at least is so brief that it's impossible to notice15:32
tristanwhere the second one does something for a long time15:32
tlaterHmm... I guess tracking a large ostree thing would do it15:32
* tlater tries15:32
tlatertristan: `find /usr/share/doc -except 'libstdc++/usr/libstc++.tag' -exec rm -r {} \;`?15:33
tristantlater, lets try that...15:33
tristantlater, rm -r ?15:34
tlater-rf if needed, I'm overly careful15:34
tristannot sure, that might remove it anyway ?15:34
tristanit will recursively remove a parent dir that matches right ?15:34
tlaterYes, should do15:34
tristanso then it's not an option yet...15:35
tristanlets see, decent start...15:35
* tlater might have misunderstood what you were trying to do15:35
tristanfind: unknown predicate `-except'15:35
tlaterAww, I could have sworn that was it15:35
tristantlater, I want to remove everything in /usr/share/doc, except /usr/share/doc/*/libstdc++/user/libstdc++.tag15:36
tlaterOh, alright15:36
* tlater thinks the correct flag is '-prune', but doesn't recall how to use it15:36
tristanfind /usr/share/doc ! -name "/usr/share/doc/*/libstdc++/user/libstdc++.tag"15:37
tristanwill get a list excluding that file15:37
tristansorry, -wholename15:38
tlaterAh, awesome15:38
tristangrrrr15:38
tristantlater, yeah that doesnt solve it though15:38
tristantlater, one result will be for example: /usr/share/doc/gcc-6-base15:39
tristanthat one is removed recursively, so who cares that the other was skipped15:39
tlaterWhich still contains the parent...15:39
tristanI could only remove files, leaving an empty skeleton of 4kb directories lying around15:40
tlatertristan: You could then remove empty directories15:40
tlaterfind /usr/share/doc -empty15:40
tristanaha !15:40
tristanthat finds empty files15:41
tristandoes it find empty directories ?15:41
tlaterfind /usr/share/doc -empty -type d15:41
tlaterPerhaps the other way around15:41
tlaterfind is weird15:41
tristantlater, I dont need a quoted '{}' ?15:43
* tristan never uses these features15:43
tristaneh, still doesnt work well15:49
jonathanmawtristan: I've responded to issue #132 (https://gitlab.com/BuildStream/buildstream/issues/132)15:53
jonathanmawhaving looked through the code and made a guess at what I think is happening15:53
jonathanmawtl;dr: loading external plugins is fine, but where on earth is it getting buildstream from?15:54
tristanjonathanmaw, the image, maybe ?15:55
* tlater takes a look as well15:55
tristanjonathanmaw, in which case, it'll have an older version which includes the plugins you're testing ?15:55
jonathanmawtristan: yeah, that's a risk15:56
jonathanmawso I think I should make the CI uninstall whatever buildstream's currently installed, then install one from git15:56
tristanjonathanmaw, or update the image first15:56
tristanbetter that way15:56
jonathanmawyeah, that's a smarter thing.15:57
* jonathanmaw reminds himself how to do that15:57
tristanjonathanmaw, ask ssam2 if you dont figure it out, but first checkout the BuildStream group - it's automated now15:58
tristanso I think there is no mucking about trying to understand the mystery that is docker15:58
ssam2yes, MR against buildstream-docker-images repo is all that's needed :-)15:58
*** adds68_ has joined #buildstream15:58
* tlater isn't sure what the issue is about, but does remember that pip-based plugins don't have to be required by the project.conf.16:02
tristantlater, then we should fix that I think, otherwise it's totally random16:05
tristanthat said, maybe jonathanmaw doesnt have to block on it, but I would still say its a serious bug if plugins can "come from nowhere randomly"16:07
tristanalso worth checking if we're missing API for it, but I think we already have the mechanics in place for explicitly requiring the right version of it, so it's probably sufficient api16:07
tlatertristan: They do require being installed through setuptools first - you need to run ./setup.py install before this works16:07
tristanyes16:08
tlaterJust pointing that out because it's not exactly 'nowhere' :)16:08
tristantlater, if they happen to be installed, and you pick them up without requiring them, then they come from an unknown location16:09
tristanwe have explicit plugin paths in project.conf for loading local plugins16:09
tristanthey can not come from nowhere, or else I'm not sure you can be sure you are getting what you want16:09
tlatertristan: I agree, although it will be very hard to specify a path from which to load these - setuptools will happily move files around. Only allowing to include plugins that are defined in project.conf is definitely possible though.16:11
tristanyes16:11
tristandesirable to a point where, it's alarming that it works without an explicit mention16:12
tristancurrently pip is one source of plugin discovery, there may be others if we can successfully wean ourselves off of pip16:12
tristanseems to me the correct way to do plugins, is to have buildstream install a pkg-config file and have other modules query that config file for the location of where plugins are to be installed on the system16:13
tristanpip is a dirty workaround, cause python16:13
* tlater can see it being messy to have the same plugin name in multiple discovery systems without explicit requirements.16:14
tlaterPerhaps this needs something like16:14
tlaterplugins:16:14
tlater  paths:16:14
tlater    - /somewhere16:14
tlater  pip:16:14
tlater    - something16:14
tristannod16:15
tristanOK we should mark this blocker16:15
tristanotherwise we're stuck with vague plugin loading16:16
tristanor, migration path could be to assume pip in the case it's not mentioned16:16
tristanand error out if you require a version of buildstream that has a proper fix (without marking blocker of 1.0)16:16
tlatertristan: A bit unrelated now, but if you're deleting empty directories with find you can use the -delete argument. Deleting all empty directories in a path is `find <path> -type d -empty -delete`16:16
tristantlater, I skipped that for now, but is it true ?16:17
tlatertristan: Yes, I actually tried this one and didn't do it from memory :)16:17
tristantlater, the find method left me with an unsorted thing which errors a bunch of times16:17
tlater:/16:18
tristanif you do it many times, it will eventually delete all the empty dirs16:18
tristanotherwise it needs depth sort16:18
* tristan goes to get food16:19
*** semanticdesign has quit IRC16:27
*** semanticdesign_ has quit IRC16:27
*** adds68_ has quit IRC16:28
*** tlater has quit IRC16:46
*** jonathanmaw has quit IRC17:00
*** jonathanmaw has joined #buildstream17:00
*** jonathanmaw has quit IRC17:01
*** ssam2 has quit IRC17:08
*** valentind has joined #buildstream17:27
*** adds68_ has joined #buildstream18:15
*** givascu has joined #buildstream18:21
valentindAre artifacts indexed by target architecture? And can you refer to build from other architectures within the same project?18:28
tristanvalentind, so the built-in --arch/--target-arch options and `arches` conditional statements are deprecated and to be removed18:30
valentindOK18:30
tristanvalentind, in favor of project options, which are project specific18:30
tristanbut - that doesnt exactly answer your question18:30
tristanthe guarantee that we do try to make, is that a cache key for an artifact will differ based on anything which might effect the build output18:31
tristanwhich of course, includes the architecture18:31
valentindI suppose anyway I have to dump the cross compiled image and then feed it to the next builder.18:31
tristanhttp://buildstream.gitlab.io/buildstream/projectconf.html#architecture18:31
tristanto declare arch type options ^^^18:32
tristanvalentind, well - juergbi is working on the recursive pipelines feature we've been planning since forever18:32
tristanI expect that to land post 1.0 (we're "major feature" frozen for now)18:32
tristanand certainly before the end of year we'll be able to have projects which depend on other projects18:33
*** adds68_ has quit IRC18:34
valentindI suppose I will split into two projects. One for the cross compiling of the minimal image, and one for the rest. And do a "bst checkout" in between.18:34
tristanhere is also another example of casing the arch project options: https://gitlab.com/BuildStream/gnome-modulesets-base/blob/master/elements/base/base-system.bst18:34
tristanvalentind, and since we didnt have that part yet, Sam worked on it but it wasnt in a referrable form, he's currently working on that again so we have a good reference18:35
tristanvalentind, so fwiw, there *is* a project which creates a bootable image with a very, minimal system, and the runtime from that can be used to re-bootstrap itself18:35
tristanbut I just can't link to it now, cause it's only in the form of a conversion of the baserock base runtime stuff18:36
tristanI think by next week we'll have a url to point to18:36
valentindBootable?18:36
tristanYep, using the x86Image element to create an image (intel only for now)18:37
tristanall without need of root privileges18:37
tristanthat's been removed from buildstream proper... because I consider it a bit fringe and not api stable18:37
tristanhttp://buildstream.gitlab.io/bst-external/elements.x86image.html#module-elements.x86image18:38
valentindI am trying to make an image like fd.o. This is just experimental. The point is to test multiarch (the mulilib the Debian way).18:38
tristanvalentind, so it requires using the (new) bst-external, separate repo18:38
valentindI have the base sdk, now I am in the x.org libraries. Quite a lot of them.18:38
tristanYeah, you wont find that in any of our work :)18:38
valentindbst-external?18:39
tristannot that multilib is not interesting, but there are a whole lot of other mountains to move before that one :)18:39
valentindI want to make Steam work correctly on flatpak. That is all I want.18:39
tristanyup https://gitlab.com/BuildStream/bst-external/18:39
valentindAnd multiarch makes is easier than multilib.18:39
valentindtristan, there is a plugin source I would like to have, it is to have artifact as source.18:41
valentindsource plugin.18:41
tristanThat sounds a lot like working around the absence of the feature juergbi is working on18:41
tristanI.e. the same can be accomplished with a compose element on a dependent project18:42
valentindThe point is to be able to use the import plugin on artifact. So you can compose artifact, extracting subpath or putting them in subpaths without needing a runtime.18:42
tristanor, rather a project you depend on18:42
valentindBecause I cross compile into a sysroot directory. At the end I want to extract what is inside the sysroot.18:43
tristanI'm not sure artifacts themselves are quite consumable that way18:43
tristanrather, if you really want that; better to automate a task which does a checkout and commit to an ostree repo (i.e. a "real release" / "deployment")18:43
valentindThat also would be nice.18:44
valentindCommitting to ostree would great.18:44
tristanI'm not sure I can reason about consuming artifacts as sources well at 3:45 am, though :)18:44
tristanYeah, I mean that's what we're doing for the base bootstrapping18:44
tristanLike, we initially bootstrap from a debian or something, then we build a runtime, that we commit to a public ostree repo18:45
tristanwhich in turn, we can use instead of the original debian runtime18:45
tristanand now we are free to upgrade18:45
tristantotally circular :)18:45
valentindThe artifact as source is for something else.18:46
tristanThe use case of deploying something which you can later import is the same, though18:46
valentindSo what is the best for now? Doing a checkout and use local source?18:48
tristanWell, I'm not sure _exactly_ the context here18:48
tristanonly vaguely18:49
tristanyou say you want to do it "without a runtime", but presumably you've built something18:49
tristanwhich means, you had a runtime somewhere at your disposal18:49
tristanvalentind, in which case, a simple compose element might do the trick18:49
valentindCompose cannot strip path components.18:50
tristanWhat does that mean ?18:50
valentindOK. So I build everything in "/cross-installation". This is my sysroot.18:50
valentindAnd I install everything with DESTDIR=%{install-root}/cross-installation".18:51
valentindWhen I am done, I want what is inside "/cross-installation".18:52
valentindBut with "cross-installation" removed.18:52
tristanI see18:52
tristanRight now you can do it with a script element, which will let you do just about anything18:52
tristanMaybe we can add more features to compose elements too, not sure it's the right element for that, but maybe it makes sense18:53
tristanbetter to be careful about adding features to compose, as it's a slippery slope and stable API means we cant climb out of it18:53
tristanvalentind, anyway with a script element, you can stage your "everything I built" using the host compat runtime, and yank the content of cross-compilation/ and put that where you collect the artifact from18:55
valentindScript element?18:55
tristanyeah18:56
tristanso all the buildstream plugins are documented here: http://buildstream.gitlab.io/buildstream/pluginindex.html#plugins-elements18:56
gitlab-br-botbuildstream: merge request (incremental-build->master: WIP: Incremental build) #126 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/12618:57
tristanpeople can also write their own plugins and include that in their project18:57
tristanvalentind, the trick with the script element, is the "layout" part18:57
tristanvalentind, that lets you define which dependencies you want to stage where18:58
tristanof course, you need to have something host compatible in /18:58
tristan(presumably, the whichever runtime you used to do cross compilation will do fine, to give you the simple tools you would need to manipulate the thing you stage at, say %{build-root})18:59
valentindWhat I do is just use the "manual" plugin and put a cp in install-commands. But I need a runtime.19:03
gitlab-br-botpush on buildstream@master (by Pedro Alvarez Piedehierro): 3 commits (last: Issue #107: Stop attaching the child watcher multiple times) https://gitlab.com/BuildStream/buildstream/commit/6976ba5d8c222aee61bfd5666b5df1b07f76b9bd19:29
ironfoot^ me testing gitlab bot still ok after recent changes19:29
tristanironfoot, awesome, did you disable the notifications on non-master pushes ?19:48
tristanvalentind, a manual element is not a script element19:48
tristanscript, element: http://buildstream.gitlab.io/buildstream/elements/script.html#module-elements.script19:48
*** xjuan has quit IRC20:45
*** tristan has quit IRC22:44

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