IRC logs for #buildstream for Wednesday, 2018-03-21

*** persia has quit IRC06:34
*** persia has joined #buildstream06:36
*** mohan43u has joined #buildstream06:54
*** tristan has joined #buildstream06:56
*** mohan43u has quit IRC06:59
*** mohan43u has joined #buildstream07:00
*** mohan43u has quit IRC07:59
*** mohan43u has joined #buildstream08:37
tlaterHm, looks like gitlab MR pages aren't working atm?09:18
tristanI've been viewing and editing one in the last 30min...09:25
tlaterOdd, I'm getting 503's09:26
jennisworking for me09:27
tlaterCould someone try to open https://gitlab.com/BuildStream/buildstream/merge_requests/315 ?09:27
tlaterPerhaps it's just a few isolated ones09:27
jennisThat's not working ^^09:27
jennis50309:27
tlaterWell that sucks09:27
* tlater wonders what he can do to unbreak the MR09:28
tlaterLooks to be any MR that "can't be merged automatically"... ?09:29
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31509:34
tlaterYep09:34
tlaterIf anyone runs into an MR that 503s - the solution is to rebase against master09:34
tristantlater, that is probably a gitlab bug and not particularly related to rebase; you just hit a nerve, kicked it in the nuts so that it finally woke up09:35
tlatertristan: The 503 happens on any MR that "can't be merged automatically" - rebasing against master means it can now be merged automatically ;)09:36
* tlater checks if there is a gitlab issue already09:36
tristanWhat ?!09:39
tristanThat sounds new09:40
tlaterI can't find an issue on their tracker, writing one now09:41
tlaterAaand the issues are working again09:43
tlaterHm09:43
jjardon[m]Hi, has 1.1.2 been released already?09:43
tlaterGremlins everywhere09:44
tristanjjardon[m], I'm thinking of rolling one very soon because of project.refs having landed09:44
jjardon[m]I can not see a tag in the git repo but https://buildstream.gitlab.io/buildstream/ shows 1.1.2*09:44
tristanright now, trying to fix a critical bug first09:44
jjardon[m]ah, rigth09:45
tristanalmost there actually09:45
jjardon[m]cheers09:45
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31509:48
gitlab-br-botbuildstream: merge request (215-workspace-builds-might-not-rebuild-correctly-when-dependecies-are-updated->master: WIP: Resolve "Workspace builds might not rebuild correctly when dependecies are updated") #315 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31509:49
*** jonathanmaw has joined #buildstream09:51
*** dominic has joined #buildstream09:54
*** aday has joined #buildstream09:56
*** valentind has joined #buildstream09:59
juergbitristan: are you looking into #305 or a different issue?10:03
tlaterjuergbi: About !31310:06
* tlater is annoyed that he can't reply to normal comments on gitlab10:06
juergbimaybe i should have started a discussion. it's a bit odd having to choose this10:07
tlaterAre you proposing we use format-version in workspaces or version in project.conf?10:07
juergbibut you know about 'r' to do a quoted reply, right?10:07
juergbithe former10:07
tlaterNo, checking gitlab markdown then :)10:07
juergbiit's not special markdown, it's a key shortcut10:08
juergbiselect text in some existing comment and simply press 'r'10:08
tlaterAh, nice10:08
tlatertyvm, that's entirely new to me10:08
tlaterHm, well, either way, probably easier to discuss here anyway10:08
tlaterI'm also annoyed by the name == 'version' checks10:09
tlaterjuergbi: I take it you're thinking about making _yaml.py error out if it comes accross anything named 'version'?10:09
juergbino, that would be too low level. i'm not proposing of moving the version handling to yaml.py10:10
juergbii was just thinking of adding some central element name validation, maybe in loader.py or in element.py, and then disallowing version (or format-version) there10:10
juergbiadditional 'keywords' could be added later in the same place, if necessary10:10
tlaterHm, yeah, I think that's better10:11
juergbii still think it's not ideal as we don't need it in any other file, at least for now10:11
juergbian alternative would be to add an extra level to the workspace file10:11
tlaterYeah, that was my initial idea10:11
tlaterI'd much prefer that tbh10:12
* skullman too10:12
juergbiwas there a reason it wasn't done that way or just because the other format was already proposed/implemented?10:12
tlaterThe latter, it was part of awacheux[m] MR10:12
* skullman stuck with the proposed format since he didn't know if it was the result of a wider discussion already10:12
juergbiright, makes sense10:13
juergbibut as this is not actually used yet and we all seem to agree on wanting to avoid the 'version' checks, i think we should change the format10:13
tlaterYup, that makes sense10:14
juergbiespecially as the format is not even targeted for human readability. odd to add special cases for machine readable file10:14
tlaterjuergbi: Do you have any further comments on !315 btw?10:15
* tlater hopes to get these mergeable before 1.1.2 lands10:15
juergbinot yet but haven't fully reviewed yet. just added a comment for the small thing i noticed10:16
tlaterRight, ta, wasn't sure if that was it :)10:16
juergbiit's at the top of my list, though10:16
juergbii looked at !315 for context of !31310:16
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33310:40
jennisOk juergbi, here is the issue: https://gitlab.com/BuildStream/buildstream/issues/13610:40
jennisI think tristan may have some ideas for this too10:40
tristanjuergbi, MR !333 above is part 1 of todays firefighting10:41
tristanjuergbi, I think it's ready to merge, you can take a look; mostly - I think you will find it interesting10:41
jennisSo, first step is: we want to effectively implement an `rm -rf` of the REMOTE cache once a quota is reached10:41
juergbijennis: yes, big hammer stop gap solution but it's considered better than the status quo10:42
juergbialthough, i'm wondering whether we can't implement something slightly smarter even for the initial solution10:42
jennisOne idea i've had is to have a quota: / size: node in the project.conf and then use tlater's function which checks the local artifact cache size to check the size of the remote cache10:43
juergbiautomatically deleting whole artifact cache is excessive10:43
jennisBut i'm getting confused about where the remote cache is dealt with in the two mentioned scripts10:43
tristanjuergbi, also note: I added an unusual test case to tests/frontend/fetch.py, it doesnt fail in an ideal way - but I thought it better to have a test with FIXME comment so that when #197 is improved, the test is already there and only needs some modification10:43
tristansorry to interrupt your conversation :)10:43
jennisATM they're completely reconfiguring the server each time10:43
juergbitristan: ok, will take a look later10:43
jennisthey're being the freedesktop team10:43
jennisand I'm sure others have a similar problem10:44
juergbijennis: yes but e.g., we could do something like delete only half (or 20% or whatever) of the refs (the oldest ones based on mtime) and then run ostree prune10:45
jennisSo juergbi, now i guess the discussion is, firstly: do I try and implement this stop gap or shall we start discussing this other idea you have?10:45
juergbithis sounds like it wouldn't be a very large effort and should already be massively better. don't you think?10:45
jennisOk let's talk about that10:45
jennisI agree10:45
tristangah10:45
tristanI need to update that MR, forgot some local changes10:46
jennisSo my current issue is that I'm not totally clued up on how the pushrecieve and artifactcache scripts work together10:46
juergbibst-artifact-receive is invoked (via ssh) on the remote artifact server10:47
juergbithat's receive_main() in pushreceive.py10:47
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33310:47
juergbithe code in ostreecache.py only runs on the client side10:47
juergbiand the remote server doesn't know anything about projects10:48
jennisright ok10:48
juergbiso it also can't use project.conf10:48
jennisSo the remote server is only concerned with pushreceive?10:48
juergbiyes10:48
juergbithe quota should possibly be a CLI option to bst-artifact-receive/pushreceive10:49
jennisright... ok because artifactcache.py also has some remote-server related code10:49
juergbionly the client side, right?10:49
jennisBut this is the other side10:49
jennisahh beat me to it10:49
juergbii'm wondering whether we should delete based on available disk space or based on size of repo10:50
juergbithe issue with the latter is that it's not that cheap to calculate10:50
juergbiso as a stop gap i would recommend to use available disk space10:50
Nexustristan, regarding: `opening a workspace with a cached build` how should we handle it if an element has multiple sources?10:50
jennisI think it's wise to use tlater's work on local cache's which I'm pretty sure does on available disk space10:50
jennisAt least for the sake of consistency10:51
juergbiNexus: the build tree includes all sources, as does the workspace (we changed this a while ago)10:51
Nexusah kk10:51
tlaterjennis: My branch does this based on size of repo, as it will be user-configurable10:51
tlaterThere will be some stuff to figure out potential clashes with disk size, but that10:52
tlater's mostly not the goal10:52
jennisahh right ok10:52
tlaterWe will certainly have enough overlap to share a few utils though :)10:52
juergbifrom the configuration point of view, size of repo sounds nicer but doing that on the server on every push sounds excessive10:52
jennisSo let's be consisten10:52
jennist10:52
juergbia possibility would be to do it in a cron job instead10:53
jenniscron job...?10:53
juergbiwe anyway already have one for updating the summary file10:53
tlaterjuergbi: Does the server happen to receive artifact sizes as part of the protocol?10:53
juergbii.e., check the quota every 5 minutes instead of on every push10:53
jennisI see10:53
tlaterIf not, we could make that part of the protocol, because clients will have to calculate it anyway10:53
juergbiwe send a tar stream10:54
jennisMaybe first we do every push, and once it's working properly we implement a cron job10:55
jennisin another MR10:56
juergbithis will make pushes very slow, i suspect10:56
juergbialthough, if the server has sufficient RAM, the kernel dentry cache might make this fast enough10:57
juergbinot sure how this would be in practice10:57
* tlater figures the difference in code is small enough that testing both wouldn't be a major time sink10:57
juergbiand that's something where the Meltdown patch causes significant slowdown :/10:57
jennisThat's what I'm hoping tlater10:58
juergbiyes. the actual expiration part should be the same10:58
jennisin terms of actually setting a quota10:58
jennisThis should be done client side?10:58
juergbinot for the remote, no10:58
jennisOne idea was to have a quota: or size: node in project.conf10:58
jennismhmm10:58
juergbiartifact cache can be shared across projects10:59
jennisahh ofc10:59
tlaterjennis: The problem with that is that there are lots of people pushing to the same remote. If everybody configures a different value, that would break10:59
juergbiand we generally don't want to trust the client with something like this10:59
juergbiwe don't have a server config file so far, iirc10:59
juergbiso for now this would simply be a bst-artifact-receive CLI option10:59
juergbithat would be added to ForceCommand in sshd config10:59
jennisSo whoever configures the server sets the quota10:59
juergbiwe could introduce a server config file at some point but i wouldn't block on this10:59
juergbiyes10:59
gitlab-br-botbuildstream: merge request (issue-243_dpkg_import_source_plugin->master: Created DPKG Source plugin for Issue #10) #305 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/30511:00
tristanNexus, where is the issue report, or other relevant detailed information regarding `opening a workspace with a cached build` ?11:00
juergbii'm wondering whether we should still also support expiration based on available disk space11:00
Nexustristan: it doesn't exist yet, i was going to make one once i had a plan written up for it11:00
jennisSo in terms of a client wanting to use a remote server, they use the documentation and do it themselves?11:00
jennisatm ^?11:01
juergbias that's something we could enable by default (or even always)11:01
juergbijennis: do you mean to push to a remote server or to configure/setup a remote server?11:01
tristanNexus, that is unfortunate, with a detailed writeup of what we wanted to achieve for that, I could answer your question much more easily :-S11:01
jennisconfigure/setup11:01
jenniswe have this: https://buildstream.gitlab.io/buildstream/artifacts.html11:02
juergbitristan: it's mentioned in the description of #21 but we don't have a separate issue for it, afaik11:02
gitlab-br-botbuildstream: merge request (issue-243_dpkg_import_source_plugin->master: Created DPKG Source plugin for Issue #10) #305 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/30511:02
juergbijennis: yes, should be added here https://buildstream.gitlab.io/buildstream/artifacts.html#configure-and-run-sshd11:02
* tristan takes a look...11:03
Nexusthe deb source plugin script is tiny now o.o11:03
juergbileveraging existing code is good :)11:03
tristanmhm, ok I see11:04
jennisok so juergbi, this /etc/ssh/sshd_config is where we want to set a quota?11:04
tristanNexus, as far as I know, we have already changed, or at least planned to change, workspaces to be element-wide11:04
jennisor something like that ^11:04
tristanNexus, in which case, I dont see any issue with your question; you just create the workspace based on that instead, right ?11:05
juergbijennis: that's where the remote cache is currently configured, yes. a config file definitely sounds nicer but that would be a separate change. could be done as first part of the same MR, though, if you like11:05
jennisLet's do that as a separate change after this one11:05
jennisIs there an issue for a config script?11:06
juergbii don't think so11:06
jennisOk, I think it'll be better for me if I write up an issue for that and deal with that in another MR after this one11:08
jennisor do you disagree?11:08
Nexustristan: i was going to, whe nthe workspace is opened, search for any cached build trees for the element and if found, stage those instead of sources11:08
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33311:08
juergbijennis: either way is fine with me11:09
*** valentind has quit IRC11:09
*** aday has quit IRC11:10
*** aday has joined #buildstream11:12
jennisok juergbi, so you suspect in terms of actually implementing a solution to deal with #136, main_recieve() is where the magic needs to happen?11:12
*** toscalix has joined #buildstream11:13
jennis*receive_main()11:13
juergbijennis: we trigger it there (unless we go the cron job route)11:13
juergbiat least part of the implementation could make sense in some generic ostree util class to support code sharing with local artifact cache expiry11:14
jennisok so that functions is executed for every push?11:14
juergbiyes11:14
*** toscalix has quit IRC11:14
juergbijennis: please note that we have to be careful with regards to concurrency11:14
jennisnot sure what you mean with that last point11:14
tristanNexus, I dont think "any cached build trees" makes sense in this context, rather; if the artifact is cached, that is the only one which is appropriate to use11:15
jennisOh wrt sharing tlater's function?11:15
juergbiyes11:15
tristanNexus, just clarifying, the plurality in your sentence was a bit worrying11:15
Nexustristan: ah no, i was generalising more than pluralising11:15
juergbijennis: regarding concurrency, i.e., multiple pushes can be happening at the same time. we must ensure not to corrupt the repo etc11:15
* Nexus may have just invented a word11:16
*** toscalix has joined #buildstream11:16
tristanNexus, sure, just making sure we're not confusing this with incremental builds, where there is some plausible plurality :)11:16
tristanNexus, also; one problem you're going to encounter is the special sauce which we delegate to Source implementations when opening a workspace11:17
tristanNexus, I suppose you will propose some plan of action for that...11:17
*** toscalix has quit IRC11:17
*** toscalix has joined #buildstream11:18
gitlab-br-botbuildstream: merge request (issue-243_dpkg_import_source_plugin->master: Created DPKG Source plugin for Issue #10) #305 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/30511:19
jennisjuergbi, right ok. That's something I'll worry about once I have *something*11:20
jennisbut thank you for making me aware11:20
jennisI stil feel unsure where to begin with this though. From what we've discussed, it sounds like I either go for an implementation of a "check" within receive_main() or implement some kind of check in an ostree util class elsewhere?11:22
juergbiyou may have to coordinate with tlater11:26
juergbifor the part that is not shareable, you can put it in pushreceive.py for now. could be moved later if necessary11:26
* Nexus is getting really sick of this error: ` The requested URL returned error: 502 Bad Gateway`11:27
Nexusnow 500 :p11:45
tristanjmac, added my comments to MR !248 ... in general it looks good :)12:14
jmacCool, thanks tristan.12:15
*** mohan43u has quit IRC12:15
tlaterjennis: Sorry, wasn't around for a little while back there12:18
tlaterDo tell if you get to implementing cache expiry12:19
tlaterI'm already adding a lot of helper functions to _ostree.py, so we should make sure we're not duplicating too much work.12:19
juergbitristan: !333 looks good to me. the FIXME comment appears to stop in the middle of a sentence12:30
juergbialready adding this test case and improving the output later is certainly fine with me12:30
tristanhmm12:31
tristanah, good catch12:32
jmacWhat was the upshot of our YAML type conversion work? juergbi mentioned ' the common routine for enforcing type constraints ' in a review but I haven't found it yet12:34
juergbijmac: i essentially meant the same as tristan in his comment later, use node_get_member()12:36
juergbiwhere you pass the expected type as argument12:36
juergbifurther down the stack this will call yaml.node_get(), if i'm not mistaken12:36
jmacRight12:37
tristanjmac, juergbi: Note that, similarly to how I have changed project.py; these calls to self.node_get_member() (or _yaml.node_get()) should *not* be providing any default arguments12:41
tristanInstead, the defaults for sandbox: should be added to data/projectconfig.py12:41
juergbiright12:42
juergbidon't want to duplicate defaults12:42
tristanThis is a general rule, for anything which has a default; it should show up there (not true for options, or things which dont really have defaults)12:42
tristanright, no duplication of defaults and more to the point: Any default value should show up there for documentation purposes12:42
juergbiyes, that's already the case in this branch12:43
tristan:)12:43
*** mohan43u has joined #buildstream12:44
gitlab-br-botbuildstream: merge request (214-filter-workspacing->master: Make workspace commands on a filter element transparently pass through to their build-dependency) #317 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31712:44
gitlab-br-botbuildstream: merge request (214-filter-workspacing->master: Make workspace commands on a filter element transparently pass through to their build-dependency) #317 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31712:44
jmacnode_get_member only exists for plugins, doesn't it?12:45
jmacOh, Element is one12:45
juergbiElement is a subclass of Plugin12:45
jmacn/m12:45
gitlab-br-botbuildstream: merge request (jjardon/contributing->master: Add HACKING document to official docs) #332 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33212:48
gitlab-br-botbuildstream: issue #303 ("Document how to contribute to the official documentation") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/30312:49
gitlab-br-botbuildstream: issue #303 ("Document how to contribute to the official documentation") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/30312:49
gitlab-br-botbuildstream: merge request (jjardon/contributing->master: Add HACKING document to official docs) #332 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33212:49
jmactristan: You have to provide a default argument to the first _yaml.node_get(); that's just reading the user-supplied config and will fault if the key is not there and there is no default12:56
tristanjmac, I dont think so, you only call that *after* all the composition has occurred, right ?12:57
tristanin Element.__extract_sandbox() or such12:58
jmacBut __extract_* does the composition12:58
jmacnode_get is the second thing done in all those functions12:58
jmacTry removing the default from __extract_environment, for example12:58
tristanAh *that* line12:59
jmacnode_get_member should be fine without it13:00
tristanjmac, right, for *that* line, which is getting the defaults declared by the element type13:00
tristanyou will need the default value13:00
tristanjmac, after the compositions, no `default=` is needed13:01
jmacYes13:01
*** mohan43u has quit IRC13:05
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33313:08
tristanOk problem... https://gitlab.com/BuildStream/buildstream/-/jobs/5864321113:26
tristanjennis, has anything changed in documentation ? that is now failing for the autogenerated buildstream.sandbox.rst, which should not be an orphan13:27
tristanlast pipeline for master however; passes: https://gitlab.com/BuildStream/buildstream/pipelines/1921139013:28
jennistristan, not afaik13:58
jennisThe only changes to docs were the theme change + toc tree alterations + title/typo fixes13:58
*** tristan has quit IRC14:03
gitlab-br-botbuildstream: issue #311 ("Opening a workspace with a cached build") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/31114:04
jennistristan, I will review the toc tree changes as that's likely caused it14:05
Nexusjuergbi: hows this look to you? https://gitlab.com/BuildStream/buildstream/issues/31114:05
Nexusin terms of ideas14:05
*** tristan has joined #buildstream14:08
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33314:15
tristanjennis, ok - so what is happening is sphinx got an update, last pipeline to master I pushed also failed14:18
tristanI have to hunt it down and pin the version for CI as a first step14:18
jennisOk so the sphinx update changed the way toctree is defined/used?14:24
tristanI dont know yet what it is14:28
tristanhave to fix CI hours ago14:28
tristanchasing clock14:28
tristanfirst fix CI, then open bug14:28
Nexustristan: https://gitlab.com/BuildStream/buildstream/issues/31114:29
Nexusi made an issue for the task i'm on14:29
Nexusanything to add/thoughts?14:29
tlaterNexus: A flag for this could be `bst checkout --clean`14:31
Nexusfor which?14:32
tlaterAnd have it automatically stage a build tree, except when --clean is set14:32
Nexusi see14:32
tlaterBasically your second option but inverted14:32
tristanOk that worked: https://gitlab.com/BuildStream/buildstream/pipelines/1926276114:34
Nexustlater: ok added that option14:36
NexusShould it fail if it doesn't find a build tree or try to stage the sources?14:36
Nexustlater: your option seems a bit tempramental to me14:37
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33314:38
jennistristan, may I ask why/how you picked 1.7.1?14:43
Nexuslast known good?14:43
gitlab-br-botbuildstream: issue #312 ("Documentation does not build with latest version of sphinx") changed state ("opened") https://gitlab.com/BuildStream/buildstream/issues/31214:43
jennistristan, ignore that14:43
tristandocs bug filed here: https://gitlab.com/BuildStream/buildstream/issues/31214:44
gitlab-br-botbuildstream: merge request (tristan/git-inconsistent-submodules->master: Ignore inconsistent git submodules) #334 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33414:47
gitlab-br-botbuildstream: merge request (tristan/main-process-errors->master: Handle errors in main process gracefully) #333 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/33314:53
*** Prince781 has joined #buildstream14:54
jmacI can't figure out why https://gitlab.com/BuildStream/buildstream/blob/master/buildstream/element.py#L40 is not 'from .sandbox import SandboxFlags'14:55
jmacI can't import other classes from sandbox.py unless I say `from .sandbox`, but this seems to be able to import it from '.'.14:55
tlaterNexus: I think it should always stage the sources if it can't find a build tree - I don't think the user expects an exception when he just wants to see what's in an element14:55
tlaterThe only case in which there would be no build tree is if the element has never been built; I don't think the user cares whether they've ever built the element before.14:56
tristanjuergbi, this fixes the issue I encountered this morning which set the world on fire: https://gitlab.com/BuildStream/buildstream/merge_requests/33414:58
tristanjuergbi, I need to land that pronto, would you like to take a quick look ?14:58
jennisjmac, possibly the way its declared in __init__.py?14:59
jennishttps://gitlab.com/BuildStream/buildstream/blob/master/buildstream/__init__.py#L2614:59
tristanjmac, as jennis says, we do some generalization in the __init__.py of these sub-modules15:00
tristanjuergbi, found one error in my message .format() string, re-pushing 33415:03
gitlab-br-botbuildstream: merge request (tristan/git-inconsistent-submodules->master: Ignore inconsistent git submodules) #334 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33415:09
*** mohan43u has joined #buildstream15:13
*** brlogger has joined #buildstream15:18
abderrahim[m]Hi. I'm trying to build a module that uses a different build system but exposes a configure and Makefile that are mostly compatible with autotools, except they don't ignore unknown arguments that I have in conf-global. What is the best way to deal with this.15:20
* abderrahim[m] almost typed bst instead of best15:20
abderrahim[m](which would have been correct)15:20
abderrahim[m]should I just use kind: manual?15:21
*** mohan43u has joined #buildstream15:25
*** mohan43u has quit IRC15:27
* jonathanmaw 's knowledge of how autotools works is a bit spotty, but if autotools doesn't work for this particular module, I'd suggest manual, yeah.15:30
*** mohan43u has joined #buildstream15:35
jmacjennis: Yeah, I spotted that - but I couldn't get that to work for another class I added15:35
jmacI was trying to add 'SandboxConfig' alongside 'SandboxFlags' and import it, but couldn't get it to import in the same way15:36
*** ernestask has joined #buildstream15:36
jennisjmac, is SandboxConfig a class you're writing? Can't find it15:39
juergbitristan: hm, i thought git submodule add creates/updates the .gitmodules and nothing else15:40
juergbidoes it do anything else?15:40
jmacjennis: Yes, I'm adding it15:42
jmacI'll push my new version to demonstrate shortly15:42
jennisjmac, ok sure15:43
tristanjennis, I've commented on *everything* now... THANKS for taking control here !15:44
tristanjuergbi, only if you call `git submodule add`15:44
jennisuhh nice, thanks tristan15:45
tristanjuergbi, when you are an idiot that just manually updated the .gitmodules file, hell breaks lose and buildstream doesnt handle it15:45
juergbitristan: i'm still confused. what does 'git submodule add' do beyond updating the .gitmodules file?15:45
tristanjuergbi, OR it can also happen when you explicitly set submodules URLs ... and you fast forward to a commit that doesnt happen, again inconsistent15:45
tristanOk... lemme explain15:45
tristanjuergbi, when you already have a submodule in play... and then say, you want to update your project to use a new HEAD for the submodule... you have to do `git commit` in the parent project15:46
tristanThat commit doesnt modify any files15:46
tristanit modifies internal "tree" thingamagigie15:47
juergbiah, the commit sha is not in .gitmodules, right15:47
tristanthat state is required for it to really be a submodule15:47
juergbiso that state is missing15:47
tristanwhich means, we cannot check it out or stage it15:47
juergbiright15:48
tristan*IF* we were to do a `git submodule add` ourselves, it would result in git trying to play smart and download it (bad for us)... and worse, it will modify the local tree, so it's no longer the correct ref15:48
tristanthe only correct thing I can think of doing for this, is emit a nice warning, and ignore the submodule15:49
juergbior fail completely, yes15:49
tristanIt would *anyway* be ignored by `git submodule init && git submodule update`15:49
juergbiif they ignore it, it sounds sensible to ignore it as well (with the warning)15:49
tristanSo I presume, ignoring matches most closely what would happen if a user tried to build it on their host15:49
juergbiok, looks good to me15:52
juergbifixup should obviously be squashed15:52
tristanwooops15:52
tristandone.15:53
* tristan was a ninja today15:54
*** gitlab-br-bot has joined #buildstream15:55
tristanoops dont merge...15:58
tristanFixed commit message15:59
gitlab-br-botbuildstream: merge request (tristan/git-inconsistent-submodules->master: Ignore inconsistent git submodules) #334 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/33415:59
tristanjuergbi, this fixes #299 :)15:59
juergbigreat15:59
juergbi#299 was abused a bit for two issues, though16:00
tristanyeah, I personally tend to want to be a hard ass about that stuff16:02
tristanbut I need to learn to be lenient towards users who file reports :)16:02
tristaneven if I expect them to be developers :)16:02
juergbi;)16:08
gitlab-br-botbuildstream: issue #299 ("Build sometimes hangs forever after "Unknown exception in SIGCHLD handler"") changed state ("closed") https://gitlab.com/BuildStream/buildstream/issues/29916:12
gitlab-br-botbuildstream: merge request (tristan/git-inconsistent-submodules->master: Ignore inconsistent git submodules) #334 changed state ("merged"): https://gitlab.com/BuildStream/buildstream/merge_requests/33416:12
jonathanmawabderrahim[m]: after having a look at conf-global, if you have your bst file redefine conf-global, then you can make sure that it doesn't have the args that it's failing to ignore16:15
jonathanmawthat way you'd be able to re-use more of autotools' functionality16:15
abderrahim[m]jonathanmaw: thanks. I'm just not sure whether it's okay to redefine conf-global in a module.16:16
tristanabderrahim[m], sec...16:17
tristanabderrahim[m], it's not desirable to do so no, it can be done, though16:18
tristanabderrahim[m], Basically, conf-global is *intended* to be used in project.conf, to say something like "--enable-gtk-doc" or not, for the *whole project* at once16:19
tristanabderrahim[m], conf-local adds to these configure args16:19
abderrahim[m]it's for gnome-build-meta16:19
tristanI just re-read what you said above...16:20
* tristan had missed that part16:20
abderrahim[m]I wouldn't want it to be rejected at review time ;-)16:20
tristanWell - that is a bit tricky, which build system is this anyway ?16:20
abderrahim[m]waf16:20
abderrahim[m]for samba16:21
tristanAha, that is not entirely uncommon, I've heard of it before at least16:21
tristanabderrahim[m], You could upstream a waf plugin to buildstream, modeled after autotools, it is really quite easy to do16:22
tristanIt's just some boilerplate python, and a .yaml file (and a one line patch to include it in the docs)16:23
abderrahim[m]except I have to be careful, the standard autoconf arguments (--libdir et al.) were a plugin that the author can enable in the build description16:24
abderrahim[m]so they aren't always available16:24
abderrahim[m](at least it was like this last time I touched waf)16:25
tristanHmm, that could be handled with boolean variables, and conditional shell checks16:26
tristanabderrahim[m], if it's a lot of work though, I think I would prefer a manual element in gnome-build-meta16:26
tristanthat is reliable, straight forward, only downside is it's a bit verbose16:27
abderrahim[m]tristan: yes, that's what I think16:28
* abderrahim[m] is now debugging a build failure (anyone knows where ID_EFFECTIVE might be defined?)16:30
tristanabderrahim[m], not at all :)16:49
tristanhehe16:50
abderrahim[m]Thanks anyway :D16:50
abderrahim[m]it looks that it is in some unix, and the build system couldn't find the linux specific function because of the sandbox16:51
juergbiabderrahim[m]: because it runs as unprivileged root?16:52
abderrahim[m]"Failed to set gid privileges to (-1,1) now set to (0,0) uid=(0,0)"16:52
abderrahim[m]this is the message I found in the logs16:52
juergbii.e., as normal user it doesn't attempt setuid() at all but because it's uid 0 it tries but fails16:53
abderrahim[m]It seemes it is using SYS_setresuid16:53
juergbiwhich module is this?16:54
*** gitlab-br-bot has quit IRC16:54
abderrahim[m]samba16:55
juergbiabderrahim[m]: right, i removed the getuid() != 0 check in source3/lib/util_sec.c to work around this16:56
juergbii.e., never test it at configure time instead of the upstream inconsistency between uid zero and uid non-zero16:56
abderrahim[m]juergbi: thanks, will try16:57
*** gitlab-br-bot has joined #buildstream16:59
jmacIf I'm adding a NEWS item but not increasing the Buildstream version, do I add it to the current version (1.1.2)?17:00
juergbijmac: as 1.1.2 is not released yet, yes17:04
jmacAh, I see17:04
*** valentind has joined #buildstream17:09
*** gitlab-br-bot has quit IRC17:15
*** gitlab-br-bot has joined #buildstream17:20
jmac!318 (the current build-uid MR) has been updated - I've addressed everything on there but there were a few not-quite-resolved conversations on it.17:22
juergbiok, will take a look, but possibly tomorrow morning17:28
juergbiif you no longer consider it WIP, please update the title accordingly17:30
tristanjuergbi, has his claws in every codebase... samba !?17:33
juergbinoticed this building my distro with buildstream17:33
tristanhahaha17:35
tristanhere comes a new distro !17:35
juergbii've completed the buildstream build for the default desktop package set, incl. e.g. libreoffice17:36
jmacYeah, no rush17:36
juergbibut i'm not actually using it yet. will require some more work. on a future weekend ;)17:37
gitlab-br-botbuildstream: merge request (jmac/build-uid-2->master: WIP: Sandbox configuration key to specify uid/gid for sandbox) #318 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31817:38
jmacI'll mark it non-WIP when the tests pass17:38
juergbimakes sense17:38
*** Prince781 has quit IRC17:56
*** dominic has quit IRC17:58
*** jonathanmaw has quit IRC18:03
*** toscalix has quit IRC18:09
*** toscalix has joined #buildstream18:10
gitlab-br-botbuildstream: merge request (jmac/build-uid-2->master: Sandbox configuration key to specify uid/gid for sandbox) #318 changed state ("opened"): https://gitlab.com/BuildStream/buildstream/merge_requests/31818:14
*** toscalix has quit IRC18:18
*** gitlab-br-bot has quit IRC18:28
*** ernestask has quit IRC20:00
*** valentind has quit IRC22:14
*** aday has quit IRC22:59

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