IRC logs for #buildstream for Tuesday, 2018-01-30

*** Prince781 has joined #buildstream01:17
*** Prince781 has quit IRC01:24
*** Prince781 has joined #buildstream01:41
*** Prince781 has quit IRC01:53
*** Prince781 has joined #buildstream02:06
*** mcatanzaro has quit IRC02:29
*** Prince781 has quit IRC06:13
*** noisecell has joined #buildstream07:40
*** valentind has joined #buildstream08:08
valentindjjardon[m], It did not manage to fully build, but it did pull the bootstrap artifacts: https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/jobs/5008380108:13
valentindSorry wrong channel.08:15
*** valentind has quit IRC09:05
*** aday has joined #buildstream09:42
*** jonathanmaw has joined #buildstream09:50
*** tristan has quit IRC10:07
*** ssam2 has joined #buildstream10:08
ssam2is it intentional that variables can't refer to themselves ?11:01
ssam2it would be nice if for autotools elements you could do `conf-args: %{conf-args} --disable-foo`11:01
ssam2currently that triggers a traceback11:01
ssam2ah, the traceback seems a bit unrelated11:04
ssam2if I fix that issue I get a better error of: unresolved variable 'conf-args' in declaration of 'conf-args' at: glade.bst [line 21 column 13]11:05
ssam2i can imagine that the code would get way more complex if we did allow such recursive expansion11:05
ssam2the traceback seems to be caused by find_references() assuming that all variables are strings, which is not (currently) true11:05
juergbifor the case of conf-args we do have conf-extra, conf-global and conf-local11:07
juergbimaybe a more generic approach would be useful, not sure11:07
ssam2ah, conf-extra11:09
ssam2i feel like allowing recursive expansion would be nightmarish as we need to ensure the order of expansion stays stable and is well documented11:11
ssam2we should document conf-extra better at https://buildstream.gitlab.io/buildstream/elements/autotools.html#module-elements.autotools though11:11
*** tristan has joined #buildstream11:23
jjardon[m]AFAIK, conf-extra is only for compatibility, you should use conf-global and conf-local only11:47
ssam2why ?11:48
tristanyou invented it so you should know :)11:48
tristanUmmm, we originally had conf-extra, but then jjardon[m] saw the need of separation between local/global11:48
ssam2ah, so conf-global is for project.conf and conf-local is per-element ?11:48
ssam2that makes sense11:48
tristanI think leaving extra around might serve some purpose one day, also is harmless11:48
* ssam2 will do a patch explaining this for https://buildstream.gitlab.io/buildstream/elements/autotools.html#module-elements.autotools11:49
tristanssam2, exactly11:49
tristanssam2, if you do, please clarify cmake/meson also11:49
tristanthere are a couple with that pattern11:49
ssam2OK11:49
*** noisecell has quit IRC12:21
ssam2`bst shell` seems broken since jonathanmaw's changes12:26
ssam2if there are overlaps in the dependency tree somewhere above where you try to open the shell12:26
*** zalupik has joined #buildstream12:27
ssam2seems to be doing Element.search(Scope.BUILD) to find overlapping elements12:27
ssam2the result is None in my case and then we crash12:28
ssam2but when doing `bst shell` you only stage the runtime deps, so it seems like that search is going to fail in that case12:28
*** csoriano has quit IRC12:31
*** csoriano has joined #buildstream12:32
tristanssam2, I dont understand 100%, but sounds like an unhandled None condition that needs fixing regardless of it's side effects ?12:37
*** noisecell has joined #buildstream12:37
ssam2yeah, the question is whether we should handle None, or avoid this codepath somewhere higher up in situations where it will be broken12:40
ssam2this is the bad line: https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L48612:40
ssam2i'm interested in jonathanmaw's thoughts12:40
*** ernestask has joined #buildstream12:50
*** tristan has quit IRC12:56
jonathanmawssam2: hrm, I didn't know it could do that13:00
jonathanmawI suppose at the point of `bst shell` overlap checking is redundant13:01
jonathanmawI'm not sure about the codepaths, but would it make sense to have the stage_dependency_artifacts grow a "check_overlaps" arg?13:02
ssam2that might make sense, yeah13:08
*** mcatanzaro has joined #buildstream13:16
gitlab-br-botbuildstream: merge request (element-workspaces->master: Make workspaces element-wide instead of source-specific) #257 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/25713:19
*** ssam2 has quit IRC13:34
jmacI've since reset my buildstream to master and done a full rebuild of core/gedit.bst. The 'gedit' binary doesn't appear anywhere within ~/.cache/buildstream until I do a `bst checkout`; should the binary exist somewhere on disk before I do the checkout?14:05
*** ssam2 has joined #buildstream14:29
ssam2what's our review policy for the cargo-fetcher repo ?14:37
ssam2i sent https://gitlab.com/BuildStream/cargo-fetcher/merge_requests/1 which i'm happy to merge if the policy is "go ahead and do it" ...14:37
ssam2jmac, when buildstream does 'Caching artifact' and you are using the ostree cache backend, the artifact is stored in the ostree repo at ~/.cache/buildstream/artifacts/ostree14:51
ssam2the first time something *uses* the artifact, it gets extracted to ~/.cache/buildstream/artifacts/extract so that we can then hardlink it into the staging area or whatever we need to do14:51
jmacRight, so that gedit is stored in artifacts/ostree in some internal ostree object and needs to be extracted with ostree?14:52
ssam2yeah14:52
ssam2try `ostree refs --repo ~/.cache/buildstream/artifacts/ostree --list | grep gedit`14:52
ssam2each ref in the output will correspond to one build of gedit14:52
ssam2then you can do `ostree checkout  --repo ~/.cache/buildstream/artifacts/ostree gedit/1234abcdef ./my-gedit-checkout`14:53
jmacRight, yes, I was just searching for the right ostree syntax14:53
jmacIt's like learning git over again14:53
jmacI'm at the 'this is stupid and I hate it' phase14:53
ssam2i would criticise ostree for not being inconsistent with git's ui, but git's ui is completely interally inconsistent anyway :-)14:54
ssam2-not14:54
jmacWhy would there be three builds in there, though? It should be marked as locally cached.14:55
ssam2every build is saved14:56
ssam2we don't actually ever expire builds from the local cache currently14:57
jmacBut I deleted all of ~/.cache/buildstream and did a new bst track/build from scratch.14:57
jmacI can't think why it would ever do more than one build of gedit.14:58
ssam2ah, also artifacts are stored under both the 'strong' and 'weak' cache key15:00
ssam2so you get two refs per build15:00
ssam2https://buildstream.gitlab.io/buildstream/cachekeys.html#cachekeys explains the 'strong' vs 'weak' business a bit15:00
jmacThat accounts for two of them...15:01
jmacbst checkout complains about not being able to fchown files15:03
jmacUnless I'm root15:03
ssam2ostree checkout ? ah yes, try --user-mode15:04
jmacThat's got it15:05
gitlab-br-botbuildstream: issue #220 ("[RFE] Add option to bst --track to update to the latest tag in the branch specify by track: instead to latest HEAD") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/22015:10
adayssam2: given that the fix to my librsvg patch went into cargo-fetcher, how do i get it?15:30
adaythe guide on the gnome wiki just talks about updating gnome-build-meta15:30
ssam2aday, there's a cron job running on gnome7.codethink.co.uk which should have done everything we need15:35
ssam2let me check the logs15:35
adayssam2: i tried running the build again and hit the same issue, but maybe i didn't give it long enough15:35
adayi didn't realise that the fix wouldn't be instantaneous15:36
ssam2bah, something is broken15:36
ssam2it should update every 5 minutes15:36
ssam2but instead it esplodes every 5 minutes ... https://gnome7.codethink.co.uk/cargo-fetch-logs/cargo-fetch-2018-01-30-153501.txt15:36
adayas a newcomer to buildstream, it would be good to have a primer on how it works15:36
ssam2it's mentioned at https://wiki.gnome.org/Projects/BuildStream/Infrastructure15:36
ssam2that page could no doubt be improved; but the long term goal is for most of the stuff described there to not have to exist15:36
adayah, i didn't know about that page15:37
* ssam2 notices that the jhbuild autoconversion is already now obsolete :-)15:38
ssam2this "too many open files" issue seems to happen every time i run `cargo fetch`15:40
ssam2`sudo lsof|wc -l` reports 7385 other open files15:40
ssam2seems like a Cargo bug ... https://github.com/rust-lang/cargo/issues/4403 is related15:42
ssam2or a libgit2 bug15:42
ssam2the workaround from that issue (running `git gc` inside Cargo's checkout of its index repo) seems to have fixed things15:46
ssam2https://gnome7.codethink.co.uk/cargo-fetch-logs/cargo-fetch-2018-01-30-154501.txt15:46
ssam2aday, building librsvg *should* now be working if you get the latest versions of crates.bst and librsvg.bst15:48
ssam2which should happen by default15:48
adaythank, ssam2:15:50
adaylet's see15:50
*** tristan has joined #buildstream15:55
adayssam2: still failing15:57
ssam2argh15:57
ssam2with the same error ?15:57
adayoh, maybe not actually16:00
adayerror: no matching version `^0.23` found for package `cssparser` (required by `rsvg_internals`)16:00
adayi just saw cssparser16:00
ssam2i think that is the same16:00
* aday makes a sacrifice to the build gods16:02
adayis it working yet?16:02
ssam2let me try and reproduce here16:03
tlaterI'm currently working on my branch to move the test suite to debian-8 (so we can test with python3.4)16:05
tlaterAnd well, I'm reimplementing the hack to remove ostree/bwrap for unix16:06
tlaterIt feels a bit pointless doing this, should I create a separate image for that? Perhaps even a debian-8 one, so that we can just swap it out once we have an *actual* unix runner16:07
tlaterNevermind, that would also just be an intermediate solution16:07
tlaterOne that takes up an entire image :|16:08
ssam2yeah, it seems a bit of a pain having to maintain two images with such a minor difference between them16:08
tlaterIt's just a bit hard to remove ostree from that particular image16:08
tlaterSince we have to build it manually16:08
tlaterI suppose I can continue running the fedora image for it though.16:09
ssam2surely it's easier if you built it manually16:09
ssam2just use `rm` :-)16:10
tlaterWell, I'm not sure what debian usually has in /usr/local16:10
ssam2shouldn't be anything there16:10
ssam2by default16:10
tlaterI guess I can look at the image16:10
ssam2if you remove the whole thing, you perhaps break subsequent attempts to install stuff into /usr/local but that's totally unimportant for a throwaway container like this16:10
ssam2aday, i just got a successful librsvg build16:11
ssam2hmm, perhaps this is no-strict mode biting us ...16:12
ssam2could you share a full build log, and also the file elements/base/crates.bst ?16:13
tlaterAh, right16:15
* tlater had to put ostree in /usr because it didn't want to run from /usr/local16:15
ssam2is the source tree still around ? if so, you could `make uninstall`16:17
adayssam2: build log - https://paste.fedoraproject.org/paste/rSnMAUY58TNIho~DRXDDWg16:17
tlaterNo :|16:17
tlaterHrm16:17
adayssam2: crates.bst - https://paste.fedoraproject.org/paste/W-fao3~DMpqG5u6sKuTPhA16:18
ssam2hmm, crates.bst doesn't have a ref saved16:18
ssam2what command are you using to run the build ?16:18
adayssam2: i think it was `bst build --track-all --track-save core/gnome-shell.bst`16:21
adaytaken from the gnome tutorial16:21
ssam2odd, that should write an exact ref to crates.bst16:21
ssam2that's what --track-save means16:21
ssam2without the ref it's hard to know if you have the updated version16:21
ssam2either it's not being updated, or the it's not being rebuilt once updated16:22
ssam2-the16:22
adayi just reran the command and the ref appeared in the file16:23
ssam2ah, great16:23
ssam2i have ref 92f0fe7debf166908e0e32bfe97327457de5039a2c17ae278e9e467d626f3b2c16:23
adayme too!16:24
* aday high fives ssam216:24
tristanfwiw, this is what drives the accumulative vendored crates: https://gitlab.com/BuildStream/cargo-fetcher/blob/master/Cargo.toml16:28
tristanAnd it seems to have the required cssparser version16:28
tristanthat will run periodically on gnome7 populating a repo we use to provide rust deps to builds which need them16:28
tristanWhat I dont like about that build log, is line 1059: "location searched: registry https://github.com/rust-lang/crates.io-index"16:30
tristanthat would have caused a network error, perhaps librsvg build scripts changed in such a way as to override the /.cargo/config we install16:30
adayssam2: librsvg successfully built \o/16:37
adaythanks for your help16:37
* ssam2 high fives aday !16:37
* tristan remains confused as to why it failed before :-/16:38
ssam2initially, lack of https://gitlab.com/BuildStream/cargo-fetcher/merge_requests/1 in the cargo-vendor repo16:38
tristanAh16:38
tristannow it all makes sense :D16:38
tristanannoying this crates thing, better solution without moving parts is desirable16:39
*** valentind has joined #buildstream16:52
gitlab-br-botbuildstream: merge request (sam/conf-docs->master: Improve documentation for Autotools, CMake and Meson elements) #258 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/25816:54
tlaterssam2: I think I'll just use the fedora image for unix tests for now16:55
tlaterNow just to figure out how to `useradd` consistently across multiple platforms...17:00
tlaterOh, useradd is available on all distros? \o//17:02
*** Prince781 has joined #buildstream17:15
*** Prince781 has quit IRC17:16
jmacShould changing a project's project.yaml cause a complete rebuild?17:20
ssam2depends what you change17:21
jmacI added elements/autotools/config/strip-commands and it's started an almost full rebuild but some bits were still marked as cached17:25
ssam2that should trigger a rebuild of every autotools element17:26
ssam2and, in strict mode, anything which depends on any autotools element17:26
ssam2assuming your strip-commands were different from the default ones17:26
jmacAh, it's clever enough to only build autotools elements? Very nice.17:26
adayso, ah, is there a way to avoid building webkit?17:32
ssam2two ways ...17:34
*** Prince781 has joined #buildstream17:34
ssam2first is get someone who has push access to the cache push a build there for you17:34
ssam2CI will do that for us in future, but for now it's a manual thing17:34
ssam2hmm, since we're using a tarball for that, the cache should really have it there17:35
ssam2as long as you are in no-strict mode ... but that's what we recommend by default in the instructions17:35
*** Prince781 has quit IRC17:37
adayi'll just leave the thought with you. it'd be a nice thing to skip17:39
adaywith jhbuild it was often possible to cheat and use your distro version17:40
ssam2the intention is very much that someone already built it for you17:40
adaythat's music to my ears17:41
adayis there a way to pause a build other than hitting ctrl+c?17:54
adayi've looked in the docs but can't see anything17:55
ssam2ctrl+z should work17:55
ssam2it's usually then `fg %1` to resume again17:56
adaythanks17:56
*** mcatanzaro has quit IRC17:58
*** jonathanmaw has quit IRC18:02
*** ssam2 has quit IRC18:02
juergbido i see this right that we don't use the platform (OS/arch) for the (context) cache key?18:06
juergbii.e., we might have cache key conflicts for builds on different platforms?18:07
juergbitristan: ^^18:07
juergbialso, why do we use the type name of the artifact cache (OSTreeCache vs. Tar) for the cache key?18:08
*** mcatanzaro has joined #buildstream18:16
*** xjuan has joined #buildstream18:31
*** aday has quit IRC19:59
*** aday has joined #buildstream20:00
*** aday has quit IRC20:07
*** ernestask has quit IRC21:15
*** aday has joined #buildstream21:21
*** valentind has quit IRC21:40
*** aday has quit IRC22:21

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