[06:09] good morning [06:09] * zyga preps kids for school [06:15] morning [07:14] good morning everyone [07:14] https://forum.snapcraft.io/t/yes-snaps-are-cross-distribution/3906 <- cool stuff :) [07:18] zyga: good morning [07:20] PR snapd#4637 opened: devicestate: fix the TestDoRequestSerialErrorsOnNoHost failing on artful/bionic [07:21] huh? [07:21] mvo can you explain? [07:26] zyga: mvo: morning [07:27] zyga: iirc there's an ongoing story about pickign the right 'unresolvable' domain in the tests, *.test was suppsoed to be the answer, but my guess is some resolvers were trying to resolve it actually [07:30] zyga: /var/lib/snapd/mount is something that was introduced in 2.31 cycle? [07:30] no [07:30] far older [07:31] snap-mgmt --purge does not clean it up [07:32] i'm checking snapd aur package and noticed that /var/lib/snapd/mount was left behind when i removed snapd-git [07:37] mborzecki it's very very old, probably an omission then [07:37] mvo could we use something like http://unresolvable.snapcraft.io [07:37] and arrange with people so that it never resolves [07:38] I'm almost inclined to buy really-nowhere.com ;-) [07:43] zyga: ups, thanks. so the issue appaears to be that for some daemons artful/bionic returns SERVFAIL instead of NXDOMAIN [07:43] zyga: its not fully clear yet why, I'm looking into this. we see this on bionic autopkgtests and also on one of my two artful systems [07:44] mvo can I help somehow, I can setup nothing.zygoon.pl with any config desired [07:44] how are you testing this? [07:44] zyga: I have one machine where i can reproduce it [07:44] is it using systemd-resolved? [07:44] PR snapd#4637 closed: devicestate: fix the TestDoRequestSerialErrorsOnNoHost failing on artful/bionic [07:45] zyga: I think so, I switched to it a while ago there, I would consider it a fluke without the autopkgtest failure that looks similar [07:45] zyga: internally we handle SERVFAIL as a temporary error and retry [07:45] well, my offer stands, let me know if I can help [07:45] zyga: this is why we see a test failure, this test is expecting an error and it gets a "doing" [07:45] ack [07:45] zyga: thanks! I will dig a bit [07:46] * zyga looks for a color scheme appropriate for "gloomy polish morning" [07:46] gloomy, it's fat thursday today [07:47] zyga: did you get your donut yet? [07:56] mvo: hi, don't autopkgtest machines proxy http(s)? that probably gives a different kind of errors [07:57] mborzecki no, not today [07:58] mborzecki I will get one in a few days, today is the worst possible day to buy them (unless you make one at home0 [08:03] pedronis: thats an interessting idea, they do that [08:03] o/ [08:04] pedronis: it might be two issues :/ anyway, I get a SERVFAIL in a fresh bionic kvm (which we consider a temp error) so thats something to look into [08:04] morning [08:33] https://jordaneldredge.com/projects/winamp2-js/ :D [08:34] (drag and drop music to play) [08:34] zyga: i'll sync snapd-git aur PKGBUILD with that of snapd and open a PR to our repo to sync the recipe in packaging too [08:35] mborzecki sounds good, thank you [08:35] PR snapd#4638 opened: devicestate: fix autopkgtest failure in TestDoRequestSerialErrorsOnNoHost [08:38] anyone (sans chipaca who did) wants to look at https://github.com/snapcore/snapd/pull/4636 [08:38] PR #4636: snap: understand directories in layout blacklist [09:16] i'm wondering snap is being used in the scenario of distributing a library itself. i.e. the package would contain a standalone app but a library? [09:18] wiking it's possible using the content interface [09:18] though we have a constraint that snaps can only share among one snap publisher [09:19] goooooooooooooooood mornin [09:19] if someone wants to maintain a snap that is used by others we need to allow that, it's essentially a promise to maintain something correctly [09:19] ikey happy pączki day :-) [09:19] wiking, for example there's a gnome platform snap (AFAIK) that anyone can use even though it's published by a third party [09:20] Chipaca morning :) [09:20] zyga, and thee [09:20] gnome-3-26-1604 [09:20] zyga, yeah i'm trying to avoid keep maintaining a deb/rpm package and possibly just switch to snap [09:20] zyga: moin [09:20] wiking though for libraries we recommend just making a part that anyone can use [09:20] parts can be easily embedded into an snap at build time [09:21] the gnome platform snap is gnome-3-26-1604 right now (the name encodes the abi and base libs to make it easier to pick and choose) [09:21] fwiw [09:22] zyga, ok so i guess i should be looking into 'Sharing a C-level library' [09:22] wiking so, who would consume your library? [09:22] anybody who wants to use it? :) [09:23] snaps, unlike classic packages, typically don't model runtime dependencies as distinct packages for end-users [09:23] I'm almost certain that you want to make a part instead of a snap [09:23] oh i see [09:23] wiking you can ask kalikiana about parts [09:23] wiking you can maintain a part on a shared pool of parts (I forgot the name) [09:23] and anyone can build a snap that references your part by name [09:23] https://docs.snapcraft.io/build-snaps/parts [09:24] i guess [09:24] parts are like -dev or -devel packages in classic systems [09:24] yes [09:24] k [09:24] cool thnx for the quick support :) [09:24] welcome, enjoy snaps :-) [09:25] thnx [09:25] * ikey needs to assault jdstrand's mindbrain today [09:27] * zyga LOLs a little [09:41] ikey: are you trying to break everyone else's brain by using that weird term? :-P [09:41] kinda. xD [09:45] #4615 and #4633 are in need of 2nd review [09:45] PR #4615: overlord/snapstate/backend: perform cleanup if snap setup fails [09:45] PR #4633: snap: introduce timer service data types and validation [09:46] zyga: your blacklist checking code still has bugs i fear [09:46] yeah? [09:47] zyga: at least as I understand it [09:47] I implemented the thing we discussed last night, I'm adjusting tests to match [09:47] what's the bug? [09:47] zyga: should an entry of /foo stop a later entry of /foo/bar ? [09:47] if /foo is a file, no [09:47] if foo is a directory, yes [09:47] yes foo was a file iin this [09:47] why not? [09:48] I see what you are saying [09:48] technically it will just fail but it should be validated [09:48] hmm [09:48] but that's good, actually :) [09:48] it means validation gets easier [09:48] it's good that it'd fail, but my experience is the error is nicer if it's caught in a validation step [09:48] yep [09:48] zyga: does it? [09:48] thank you, I'll adjust [09:48] I think so [09:48] we'll see :) [09:49] you still don't want /foo to block /foolicious [09:49] sure [09:49] so for files it's "is this file a prefix of any complete prefix of this path" [09:49] where complete prefix is up to a / or o$ [09:50] or $* [09:50] * Chipaca is forgetting how to type [09:50] * Chipaca goes to see if coffee is the answer [09:54] * Son_Goku rises from the dead [09:57] hey hey [10:05] pstolowski: what do you mean with "that's what we do in undoMountSnap"? [10:05] pstolowski: backend.UndoSetupSnap _is_ undoMountSnap [10:06] unless that is exactly what you mean [10:06] (thus my original phrasing) [10:06] * Chipaca seems to be in an argument with himself [10:06] no i'm not [10:06] * Chipaca is too [10:08] Chipaca, I mean, undoMountSnap calls backend.UndoSetupSnap, which does backend.RemoveSnapFiles [10:09] pstolowski: yes [10:09] ah [10:09] pstolowski: now i understood [10:09] pstolowski: and feel dumb :-) [10:09] Chipaca, so, it's the same cleanup that mborzecki does on error [10:10] yes [10:10] pstolowski: I got confused there, sorry, all sorted now (for now!) [10:11] no worries, happens all the time here ;) [10:14] but there's a big difference [10:14] i'll comment on the PR [10:16] Chipaca: please do [10:17] Chipaca, good! you get my curiosity [10:19] good morning niemeyer [10:19] you're up early :) [10:20] zyga: can you give 4571 another pass? [10:20] mmm [10:20] reading [10:21] @: :-) [10:21] I know what it does but ... autotools :) [10:22] btw, I meant to ask [10:22] why do we need another configre.ac there? (in data0 [10:22] I never used a tree with more than one [10:22] could those things be rolled into the main one? [10:25] mborzecki ^ [10:27] zyga: with paths going from cmd to ../data? hm don't know if out of source tree builds with work this way [10:27] yeah [10:28] zyga: nvm, i can try that [10:28] I'll read on [10:31] mborzecki: they don't [10:32] mborzecki: I was wrong [10:34] mvo: RemainAfterExit=yes is interesting, ^C when systemctl start is waitig does not make the service exit, it keeps on working in the background, trying to start it again sort of hangs/hooks to the job that already runs [10:35] mborzecki: hm, so its not a solution for us? [10:35] mborzecki: can we please make this so that --libexecdir=/usr/libexec works like it's supposed to? [10:35] the only reason it doesn't currently is because of inconsistent implementations in makefiles/autofoo [10:36] mborzecki done [10:36] Son_Goku: have this in a separate branch now, quite a lot of changes, first i'd like to have autotools in data and then fix the libexec (would make the diff smaller also) [10:37] and please use pkgconfig stuff [10:37] it's already there since you've autotoolized it [10:37] no reason not to [10:39] my typing *and* my language (and probably my diction!) are shot to hell today [10:39] mvo: feels like this setting should be exposed in snap.yaml instead, it will change the behavior of the unit a bit, once started it sort-of remains 'active' until you stop it, meaning when ExecStart exits it's still considered active [10:39] mborzecki: still, +1, and maybe even good news :-) [10:41] Chipaca: btw. i recall there was a lp bug about snap try that failed would leave some stuff behind and remember going through this code once already ;) (although i didn't know that undo is only run if task was successful) [10:42] Chipaca she sells sea shells on the ... [10:44] zyga: she sells sea shells on the sea shore // mollusc moltings mostly make measly money // the lady later lacks lucre and leans on loans // she barters her business to barely bypass bankruptcy // turns out tacky tourist trinkets turn in ten times the take // she shelves t-shirts by the sea shore. [10:45] wow, I didn't know most of them [10:45] zyga: that's a newer take on the old one [10:45] must write down for at-the-pub fun [10:45] zyga: https://www.smbc-comics.com/comic/2014-07-23 [10:47] zyga: the original is making fun of a very early (and mostly ignored) paleontologist, https://en.wikipedia.org/wiki/Mary_Anning [10:48] it'd be so nice if gnome-shell didn't log an exception every 3 seconds :/ [10:48] better not press ctrl-c [10:48] it's like "red... no blue YAAAH" [10:49] heh, use log is full of this BS: https://paste.ubuntu.com/26540491/ [10:49] and it's not even the extensions [10:50] mborzecki: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=887082 / [10:50] ? [10:52] Chipaca: yup, that's the one [11:01] PR snapd#4612 closed: snap: exclude `gettimeofday` from `snap run --strace` [11:25] mvo: i think we could run `systemctl start --no-block always`, if the unit files are bad (dependencies are wrong, format is incorrect) systemctl fails right away, and then we proceed to stop all the services in the cleanup phase [11:26] * pedronis lunch [11:29] mborzecki: this does sound good to me [11:30] mborzecki: mvo: is this --no-block + poll? [11:31] mvo: we may consider waiting for a while to see if they do not enter a failed state, but this sounds like a compication and the 'while' may be hard to agree on [11:32] Chipaca: --no-block, with optional poll to see if ActiveState is not 'failed' [11:32] mborzecki: a'ight [11:33] mborzecki, Chipaca: what kinds of "gurantees" do we currently get from systemctl start? my understanding is that its not that much anyway but should not regress here of course [11:34] mvo: it comes back when the exec of the thing succeeded [11:34] mvo: or when the thing notified it was up, if it's a notifier [11:34] mvo: or when it finishes running, if it's a oneshot [11:34] mvo: or or or [11:34] :-) [11:34] mvo: that's part of the problem :-) [11:35] /o\ [11:35] indeed [11:36] no-block + poll lets _us_ decide the vagaries (and makes cancelling cleaner) [12:04] Chipaca: mvo: if i'm reading systemctl source code right, without --no-block, there will be a wait set up, for each of the jobs that failed, if any of those failed systemctl exits with error status === verterok` is now known as verterok [12:45] PR snapd#4619 closed: tests/main/user-data-handling: get rid of ordering bug [12:51] Chipaca can you please have a 2nd look at 4636 [12:51] I implemented the thing we discussed last night [12:51] and you would be the perfect 2nd reviewer [12:57] zyga: i like it [12:57] zyga: i'll go deeper after the standup [12:57] thank you! [13:01] Chipaca: You coming? [13:03] niemeyer: nah [13:08] zyga, any ideas here? https://askubuntu.com/questions/1004203/installing-snapd-on-14-04-fails [13:09] yes [13:09] 3.13 [13:09] install snapd, reboot [13:09] it works [13:09] would now be a good moment to start freaking out because there's an ubuntu on its way to the asteroid belt [13:09] … and it's not going to be getting updates!!! /o\ [13:10] it's going to be _so_ rootkitted by the time it gets back [13:10] pesky space worms will eat it [13:11] zyga: https://i.imgur.com/vCrOo9e.gifv [13:16] ctrl-?meta-j29 [13:17] ups, ignore that [13:22] kyrofa I replied on the forum [13:31] * kalikiana going out for lunch, back later [13:39] mvo, hey [13:40] cachio_: hey [13:40] mvo, I see this error compiling snapd on bionic https://paste.ubuntu.com/26541162/ [13:40] mvo, any guess? [13:41] cachio_: hi, did you manage to start uploading some of those snaps that were missing in staging? [13:41] mvo oh btw, I didn't get that snap to work yesterday [13:41] pedronis, yes, the snaps are in the store [13:41] but it should be ok now [13:41] * pstolowski lunch [13:42] I noticed that the build got done but upload failed because of stale auth [13:42] cachio_: thx, I'll try again with the tests later today [13:42] pedronis, still working on some fixes [13:42] ok [13:43] zyga: what snap was that? [13:43] cachio_: let me know if I can help, also a couple we can just skip as discussed (lxd, canonical-livepatch and core transition) [13:43] cachio_: hm, I have not seen this yet [13:43] mvo the one you poked me about, snapd-hacker-toolbelt [13:43] zyga: #4606 could use your eyes [13:43] PR #4606: snap: use custom unsquashfsStderrWriter for unsquashfs error detection [13:43] zyga: aha, irght [13:43] zyga: right thanks [13:44] Chipaca sure, opened [13:44] cachio_: golang in bionic is on 1.9 now, maybe that is the problem, let me check [13:45] cachio_: hm, no, its like this for some time [13:45] niemeyer btw, I forced myself not to fullscreen any windows now [13:45] and I think I'm getting used to it [13:46] I can fit a few 1080p "big" windows easily and the habit of getting everything maximised is just that, a habit [13:46] cachio_: let me upgrade to bionic to test [13:47] mvo, nice, tx [13:47] pedronis, I uploaded 4 snaps [13:48] for amd64 and i386 [13:50] cachio_: hm, there was a new golang-1.9 upload during the night it seems [13:51] cachio_: so maybe/probably that is the reason [13:51] mvo, mmm [13:51] cachio_: but its a point release, should not break like this [13:51] "should" :) [13:52] anyway, once my upgrade is done I will know [13:52] mvo, btw I am using the cloud image that perhaps has some differences with yours installation [13:55] cachio_: I have a cloud image vm at hand too which I can try. I assume you did something like "sudo apt build-dep snapd" at some point, i.e. its not something like a missing pkgconfig or something like this (the error indicates its not) === chihchun_afk is now known as chihchun [13:57] mvo, I updated the prepare-project script to use the external backend to test bionic [13:58] mvo, I am using the same code we have to build in linode but in the external backend [13:59] cachio_: ok [13:59] ikey: hey, steam-support is not forgotten! I traveled last week to the snapcraft sprint and a couple of other things came up, but as of last night, steam-support is back on top of the list so planned on working on it today [13:59] ikey: sorry for the delay [14:00] yeah no worries bud, just figured id prod [14:00] hey jdstrand [14:00] it wasn't going to make 2.31 anyway, so still no issues with 2.32 [14:00] yeah figures [14:00] hey zyga :) [14:02] I'm working on hardening, I won't push anything major for you to review today though [14:02] zyga: cool (on both counts) [14:03] landing existing stuff is fun enough :) [14:03] it's getting quite close :) [14:05] zyga: let me double check with you. your changes to the content interface recently were a) only about the slot side and b) add a new 'source' attribute that has read and write lists under it, which may not be specified alongside the legacy read and write attributes. read and write legacy attributes are still supported [14:05] zyga: is that a good summary? [14:05] yes [14:05] that's accurate [14:06] (I phrased that slightly weird, source is alone, read/write may continue to be used instead of source) [14:06] ok cool [14:06] PR snapd#4639 opened: store: enable deltas for core devices too [14:06] so, the review-tools now understand this :) (not in prod yet) [14:06] woot, great [14:07] cachio_: I can reproduce the error [14:07] mvo, good [14:07] I looked at the PR and it was clear enough, I just wanted to double check since the updated docs aren't there yet [14:07] mvo, yesterday I was using a prebuilt core [14:07] but then I tried to run all in the bionic and I got that error [14:08] Chipaca replied [14:08] pedronis, I see this errror https://paste.ubuntu.com/26541264/ [14:08] but the weird part is that test-snapd-base-bare snap is uploaded in the staging store [14:09] cachio_: ah [14:09] * zyga returns to snapshots [14:10] cachio_, mwhudson it looks like 1.9.4 #cgo LDFLAGS whitelisting broke snap-seccomp [14:10] pedronis, not sure which could be the reason [14:10] * Chipaca hugs zyga [14:11] cachio_: I dont't see that snap [14:11] not in stable? [14:12] no, sorry, mistyped [14:12] cachio_: wondering if core is too old in that test [14:13] cachio_: test-snapd-base-bare seems to have the wrong type, it says application and not base [14:14] same in prod though [14:14] mmh [14:14] cachio_, mwhudson https://github.com/golang/go/issues/23672 is the issue, our ldflags -Wl,-Bstatic are not longer allowed [14:14] hmm [14:14] mvo are we in trouble? [14:14] zyga: a bit [14:15] a little bit or the grammatical bit where it's really a bucket full of trouible [14:15] mvo: any idea why base snaps would work with the production store, but not staging (I don't know what would be different) [14:15] *trouble [14:15] zyga: our static linking in snap-confine of libseecomp no longer works [14:15] hmmm hmmm [14:15] pedronis: work in the sense that snap install base-18 from staging does not work? [14:15] is that related to golang or to something else? [14:15] mvo: this https://paste.ubuntu.com/26541264/ [14:15] zyga: golang upstream change [14:15] from cachio_ [14:15] zyga: https://github.com/golang/go/issues/23672 [14:16] the base snap is there in staging, with the wrong type fwiw, but it has the wrong type also in production afaict [14:16] cachio_, pedronis is test-snapd-base-bare published in staging into the stable channel? [14:16] mvo hold on but snap-confine is in pure c [14:16] or did you meant snap-seccomp [14:16] zyga: sorry, snap-seccomp [14:16] ahh [14:16] ok [14:17] well [14:17] that sucks [14:17] mvo let me know if you want to discuss options [14:17] we could dlopen libseccomp from core perhaps [14:17] mvo, yes [14:17] (that would be good on a few levels, at least) [14:17] mvo, in staging for all the archs in all the channels [14:18] cachio_: what snapd version is in use there, I suppose master? [14:18] pedronis, yes [14:18] zyga: I need to think a little bit about it, but it sucks [14:19] cachio_: I can try as well in a little bit, not sure what would be different in staging though [14:21] pedronis, it is weird because I can install test-snapd-base-bare [14:22] in the staging store [14:22] but if it used as base snap it cannot be found [14:23] cachio_: quite confusing [14:24] kyrofa: hi! weird: kernel: [1304675.438833] audit: type=1400 audit(1518072222.273:174): apparmor="DENIED" operation="exec" profile="snap.nextcloud.mysql" name="/bin/systemctl" pid=19425 comm="mysql.server" requested_mask="x" denied_mask="x" fsuid=0 ouid=0 [14:25] kyrofa: I think it is falling back though, since I see: nextcloud.mysql[19403]: Shutting down MySQL [14:25] nextcloud.mysql[19403]: .. * [14:25] systemd[1]: Stopped Service for snap application nextcloud.mysql. [14:26] mvo: zyga: moving each -Wl into separate line does not help I guess? [14:26] mborzecki: I can try, I think its a whitelist [14:27] right: there's a review for --as-needed https://go-review.googlesource.com/c/go/+/92795 [14:28] mvo: and thre are environment variables too [14:28] mvo: https://go.googlesource.com/go/+/867fb18b6d5bc73266b68c9a695558a04e060a8a [14:29] this piece in particular: https://go.googlesource.com/go/+/867fb18b6d5bc73266b68c9a695558a04e060a8a%5E%21/#F3 [14:34] zyga: tried this in the autotools branch https://paste.ubuntu.com/26541368/ automake went down with some bs error, clearly confused about the relative paths [14:34] uh [14:35] mborzecki what if we moved those upstairs [14:35] that would work, right? [14:35] that would work, but it will also clutter the toplevel dir [14:35] is there a list of env vars available for use in snippits in snapcraft? (not for snaps themselves) [14:35] sure [14:36] Chipaca I added a review to snapshots (half of review really) [14:37] zyga: otoh, it's 3 files at most that need to be kept in the tree -> configure.ac, Makefile.am, autogen.sh, the rest is just temporary artifacts [14:37] yeah [14:37] maybe that's the solution [14:38] mborzecki so [14:38] mborzecki another idea [14:39] how about if we add .dot-dot symlink [14:39] and make data show up as cmd/.dot-dot/data [14:39] :D [14:40] hmm might work, let me try [14:41] looking at 4606 now [14:46] mvo: by the looks of it, the arch package does not build due to the go changes atm [14:49] right, pkg-config is broken now too [14:52] go build github.com/snapcore/snapd/cmd/snap-seccomp: invalid pkg-config package name: --static [14:53] zyga: can you take a look at https://github.com/bboozzoo/aur-snapd/pull/3 ? [14:53] PR bboozzoo/aur-snapd#3: snapd: updates [14:53] Issue snapcraft#1921 opened: Evaluate contents of manifest.txt, add reasons and surface to the user during staging [14:53] yes [14:53] i'll push another fix with a workaround for go1.9.4 in a minute [14:57] mborzecki done [14:58] zyga: thanks [15:03] Chipaca +1 [15:03] PR snapd#4606 closed: snap: use custom unsquashfsStderrWriter for unsquashfs error detection [15:08] pstolowski which PR should I review first for you? [15:09] zyga, #4401 please, thanks! [15:09] PR #4401: snapstate/ifacestate: auto-connect tasks [15:09] PR snapd#4636 closed: snap: understand directories in layout blacklist [15:16] davidcalle (cc sergiusens): hey did you see my comment yesterday about https://docs.snapcraft.io/deprecation-notices/dn5? [15:20] jdstrand: is this the right report a bug against the snap review tools? https://bugs.launchpad.net/review-tools [15:23] popey: I'd prefer that, yes (at some point soonish we'll deprecate click-reviewers-tools bzr branch and use only the review-tools git banch, so it would be good to get used to it) [15:24] it was the first hit when i googled, :) [15:24] thanks [15:24] popey: before you file, perhaps you could say what the problem is now? quite a few updates are on their way to prod [15:24] jdstrand: I wanted to suggest that we prevent "empty" snaps from landing in the stable channel. In the same way we don't allow grade: devel ones in stable. [15:25] e.g. there is a snap which just landed in stable called "toto". It is entirely empty, contains only a snap.yaml, nothing else. [15:25] this shouldn't be allowed to land in stable IMO [15:25] zyga: woo [15:25] popey: interesting. ok, file away :) [15:25] ta [15:26] popey: note that the review tools aren't run on channel promotions, only the initial upload, so a change tot he review-tools would mean no empty snaps in any channel [15:26] * zyga breaks for back pain [15:26] awww [15:26] I'll continue reviewing 4401 [15:26] but later [15:27] popey: the snapstore could, in theory, peek back at a previous run for channel promotions. that would need some design and likely help from the review tools [15:28] popey: I'm not sure at what priority that would be. I'm guessing quite low for this particular issue [15:28] popey: tbh, an empty snap seems like it isn't valid in any channel though [15:31] jdstrand: i think some might argue that it's not fair for a new developer to get punched in the face with words like "error" and "reject" as they're starting out with snaps [15:32] jjohansen: hey, do you have a moment to kick around an idea for organizing a new steam-support interface [15:33] popey: well, they'll face all those same words if they do other things wrong. why is that one special? [15:33] eg, the pick an invalid snap name [15:33] they* [15:33] *shrug* emoji [15:35] popey: I'll put it this way. if you file the bug, I will fix it and this will apply to everything. if you don't, I'll conveniently forget about it. if you think the snapstore should support peeking back on channel promotions, then file it against the snapstore and add a review-tools task [15:35] ok === chihchun is now known as chihchun_afk [15:41] niemeyer, pedronis could you please take another look at #4401? [15:41] PR #4401: snapstate/ifacestate: auto-connect tasks [15:48] jdstrand: sorry, yeah I have a few minutes, /me is getting kids ready for school [15:49] pstolowski: SUre thing [15:49] pstolowski: likely tomorrow morning [15:49] jjohansen o/ [15:50] cachio_: mvo: I think the issue is that /details for test-snapd-busybox-static doesn't have base set [15:50] in staging [15:50] hey zyga [15:50] cachio_: mvo: I remember some discussion about needing backfilling for something, and decided it was not worth it, it probably needs to be uploaded again [15:51] unless it was just uploaded in which case, something else is going on [15:54] pedronis, ok, I'll upload it [15:54] jjohansen: just ping me when ready. it might take up to 15 or so [15:55] maybe faster. I tripled what I thought it might take :) [15:56] cachio_: it seems old even in staging, afaict [15:56] so re-uploading from prod to staging should help or so I hope [15:56] pedronis, I planned to copy the one in prod to staging [15:56] sounds good [15:56] pedronis, ok [15:57] mvo, could you please share test-snapd-busybox-static with me? [16:00] jdstrand: 15 min to discuss or implement? [16:00] :) [16:00] jjohansen: hehe [16:01] jdstrand: shoot I have 15 min [16:01] jjohansen: it's true, I could just say 'you get the wide-open classic template' and *boom* it works :P [16:01] jjohansen: ok, more seriously [16:01] cachio_: sure, one sec [16:02] jjohansen: architecture is this: steam has a steam client. the client allows you to buy, install, remove and launch games [16:02] mvo, tx [16:02] * zyga returns to being off, sorry :/ [16:02] mborzecki: yeah, same problem everywhere I presume, the go change is a security update so I guess its applied everywhere :/ [16:02] jjohansen: many steam games use a process lifecycle where they will ptrace child processes [16:02] jjohansen: this is just how it goes (proprietary blobs) [16:03] jdstrand: have I mentioned how much I hate proprietary blobs lately [16:03] mvo: i've pushed a fix to arch package, so that it builds now :/ funny cause it was building in the morning (i was working on it a bit), then ~2pm they pushed an update of go and it broke [16:03] Chipaca I pushed 4640 with one more layout feature [16:04] cachio_: on your way [16:04] jjohansen: so I had the idea that it would be nice if the launcher was in one profile, and it would launch games in a different profile. we'll call the launcher profile the client profile and the games profile the game profile [16:04] PR snapd#4640 opened: snap,interfaces: allow using bind-file layouts [16:04] mborzecki: what fix did you use? CGO_LDFLAGS_ALLOW=.* or similar :) ? [16:04] mvo, tx [16:04] jjohansen: the game profile would be under a different label, and it could ptrace itself (let's not worry about seccomp in <4.8 kernels for this discussion) but not the client [16:05] mvo: just this patch https://github.com/bboozzoo/snapd/commit/3286baf646fa7974c165efd9b63c690d08dff6b7 the rest seemd to build just fine [16:05] pstolowski: LGTM I think.. I've skimmed through it, and haven't spent as much time on it as last time, but if pedornis is happy and it works, I'm happy with the change [16:06] mborzecki: ok [16:06] mvo: and we did disable the static linking in arch anyway as libseccomp is only dynamic [16:06] It's certainly quite nice to have auto-connect on its own task [16:06] mborzecki: aha, ok [16:06] niemeyer, ty [16:06] jjohansen: so, that is the germ of the design. in terms of implementation, I really want to use a Px rule with a sibling profile, because of the way snapd is architected and generates profiles, that is convenient [16:06] jdstrand: ack, launcher, client, game A, game B, game C, profiles ... [16:06] jjohansen: but I ran into: https://bugs.launchpad.net/apparmor/+bug/1696552 [16:06] Bug #1696552: syntax errors when specifying px rules with exec transitions that have '.' in the name [16:07] ok, end of the week for me, cu all on monday [16:07] jdstrand: oh, sorry I meant to have that fixed already, I can add it to todays todo, its an easy fix [16:07] jjohansen: launcher/client are the same, games likely will share a profile in the initial implementation since the steam client (proprietary blob) has no concept of change_profile/etc [16:08] jjohansen: (I would use file rules to transition to the games profile) === chihchun_afk is now known as chihchun [16:09] jjohansen: well, I was trying to think through that. yes we should clearly fix the parser. that is a given [16:09] jdstrand: that makes me a sad panda but ack [16:10] jjohansen: but, that means SRUs for Ubuntu (possible) and then updates for suse, solus, Ubuntu derivatives, etc (improbable for the whole list), which means that steam will work on some distros, bt not others (bad for snapd) [16:11] steam what now [16:11] ears twitched [16:11] jjohansen: re file rules> yeah. not terribly excited by that, but the secret hope is that if we can improve on steam's security story by preventing games from attacking the client, then maybe, just maybe, they'd be open to building something into their client down the line [16:11] jjohansen: perhaps a pipe-dream, but one can hope :) [16:12] not outside the realms of possibilities tbh [16:12] jdstrand: yes, sorry wish I could write bug free software, but I seem to be gifted with talents else where [16:12] we already know they flirted with flatpak in the past purely to look only at bubblewrap re: sandboxing [16:12] jjohansen: because of what I just mentioned with parser and other distros, I started exploring other ideas [16:12] jjohansen: haha, no need to apologize. apparmor is awesome! [16:13] ikey: hey, I was serious that steam-support was on the list for today :) [16:13] :D [16:13] kickin ass [16:13] jjohansen: so I came up with an idea to use a child profile [16:14] that can work [16:14] jjohansen: I have two choices with that. one I greatly prefer in terms of snapd architecture [16:14] it can. I did it [16:14] jjohansen: so, I can either generate profiles like this: [16:15] 'profile client { profile { game } }' or I can do 'profile client {} profile client//game {} [16:15] ' [16:16] the second is preferred in terms of how snapd is architected. again, I can do the first [16:16] note that in the second, 'client' and 'client//game' are in different files [16:17] which means that I need to be concerned about profile load and remove order [16:18] jdstrand: so the second is supported, you do need to be worried about order to a degree [16:18] I'm able to deal with load ok, but remove generates a parser error because if I unload 'client', it unloads 'client//game' so then when I unload 'client//game' there is an error [16:18] if you remove a parent before its child, the child should get repeated as well, and the 2nd remove should complain with ENOENT [16:18] precisely [16:19] right [16:19] I thought I tried it the other way.. [16:19] (too) [16:19] and I think the unload of the parent had a parser error cause the child was already removed [16:19] let me double check that [16:20] that should just work, if not there is a bug [16:21] I also need to fix the parser so that if they are both specified, it just does the right thing [16:21] that makes sense [16:21] it can figure it out, currently it doesn't [16:21] for the snapd case, currently it loads and removes one at a time [16:22] I can change snapd to do things of course [16:22] jdstrand: I need to step away, finish your dump and I'll answer when I get back [16:22] jjohansen: ok, good timing. I couldn't find my profiles so it'll take me a minute [16:22] jdstrand anything I can help with? [16:22] not for the first time i find myself trying to use markdown in a go comment [16:23] zyga: not at this time [16:24] Chipaca, backtick all the things [16:24] ikr [16:25] flexiondotorg: I've just promoted audacity to candidate - tell the LNL crew that the last of their three desired snaps is snapped [16:25] lol [16:25] oh ello ikey [16:25] :-p [16:25] * diddledan tells ikey directly [16:25] ikey I had that period where everything was pre-formatted and I could not stand otherwise [16:26] ello diddledan lol [16:26] zyga, i went so overboard on it i added a markdown parser to solus SC [16:26] and it has the markdown in the git tags [16:26] forms our changelogs :P [16:26] that's pretty nice [16:27] ref: https://dev.solus-project.com/R3571:37e7f17508ecdedf13f061cad974b2a09ee10687 [16:27] client side: https://ibin.co/3r15d94CbaGW.png [16:28] some stuff like the CVE IDs automatically link [16:32] jjohansen: ok, I was wrong: load parent, load child, unload child, unload parent works fine: https://paste.ubuntu.com/26541896/ [16:32] jjohansen: if I change the load or unload order, then I get ENOENT [16:34] jjohansen: which means, I can make this child approach work. I'll just need to adjust snapd to do something special with load/unload with this approach [16:34] * jdstrand now checks what apparmor does with the cache files [16:35] jdstrand: the cache file is based on the file name that the child profile is in [16:36] so it will get its own cache file if its in a separate file [16:36] if you put them in the same cache file they will share [16:36] if the compiler merges them into a single cache file [16:36] you will get 2 symlinks to the merged file [16:37] note: you won't see that one happen yet [16:37] jjohansen: interesting. so I could keep the text profiles separate, but have a single cache file [16:37] ? [16:38] jdstrand: uh theoretically, the current parser don't actually handle that yet [16:38] heh, ok, then that is out [16:39] but yes, I could put both into the same text file [16:39] but you can cat the 2 binaries together to get a single, and it will work [16:39] jdstrand: another approach is to do [16:39] profile A { [16:39] ... [16:39] } [16:39] include "children" [16:40] that would put them in a single text file, and allow you to stash the children profiles in separate files that are out of the regular load path [16:40] err, not single text file, single cache file [16:41] jdstrand: the parser will pickup the ability to merge profiles into a single cache file when they are specified on the same parser invocation and they meet certain criteria, but there are a few other things I need to land first [16:42] jjohansen: so if I do 'profile parent {} profile child {}' in the same file, it doesn't work on unload (ENOENT), regardless of order. (load works both ways) [16:43] oh! that would be a parser bug, I wonder when that broke, and why arekm isn't yelling at me [16:43] jjohansen: to be clear, if I have the parent and child in different cache files, apparmor_parser will be sensitive to load order? [16:43] jjohansen: (this is artful btw) [16:43] jdstrand: yes separate cache files will be load order sensitive [16:44] ok. I *should* be able to lexically sort them for cache loading [16:44] and I *could* adjust snapd for handling load/unload order [16:44] doesn't apparmor_parser already do that? given that you can apparmor_parser load a directory that is purely a binary cache [16:44] sorry, I'll fix it in the parser too, but that will require and SRU which gets us back to the whole doesn't work every where problem [16:44] and no source files.. [16:45] the question for me then becomes, is that better than profile client { profile game{}} [16:45] dammit why didn't you point this out to me 5 years ago [16:45] :P [16:45] ikey: yes but different init scripts do different things [16:45] yeah i replaced them with aa-lsm-hook in solus [16:45] I need to make sure this works everywhere [16:45] for the betters [16:45] * jdstrand nods [16:45] gotcha [16:45] jdstrand: what of [16:45] profile A { [16:45] include "children" [16:45] } [16:46] that should work [16:46] let me try that [16:46] and allow you to have the children in separate files [16:46] jjohansen: children is a dir? [16:46] jdstrand: that is up to you [16:46] let me try as a file [16:46] you could specify specific files, or have a dir you just drop stuff in [16:47] come to think of it, I think that is what arekm is doing now, and why he isn't yelling at me for the other being broken [16:51] jjohansen: I can't get that to work [16:53] jjohansen: https://paste.ubuntu.com/26542021/ [16:54] * jdstrand tries a dir [16:54] jdstrand: in /tmp/child2 [16:54] lose #include [16:54] and rename profile snap.steam-client.steam-client//game to just game [16:55] that makes sense [16:55] ok, that works [16:56] I only have to mess with the parent [16:56] like any good child would.. [16:56] it does mean I have to have snapd not do anything with the child profile though [16:57] (as in, load/unload it itself) [16:57] ok, so several options with the child [16:57] 1. embed the child in parent [16:57] 2. have child separate from parent, figure out load order in snapd === chihchun is now known as chihchun_afk [16:58] 3. have child separate from parent via #include, adjust snapd to not fiddle with child in interface connections [16:58] these are options I can work through [16:59] jjohansen: my next question is: is there anything different I could try that we haven't discussed? [17:00] jjohansen: eg, apparmor namespace. I don't *think* so since the Px bug I mentioned was filed when playing with apparmor namespaces [17:01] jdstrand: you could use a namespace, I am not sure you want to atm [17:01] the scope isn't separated from the view, so once you enter the namespace [17:01] jjohansen: yeah, I kept trying to think through if that would help anything, but couldn't [17:01] you can't see the rest of the system profiles etc. It more like in a container or VM [17:02] plus, the status of namespace support across distros might make it problematic [17:02] loading into the namespace has the same issues [17:02] oh yeah, that would likely be a lot of trouble too [17:02] ok [17:02] jjohansen: thanks, this was very helpful [17:02] but you could get away with just tearing down the namespace to remove all its policy [17:02] mvo: doh [17:03] jjohansen: in terms of snapd, that change would not be terribly different that just dealing with the parent in option 3 [17:03] jdstrand: that said I very much would like snappy to use a namespace, I just need to land the scope work and have it propagate everywhere first :( [17:03] mvo: feel free to upload any fixes you need or tell me what i need to fix... [17:03] jdstrand: right [17:03] jjohansen: yeah. we'll get there [17:04] mwhudson: its a good question, I need to think about it and probably look at the go upstream diff [17:04] mwhudson: the change broke both our pkgconfig usage and our LDFLAGS [17:04] * mwhudson goes back to bed for a bit [17:04] mwhudson: we use -Wl,-Bstatic [17:05] mwhudson: heh, do it, its not super urgent, I call it a day soon here [17:05] there is also a variation on one, where I modify snapd such that a snap command could end up as an embedded child profile [17:05] but anyway, that is for me to work through [17:05] jjohansen: thanks for all your help! [17:05] jdstrand: np [17:10] jjohansen: there is actually another option. we fix the parser for Px/px and make the use of the interface conditional on that fix being available [17:11] this way, anyone distro who wanted the fix could pull the patch into their parser [17:11] s/anyone/any/ [17:11] I'll bring this up to the snapd team [17:12] * kalikiana wrapping up for the day [17:12] zyga: we will need is-nfs-home: [yes|no] as part of the system-key [17:12] mmm [17:12] yes [17:12] I think so [17:13] zyga: tests are breaking [17:13] zyga: without it [17:13] hmmm [17:13] jdstrand: that works for me too [17:13] zyga: I need to check, we have a bit of a recursive import problem, some of this code probably needs to go into osutil or something [17:13] mvo how did it break, I mean, we test this, right? [17:13] mvo, I forgot where I put the nfs code but yeah [17:13] zyga: yes, this is where it breaks, the test restarts snapd and assumes it re-genreates security profiles [17:14] zyga: and we no longer re-genreate on every restart [17:14] aha, so not broken in the wild, just in an upcoming branch? [17:14] or broken in the wild now [17:14] zyga: not broken in the wild [17:14] zyga: just in 4629 [17:14] ahh [17:14] god [17:14] good :) [17:14] I can fix that if you want [17:15] can you look at 4640 when you have some time? I will look at nfs part [17:15] zyga: I would not say no to this offer :) [17:15] thank you :) [17:16] zyga: probably in my morning but yeah, I have a look. I'm bit behind in reviews in general, maybe I can have a review-friday [17:16] zyga: I also wanted to stop pusing new PRs before my others are landed. but this is really hard [17:16] yeah [17:16] after this I only have layout spread PR (it depends on it now) and then I'll switch to hardening [17:19] Chipaca how about you? [17:19] zyga: what about me? [17:20] fancy doing 4640? [17:20] * zyga looks at nfs untangling [17:22] zyga: doing it right now [17:22] thank you [17:22] I want that spread test out there [17:25] mvo any objections if I move more stuff to osutil? [17:25] like more of mount [17:25] I can move it to osutil/mount so that it doesn't cause a massive cluster of alterations if that makes it better [17:42] zyga: do you find "%[1]s %[1]s" % (a,) clearer than "%s %s" % (a, a)? [17:42] TBH, not really [17:43] zyga: then use the other ones :) [17:45] I mean, if you were passing around an enormous struct by value, it might be worth it? [17:45] but usually it's not [17:45] (in the common case of the thing being a poiner or a simple value, afaict it's more expensive in both memory and time to use the indexed version) [17:46] (add to that that it's less clear... ¯\_(ツ)_/¯ ) [17:46] like, 300ns vs 200ns for the two-args version [17:46] not that i'd be insane enough to have measured this [17:46] * Chipaca hides [17:47] :) [17:47] hahah [18:06] thank you Chipaca [18:11] how long does "time go test ./..." in the root of the project take for you guys/ [18:19] mvo that will be one big branch [18:21] jdstrand, yeah I've looked into that one, even grepped the entire snap and can't find where it calls sytemctl. Wonder if it's in a binary somewhere [18:24] zyga: I like osutil/mount [18:24] I moved it to osutil now, we'll see how that looks like [18:25] kyrofa: just looking at the logs, seems to be coming from mysql [18:25] jdstrand, yeah, just none of its scripts. I'll take a quick grep of its src [18:25] zyga: ok, I was thinking it might be easier to use "mount" just like before but of course if we end up with two "mounts" (one in osutil one in interfaces) that sucks [18:25] yeah :/ [18:25] zyga: anyway, I will wait for the PR :) [18:26] I'm not done, let's see how it looks like in the end [18:27] ikey: I responded to the forum. I've pinged niemeyer to comment before I proceed [18:28] niemeyer: and I pre-apologize for the walls of text between https://forum.snapcraft.io/t/blowing-off-steam-lets-plan-steam-support-interface/3457/14 and https://forum.snapcraft.io/t/blowing-off-steam-lets-plan-steam-support-interface/3457/27, but we're pushing the envelope here [18:29] jdstrand, yeah nothing in the source either. No clue what's causing it [18:29] jdstrand: Appreciated! [19:58] greyback: hey, you probably say, but I reviewed pr 4545. lgtm for my stuff, but the changes from zyga prompted some discussion with him [19:58] PR #4545: interfaces/x11: allow X11 slot implementations [19:58] s/say/saw/ [20:00] * zyga finished a very boring branch just now [20:00] man [20:00] the things we have to do to make it compile ;-) [20:03] PR snapd#4641 opened: many: move mount code to osutil [20:07] PR snapd#4642 opened: many: add nfs-home flag to system-key [20:08] jdstrand hey, do you have a sec [20:08] zyga: what's up? [20:08] https://github.com/snapcore/snapd/pull/4640 [20:08] PR #4640: snap,interfaces: allow using bind-file layouts [20:08] 65 lines :) [20:09] it's something I think we need for layouts and ... [20:09] ... :) [20:09] could you please look? [20:11] man github reviews are pretty ugly with the use of '%[1]s' [20:11] yeah, I will change that to %s %s [20:12] jdstrand: thanks, I'll wait to be told what to do :) [20:13] zyga: I wasn't necessarily saying that. personally I do find it easier to read as %s %s, but I can do either :) [20:13] that said, I'm fine if you change it :) [20:13] please review as-is, i'll do that separately [20:13] cool :-) [20:13] * jdstrand nods [20:14] * ikey clicks the forums [20:14] apologies for le delay [20:14] also the forums is making me think there is gonna be some kind of zombie event soon [20:14] massive letters "12 DAYS LATER" [20:15] jdstrand updated [20:15] ikey: hehe [20:15] ikey zombie event? [20:15] zyga: that is much easier on the eyes :) [20:16] zyga, 28 days later :P [20:16] yknow, rapid moving shoulder munchers [20:16] of course, where did my pending comments go... [20:17] ikey, you mean stress-eating during weekends? [20:17] ;-) [20:17] no i mean literal zombies :P [20:18] also its not "stress eating". its uhm.. *thinks*.. weekly hormone rebalance therapy. [20:18] yeaa... [20:21] "literal zombies" [20:21] * zyga turns the dishwasher on [20:21] yeah they chase you and say things like "totally" until *you* groan [20:21] I think my kids are like zombies sometimes [20:21] jdstrand: after that PR I have spread test for layouts [20:21] probably a phone app to figure that one out.. ^^ [20:21] it's pushed, just waiting for the PR to land :) [20:35] jdstrand replied [20:37] actually edited my response, sorry [20:37] jdstrand if that's okay with you I will edit the symlink comment [20:38] eh [20:38] new golang broke -everything- [20:38] not a great tay [20:38] *day [20:43] jdstrand do you want me to add the examples you listed to unit tests? [20:48] zyga: please see me comment to your comment. yes, more tests please but note that I didn't enumerate everything in the review [20:49] jdstrand the one with 'more subtle' cannot be detected [20:49] as yaml will fold the old value and replace with the new one [20:50] as for remaining tests, I will add some more but the "bind-file" thing is identical in validation to "symlink" and those have a lot of tests already (though not added in that PR) [20:51] The case where the same source is treated differently is interesting, that is not handled yet [20:51] it will fail at runtime but it won't get caught by the validator [20:51] once master is fixed tomorrow I will add those [20:54] PR snapcraft#1908 closed: tests: update tests to work in adt [21:04] zyga: ok, so those are keys to a dictionary. That's fine then. we should have a test that shows only one happened imho === ogasawara is now known as Guest91911 [22:49] hi when does snapd do the sd_notify thing to notify systemd that it has started up? [22:52] in particular wrt seeding on first boot [22:52] aha systemd.SdNotify("READY=1") [23:01] hm ok looks like it notifies before seeding is known to be done [23:03] hmm the idea of having snapd write the unit looks better i think === Guest91911 is now known as ogasawara === ogasawara is now known as Guest23352