/srv/irclogs.ubuntu.com/2016/05/19/#snappy.txt

=== tai271828_ is now known as tai271828
thefinn93how can i get curl onto Ubuntu Snappy?00:52
thefinn93oh, wow, internet sez write a python script to do it00:59
thefinn93:/00:59
Trevinhothefinn93: are you using snapcraft? you culd include it as a dependency...00:59
thefinn93i have no idea what that is01:00
thefinn93i was given a raspberry pi and told to put something called ubuntu snappy on it and set it up for easy access, which in this case means dynamic DNS. i guess i foolishly assumed curl'ing the DDNS provider would be the way to go about that01:01
Trevinhothefinn93: ah, ok... well you need to install a curl snap then if you want to use curl.... I guess it's not provided yet, but you can easilty build one with snapcraft01:01
thefinn93okay... i'll just make a ghetto DDNS client in python01:03
thefinn93from reading rando blog posts that seems like it'll work01:03
thefinn93could proly give it some basic logic too, like, check if we really need to update01:03
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
=== greyback is now known as greyback|bbiab
ogra_mvo, thanks for the uploads (i totally slept in ... unplanned (hey jetlag)) .... the images boot on pi2 and dragon ...10:42
mvoogra_: \o/10:42
=== JanC is now known as Guest23785
=== JanC_ is now known as JanC
kyrofaGood morning12:08
seb128hum, what /etc are snaps seeing?13:24
seb128the host system one?13:24
seb128or a "merge" of the system + what is in the snap?13:25
kyrofaseb128, talking desktop, I assume?13:25
seb128yes13:25
seb128is there a difference there?13:26
seb128basically doing a snap install hello-world on xenial desktop13:27
seb128and hello-word.sh13:27
seb128ls /etc13:27
kyrofaseb128, yeah, there is. In ubuntu core the host system is the OS snap, in which case I can definitely say the /etc seen by a snap is that of the OS snap13:27
kyrofaseb128, but on the desktop, snaps still use the OS snap, but then you have the actual host system13:28
seb128it's weird13:28
kyrofaseb128, so unless something is bind-mounted somewhere...13:28
seb128like /etc seems the real system one13:28
seb128but /usr/lib isn't13:28
seb128mount doesn't list /etc13:28
seb128snaps are still magic to me :p13:28
seb128is there a document somewhere explaining how is the snap install "constructed"?13:29
kyrofaseb128, yeah this is best answered by mvo. I'm not sure what all is bind mounted into the OS snap on the desktop right now13:29
seb128$ mount | grep usr13:29
seb128/var/lib/snapd/snaps/ubuntu-core_113.snap on /usr type squashfs (ro,relatime)13:29
seb128$ mount | grep etc13:29
seb128$13:29
seb128I would expect the /etc to be the one of the snap (or ubuntu-core + snap) but doesn't seem to be the case13:30
kyrofaseb128, you mean if any old snap shipped a `etc` folder within it? I don't believe that's the case13:30
seb128old snap?13:30
kyrofaseb128, I mean any snap contains apps, not an OS snap13:31
seb128no, as said, install hello-world, run hellow-world.sh, ls /etc13:31
seb128what do I see13:31
seb128?13:31
seb128is that the pure host system one unmodified?13:31
kyrofaseb128, either that of the host system or that of the OS snap. Not sure which :)13:32
seb128kyrofa, is there an OS snap in the context of a xenial desktop install?13:34
kyrofaseb128, indeed, that's what I was trying to say13:34
seb128things are still confusing to me13:35
seb128like /etc is the real one13:35
seb128but /usr is the ubuntu-core one13:35
seb128it seems13:35
kyrofaseb128, that's why locales don't work-- the folder in which they'd normally exist is not bind-mounted into the OS snap, so snaps don't see them13:35
seb128right13:35
seb128I'm just surprised that the real /etc is under /etc13:35
seb128seems inconsistent13:35
seb128trying to understand the logic13:36
kyrofaseb128, perhaps a bit of a whack-a-mole-- maybe networking didn't work without /etc bind-mounted?13:36
seb128could be13:36
seb128kyrofa, thanks for the replies13:38
seb128kyrofa, do you know if there is a place where all the architectures choices are explained/described?13:38
mvoseb128: the /etc is from the host, we need quite a bit of data from there, e.g. hostname, timezone and stuff like that13:39
kyrofaseb128, not that I know of13:40
seb128mvo, isn't that potentially leaking infos like my service configs, users db, etc?13:40
mvoseb128: yes13:41
mvoseb128: it comes down to /etc is a mess that contains a lot of stuff that really should not be there13:41
jdstrandmvo: thanks for the merge of the unity7 PR. There are a few other related ones it looks like you've requested restesting on-- it would be great to have those in 2.0.5-- is that the plan?13:41
mvoseb128: fwiw, a lot of the potential leaking is managed by apparmor13:41
seb128mvo, I see, thanks13:42
mvojdstrand: 2.0.5 just went out, unless I need to redo that 2.0.5 is final, but there will be another one next week13:42
mvoseb128: anything specific you are concerned about?13:42
jdstrandI see13:42
seb128mvo, no, I'm just trying to understand how the snap "view of the world" is made, what comes from the system, what comes for the ubuntu-core snap, what comes from my app13:43
seb128mvo, is there any document describing the architecture?13:43
seb128mvo, seems that by default it sees the host but has bits overwriten by squashfs mounts (like /usr mounted from ubuntu-core) + apparmor restrictions? (and the .snap being mounted in its /snaps dir)?13:44
mvoseb128: its the hostfs with /lib,/usr,/bin/,/sbin,/lib64 from ubuntu-core to have clean libs and commands. the host /etc and /media and /var. plus apparmor (of course) to prevent snaps to poke at stuff they should not. no document afaik, I think it would be good to write one. the idea behind it is that its a super thin layer of abstraction/hidding so that hardware tools still work and you can still use the raw network and all that13:46
seb128mvo, that makes sense, thanks (was just trying to figure out what is available exactly and where)13:50
* mvo nods13:52
seb128mvo, I'm looking forward having the bind mounts of more specific dirs btw! (learnt earlier this week that's it got on the plan now ;-)13:53
seb128mvo, I was concerned about how hackish getting things like locales/translations/fonts etc working was before13:53
mvoseb128: yeah, there is a plan to open certain dirs for fonts etc up13:53
mvoseb128: its all still not super nice, its tricky to get right13:54
seb128right13:54
seb128well still an improvement13:54
mvowe fight 30years of legacy here :)13:54
mvoindeed!13:54
seb128some weeks ago ogra said that those had to be shipped in the snap and that it was by design13:54
seb128so good to see that the line of thinking is changing slightly13:55
mvoseb128: :)13:57
mvoseb128: would be a bit silly of all snaps would ship all fonts13:57
seb128yeah13:57
seb128or libc locales definitions13:57
mvoyeah13:57
ogra_seb128, well, once there will be a fonts snap that provides an interface13:59
ogra_today there isnt ... so you have to ship what you need13:59
ogra_(or wait for the interface ... or use --devmode)13:59
mvoyeah, I think thats it, ogra_ is describing the "today" but I think we want to get something better for "tomorrow"14:00
seb128ogra_, right, that's good ;-) (your responses a few weeks ago was "it's a feature/by design, there is no intention to provide things like locales for you, that would make snaps not independant enough")14:00
ogra_right14:00
seb128mvo, right, well that was not his position14:00
seb128but I'm happy with the current line of thinking ;-)14:01
ogra_seb128, well, in core there are no plans to add the loaclaes to the image14:01
seb128right, that's another topic14:01
seb128core needs to be small/restricted14:01
ogra_well14:05
ogra_we want desktops on top of core too at some point14:05
seb128unsure who would like that14:06
ogra_well, phones are supposed to be snappy eventually ...14:06
seb128having every app bundling the world including all existing fonts, locales definitions, etc doesn't seem compeling14:06
ogra_nah14:06
ogra_there you will have a desktop snap that provides an interface or some such14:07
ogra_though these are post-16 things14:07
seb128right, let's see when we get there14:09
seb128hum14:22
seb128did anyone look a providing a XDG_RUNTIME_DIR (/run/user/<uid>) in the snap env?14:23
seb128mvo, ^ do you know?14:24
=== chihchun is now known as chihchun_afk
seb128jdstrand, ^ or you?14:30
=== chihchun_afk is now known as chihchun
jdstrandseb128: I did not look at that14:38
seb128jdstrand, I commented on the gsettings bug saying it's needed for dconf to work14:39
seb128jdstrand, unsure if we should have a bug specific about that?14:40
seb128that = /run/user14:40
seb128I guess so14:40
ogra_wasnt there a discussion led by ted about having it in the launcher ?14:41
seb128could be, I was not around/where it was discussed14:41
seb128tedg, ^?14:41
ogra_similar to /tmp handling we have today14:41
ogra_yeah, it was a while ago14:41
tedgIt should probably be in the bash file generated for GUI apps.14:42
ogra_we definitely have open bugs where people worked around it by setting it to SNAP_DATA in their wrapper scripts14:42
tedgI'm not sure there should be a bunch of XDG variables set for apps that don't need them.14:42
ogra_well, on classic you kind of want to provide them14:43
ogra_i assume14:43
tedgNot sure you want to for the postgres server :-)14:43
tedg*probably* won't harm things, but eh.14:43
ogra_why not, as long as it is confined its just a tmpfs14:43
ogra_you dont want to point it to the real /run ... everything else should be safe14:44
tedgAt some point you have no way to reject an environment variable then. If you'll say that you'll set any value for any use-case. What is the case where an env wouldn't be put there?14:44
ogra_(you could also just hard-map it to /tmp/run/)14:45
seb128ogra_, tedg, but today we do need some things from the real /run to get things working though14:45
ogra_that needs urgent fixing i guess :)14:46
tedgseb128: I realize. I'm just saying that we're headed to a "junk drawer" situation of environment variable. I don't think you have a choice other than to include it.14:46
tedgseb128: You might be able to use the bindmounting thing that tyhicks is working on if you only want a few entries from there.14:47
seb128right14:47
ogra_well, the current target is --devmode snaps ... and grow the missing bits over timwe14:47
tedgogra_: Or switch to a desktop that doesn't have all these legacy interfaces not designed for confinement ;-)14:47
ogra_this should definitely be high on the list ... but we know in advance we cant fulfill all requirements immediately14:47
ogra_tedg, like wm2 or ion3 ?14:48
tedgogra_: I'm still running fvwm9514:48
ogra_heh14:49
ogra_already having antialiased fonts ?14:49
tedgI don't waste GPU resources with eye-candy like that.14:49
ssweenyzyga, is there anything left for me to do on the location interface?15:02
jdstrandbeuno: hi! I have a ufw snap for series 16. AIUI, people want it uploaded under the canonical account (fine). I have a ufw.jdstrand in 15.04 store. will I be able to create a ufw project under the canonical account and upload it to the store for series 16?15:35
beunojdstrand, great question!15:59
beunonessita will know15:59
nessitajdstrand, you should be able116:00
nessitalet me know if that is not the case16:01
jdstrandok, let me try16:01
jdstrandwhoa16:03
jdstrandthe store is a lot prettier all of a sudden :)16:03
=== chihchun is now known as chihchun_afk
beunosorry16:04
beunoblame beowulf16:04
jdstrandI'm not complaining :)16:04
beowulfYES! FEED ME YOUR PRAISE!16:11
kyrofabeowulf, I second the praise-- it's quite nice ;)16:13
beowulfkyrofa: it's the best i could do in between the beatings from beuno16:13
jdstrandnessita, beuno: it worked! :)16:15
qenghobeowulf: that Downloads graph threw me for far too long. Your Y axis direction broke my brain.16:22
niemeyer_jdstrand: ping16:29
mvojdstrand, tyhicks: how can I disable environment scrubbing in the apparmor profile of the ubuntu-core-launcher?16:47
tyhicksmvo: it shouldn't be happening16:48
mvotyhicks: interessting16:49
mvotyhicks: its my best theory so far :)16:49
tyhicksmvo: there are no exec rules that should trigger env scrubbing of the launched apps in that profile16:49
tyhicksmvo: I have some more investigation to do based on your new findings :)16:50
mvotyhicks: thanks!16:50
mvotyhicks: sorry, if the scrubbing is a red-herring, all I know is that with apparmor the LD_LIBRARY_PATH is gone and when I unload the profile around the launcher it works :)16:50
tyhicksmvo: apparmor can request secureexec which will cause env scrubbing16:51
tyhicksmvo: it shouldn't be requesting secureexec based on the launcher's profile16:51
mvotyhicks: fwiw, with  https://code.launchpad.net/~mvo/ubuntu-core-launcher/environment-file/+merge/295237 and bzr-buildpackage; sudo dpkg -i ../build-area/*1.0.29*.deb its easy to test. just install hello-world and add /var/lib/snapd/environment/hello-world.env with LD_LIBRARY_PATH=/something16:53
mvotyhicks: then hello-world.env|grep LD_ will either show up or not, depending on apparmor. this is what I used to test this16:54
mvotyhicks: anyway, not urgent, just an interessting puzzle :) I will get some dinner now16:54
tyhicksmvo: ack - thanks16:55
niemeyer_jdstrand: reping17:25
plarsjdstrand: jjohansen: well, I did a fresh build of the tests and they seem to run ok for me. Did that patch land already maybe?17:50
jdstrandniemeyer_: hey, sorry I was out for a little bit17:54
qenghoHi. How should we have apps that can write beneath SNAP_DATA that a service reads? sudo from outside doesn't have snap bin in the PATH, normally. I don't think I can sudo from inside the snap app.17:55
jdstrandyou can't sudo from within a snap17:56
qenghoRight.17:56
jdstrand/snap/bin not in PATH has an open bug17:56
qenghoAh.17:56
qenghoThanks.17:56
jdstrandsudo /snap/bin/foo works fine17:56
qenghoI assumed not in PATH was intentional.17:57
jdstrandplars: I'm quite sure the kernel patch has not landed anywhere17:58
=== chihchun_afk is now known as chihchun
klowSo Ubuntu Core is a minimal OS,  Snappy is a transactional udpdate system,  and snapcraft is sortof a Docker alternative for packaging apps to run on Core,  and Core also Supports Docker apps ? Am I understandinf that right?18:49
kyrofaklow, sort of. Snaps aren't quite as fat as docker containers, they're just isolated18:56
kyrofaklow, but yes, one can package docker in a snap18:56
niemeyer_jdstrand: Are we both here now? :)19:04
jdstrandniemeyer_: I think so :)19:05
niemeyer_Sweet19:05
niemeyer_jdstrand: Can we quickly go over the status of these interfaces we have up for review?19:05
niemeyer_jdstrand: We can start by network-manager..19:05
jdstrandsure19:05
jdstrandnm is committed last I saw19:06
jdstrandthere is a little fine-tuning I want to do, but that isn't hugely important or blocking19:06
jdstrandniemeyer_: ^19:08
niemeyer_jdstrand: Hmm19:08
niemeyer_jdstrand: I'm trying to find the comment where you point out it was very open.. I'm probably mixing up interfaces19:08
jdstrandniemeyer_: that was location service19:08
niemeyer_jdstrand: Ah, ok19:09
niemeyer_jdstrand: So how's that one going?19:09
jdstrandniemeyer_: specifically, the bus policy says that all the dbus interfaces can be used. this is in contrast to say, nm which had fine-grained bus policy19:09
jdstrandniemeyer_: I don't consider that blocking. if that is how the api is designed, apparmor will mediate the access.19:10
niemeyer_jdstrand: What sort of APIs exist under that interface?19:10
jdstrandniemeyer_: the issue with location service was zyga's and my interaction19:10
jdstrandniemeyer_: that's a good question. looking at the apparmor policy there are things to start and stop 'velocity, heading and position updates' (I guess that is to say whether or not you want to get positioning info) and then to receive position, heading and velocity from the service19:13
jdstrandand then Getting and Setting all properties19:13
klowAre snaps more fitting for apps which need persistent storage, example: a Snap containing SOGo (Apache, database + Postifx/Dovecot and persistent mailbox with virtual users from a remote LDAP server)19:13
jdstrandI think we'd need ssweeny to comment on everything that is available19:13
klowvs Docker19:13
jdstrandklow: snaps are designed to support persistent data conveniently19:14
niemeyer_jdstrand: Anything dangerous you can identify there?19:15
ssweenyjdstrand, niemeyer_ the API is pretty much what's shown in the apparmor rules19:15
niemeyer_ssweeny: ^19:15
jdstrandklow: each snap gets an app-specific writable area that it can do whatever it wants with, and upgrades are handled to19:16
klowIs there a full blown book on the snap architecture available yet? So I can really dig in and contrast it with other methods ?19:16
klowI see. That sounds pretty cool .  Arbritarily configurable size for the write area I assume?19:17
jdstrandklow: the community team is developing the docs. you might ask on the status when dpm or dholbach are around (both seem offline atm)19:17
jdstrandklow: there are no quotas, so no issues there19:17
jdstrandssweeny: well, yes but I don't know what is in the Get and Set methods19:17
niemeyer_jdstrand, ssweeny: Indeed, and who would use them to Set things19:19
niemeyer_Do we need location-control in addition to location19:19
niemeyer_?19:19
niemeyer_These seem slightly different19:19
klowIs there any UI , Web or otherwise so one can see which versions of snaps are on that particular server, and update them if desired ? I assume server can be configured as to allow only snaps from a private snap repository to be installed ?19:19
ssweenyjdstrand, ah, so the properties available are:                 "   is_online [get/set]\n"19:19
ssweeny                "   does_satellite_based_positioning [get/set]\n"19:19
ssweeny                "   does_report_wifi_and_cell_ids [get/set]\n"19:19
ssweeny                "   visible_space_vehicles [get]",19:19
klowsorry for so many questions I am tasked with going from manual sysadmin to package/container deployment wiz ASAP on a huge crunch :)19:20
jdstrandssweeny: the non-Set/Get apis seem all related to just setting up a session to obtain positioning info. I wouldn't mind Get as part of that based on what you just listed, but it seems odd to be able to Set some of those if this is just about access to positioning19:21
ssweenyjdstrand, right, as niemeyer_ said it might make more sense to have those in a separate controller interface. There's a command-line client which mostly makes use of those19:22
jdstrandklow: yes. 'snap list/snap refresh' and the webdm snap. as for private snap repo, I'll let others comment19:22
niemeyer_ssweeny: Can we split that up?19:22
jdstrandniemeyer_: now I wonder if this should be s/location/location-observe/ and then add location-control19:22
niemeyer_ssweeny: We can start by having that branch in just with the consumer side of things, which is likely the vast majority of cases19:23
ssweenyniemeyer_, sure. Would the dbus rules need to change as well?19:23
jdstrandas written, it was 'all of location' but you make a good point on splitting I think19:23
niemeyer_jdstrand: Yeah, that sounds nice19:24
niemeyer_ssweeny: To constrain the set side, I suppose..?19:24
jdstrandssweeny: in terms of policy, I think just remove Set from location-observe and add it to location-control19:24
jdstrandssweeny: you'll likely need a couple of org.freedesktop accesses in location-control19:25
jdstrandbut I think we are saying that you can observe (plugs location-observe), you can control (plugs location-control) or you can observe and control (plugs location-observe, location-control)19:26
jdstrandwhich is a long way of saying-- location-control is not all of location-observe + Set, it is pretty much just Set19:26
jdstrand(and whatever is needed to support Set, of course)19:27
jdstrandniemeyer_: beyond that ^, there is this comment which I think needs zyga's input: https://github.com/ubuntu-core/snappy/pull/1118/files#r6386981619:28
ssweenyjdstrand, ack19:29
niemeyer_jdstrand: Can I get a quick overview of the problem being covered there in terms of the actual snippets?19:30
niemeyer_jdstrand: How would the combined snippet look like?19:31
jdstrandniemeyer_: foo and bar want to connect to location, so the Plugs snippet has label={snap.foo.*,snap.bar.*}19:31
jdstrandniemeyer_: that works fine19:31
jdstrandniemeyer_: but the Slots snippet should also have label={snap.foo.*,snap.bar.*} in some rules, but it cannot currently19:32
jdstrandConnectedSlots to be precise19:32
jdstrand(and I'm taking zyga's work that it cannot currently)19:33
niemeyer_jdstrand: Would duplicating the same statement not work?19:34
niemeyer_jdstrand: that is, one with label A, another with label B?19:34
jdstrandniemeyer_: that would be totally fine19:34
niemeyer_jdstrand: Would it add, or would it replace?19:34
jdstrandit would add19:34
niemeyer_zyga: Not clear what's the problem then?19:34
jdstranddbus ... label={foo,bar} is the same as dbus ... label=foo, dbus ... label=bar19:35
jdstrandI'll be honest, I was confused that there was a problem after the comment on (I think it was) the nm PR19:36
jdstrandwhere I thanked zyga for the clarification19:37
klowIs snappy ubuntu proprietary, are there any restrictions or costs associated with its use commercially ?19:37
jdstrandso yes, I'm curious too19:37
jdstrandklow: just to answer you quickly, it is open source, there are open source reference kernel snaps that can be used and the os snap is open source19:38
jdstrandyou can have proprietary stuff on it, and there are certain things that you need to be Ubuntu certified, which can be used in various ways with the store19:39
klowCould my company run our own store for our own apps and have our devices/servers run only apps we have pushed to our private store?19:40
jdstrandbut, you may want to ask specific questions of Canonical or others on this list if you are using this commercially (I'm not the authoritative answer on all that)19:40
jdstrandI'm not up to date on that. beuno ^19:41
jdstrands/this list/this channel/19:41
jdstrandniemeyer_: did you have other questions regarding location or other interfaces?19:41
niemeyer_jdstrand: What else do we have up for review?19:42
jdstrandpulseaudio19:42
jdstrandI have an open question for you on that one19:42
jdstrandregarding shm19:42
niemeyer_jdstrand: Ah, sure?19:42
jdstrandlet me find it19:42
jdstrandactually, there are two things19:43
jdstrand1. recording19:43
niemeyer_jdstrand: On network-manager, one question I had was about whether we'd need some sort of separation too19:43
jdstrandI think it is probably fine to not block on that19:43
jdstrandbut to SRU morphis' pulseaudio 'snap.' check soonish19:43
jdstrandniemeyer_: you mean something along the lines of network-manager-observe vs network-manager-control? if so, I think probably not. nm isn't really designed that way and its API is vast and libraries (eg, qt) rely on being able to access all of it. I think 'network-manager' with no autoconnect is correct19:45
niemeyer_jdstrand: It's a slightly trickier one because we have conflicting (?) rules for network-observe and control, but it feels like we need the same sort of "lightweigh" vs "dangerous" case there19:45
niemeyer_jdstrand: Well, sort of19:46
jdstrandniemeyer_: but then we bring on safe interfaces like connectivity-api19:46
niemeyer_jdstrand: What's the proper way to find network status?19:46
jdstrandniemeyer_: the proper way is connectivity-api :) that was something the security team recommended the Touch guys write. it is an easy api, has a plugin into qt. it is a service that has a properly designed dbus api. you ask it, it asked nm19:47
jdstrandniemeyer_: but for nm, there isn't really a 'safe' one cause the libs pound scores of API calls to see if you are online, which reveals all kinds of sensitive info19:48
niemeyer_Hmmm.. interesting19:48
jdstrandniemeyer_: which is also why there is such a complicated bus policy and polkit policy around nm. it unfortunately isn't a well designed api... :\19:49
jdstrandand the bus policy/polkit stuff assumes a trusted client is connecting19:50
jdstrandsdoc is a weird hybrid though19:51
niemeyer_jdstrand: Really? Wow19:52
jdstrandon Touch we needed to be locked down. on iot, same thing. sdoc... it might be possible to tease out a few things that are ok, but I fear it isn't going to be very useful19:53
jdstrandfor example, in Ubuntu, polkit (probably only if you have a seat), will allow you to add/remove wife connections19:53
niemeyer_Alright, in the spirit of our priority agreements, I'm happy to move with it too19:53
thomijdstrand: does kyrofa's answer on https://bugs.launchpad.net/click-reviewers-tools/+bug/1582513 allow us to move forwards fixing this? If not, is there someone other than s3rgiusens we can ask (I believe he's on holiday?)19:54
ubottuLaunchpad bug 1582513 in Snapcraft "click-reviewers-tools fails on all python3-based snaps" [Undecided,New]19:54
jdstrandwe can always re-assess once people are using it19:54
niemeyer_jdstrand: So location is blocked on zyga's feedback19:54
jdstrandyes19:54
niemeyer_jdstrand: and on the split of control vs. observe19:54
jdstrandright19:54
jdstrandpulse is we need to agree on recording and the other question I had19:54
niemeyer_jdstrand: Anything pending for pulseaudio?19:54
jjohansenplars: sorry, no turns out my fix was no good19:54
* jdstrand goes to find that19:55
jdstrandniemeyer_: did you see my comments on recording, above?19:55
niemeyer_jdstrand: Unless there's an easy way to control recording vs. not, I think we should move forward19:55
jdstrandniemeyer_: ok, I think you missed what I said19:55
kyrofathomi, I expect you'll need to wait for sergiusens-- he's currently the only snapcraft dev19:55
niemeyer_jdstrand: I did.. still looking for it19:55
thomikyrofa: ok, thanks19:56
niemeyer_jdstrand: I cannot find the comments, sorry.. can you paste?19:57
jdstrandniemeyer_: morphis has a PoC for pulse that blocks recording if the connecting process' security label starts with 'snap.'. I suggest: we not block the interface on that, but SRU that change in the coming weeks. then, refine that check into a proper interface (perhaps a recording attrib?)19:57
niemeyer_jdstrand: Sounds great19:57
jdstrandok, I'll comment on that in the PR19:57
niemeyer_jdstrand: That's what I was going to suggest as well, despite not knowing a plan was already underway19:57
niemeyer_jdstrand: we can do pulseaudio-recording too19:57
jdstrandniemeyer_: then there is my other shm question19:57
niemeyer_or pulseaudio-record, actually19:58
jdstrandniemeyer_: right, we can discuss which is best19:58
niemeyer_following observe ,control etc19:58
* jdstrand nods19:58
niemeyer_jdstrand: But you're right, this may be the first case that an attribute might make sense.. let's see19:58
jdstrandniemeyer_: the other comment was really a clarification of: https://github.com/ubuntu-core/snappy/pull/1133#discussion_r6369343219:58
jdstrandniemeyer_: that is your comment. please see that then read mine19:59
niemeyer_jdstrand: the dev/shm?  What's the question on it?19:59
niemeyer_Looking19:59
niemeyer_jdstrand: Yes, I think we're on the same page19:59
niemeyer_jdstrand: I'm happy for both of them to go in.. the background is this:20:00
niemeyer_jdstrand: One of them gives a way its own playground without having to ask for interfaces or anything, at the price of changing its shm file name20:00
niemeyer_jdstrand: The other gives the process a way to communicate with other processes without changing its shm filename, at the price of having an interface well defined20:01
niemeyer_Both seem good20:01
niemeyer_I wish there was a way to unify them further, but given the semantics of /dev/shm, I'm not optimistic20:01
niemeyer_We'll probably need to patch the system more aggressively for anything better than this20:02
jdstrandyeah20:02
jdstrandok, cool20:02
jdstrandniemeyer_: I'm of the same opinion. I reopened the other PR. it would be great if you could LGTM it (or whatever is appropriate :)20:03
jdstrandniemeyer_: since we're on the topic of shm, I have an unrelated to pulse or that other PR question. this is on bug #157751420:04
ubottubug 1577514 in Snappy "Allow out of the box use of chromium based apps" [Undecided,Confirmed] https://launchpad.net/bugs/157751420:04
jdstrandShR3K: I can summarize20:04
jdstranderr20:04
jdstrandShR3K: nm20:04
jdstrandniemeyer_: I can summarize20:04
niemeyer_jdstrand: Which one?20:04
niemeyer_jdstrand: Sorry, I mean.. reopened which one?20:05
jdstrandniemeyer_: the chromium content api has a hardcoded path of /run/shm/.org.chromium.Chromium20:05
jdstrandniemeyer_: lemme get you that20:05
jdstrandoh, hmm20:06
jdstrandgimme a sec20:06
* jdstrand can't find it any more20:07
jdstrandoh, someone committed it20:07
jdstrandheh20:07
jdstrandI didn't see the email20:07
jdstrandniemeyer_: nm! :)20:07
niemeyer_jdstrand: It's in, isn't it? :)20:08
niemeyer_jdstrand: Ok, so the chromium case.. what's the trick there?20:08
jdstrandhttps://github.com/ubuntu-core/snappy/pull/113520:08
jdstrandyes, you merged it ^20:08
jdstrandthanks!20:08
* jdstrand will have to check his filters on why he didn't see the email20:09
jdstrandniemeyer_: ok, on to chromium20:09
jdstrandniemeyer_: so, chromium is hard-coding .org.chromium.Chromium20:09
niemeyer_Ok, I've read some of the content in the links you provided above20:09
jdstrandthat doesn't fit snap.<name>. of course20:09
jdstrandand I'm not sure how to solve that20:10
jdstrandchromium content api is a bear to build20:10
jdstrandso asking people to patch for s/.org.chromium.Chromium/snap.<name>./ seems onerous20:11
jdstrandwe could patch our stuff20:11
jdstrand(eg, oxide)20:11
jdstrandbut then electron wouldn't be fixed20:11
niemeyer_jdstrand: The problem I see with adding to existing interfaces is that we'd have to do one of two things:20:11
niemeyer_1. Allow anyone access to .org.chromium*20:11
niemeyer_2. Allow only a single snap access to it20:12
niemeyer_Both sound bad20:12
niemeyer_The first means snaps can read each other, so we're doing much really20:12
jdstrandthe only thing I can think of is allowing /run/shm/.org.chromium.Chromium.*, but that is imprecise and is not app-specific20:12
niemeyer_The second means we have system-wide per snap rules, which is pretty bad20:12
niemeyer_jdstrand: Where is that path defined, and how is it used?20:13
jdstrandniemeyer_: hard coded in the source20:13
niemeyer_jdstrand: Of every single app, or of chromium proper only?20:13
jdstrandniemeyer_: I believe it is used to coordinate between the renderer process and the 'chrome' (outer process)20:14
niemeyer_jdstrand: So it's internal only, rather than a way to share20:14
niemeyer_(share across snaps)20:14
jdstrandniemeyer_: anything that uses the chromium content api. so, our webview, our webbrowser-app, kde's webcontent thingie, opera, electron apps, etc20:15
niemeyer_jdstrand: Across them, or internally to them?20:15
jdstrandniemeyer_: it is intended as internal only, yes and chromium is coded such that it uses a tmpfile style (ie, its defensively coded)20:15
jdstrandniemeyer_: internally20:15
niemeyer_jdstrand: Okay, so I think the easiest is LD_PRELOAD + /dev/shm/snap.$SNAP_NAME.*20:16
jdstrandie, our webbrowser-app by using chromium content api create /run/shm/.org.chromium.Chromium.XXXXXX20:16
jdstrandwel20:16
jdstrandwe could actually20:16
jdstrandbut chromium uses open() not shm_open20:17
jdstrandso we'd LD_PRELOAD open(), which we could do, but since we'd be doing a string match on the path (if path starts with .org.chromium.Chromium.* then use snap.<name>)20:18
jdstrandbut that feels kinda icky to do with open()20:18
jdstrandI mean, open() is used in just a few places :)20:18
niemeyer_jdstrand: No strong emotions on my side :)20:18
jdstrandI wonder about the performance impact...20:19
jdstrandbut it can be explored20:19
niemeyer_jdstrand: Very hard to believe20:19
niemeyer_jdstrand: We're talking about a couple of long jumps that are about to go into a freaking syscall20:19
niemeyer_jdstrand: The CPU delays are most probably completely irrelevant compared to the cost of the syscall20:20
jdstrandI'm happy to summarize this conversation in the bug and followup with zyga, who I think already has an implementation for shm_open20:20
jdstrandniemeyer_: I think that's it20:21
niemeyer_jdstrand: Sweet, looks optimistic! :)20:22
jdstrandindeed!20:22
ssweenyjdstrand, niemeyer_ I've pushed up the location-observe rename. I can add the -control interface to this branch tomorrow or to a later merge20:22
jdstrandniemeyer_: you might be interested in https://bugs.launchpad.net/snappy/+bug/1583514/comments/120:23
ubottuLaunchpad bug 1583514 in Snappy "firewall-control and ip[6]table_filter module loading" [Medium,Confirmed]20:23
niemeyer_jdstrand: Ah, there's also the cups interface20:23
niemeyer_ssweeny: Looking20:23
jdstrandoh right20:23
jdstrandthe cups one scares me as is20:23
niemeyer_ssweeny: This was just the rename.. is closing it down to actually only observe quick?20:24
niemeyer_ssweeny: If so we can probably get it in imminently20:25
niemeyer_ssweeny: Otherwise I need to leave soon20:25
ssweenyniemeyer_, already removed the properties stanzas20:26
ssweenythey aren't necessary for clients20:26
* jdstrand notes that location also needed zyga's comment20:27
niemeyer_ssweeny: Hmm.. shold Get be there, though?  jdstrand?20:27
jdstrandI think Get is fine. there is nothing sensitive there20:28
ssweenyniemeyer_, clients work without it20:28
niemeyer_ssweeny: Can we please get Get back?20:28
jdstrandso either way is ok20:28
ssweenyniemeyer_, I can do that20:28
niemeyer_ssweeny: Thans!20:28
niemeyer_ks!20:28
jdstrandthomi: that answer means the problem is in snapcraft which I think means either s3rgiusens or kyrofa20:29
jdstrandniemeyer_: did you see my scary comment regarding cups?20:30
niemeyer_jdstrand: Yeah, I like your idea of having it as cups-control20:31
thomijdstrand: ok, thanks.20:31
jdstrandniemeyer_: note that it is also possible to do the exact same thing with cups as pulseaudio. the problem would be finding all correct mediation points in software that gets a lot of CVEs...20:34
jdstrandI think cups-control is the fastest option. I can also adjust snappy-debug to mention ipp:localhost:631 if trying to use the socket so developers have the option to update their code20:35
jdstrandthe nice thing about pulseaudio it it seems to have a decent hooks interface. cupsd does not20:36
jdstrandanyhoo20:36
ssweenyniemeyer_ pushed with those stanzas back in20:38
niemeyer_ssweeny: The comment is wrong.. (sorry, but since we're at it)20:41
ssweenygah20:41
ssweenyniemeyer_ fixed20:42
niemeyer_ssweeny: I need to step out now anyway, and we need to let those tests run.. I'll have a look again when I'm back and if it's all green, it'll be merged20:42
ssweenyniemeyer_ sounds good. Thanks!20:43
niemeyer_ssweeny: Thanks a lot for this and for all the great work you've been doing on interfaces. Seriously appreciated.20:43
mmstickAre Rust projects supported by Snappy?20:43
zyganiemeyer_: based on the conversation, since apparmor is additive I think there is no problem anymore21:15
* zyga still goes through backlog21:18
qenghoMan, I wish "snap" were more resilient to my control-c's.21:34
jdstrandniemeyer_: please comment if I didn't get the summary right: https://bugs.launchpad.net/snappy/+bug/1577514/comments/221:47
ubottuLaunchpad bug 1577514 in Snappy "Allow out of the box use of chromium based apps" [Undecided,Confirmed]21:47
jdstrandtyhicks: fyi, I think I need to bump up the priority of the review tools 'confinement' check since I'm seeing PRs and landings related to this in other areas22:01
* jdstrand bumps it and queues for tomorrow22:02
tyhicksjdstrand: ack - seems reasonable as the surrounding work is moving fast22:02
* jdstrand nods22:02
jdstrandwith weekly snapd SRUs, I'm thinking there isn't the 3 weeks time initially thought22:02

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