IRC logs for #buildstream for Friday, 2017-12-15

*** bochecha has quit IRC00:11
*** jonathanmaw has joined #buildstream09:19
*** bochecha has joined #buildstream09:33
*** bethw has joined #buildstream09:55
*** noah has joined #buildstream10:19
*** noah has joined #buildstream10:22
*** noisecell has joined #buildstream10:32
*** noah has quit IRC10:54
*** noah has joined #buildstream11:27
*** jonathanmaw has quit IRC11:55
tlaterHaving finally read into flatpak, I understand that their runtime has to be mounted under /usr of an existing rootfs?12:13
* tlater isn't sure how this will reduce IO, given that we still need both the sdk and the runtime, as well as an independent rootfs.12:13
*** xjuan has joined #buildstream12:21
bochechatlater: I don't think there's an existing rootfs for flatpak12:25
bochechait just starts a bubblewrap sandbox and mounts the runtime in /usr, the app in /app12:26
*** noah has quit IRC12:30
tlaterWe have been using a flatpak runtime as the rootfs for our integration tests12:37
bochechawhat I meant is you were saying "their runtime has to be mounted under /usr of an existing rootfs"12:40
bochechatheir runtime gets mounted on top of nothing, afaik12:40
bochechait's basically just `bwrap --ro-bind /path/to/runtime /usr --ro-bind /path/to/app /app ...`12:41
*** mcatanzaro has joined #buildstream12:42
tlaterI seem to be lacking /bin/sh when I do so, I guess that's down to buildstream to fix, though.12:44
bochecharight, so flatpak will mount the runtime in /usr AND set the symlinks /bin -> /usr/bin, etc...12:46
tlaterAh, right, I get it12:46
tlaterta bochecha :)12:47
tlaterAlthough, tbf, I'm not sure that changes our IO rates much.12:47
bochechaI can't find it now, but back at GUADEC tristan had showed me a usermerge.bst element which would just drop the symlinks in place, so things would work with a flatpak-style sdk12:47
bochechaha! https://gitlab.com/BuildStream/gnome-test-data/blob/flatpak-tests/elements/base/usrmerge.bst12:48
bochechafiles/usrmerge contains the symlinks12:48
bochechathey just get dumped into the root of the bst sandbox for elements depending on it :)12:49
tlaterAh!12:49
tlaterNow I understand!12:49
tlaterThe sdk also contains the runtime, then?12:49
* tlater thinks it may be neater to create the symlinks using an integration command/staging element, but those are details12:50
tlaters/staging/compose/12:50
bochechathe sdk doesn't "contain" the runtime13:03
bochechabut flatpak-builder builds the sdk, then "removes" some files from it and calls the result "platform"13:04
bochecha(both sdk and platform are runtimes, the former is used for building and the latter for running)13:04
bochechabasically, you can think of the "platform" as a compose element which depends on the sdk element, copies the bits from / to %{install-root} then removes the files that are uninteresting at runtime13:05
bochecha(I meant a "manual" element)13:05
bochechaso the sdk contains all the files that are contained in the platform13:05
bochechathe files aren't rebuilt twice, they are build only once to make the sdk, then some are removed to make the platform13:06
* tlater thought the sdk contained additional files required for building that weren't in the "runtime"13:06
tlaterI.e., it had to be staged on top of the "runtime"13:06
persiatlater: Other way: platform is constructed by reducing content of SDK13:06
bochecha"runtime" is the generic term in flatpak parlance, there are two kinds of runtimes: sdks and platforms13:06
bochechatlater: the sdk is not staged on top of the platform, no13:06
* tlater misunderstood the docs then13:07
bochechathe sdk contains the build-only files, AND the files that are in the platform13:07
tlatertyvm, this makes so much more sense :)13:07
bochechaflatpak will always use a single runtime13:07
tlaterWhoo, smaller testing runtimes!13:07
bochecha(I'm lying a bit here, it's slightly more complex, but it only concerns extensions, which by a historical implentation also happen to be runtimes, but not in the same way that the sdk/platform are)13:07
bochechatlater: basically, I'm doing something a bit similat to what flatpak does here: https://framagit.org/bochecha/org.ideascube.Sdk/blob/devel/elements/sdk.bst13:08
bochechaI build an sdk with buildstream13:08
bochechathen I subsctract parts of it and call that the platform: https://framagit.org/bochecha/org.ideascube.Sdk/blob/devel/elements/platform.bst13:09
bochecha(the difference is that I'm generating a full /, not just /usr, and then the app uses the sdk/platform as a dependency so the final app compose actually contains the platform)13:09
bochecha(also, this is all work in progress to try to redo the way we build our application, it's nothing serious yet, but it's what I've been playing on with BuildStream since GUADEC)13:10
bochecha> tlater misunderstood the docs then13:10
bochechathe docs are being redone, maybe let them know what you misunderstood and they might improve it :)13:11
tlaterI got a bit confused between "runtime" and "platform"13:11
* bochecha has to afk temporarily13:11
bochechaplatform is a specific type of runtime13:11
bochechasdk is another type of runtime13:11
tlaterI think the "platform" was referred to as "runtime" a few times13:11
bochecha"platform" is not a great name...13:11
bochechawell, the platform is a runtime :)13:12
tlaterAnyway, ta for clarifying that :)13:12
bochechaand say, if you want to use org.gnome.Calendar//3.26 which depends on the org.gnome.Platform//3.26 runtime13:12
bochechathat just means flatpak will **by default** use that runtime to launch the app13:12
tlaterOooh, that means I can frankenflatpak13:12
bochechabut you could do: flatpak run --runtime=ANOTHER_RUNTIME org.gnome.Calendar13:12
bochechaand flatpak will gladly use ANOTHER_RUNTIME instead of the normal one13:13
bochechathere is no guarantee the app will run, though :P13:13
* tlater is happy flatpak still allows completely screwing over my system for minor performance benefits13:13
bochechabut it's useful in one case: using the Sdk instead of the Platform13:13
bochechathis way you get access to strace, gdb, etc... to debug an app13:13
bochechaso in the example above where org.gnome.Calendar//3.26 depends on org.gnome.Platform//3.2613:14
bochechayou would do: flatpak run --runtime=org.gnome.Sdk//3.26 org.gnome.Calendar13:14
bochecha(or `flatpak run -d org.gnome.Calendar` for shorts)13:14
tlaterI'll have to take a good look at flatpak at some point, I've been avoiding it for years now13:14
bochechathere are some really great ideas in it13:14
bochechait's pretty much a glue around bubblewrap and ostree to be honest, with a builder13:17
bochechawhen I discovered buildstream, I instantly felt like it was just a more generic version of flatpak-builder: that is it does many things similarly, but allows more (and it's written in an language I'm comfortable with, so I can contribute, which has been very difficult for me with flatpak-builder :P)13:20
tlaterHm, maybe, but ostree feels more development-focused13:20
bochechaI had been thinking I wanted something like flatpak+flatpak-builder for my python web apps for a long time now, and at some point I was considering a light fork of flatpak that would just replace the desktop-specific parts by web-specific parts :P13:20
bochechathen came BuildStream :)13:21
bochechanah, ostree is just a storage/transport mechanism13:21
tlater*s/ostree/buildstream)13:21
tlaterNot sure what my fingers did there13:21
bochechaah, yes, bst is definitely more for development13:21
bochechabut then it can build artifacts which can then be made public for users to consume :)13:21
bochechamy plan is to `bst checkout app.bst` then commit the tree to an ostree repo, and publish that ostree repo13:22
bochechathen install/update the apps from that repo13:22
bochechabst's job stopped at building the artifacts, and that's fine :)13:22
bochechawhen you think about it, so does flatpak-builder's job13:22
bochechathen flatpak takes over for install/update13:22
tlaterYeah, I think I'll start adopting it for some of my web services too :)13:22
tlaterI might start using flatpak for applications I don't want to actually install on my desktop machine, though13:23
* tlater is thoroughly annoyed by things creating dotfiles in $HOME13:24
bochechaI'm also working on a flatpak-like mini tool which just pulls from ostree repos and runs apps in bwrap sandboxes, kind of like flatpak does; then I'll have my whole workflow (build with bst, install/run with that tool) redone and I'll be happy13:24
bochechathen I realize it's pretty much a new docker and I get scared ^_^13:24
* tlater wonders if we could export things as docker images with buildstream13:25
persiaProbably, yes.13:25
paulsherwoodhow hard can it be, really13:25
persiaThe only thing that might make it annoying is if there are special magic keys that change frequently, making it a game of catch-up.13:25
tlaterThere was that open alternative that rkt started13:26
paulsherwoodhttps://www.opencontainers.org13:26
paulsherwoodLF ran with the ball13:27
tlaterHm, I might have a peek at these things over Christmas, it would make maintaining my server so much easier.13:28
*** noah has joined #buildstream14:11
*** noah has quit IRC15:32
*** noah has joined #buildstream15:34
*** noah has quit IRC15:37
*** noah has joined #buildstream15:39
*** noah has quit IRC16:17
*** mcatanzaro has quit IRC16:52
*** adds68_ has joined #buildstream16:54
*** adds68 has quit IRC16:55
*** tpollard has quit IRC17:02
*** noisecell has quit IRC18:09
*** bethw has quit IRC18:15
*** adds68_ has quit IRC18:16
*** jude has quit IRC18:24
*** jude has joined #buildstream18:38
*** jude has quit IRC18:42
*** jude has joined #buildstream18:45
*** jude has quit IRC18:50
*** xjuan_ has joined #buildstream19:02
*** xjuan has quit IRC19:03
*** xjuan__ has joined #buildstream19:43
*** xjuan_ has quit IRC19:44
*** xjuan_ has joined #buildstream20:29
*** xjuan__ has quit IRC20:31
*** xjuan__ has joined #buildstream20:46
*** xjuan_ has quit IRC20:48
*** xjuan_ has joined #buildstream21:08
*** xjuan__ has quit IRC21:09
*** xjuan_ has quit IRC21:11
*** xjuan_ has joined #buildstream21:13
*** xjuan_ has quit IRC21:15
*** bochecha has quit IRC23:53

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