/srv/irclogs.ubuntu.com/2016/11/18/#snappy.txt

mupPR snapcraft#915 closed: cache: cleanup logic to pass project name <Created by sergiusens> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/915>02:48
mupPR snapcraft#916 opened: sources: missing command instead of package <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/916>03:12
mupPR snapcraft#917 opened: wip <Created by elopio> <https://github.com/snapcore/snapcraft/pull/917>04:00
=== chihchun_afk is now known as chihchun
=== JanC_ is now known as JanC
mupPR snapcraft#918 opened: create the deltas package/class with xdetal generation implementation <Created by seawaywen> <https://github.com/snapcore/snapcraft/pull/918>06:51
foxmaskbonjello07:06
tvosszyga: o/08:12
oSoMoNMirv, when running the webbrowser-app snap that depends on ubuntu-app-platform, I’m seeing the following message at app shutdown: "libgcc_s.so.1 must be installed for pthread_cancel to work"09:21
oSoMoNMirv, and indeed, usr/lib/x86_64-linux-gnu/libgcc_s.so.1 is not included in the ubuntu-app-platform snap, do you know why? It should be, given that it’s a direct dependency of liboxideqt-qmlplugin09:22
MirvoSoMoN: the whole usr/lib is being exported, but it's not there. I guess you mean /lib/ ...09:29
MirvoSoMoN: it should be part of Ubuntu Core09:30
MirvoSoMoN: at least it looks to be for me09:30
MirvoSoMoN: so on my platform using snap there is /lib/x86_64-linux-gnu/libgcc_s.so.109:30
oSoMoNMirv, indeed it’s part of ubuntu-core, but it looks like the app is not seeing it for some reason09:31
oSoMoNMirv, I’ve reverted to the version of the webbrowser-app snap that ships all its dependencies (including oxide), and I’m not getting the error message about libgcc_s.so.109:37
MirvoSoMoN: I don't know how it'd be even possible to remove the Core's /lib path from the library search path. looking at the desktop-launch launcher, that also just adds new directories http://pastebin.ubuntu.com/23494754/09:42
MirvoSoMoN: I assume your dep including snap has the $SNAP/lib/arch/libgcc_s.so.1 however?09:43
MirvoSoMoN: I could export the /lib too from platform snap and add it to LD_LIBRARY_PATH, but I was under impression that would make no sense09:43
oSoMoNMirv, I don’t think this should be necessary, it looks to me more like a bug in snappy itself, I’m filing a bug so we can track/investigate it09:45
oSoMoNMirv, https://bugs.launchpad.net/snappy/+bug/164290009:47
mupBug #1642900: libgcc_s.so.1 not found by app using ubuntu-app-platform content snap <Snappy:New> <https://launchpad.net/bugs/1642900>09:47
mupBug #1642900 opened: libgcc_s.so.1 not found by app using ubuntu-app-platform content snap <Snappy:New> <https://launchpad.net/bugs/1642900>09:47
=== pachulo_ is now known as pachulo
binchenhi, i have one question.. how a snap actually call the interface in another snap? I assume there should be some sort of IPC, right?10:24
tvossbinchen: it depends on the interface, some interfaces sit on top of IPC mechanisms (say DBus), others sit on top of the filesystem10:25
binchentvoss: and they are transparent to the user?10:26
tvossbinchen think about an interface as a means to describe an interaction (arbitrary on purpose) and the permissions that are required to carry out the interaction10:26
tvossbinchen: transparent as in?10:26
binchenI mean the user don't aware of or care about what the actually ipc is10:27
binchenand the producer thus are free the change the way the method is called..10:28
binchenI come from a Android backgroud, and kind of trying to do a analogy here10:29
binchenin Android, a component can expose a service/interface through binder10:30
binchenand will always through binder..10:31
binchenI'm not sure if it is correct to equivalent a snap interface to the Binder interface though10:32
binchenhttp://docs.ubuntu.com/core/en/reference/interfaces10:33
tvossbinchen: not really, binder would be just another transport10:49
tvossbinchen: and yes, to a user, the underlying implementation is transparent10:50
binchentvoss: pierrchen@localhost:~$ snap interfaces camera10:51
binchenSlot  Plug10:51
binchenis this expected? I'm using a kvm , and was trying to see what are included for the camera interface10:52
binchenI'm expecting see some kind of APIS.10:52
binchenbut may be that expectation is wrong ..10:52
tvossbinchen: it's not apis, more like functional blocks10:52
tvossbinchen: an example would be location-observe10:52
binchenhmm...10:53
binchenso there is no need to know what are the APIs provided by a snap10:53
binchenor we just treat them as a whole function??10:53
tvossbinchen: well, as a package if you want so (to draw an equivalent to Android's java runtime)10:54
tvossbinchen: so in the snap world, interfaces help to wire functional requirements together10:54
binchenbasically, I'm trying to see how snaps are talk to each others10:54
tvossbinchen: there is no canonical answer, depends on the functional block10:54
binchenespecially, talk to the core snaps - iiuc, core snaps provided the core functionalitys such as camera, bluetooth,10:55
tvossbinchen: trying to rephrase: there is not the IPC as in Android, but apps and services are free to use to cover their requirements10:55
binchenOK, what about the core snapps10:55
tvossbinchen: nope, the core snap is really lightweight, camera, bluetooth and friends all come in via additional snaps10:55
binchenhow a core snaps provided services to other "user snaps"?10:56
binchenOK10:56
tvossfor the core snap specifically, that happens on a filesystem level. the core snap mostly exports libc (I'm oversimplifying here, but I think you get the message)10:57
binchenis it possible we have two camera snaps, all declare provide camera functionality?10:57
tvossbinchen: sure10:57
binchenhm....won't there be problem, say both two camera snaps trying to use the /dev/vidoe nodes?10:57
binchenand they aren't aware of each other?10:58
tvossah, now we get to an interesting point. sure, but that's where interfaces come in handy, too10:59
binchenI may still didn't get the exactly meaning of interface here. I thought it is just a interface as it normal mean in java, for example10:59
tvossnope, it is not an interface in the software engineering sense11:00
binchenyeah, I guess that is my biggest confusion so far :)11:00
binchenas  a software person :)11:00
binchenit is hard to get my head around that..11:00
tvossokay, so let me follow up on your camera example: simultaneous access to /dev/video* whatever is not possible, so you would need an intermediate service, right11:01
tvossbinchen: no worries :)11:01
binchen"Interfaces allow snaps to communicate or share resources according to the protocol established by the interface. Each connection has two ends, a "plug" (consumer) and a "slot" (provider). A plug and a slot can be connected if they use the same interface name. The connection grants necessary permissions for snaps to operate according to the protocol."11:01
binchenfrom here http://docs.ubuntu.com/core/en/guides/build-device/interfaces11:01
tvossthe intermediate service, e.g. camera-service snap, would use an interface camera-hw-access11:01
binchenso what exactly happen after the plug?11:01
binchenI can understand the concept of plug/slot11:02
tvossthe interface camera-hw-access would contain code to make sure that camera-service can access /dev/video*11:02
tvossapplications using the camera would then use camera-service, which in turn could provide a slot for camera-access (note the missing hw :))11:03
binchenthat make sense11:03
binchenjust to make sure I understand you correctly, camera-hw-access is a snap right?11:04
binchenand it is not provided by canonical? could be anyone?11:04
tvossnope, camera-hw-access is an interface, that describes how security policy has to be setup to allow a snap with a camera-hw-access plug to access /dev/video*11:04
binchenhow about camera-service snap? who will provided it? Can we have two?11:04
tvossbinchen, sure, you can have two camera-service snaps, they both would have a plug for camera-hw-access11:05
binchenhha..11:05
binchenso what exactly is the pierrchen@localhost:~$ snap interfaces11:06
binchenSlot                    Plug11:06
binchen:bluetooth-control      -11:06
binchen:camera11:06
binchenthe camera interface here?11:06
binchenis that the camera-hw or camera-service, or neither?11:07
tvossin that list, there is something providing a slot for interface camera11:07
tvossthat's camera-hw11:07
tvossbinchen: for reference: https://github.com/snapcore/snapd/blob/master/interfaces/builtin/camera.go11:07
binchencool!!!11:07
binchenI guess that is whant I want to check out11:07
tvossack11:07
tvossso camera.go is obviously hw and super simple (just access to a bunch of device nodes)11:08
tvossa hypothetical camera-observe interface would be more sophisticated, capturing ipc specific requirements etc (in the example of camera service <-> apps)11:09
binchenis the only operation we can do to interface is to connect and disconnect?11:12
binchenand after connect it, you are able to access the resource (e.g the dev nodes in camrea interface)  in that package>11:14
tvossyup, exactly11:15
binchenso, it's about security only11:16
binchenI checked other buildin interfaces11:17
binchenseems all AppArmor, SecComp related11:17
binchenso, what is the way to implement normal functionality/API exposing?11:18
binchensay one snap can do add(), substract()11:19
binchenand aonther snap want to use that functionality?11:19
tvossbinchen: so we typically use dbus for that, but the choice is ultimately up to you :)11:20
tvossbinchen: say you had your own idl/ddl and framework, you could use a unix socket as a transport11:20
binchenOK..11:20
binchenI get it11:21
binchenso the snap is more focus on the security side of things11:21
binchenits not about the idl/binder/dbus stuff11:22
tvossbinchen: the key thing really is: snappy does not have an opinion on the way communication is established, it just wants to know certain aspects about the connection (like security) to be able manage connections between plugs and slots for a given interface11:22
tvossbinchen: precisely that11:22
binchenI finally get that!11:22
tvossbinchen: *ideally* existing software would run unmodified.11:22
binchenyeah, otherwise, much bigger changes11:23
binchento the legacy code11:23
binchenso snap is more a package innovation11:24
binchennot how you write your software :)11:24
binchentvoss: really appreciate you taking your time answer my dumb questions!11:27
tvossbinchen, happy to, and there is no such thing as a dumb question :)11:28
binchenI'm heading for bed now. it is 10:30PM.  See you11:28
tvossbinchen: see you :) have a good night11:28
binchenhave a good day!11:29
tvossthx11:29
mupPR snapcraft#916 closed: sources: missing command instead of package <Created by sergiusens> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/916>11:30
mupPR snapcraft#912 closed: Add a gradle demo and test <Created by elopio> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/912>11:33
ilivwhat are other variables similar to $(DESTDIR) that can be used in custom Makefile's? specifically, I'm wondering if there is a variable that points to parts/$PAR_NAME/build directory?11:57
=== chihchun is now known as chihchun_afk
didrocksiliv: it's a good question, by convention, this is BUILDDIR in the debian world, but it doesn't seem that snapcraft has anything like this13:08
didrocksiliv: maybe time to open a feature request, you can override this in a custom plugin (inherited) meanwhile13:08
ilivdidrocks, https://launchpad.net/snapcraft is this the project?13:17
didrocksiliv: correct!13:19
ilivdiddledan, okay, I'll create a feature request. What are other variables besides $DESTDIR, though? And where can I look them up?13:20
sergiusensdavidcalle dholbach and/or didrocks mind looking at https://github.com/snapcore/snapcraft/pull/91913:25
mupPR snapcraft#919: docs: update GUI related integrations <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/919>13:25
didrocksiliv: I just grepped in the snapcraft code directly, like the cmake plugin at snapcraft/plugins/cmake.py13:25
didrockssergiusens: davidcalle will have a look (finishing a meeting right now) I think, thanks for the ping!13:26
sergiusenswait wait, are you a marketting manager now ? :)13:26
* sergiusens does his Friday trol-lol-lol :-)13:26
didrocksrohlalala :)13:27
mupPR snapcraft#919 opened: docs: update GUI related integrations <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/919>13:27
* didrocks files more bugs on snapcraft as a revenge :)13:27
sergiusensdidrocks I can just do what other projects do ;-)13:28
sergiusenswrt bugs13:28
davidcallesergiusens: thanks, will have a look in a moment :)13:28
sergiusensdavidcalle great, this will be fluctuating in the coming days as I implement declarative desktop files13:29
davidcallesergiusens: 🎆13:30
didrockssergiusens: tsssss, you wouldn't go that easy path, would you? :)13:30
sergiusensdidrocks nah13:30
Chipacatyhicks, jdstrand, is https://bugs.launchpad.net/snappy/+bug/1611078 actually fixed in xenial via #1628285 or is that separate?14:03
mupBug #1611078: Support snaps inside of lxd containers <landscape> <lxd> <nova-lxd> <verification-failed-xenial> <Snappy:Fix Released by stgraber> <apparmor (Ubuntu):Fix Released by tyhicks> <linux (Ubuntu):Fix Released by jjohansen> <lxd (Ubuntu):Fix Released by stgraber> <apparmor (Ubuntu14:03
mupXenial):Confirmed> <linux (Ubuntu Xenial):Fix Released by jjohansen> <lxd (Ubuntu Xenial):Fix Committed> <apparmor (Ubuntu Yakkety):Fix Released by tyhicks> <linux (Ubuntu Yakkety):Fix Released by jjohansen> <lxd (Ubuntu Yakkety):Fix Released by stgraber> <https://launchpad.net/bugs/1611078>14:03
mupBug #1628285: apparmor should be allowed to start in containers <lxd> <verification-done> <apparmor (Ubuntu):Fix Released by tyhicks> <upstart (Ubuntu):Invalid> <apparmor (Ubuntu14:03
mupTrusty):Incomplete by tyhicks> <upstart (Ubuntu Trusty):Incomplete by tyhicks> <apparmor (Ubuntu Xenial):Fix Released by tyhicks> <https://launchpad.net/bugs/1628285>14:03
Chipacastgraber, and is it fixed in lxd on xenial?14:03
* jdstrand defers to tyhicks 14:04
Son_Gokusergiusens, any luck on the pluggable engines for (stage|build)-packages?14:05
jjohansenmup: 1611078 is the bug the kernel portion was done under, I believe tyhicks is also doing the user space sru for under that as well14:07
mupjjohansen: I apologize, but I'm pretty strict about only responding to known commands.14:07
jjohansenhowever you will note that the apparmor userspace component is not currently marked fix released for xenial14:08
Chipacajjohansen, hence me asking14:09
jjohanseneven the full set of srus, apparmor, kernel, lxd, and fuse there are still some bugs to iron out for some snaps14:09
jjohansenChipaca: iirc there was still some verification to be done on the sru14:09
Chipacafgimenez was trying to see if https://bugs.launchpad.net/snappy/+bug/1630789 was done, but to verify that from a xenial host is not possible because of this14:10
mupBug #1630789: normal users can't run snaps inside of LXD containers <verification-needed> <Snappy Launcher:Fix Released by jdstrand> <Snappy:In Progress by tyhicks> <snap-confine (Ubuntu):Fix Released by jdstrand> <snapd (Ubuntu):Fix Released by tyhicks> <snap-confine (Ubuntu Xenial):Fix Committed>14:10
mup<snap-confine (Ubuntu Yakkety):Fix Committed> <https://launchpad.net/bugs/1630789>14:10
Chipacathat is, there's no way for this one to be fixed before that one is fixed :-)14:10
jjohansenChipaca: yeah, I would not call this fixed on xenal yep14:11
Chipacafgimenez, I think I deserve a cookie for saving you some work. Shame I didn't notice you were doing this before... :-)14:12
jjohansenwhich does mean 160789 is not fixed either14:12
Chipacajjohansen, that's fine, it's hairy but we'll get it sorted eventually14:12
Chipacai don't mean to be rushing anybody, just that we know where we are14:13
jjohansenChipaca: we are close14:13
jjohansenI'm not sure exactly what is left as tyhicks has been handling that while I try to squash bugs14:14
zygajjohansen: hey, nice to see you again :)14:15
jjohansenhey zyga :)14:15
fgimenezChipaca, a very big cookie, yes :)14:25
didrocksjdstrand: hey! so, I'm wondering why your alsa snap doesn't work for me as a snap and works for you (and seb). My only plausible explanation is that the system aplay is using the gstreamer backend and forward it to it, while the version you are shipping don't have that backend and sends directly to the card… My card may not support multiple streams hence the "device is busy" message?15:16
didrockss/gstreamer/pulseaudio/15:16
jdstranddidrocks: I don't know. I git cloned it, snapcrafted it, installed it and it worked15:17
didrocksjdstrand: you didn't embeeded the pulseaudio configuration files on purpose though, right?15:18
didrocksor that may be ubuntu patches?15:18
jdstranddidrocks: I don't know how the locking on all of that works. no I didn't. did they end up there?15:18
jdstranddidrocks: you saw the snapcraft.yaml, right? I literally stage-packages and ship a few alsa config files. that's it. no source code, nothing fancy15:19
didrocksjdstrand: they are not in the snap while there is /usr/share/alsa/pulse-alsa.conf and /usr/share/alsa/alsa.conf.d/15:19
didrocksyeah, the alsa config files are cloned from upstream?15:19
didrocks(not from our ubuntu package)15:19
didrocksI thought you copied files from /usr/share/alsa and so, omitted the pulse thingy on purpose15:20
jdstranddidrocks: /usr/share/alsa/pulse-alsa.conf isn't going to be in the core snap though15:21
jdstranddidrocks: no. I grabbed those files from the ubuntu packaging15:21
didrocksI was thinking on the file that you copied in etc/15:21
didrocksah interesting15:21
didrocksthey are surely in the pulseaudio package15:21
jdstranddidrocks: and modified them to work well enough here15:21
didrockshum libasound2-plugins:amd64: /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf15:22
didrocksyeah15:22
jdstrand$ ls -lR /snap/alsa-utils/current/|grep pulse15:22
didrocksjdstrand: I really wonder if this isn't card dependent… some accepting multiple streams, other not15:22
jdstrand[1]15:22
jdstrandthere is nothing in the snap about pulse. I'm confused why you keep talking about pulseaudio files in /usr/share15:22
didrockssorry, I probably misexplained myself15:23
jdstrandI mean, feel free to try to put the pulseaudio file in there-- maybe that works, but since this was about accessing the device directly I was keeping pulseaudio out of it15:23
didrocksso, my system aplay works well, but not the one from the snap "device is busy" with exactly the same parameters15:23
jdstrandI see. yeah, I don't know :)15:24
didrocksthe only difference I can think of is that the system aplay, in /usr/share/alsa/ has those pulseaudio config and so, forward it to pulseaudio15:24
jdstrandlike I said, I'm not claiming anything about that snap except that it worked here enough to develop security policy for the interface15:24
didrockscontrary to the one in the snap, and maybe my card isn't capable of handling multiple stream15:24
didrocksyeah15:24
didrocksif I can get it work and forward in pulseaudio, we may need 2 parts15:25
didrocksonce with alsa-with-pulseaudio15:25
didrocksand one with alsa-only15:25
jdstrandah, you are working on the part. ok, now things are making more sense to me :)15:25
didrocks(one of the example is timidity, which only has alsa support)15:25
didrocksyeah, but before working on the part, I need to get it working on my desktop :)15:25
jdstrandI suspect that would make sense-- to try to emulate what we are doing on Ubuntu15:25
didrocksthat's why, out of this theory, I don't understand why it's working for you and not for me15:26
jdstrandI just don't really have any experience with alsa15:26
didrocksyeah, same :/15:26
jdstranddidrocks: perhaps start by forking my branch and then adding those pulse files in usr/share/alsa (modifying as needed)15:26
didrocksyeah15:27
didrocksI need to add a lot of pulseaudio libs as well15:27
didrocksfor the module15:27
sergiusensdavidcalle so are we good with snapcraft#91915:28
mupPR snapcraft#919: docs: update GUI related integrations <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/919>15:28
sergiusens?15:28
didrocksjdstrand: I will just cross fingers that my theory is the correct one :)15:28
jdstranddidrocks: it wouldn't surprise me if it was. that is a big reason why things like pulseaudio exist-- limitations of hardware15:33
didrocksyeah, let's cross fingers. I'll keep you posted15:33
tyhicksChipaca: Hi - the apparmor userspace fix of bug #1628285 has already landed - I've just updated the bug15:38
mupBug #1628285: apparmor should be allowed to start in containers <lxd> <verification-done> <apparmor (Ubuntu):Fix Released by tyhicks> <upstart (Ubuntu):Invalid> <apparmor (Ubuntu15:38
mupTrusty):Incomplete by tyhicks> <upstart (Ubuntu Trusty):Incomplete by tyhicks> <apparmor (Ubuntu Xenial):Fix Released by tyhicks> <https://launchpad.net/bugs/1628285>15:38
tyhicksChipaca: last I checked, there was still a kernel change needed to allow fuse filesystems to be mounted inside of user namespaces15:39
tyhicksChipaca: you'll probably want to check with stgraber on that remaining issue because, AFAIK, he was handling the squashfuse stuff15:40
stgraberI believe you still need to manually install squashfuse, that's not something I can do much about though, I've requested the snapd team to make it a dependency quite a while ago...15:43
stgraberfor my part, I made sure squashfuse is available in xenial, yakkety and zesty15:43
stgraberthat's https://bugs.launchpad.net/snappy/+bug/1628289 which is still marked as New against snappy...15:44
mupBug #1628289: snapd should depend on squashfuse (for use in containers) <lxd> <verification-done> <Snappy:New> <squashfuse (Ubuntu):Fix Released by stgraber> <squashfuse (Ubuntu Xenial):Fix Released> <https://launchpad.net/bugs/1628289>15:44
davidcallesergiusens: yes, wfm15:56
mterrySo I filed bug 1642350 about snapcraft in Launchpad silently ignoring a stage-package.  Does anyone know why that would happen?15:56
mupBug #1642350: webbrowser-app silently being excluded from stage-packages <Snapcraft:New> <https://launchpad.net/bugs/1642350>15:56
stgraberso quick question, related to https://github.com/snapcore/snapd/pull/2225, what happens if I add a "slots" entry which snapd doesn't know about yet?15:57
mupPR snapd#2225: Implement lxd-client interface exposing the lxd snap (LP: #1634880) <Created by kalikiana> <Merged by jdstrand> <https://github.com/snapcore/snapd/pull/2225>15:57
stgraberI'd like to add "slots: [lxd]" to the lxd snap to make that ^ interface useful, but I don't want to suddenly break anyone who doesn't have a recent enough snapd15:58
didrocksjdstrand: I think the only way to get something clean is to rebuild alsa-lib (but I don't know how to not hardcode /snap). There is no way to define a dynamic plugin directory (for the pulse one)16:28
didrockseven adding to LD_LIBRARY_PATH, it's still looking at it in /usr/lib…16:29
jdstranddidrocks: boo :)16:29
jdstranddidrocks: at least that can be done in a part...16:29
didrocksjdstrand: yeah… I have a very very big hammer workaround for the deadline at least16:30
zygajdstrand: https://github.com/snapcore/snap-confine/pull/18316:42
mupPR snap-confine#183: Detach the hostfs version of /sys <Created by zyga> <https://github.com/snapcore/snap-confine/pull/183>16:42
zygajdstrand: a trivial branch that may unbreak docker16:42
zygajdstrand: the diff is long because of test data changes (but in very expected ways)16:43
zygajdstrand: looking at this I'd like to do /dev and /proc as well, this would cut down on weird filesystems showing up twice16:43
zygajdstrand: once this lands I'll run a pass of snapd tests against snap-confine master16:44
zygajdstrand: and a related apparmor question, is there a confinement option for umount to say unount but only when MNT_DETACH was passed?16:44
zygalool: ^^ any opinions on /dev and /proc16:46
loolzyga: I'd suggest doign the same on devpts, dev and proc16:47
loolseems consistent since these aren't accessible anyway16:47
zygalool: all of /dev (includes devpts)16:47
zygalool: yeah, I'll follow up after I get a +1 from jdstrand16:48
zyga(or tyhicks if he wants to look)16:48
loolok; I usually have to bind mount devpts separately in chroots, but I dont know about mount namespaces behavior there16:48
zygalool: we have that in /dev16:48
zygalool: this is the one from "outside" that nobody is supposed to use anyway16:48
zygalool: I think that it makes sense, we want access to host / classic files (e.g. fonts) but not to the duplicated fileystems like /proc which we bind mount anyway16:49
loolcan I get an unconfined shell in the right namespace with snap run?16:49
zygalool: easily with nsenter16:50
zygalool: not with snap-confine16:50
zygalool: just try nsenter -m/var/lib/snapd/ns/$SNAP_NAME.mnt16:51
zygalool: very useful!16:51
zygalool: you cannot have a space after -m, it's totally annoying16:51
zygaer16:51
zygasorry16:51
stgraberzyga: can you answer my earlier question? Is it safe to add "slots: [lxd]" to the lxd snap even if some/most snapd don't know what that interface is yet?16:51
zygalool: that path is /run/snapd/.ns/$SNAP_NAME.mnt16:51
zygastgraber: sorry I didn't see that earlier, the answer is 1) yes 2) it must not clash with any plug (plug and slot names must be unique in one snap) 3) the store will choke on that16:52
zygastgraber: snapd ignores unknown interfaces16:52
stgraberzyga: sounds good16:52
loolzyga: that's great, cause I could now confirm that this fixes docker16:52
loolumount --lazy /var/lib/snapd/hostfs/sys16:52
zygalool: great to know, please add this to the pull request16:53
jdstrandzyga: ack, I'll look. I don't see anything in man apparmor.d about detach16:53
zygalool: I plan to work on live namespace mutation soon after classic confinement, what you just did will be done by snapd on interface changes :)16:53
loolzyga: and also that unmont dev along is enough16:53
jdstrandzyga: jjohansen would know for sure (he'll be back later)16:53
zygalool: thanks16:54
jdstrandzyga and lool: note that snap-confine has special handling of devpts16:54
zygaright16:54
lazyPowerHey, do we know if there is a weechat snap or a WIP of one?16:58
lazyPoweri checked uappexplorer, not sure if there's a better place to look16:58
lazyPowerbefore i tackled snapping up weechat i thought it would be best to ask the community at large16:58
loolzyga: these are the fses I would expect apps to try to access, but there might be more and generally this pollutes mount output; would you be able to simply unmount everything under /var/lib/snapd/hostfs?16:59
didrockslazyPower: not that I know of. I would be interested by it, running weechat currently :)16:59
lazyPowerdidrocks patch-pilot me? :D16:59
jdstrandzyga: ok, approved. now can you reciprocate and review 181 and 182?16:59
zygalool: I could detach all of hostfs16:59
jdstrandzyga: :)16:59
zygajdstrand: yes!17:00
zygajdstrand: taking my laptop on the go and going to review those two17:00
didrockslazyPower: heh, with pleasure! (but not today, EOW now ;))17:00
didrockslazyPower: I don't think it would be complex17:00
lazyPowerack, i'll circle back on Monday with my WIP didrocks17:00
didrocks(famous last words…)17:00
didrocksyeah ;)17:00
lazyPoweri tried this before and ran into issues with the addons17:00
lazyPowerit was the perl/tcl backend stuff iirc17:00
jdstrandzyga: sure, please don't have it interrupt your evening or weekend17:00
didrocksright, that's my fear17:00
lazyPowerbut i nuked that disk and didnt have it pushed anywhere, like a swell developer making swell decisions :|17:00
didrockslazyPower: classical :)17:01
didrockslazyPower: good luck then and talk to you on Monday! :)17:01
zygajdstrand: no worries, I'm not working today but since I love my job I'm doing it anyway :)17:04
jdstrandzyga: ok, well, only if you love my PRs can you work on them :)17:15
jdstrandzyga: seriously though, thank you :)17:15
zygajdstrand: my pleasure :)17:16
snap_questionI am building a snap that has a package that build 7 tools in the /usr/local/bin and /usr/local/sbin and would like to expose all of them. Is there a way to wildcard the the app command? I have done this already with filesets and stage being $binaries and snap being $binaries.17:38
jdstrandroadmr: can you pull r798? no code changes, just an update to the base declaration that has the new interfaces that were committed this week17:38
zygasnap_question: no, you have to mention each one separately17:38
snap_questionso I tried to do that but I ran into an issue where I would have to do packagename.executable1 , packagename.executable217:39
snap_questionand so on to get each executable to run17:39
jdstrandsnap_question: yes, that is a limitation of the current implementation. you get one 'top' command such that if the command name is the same as the snap name, you may refer to it as 'snapname' rather than 'snapname.command'17:42
jdstrandsnap_question: work is actively underway to make it possible to remove that restriction17:42
roadmrjdstrand: sure thing17:42
jdstrandthere may be a bug on it17:42
jdstrandsnap_question: https://bugs.launchpad.net/snappy/+bug/160774817:44
mupBug #1607748: Ability to use two registered names for the same snap <lxd> <Snappy:Confirmed> <https://launchpad.net/bugs/1607748>17:44
jdstrandsnap_question: in the short term, you might use an alias as a workaround until this is implemented. eg alias bar=foo.bar17:45
snap_questionWas knocked offline but just asked the question regarding publishing all the apps using the apps: flag in yaml17:47
snap_questionWas there an updated message about running the executable without listing the snappackage.executable1, snappackage.executable2, etc...17:48
zyga18:42 < jdstrand> snap_question: yes, that is a limitation of the current implementation. you get one 'top' command such that if the command name is the same as the snap name,17:49
zyga                  you may refer to it as 'snapname' rather than 'snapname.command'17:49
zyga18:42 < jdstrand> snap_question: work is actively underway to make it possible to remove that restriction17:49
zyga18:42 < roadmr> jdstrand: sure thing17:49
zygasnap_question: ^^17:49
zyga18:42 < jdstrand> there may be a bug on it17:49
zyga18:44 < jdstrand> snap_question: https://bugs.launchpad.net/snappy/+bug/160774817:49
mupBug #1607748: Ability to use two registered names for the same snap <lxd> <Snappy:Confirmed> <https://launchpad.net/bugs/1607748>17:49
jdstrandroadmr: thanks!17:52
snap_question<zyga> thanks for restating the responses17:53
snap_question<jdstrand> looks like the LXD issue is exactly what I'm seeing.17:53
snap_questionSome of the tool suites I am looking to put into snap have like 7-10 or more executables in them, hopefully a compromise is found17:54
zygadillema: should I spread test locally in qemu and get less battery life or send them to linode and use more data?17:56
jdstrandsnap_question: well, as mentioned, people are working on that so it works better for people17:57
zygasnap_question: it's just a matter of non-conflicting namespaces, many projects have a myriad of tools that could be better aggregated (this is a simplification but it's not uncommon). snapd supports one top-level command per project now because it was easier (snap name registration doubles as top level command registration) but we're working on unconstrained support for additional top level cmmands17:58
zygacommands*17:58
zygajdstrand: offtopic, I'm working on a new tool that allows to inspect squashfs files at a raw level, analyzing each byte on disk and mapping it to some data structure17:59
zygajdstrand: it's in very early stages of development now but if you'd like to see a specific feature please let me know17:59
snap_questionzyga: understood, is the best place to keep an eye on this on the bug#1607748 page or is there a different status page to watch17:59
zygajdstrand: the goal is visual inspection, forensics and looking for hidden data or maliciously crafted files17:59
zygajdstrand: it's a pure python codebase for now18:00
jdstrandzyga: this is something that tyhicks and I might want to see inre store reviews18:00
zygasnap_question: I think that one is the best, also look for announcements of new snapd releases18:00
zygasnap_question: my magic ball says 2.2018:00
zygajdstrand: the code associates each data structures with particular intervals in the analyzed object and can do simple reporting and human readable dumps18:01
zygajdstrand: plus, fun way to learn squashfs :)18:01
jdstrandI bet!18:04
jdstrandit might mean we can skip the resquash test or it might show what is wrong with the resquash test18:04
zygajdstrand: quick question https://github.com/snapcore/snap-confine/pull/181/files#diff-e6f0d601e8a1dea1cff5b48e16c13661R512 -- why are you using strncmp for the rest but not for x86_64 and i686?18:11
mupPR snap-confine#181: add compatibility architectures for supported architectures (LP: #1592022) <Created by jdstrand> <https://github.com/snapcore/snap-confine/pull/181>18:11
jdstrandzyga: because uname will return longer strings and we want them to match. eg, armv7l18:13
jdstrandzyga: that should be 'arm'18:14
jdstrandthis is the methodology lxc uses18:14
zygajdstrand: I see18:15
zygajdstrand: I added a few comments, look at https://github.com/snapcore/snap-confine/pull/181#discussion_r8870861318:15
mupPR snap-confine#181: add compatibility architectures for supported architectures (LP: #1592022) <Created by jdstrand> <https://github.com/snapcore/snap-confine/pull/181>18:15
zygajdstrand: other than that I'll merge it and iterate with tiny tweaks and some unit tests18:15
jdstrandzyga: thanks!18:25
sergiusensdavidcalle so I merged, how often are the docs updated?18:28
KurdiezI had to install Ubuntu Core on regular Ubuntu I had on PC to start using snappy. I am kind of having hard time understanding the Ubuntu Core. Does it also become a layer on top of the OS like JVM and you are forced to program with the SDK given by the Ubuntu Core?18:29
KurdiezFor example, opening socket connection or writing files to disk.18:30
mupPR snapcraft#919 closed: docs: update GUI related integrations <Created by sergiusens> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/919>18:30
tptrhi, release question: the latest image here http://cdimage.ubuntu.com/ubuntu-snappy/16.04/ does not have the  mmcblk driver. (so cannot be installed on an Intel stick pc for example). This is the place where the latest stable snappy release is published, right?18:36
kyrofaKurdiez, no, not at all. The OS itself is structured a bit differently though, and applications need to abide by a certain set of rules. That's not to say that they need to use a specific SDK to write a file, they just need to write files in a specific location18:49
KurdiezWell, I understand the whole contain snaps file activities within its own folder18:50
Kurdiezdue to security reasons, I like that part18:50
kyrofaKurdiez, right. Not folder, more like "area" (since it's multiple folders), but you get the idea18:50
kyrofaKurdiez, but yeah, no special SDK needed, no specific language needed, etc18:51
Kurdiezbut i'm just worried about any other run time restrictions I would get18:51
KurdiezIt seems like you are given a way to talk to snaps using some kind of sdk that is provided to you18:51
kyrofaKurdiez, so snaps are confined in a number of different ways. One is filesystem access (there are a limited number of places snaps can write), the other is syscall access (there are a limited number of things a snap can do)18:51
kyrofaKurdiez, by default, it's quite restrictive, i.e. you can't open sockets, etc. But if you declare in your snap that you need such a capability (i.e. by utilizing "plugs") you can expand your sandbox a bit18:52
Kurdiezwhat if I want process from one snap to manually signal the process in another snap?18:52
kyrofaKurdiez, that's likely the `process-control` interface18:54
Kurdiezok... is there document that tells me what is restricted?18:55
KurdiezI read their website but couldn't find it18:55
Kurdiezit'd be nice to know up-front what i can't do18:55
Kurdiezbefore deciding to use it18:55
KurdiezIf I am to migrate current code into snap packages.18:55
kyrofaKurdiez, this might be helpful: https://github.com/snapcore/snapd/wiki/Interfaces18:56
kyrofaKurdiez, by default you can run apps and services and read/write files in specific areas. Beyond that, you need to use those interfaces to expand the capabilities18:57
Kurdiezoh snap...18:58
Kurdiezso anything not provided by these interfaces here18:58
KurdiezI can't do18:58
Kurdiezthat's the idea behind snappy platform?18:58
kyrofaKurdiez, essentially. And new interfaces are being added all the time, so if you find something missing, please log a bug18:59
KurdiezThanks for the help kyrofa. You are the man.18:59
kyrofaKurdiez, need to hit the network? Use network/network-bind. Want to play sound? Use pulseaudio. You get the idea :)19:00
Kurdiezso if I write C code, i still have to manage garbage collection myself19:00
kyrofaKurdiez, and then, since interfaces are connections, a user can simply break the connection at any time (see your current connections via `snap interfaces`)19:00
kyrofaKurdiez, yeah, snaps don't change the game there :)19:00
Kurdiezwhich I like. If I wanted garbage collection, I would probably install jvm snap and run java code I guess19:01
kyrofaKurdiez, indeed19:01
Kurdiezthank you19:01
kyrofaKurdiez, any time-- let us know if you have any questions as you explore!19:02
jjohansenzyga: not atm, there is an out of tree patch that could give that ability but nothing currently in yakkety/xenial kernels. It would be possible to drop it onto those kernels in an sru, but any such work would need to be scheduled with ty hicks and ratliff19:34
ArdinisHello, is there any limitation for using snappy on ubuntu core?19:39
jdstrandmhall119: hey, I'm working on https://github.com/snapcore/snapd/pull/1613 and since apachelogger isn't here, I'm coming to you. do you know of two kde snaps that talk to each other over dbus in the manner that this PR is trying to address?20:19
mupPR snapd#1613: interfaces/builtin: add dbus-app interface <Created by jdstrand> <Closed by jdstrand> <https://github.com/snapcore/snapd/pull/1613>20:19
jdstrandI've solved the binding to a well-known name case fine but would like to verify the connection policy20:20
zygajjohansen: I don't think this is required, I was just curious, thank you for the explanation20:32
_markfeatherstonHow would I go about mounting a snap rw?  I need to tweak a file in the core snap for a test and I'm assuming this is the simplest way to do it.21:42
_markfeatherstonthe obvious mount -o rw,loop doesn't seem to work21:42
_markfeatherstonnm, found unsquashfs21:48
mupPR snapcraft#920 opened: Ensure staged files are included in the prime step <Created by josepht> <https://github.com/snapcore/snapcraft/pull/920>21:54
kyrofa_markfeatherston, yeah, you can't actually mount squashfs images as rw22:09
kyrofa_markfeatherston, you can use unsquashfs and re-squash a modified version, as you found, or you can use overlayfs for temporary tweaks22:09
_markfeatherstongood to know there is another option, I'll remember overlays next time.  Thanks22:10
_markfeatherstonI found a bug in probert bringing up new hardware, trying to fix that22:10
tedgjdstrand: Did you see my ping the other day about disabling interface checking on devmode snaps?22:21
tedgjdstrand: WRT uploading to the store.22:21
=== devil is now known as Guest65744
lzyPwrSilly question that i cant seem to find in the docs or the playpen. I'm working on a weechat snap and i need to pass some args to the cmake builder. is there a way for me to pass these args to the cmake build process?23:10
kyrofalzyPwr, indeed, run `snapcraft help cmake`23:10
lzyPwrah, thanks for the pointer23:11
kyrofalzyPwr, you'll see a description of the `configflags` option23:11
kyrofalzyPwr, sure thing :)23:11

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