[00:10] Hello, is it possible to use a package form pip in a snap? [00:55] sergiusens: nobody reads my mails :( [00:56] sergiusens: we are past release, we cant change seeds (unless we apply gross hacks) [00:56] * ogra_ wrote a long mail about that topic, but nobody reacted [00:57] i'm not sure how we should add something like nss beyond making up an artificial dep in one of the packages [00:59] ogra_ false warning, not needed [00:59] ok [00:59] And not my idea [00:59] sergiusens: doesnt fix the base problem though ... [00:59] i'm sure the next nss is around the corner :) [01:00] But I did read your email. I wanted you to tell zyga what you just told me 😌 [01:00] desktop support landed too close to release [01:00] i suspect we could make ubuntu-core-config kind of a meta package ... to get such deps in [01:00] yeah, it did ... [01:01] And this is what we get [01:01] and really broke to much of the IoT side [01:01] You don't say [01:01] heh [01:01] well, we'll dig our butts out of this ... as we always do :) [01:01] * sergiusens needs a telgram sticker now [01:02] hah === chihchun_afk is now known as chihchun === chihchun is now known as chihchun_afk === chihchun_afk is now known as chihchun [07:02] Hello, I am trying to create my first snap but have some issue. (I already read some doc, and tried the opencv example). [07:03] I build SDL2 example, with cmake. But it fails to execute as a snap [07:03] because some shared libs are missing. SDL2 tries to dlopen some libs, like mirclient.so, and probably some other .. [07:04] should I put all those shared libs into the snap package ? [07:05] (I think CMake is putting the libSDL2 into the snap package, but not libmirclient.so for instance) [07:05] good morning [07:06] mvo, wow, you're improving your bug karma :) [07:36] good morning [07:37] https://code.launchpad.net/~stevenwilkin/webdm/use-snapcraft-to-snap/+merge/293053 # should get WebDM in shape to be put back on the store [07:52] dholbach: hey, good morning. indeed, bug triage ftw! [08:03] https://github.com/ubuntu-core/snappy/pull/1080 [08:08] hi all - does anyone know if there is a workaround for this error, other than wiping out the whole snap installation again? http://pastebin.ubuntu.com/16075906 [08:14] dpm: mvo is looking into those kind of issues, how theory is that Notes was running? that issue is local to the snap so in principle it doesn't need wiping out everything [08:14] s/how/our/ [08:16] pedronis, yes, I think it was running at the time of install, but it was on a different workspace and I hadn't noticed it. However, even after closing it the uninstall error remains. If the issue is local to the snap, is there a way to fix it, though? [08:24] Hello ! My snap package needs to access to X11. but it fails because of apparmor (?). (syslog: apparmor="DENIED" ... operation="connect" ... requested_mask="send receive connect" denied_mask="send connect" addr=none peer_addr="@/tmp/.X11-unix/X0" peer="unconfined" ) [08:26] slvn: hey, is the x11 interface connected? can you pastebin your snapcraft.yaml please [08:28] zyga, probably not since this is my first snap ... http://paste.ubuntu.com/16076031/ [08:28] slvn: no worries, please add this uner "command:", "plugs: [unity7]" [08:29] slvn: and perhaps add opengl there (after unity7) if that doesn't work still [08:29] slvn: http://www.zygoon.pl/2016/04/snappy-interfaces-plugs-slots-connections.html [08:31] zyga, seems to work better ! (though I have another error now) [08:32] slvn: cool, what's the next error? [08:32] zyga, my first snap tries to use SDL2. but SDL2 can require libmirclient.so or libX11.so. or now libGL.so ... should I all add them to the snap, with cmake. or should I let the snap access the system lib ? [08:33] slvn: I think you should bundle them but I'm not 100% sure [08:33] slvn: there are some special provisions for opengl apps [08:33] slvn: what error do you see now? [08:33] dholbach: ^^ do you know if those libs should be bundled? [08:34] zyga, SDL2, has started to communicate with x11. (through libX11.so), now it requires to load libGL.so. [08:34] it fails because it cannot dlopen libGL.so [08:36] (btw, cmake doesn't include by itself libX11.so, so I need to make a *fake* call to a x11 lib, so that the libGL.so is include in snap/ ) (maybe there is a correct command to tell cmake to include it ...) [08:37] slvn: try adding the package that has libgl.so to stage-packages [08:41] zyga, I have no idea - dpm: ^ what's your experience? [08:41] do we have any opengl apps? [08:42] zyga, dholbach, ubuntu-clock-app, ubuntu-calculator-app and notes all use the opengl interface [08:43] IIRC they install the required libraries via dependencies in stage-packages [08:45] https://github.com/ubuntu-core/snappy/pull/1081 [08:53] zyga, now it looks for another lib :/ "libGL error: unable to load driver: swrast_dri.so", "libGL error: failed to load driver: swrast", "DEBUG: Could not create GL context: BadValue" [08:55] slvn: that tells you it cannot load software rendering for opengl, I think there's some magic you have to do to make it use system-wide opengl libraries (that snappy provides) [08:55] slvn: but I don't know how this works, sorry, I cannot help you [08:58] zyga, thanks anyway :) because you fixed me, in 5 min, a few issues I spent 2 hours yesterday [08:58] slvn: I'll look at SDL/opengl apps more closely soon (~ days) [08:58] slvn: I'll be blogging about how to snap them correctly [08:59] zyga, I'll send you my snap package if I can make it work correctly [08:59] slvn: sure === JamesTait is now known as Guest50895 [09:02] Question: is it possible to define post-install hooks in a snap? My problem: pkg_resources in python are incredibly dumb, and usually get generated with full paths in them..which means they end up with the "install" part path on my filesystem embedded at the point snapcraft runs, and completely fails when invoked in the installed snap === Guest50895 is now known as JamesTait [09:05] wesleymason: no, it's something that snapcraft needs to learn/deal with, maybe a snapscraft bug report could help there [09:07] pedronis: *nod*..might not be entirely possible for snapcraft to fix itself, as some of the pkg_resources import hooks rely on non-rel paths (it's why the --relative option to virtualenv is deprecated and used to break a lot)..and obviously you can't rely on knowing the path a snap will be installed at I don't think [09:07] will fil the bug [09:16] dpm: did you get an answer to your problem of not being able to uninstall a snap if there was a process running, and leaving you in an inconsistent state? [09:17] popey, I didn't, so I ran the "wipe out the world" script and filed bug 1575550 :) [09:17] bug 1575550 in Snappy "Snap removal while snap is running prevents subsequent removal or installation" [Undecided,New] https://launchpad.net/bugs/1575550 [09:17] dpm: which wipe the world script did you use? I have seen a few [09:18] the one you pasted a while ago [09:18] let me re-paste [09:18] * popey confirms the bug [09:18] it's worse if your app launches a binary which isn't even graphical [09:19] you have no idea it's running without hunting it down with lsof and friends [09:19] oh, I see, so you don't notice easily if it's running or not [09:19] yeah [09:19] http://pastebin.ubuntu.com/16076306/ <- that wfm [09:19] i had a random binary called "--debug" running :) [09:19] ta [09:19] * popey saves as nuke_snap_from_orbit.sh [09:28] dpm, popey: please don't use that [09:28] use this instead: https://github.com/zyga/devtools/blob/master/reset-state [09:28] run this script as the pastebin above is incomplete and leaves some stuff behind [09:28] feel free to spread the link, I maintaing that script to work as snappy evolves [09:30] thanks zyga - does the system need to be rebooted after runing the script? E.g. for mounts and such [09:33] dpm: I don't believe so [09:33] dpm: though if you find a corner case do let me know [09:33] dpm: and I will gladly take pull requests [09:34] dpm: to improve on the wording, behavior, etc [09:38] thanks zyga [09:39] zyga: though the goal is not to need the script :) [09:39] pedronis: hehe :) I wonder if dpkg had a 'wipe.pl' script in the early days ;) [09:39] pedronis: I fully agree though :) [09:40] after the first sru the number of breaking bugs will certainly be much lower [09:46] zyga: You mentioned blogging about it when OpenGL apps are working properly. Where's your blog? I'd like to follow the progress on this :) [09:46] dragly: zygoon.pl, also on planet.ubunt.com [09:46] zyga, just to let you know. snap package works when the SDL2 renderer is set as software (no GL libs). Using opengl renderer, libGL.so can't load libswards_dri.so. Verbose log http://paste.ubuntu.com/16076481/ [09:46] thanks [09:47] slvn: does it work when you install the snap with --devmode (remove it first please) [09:48] slvn: please report a bug on snappy with the log you see above and with syslog output (journalctl -n 1000,) [09:48] slvn: we won't "fix" it immediately but it will help us to track it [09:48] slvn: please include your snapcraft file / sources as well (as links or attachments) [09:50] Adding --devmode won't help [09:51] also, I have the swarst_dri in the ./snap/ see : http://paste.ubuntu.com/16076518/ [09:51] I'll report the issue ... [09:58] slvn: if --devmode doesn't help then you need to tweak your snap to have the right settings to intialize GL (I cannot help there unfortunately) [09:59] slvn: including, perhaps, more libraries [09:59] dholbach, is https://github.com/ubuntu-core/snapcraft/blob/master/docs/your-first-snap.md uptodate? [10:00] zyga, I continue investigating before reporting (or not) the issue. it seem dri/swrast.so is there, but libGL.so is not finding it :/ [10:00] zyga, what does devmode does ? [10:00] slvn: http://www.zygoon.pl/2016/04/snap-install-devmode.html [10:07] zyga, ok! strange because with "--devmode" but no plug x11/opengl and no stage package libgl1-mesa-glx, it still cannot find libGL.so. [10:10] that's what subset of libs we mount, not a security one [10:10] I suspect [10:13] zyga, still want me to enter a bug report ? (https://launchpad.net/snapcraft ?) [10:13] slvn: yes please [10:15] seb128, it should be - if it's not, that's a bug [10:15] dholbach, ok, good, just checking before starting reading it ;-) [10:15] dholbach, thanks [10:16] seb128, https://github.com/ubuntu-core/snapcraft/pull/454 is a pending change I know of [10:16] dholbach, danke [10:16] kyrofa, ^ can we land this one soon? [10:17] dholbach, I started by reading https://github.com/ubuntu-core/snapcraft/blob/master/docs/get-started.md [10:17] which states [10:17] "This is the most important selection of tools you will get after installation: [10:17] snappy try - try snaps from a .snap, the [stage] or [snap] dir" [10:17] but "snappy" is command-not-found [10:18] so I was wondering if the rest was updated [10:18] going to read more and see if I find issues [10:23] dholbach, k, that pending change address that one [10:24] zyga, there https://bugs.launchpad.net/snapcraft/+bug/1575582 [10:24] Launchpad bug 1575582 in Snapcraft "Snap package, using SDL2, needs access to libGL.so and DRI dependencies" [Undecided,New] [10:25] slvn: thanks, checking [10:25] zyga, the attachment is the SDL2 helloworld .. [10:26] slvn: the attachment looks good, thanks for reporting this === chihchun is now known as chihchun_afk === chihchun_afk is now known as chihchun [10:45] zyga, my opinion is that GL libs should not be provided in the snap package. But the SDL2 should require an access to a subset of system libs. [10:45] when I add the "plug" unity7, I can get access to mirclient I guess? [10:45] but when I add the plug "opengl" I dont get access to libGL ! [10:45] that would be unity8 :) [10:46] (there is no expectation for mir on unity7 i thinnk) [10:46] to get access to libGL, I need to add the stage-package libgl1-mesa [10:47] slvn: that much is true but which *actual* libraries are provided by the snap and which are provided by the os is tricky [10:48] slvn: from a particular GL call in your code to, say, nvidia userspace blob doing something is a long path [10:48] slvn: a similar thing happens with openCL but there it, at least, was designed correctly up front [10:48] ogra_, yep unity8 :) but that's probably a typo .. btw, if I put unity8, I get an error at runtime "Bad system call". [10:48] slvn: so you can query available drivers and pick the right one [10:49] slvn: there is no unity8 interface yet [10:51] Hello, how do I pack packages form pip in my snap? [10:52] Domi: hey, look at snapcraft examples, there are some pip-based python demos there [10:53] zyga, yep tricky choice of lib to include or not ... Best case: the snap contains only the Application. Worse case: it contains the whole distribution ... [10:53] how can I know that the "plug" "opengl" do ? [10:54] zyga: I just see the python example with spongeshaker and github [10:54] https://github.com/ubuntu-core/snapcraft/blob/master/examples/py3-project/snapcraft.yaml [10:54] slvn: look at snappy source code, today there's little docs on interfaces [10:54] slvn: I'm writing some but they are not ready yet [10:55] zyga, np, I will have a look :) [11:25] snapcraft snap fails because the python installation. Her is the output http://pastebin.com/GmZB6v4D can anyone help me? [11:33] can snapcraft.yaml use a dynamic version? [11:39] like version: "version: `bzr revno`" [11:51] seb128: nope [11:51] seb128: not that I know of at least [11:56] :-( [12:01] <_morphis> zyga: you saw my comment about moving the security label building code somewhere else where every interface implementation can consume it? [12:01] _morphis: no, not yet [12:02] _morphis: though I think it makes a lot of sense :) [12:02] <_morphis> ok [12:02] <_morphis> :-) [12:02] _morphis: I was thinking if n-m would use it [12:02] Good morning [12:02] <_morphis> zyga: for sure [12:03] dholbach, I was hoping to wait until snappy was in sync across the desktop and ubuntu core, but perhaps that's not necessary === chihchun is now known as chihchun_afk [12:11] hi there [12:13] I work on a project where I'll have raspberryPis running various applications (deal with a central API, and run a chrome-browser in kiosk mode to display an html app displayed on a screen plugged-in by hdmi) [12:14] I'm discovering Snappy and I wonder if it could be a great tool to manage my applications and their deployment accros all the devices [12:16] can I have "private" snaps on the store? === chihchun_afk is now known as chihchun [12:22] loic_m: I'm sure you can :-) [12:23] _morphis: I'm looking at one more thing and then I'll switch focus to n-m [12:25] <_morphis> zyga: ok, just moving those bits into a specific function is enough for me, I can adjust the n-m interface implementation then [12:45] kyrofa I have another morning gift for you https://bugs.launchpad.net/bugs/1575628 [12:45] Launchpad bug 1575628 in Snapcraft ""copy" plugin symlinks whole snap folder when no source is given" [Undecided,New] [12:46] sergiusens, yeah I'm discussing it now in another channel [12:46] did anyone looked at making snaps load locale .mo translations? [12:46] dpm, ^ do you know? [12:46] sergiusens, the problem is that built snaps are copied if the source is '.'. Which is a problem with all plugins that accept the source keyword [12:46] also to get locales generated in the snap [12:47] seb128, tl;dr, I did, it didn't work [12:47] did you file a bug about it? [12:47] seb128, the clock app is an example: [12:47] it builds and ships the .mo files [12:47] but the UI toolkit does not find them [12:48] well, non english locales are not even available right? [12:48] we would need to generate locales on the core image [12:48] kyrofa yeah, I am not a fan of source: '.'; we could be smarter about this and do a `bzr export`, `git whatever` and then default to a plain copy (depending on the plugin of course) [12:48] or to include locales in the snap [12:48] and generate those in some way [12:49] seb128, for the toolkit, apparently setting https://github.com/sergiusens/qt5conf/blob/master/qt5-launch#L55 should take care of it, but it didn't work. And yeah, good point, if they're not generated, they won't be recognized [12:49] sergiusens: yeah, coverage is not such a big deal for me... as long as you don't block on that ;-) The integration tests cover the parts that the unit test don't [12:49] sergiusens: this is ready to review though [12:49] sergiusens, what does bzr export (or similar) get us? [12:49] vila well we do block on low unit test coverage ;-) [12:50] kyrofa exporting the pure sources without generated artifacts [12:50] sergiusens, assuming the snap is in version control? [12:50] sergiusens, what if we disallowed specifying '.' as the source? We could get rid of the build step's filtering that way [12:50] sergiusens: well, you want me to require a dev setup including sso, sca, cpi and updown servers ? ;-) [12:51] kyrofa yeah, that's why I said, if nothing is possible, default to plain copy (depending on the plugin) [12:51] Ah [12:51] vila I say talk to elopio; he's the master of test; but we mock server requests/responses for these cases in general [12:51] sergiusens, that also means we can't run if one hasn't committed to git (or bzr, whatever)... [12:52] sergiusens: the coverage decreased is caused by the implementation change and by replacing mocked tests by tests against real code [12:52] mocked requests/response bitrot faster than the server evolves, especially here for macaroons [12:52] http://www.zygoon.pl/2016/04/anatomy-of-snappy-interface.html [12:53] heh, zyga playing doctor :) [12:54] :-) [12:54] vila so this is not specced? Chipaca are you testing the macaroons implementation with unit tests in snapd? [12:54] vila this is also why we need both in any case, integration tests and unit [12:56] sergiusens: what do you mean by speceed ? [12:56] vila client/server interaction [12:56] kyrofa, probably not [12:57] dholbach, alright, I'll write it for the desktop, since that'll be valid soon for ubuntu core [12:58] dholbach: note, I won't be able to attend the snappy community sync [12:58] sergiusens, alright with you if we get https://github.com/ubuntu-core/snapcraft/pull/454 into the SRU as well? [12:58] sergiusens: it is, that didn't mean there is no bugs (we've fixed several along the way) [12:58] dholbach: unless you want me to dial-in from a classic mobile [12:58] zyga, no worries [12:59] dpm, ^ looks like zyga and niemeyer can't make it for the sync [12:59] maybe we should set up a separate meeting to discuss interfaces/playpen? [12:59] I could have otherwise just not today (I learned a moment ago) [12:59] niemeyer, zyga, would another day this week work better for you? [13:00] dpm: any, sorry, I'm usually free at this time [13:01] dpm: Not at this time [13:02] dpm: I mean, not if the slot is at the same time of the day [13:07] dholbach, niemeyer, zyga, would tomorrow, 30 mins later than the original time work? [13:08] I'm looking at the calendars and I don't see any conflicting calls [13:08] earlier would work, I'm free at all times except for the stand-up call we have right now [13:09] 1h earlier, then? [13:09] kyrofa yeah, it is fine [13:12] is plugs security enoug to let a snap access to the network? [13:14] yes [13:14] 'network' plug gives you client access [13:15] zyga, niemeyer, so would tomorrow, 13:30 UTC work for you, right after your standup? [13:16] dholbach, I'm otp atm, if that works for everyone, would you mind moving the meeting? ^ [13:16] dpm: Yeah, that works [13:16] excellent [13:16] dpm, hohum... that won't work for me [13:16] I have an appointment from which I have to get back home [13:17] I'd be late quite a bit [13:17] maybe I should make that clearer in my calendar [13:17] dholbach, dpm: Done, thanks! [13:17] or hang on [13:17] UTC [13:17] nevermind [13:17] ignore me [13:17] dholbach, ok, cool :) [13:18] sorry, I didn't want to complicate things additionally :-) [13:18] all good now :) [13:43] jdstrand: about x11, can we do anything about that untrusted client thing that mjg59 mentioned? [13:49] ogra_ dholbach how would we SRU snapcraft when needed? We have some bug fixes around for a 2.8.5; and later on I'd like to get 2.9 with support for gulp to be able to build some node/electron apps [13:54] sergiusens, well, through the normal SRU process [13:55] have bugs ... subbscribe the SRU team ... upload to -proposed with the bugs mentioned in the changelog ... [13:57] zyga: its being discussed in another thread. there are options. untrusted isn't likely one of them since it doesn't actually block key sniffing (it only blocks one way to sniff) [13:57] zyga: all options require engineering effort [13:58] zyga: but the main thing is that this is a strategic decision and a transition, and messaging should reflect that [14:00] zyga: and messaging beyond what has been messaged is being discussed with olli, jamiebennett, etc [14:02] sergiusens, get all fixes into yakkety first [14:03] sergiusens, then file a bug report listing with the stuff that's fixed in the SRU, and add the https://wiki.ubuntu.com/StableReleaseUpdates description to the bug [14:03] sergiusens, let me know if you need any help with that [14:10] jdstrand, hey, can you tell us how snap is blocking syscalls? seems to block "socketcall" on my i386 install for some reason [14:12] seb128, via seccomp [14:13] ogra_, any idea about it blocking "socketcall" on i386? [14:13] (there used to be ways to exclude syscalls from it ... not sure that still exists with the switch to interfaces though) [14:13] well, it will most likely block creation of system sockets outside of the confined snap area [14:14] (you should be able to create session related sockets in your rw space though) [14:17] seb128: via seccomp. the launcher sets up a list of allowed syscalls. you can use 'scmp_sys_resolver ##' on the target system to see what the syscall is [14:18] seb128: you can manually add them to the seccomp filter in /var/lib/snapd/seccomp/profiles/... to temporarily unblock yourself [14:18] jdstrand, is there still a way via snap.yaml ? [14:18] jdstrand: the problem is that the syscalls for individual socket APIs are very new on i386 [14:18] and glibc still doesn't implement them via the new calls [14:19] so on i386 we need to allow socketcall() for any network access [14:19] but unfortunately that will also open up bind() listen() etc [14:19] this is more or less why they introduced the new calls.... [14:19] seb128: socketcall is included in the 'network' plug. add 'plugs: [ network ]' to your yaml [14:19] (for the sake of seccomp) [14:19] jdstrand: we already have that :/ [14:19] seb128: it's possible you have that and it isn't autoconnecting. sergiusens saw that yesterday [14:19] desrt: ^ [14:20] I think zyga is aware of the issue [14:20] really, we need a new glibc... [14:20] desrt, just ship it in your snap ;) [14:21] oh, no I lied [14:21] socketcall is commented out [14:21] it is intentionally blocked [14:21] could we at least get it with network-bind? [14:22] probably [14:22] if we have network-bind then clearly the whole range of socket calls is OK... [14:22] let me look into it [14:22] thx! [14:22] for now, to unblock yourselves while I look at that, add it to /var/lib/snapd/seccomp/profiles/... [14:22] thanks for the help :) [14:23] jdstrand, thanks [14:23] you might want to let socketcall() happen for 'network' if we're on x86.... [14:23] on account of the fact that that's probably more reasonable than listing network-bind in every app that uses the network and doesn't want to be aborted on 32bit [14:25] strictly, it's a leak of additional privilege... but considering the alternative (ie: all apps effectively have to list network-bind everywhere) it seems fairly reasonable [14:36] quick question, my snap application needs images. I copy them directly in the "./snap" folder and open them with the path "$env(SNAP)/foo.png". Is there a better way to do that ? [14:37] jdstrand, is there a way to allow dbus communication between unity and confined softwares? [14:37] jdstrand desrt yes, after multiple install/uninstalls will eventually casuse this [14:39] specifically, unity needs to make a method call, the app needs to reply, and then the app needs to be able to broadcast signals that unity can see [14:40] slvn, sounds like an okayish way to me [14:41] apps also need to be able to own a specific bus name [14:41] ogra_, ok :) [14:42] ogra_, maybe a magic CMake instruction, to automate the copy of images to ./snap :/ ? [14:43] * ogra_ would just use the copy plugin to copy the dir [14:45] ok! [14:45] slvn, indeed, that's what the copy plugin is for [14:47] dpm can I have comment permissions to your "Snap this!" doc? [14:47] dpm thanks! [14:47] sergiusens, done [14:55] dpm yeah, I said thanks when I saw I had access :-) [14:55] dpm fully commented, every bullet ;-) [15:02] ogra_, kyrofa, in fact, I use "install(FILES ${IMAGES} DESTINATION .)" because COPY copy in build/... [15:02] sergiusens: hey, how can I get snapcraft to be more verbose (or a plugin to be)? [15:03] slvn, ah, we meant the copy plugin in snapcraft [15:03] slvn, but doing it in cmake works as well :) [15:04] Trevinho --debug [15:04] yeah, indeed [15:04] kyrofa, :) well .. since it's now written in the cmakefile .. I'll keep it there.. [15:04] Trevinho we still have an action to add --verbose which would enable verbose builds for everything that supports it [15:05] slvn long term, doing it in the build system is the better option [15:05] sergiusens: ok, thanks [15:05] sergiusens: it would be cool [15:05] seb128: sorry, was in several meetings [15:05] sergiusens: also, what if a nodejs package needs to do npm i multiple dirs (like parent and child folder)? adding two parts does work? [15:06] seb128: so, what I told willcooke was that if you give me the snap, I can work through the policy issues and update the unity7 interface security policy [15:06] Trevinho two parts should work [15:06] slvn, great! [15:06] Trevinho what are you doing out of curiosity? [15:06] sergiusens: mh well... it almost does... but then I've an error in looking for files [15:06] seb128: in the meantime, you can temporarily adjust things in /var/lib/snapd/apparmor/profiles/... then add this rule in between the curly brackets: [15:06] dbus, [15:06] Trevinho I have multiple additions for the nodejs plugin (among those, being able to use gulp as the driver) [15:06] sergiusens: then do: sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/... [15:07] err [15:07] seb128: ^ [15:07] err [15:07] :-) [15:07] sergiusens: as experiment https://github.com/Aluxian/Whatsie [15:07] seb128: that will allow all dbus calls until you reboot [15:07] jdstrand: the changes are http://paste.ubuntu.com/16081259/ [15:07] jdstrand, thanks [15:07] jdstrand: very hacky though [15:07] seb128: actually, until snapd updates the file, which I think is on reboot but might happen every 12 hours [15:08] there are hardcoded archs... or [15:08] cahce files with are not generated [15:08] cache* [15:08] oh, you are doing this on i386 and not amd64? [15:08] jdstrand, the pastebin from trevinho are our hacks from the day [15:08] I am [15:08] my laptop is 6 years old never reinstalled [15:08] I see [15:08] I could easily adjust locally [15:08] Trevinho you might want to wait for my gulp branch [15:08] but we have people who tried on amd64 [15:08] well, yeah... but also in a brandnew VM things do the same [15:08] right [15:09] Trevinho: that is a diff to my junk branch? [15:09] sergiusens, gulp? [15:09] sergiusens: ah, ok... [15:09] jdstrand: yes [15:09] jdstrand, yes [15:09] ok, I have another meeting in a few minutes but will start playing with this after [15:09] sergiusens, are you telling us we shouldn't have started working on a gnome example because we dup work with you? [15:09] seb128 no, I am talking to Trevinho ;-) [15:09] jdstrand, k, we are mostly done for today here [15:10] jdstrand: this is for x86-64 http://paste.ubuntu.com/16082479/ [15:10] jdstrand: and... you need to copy there /usr/share/mime/mime.cache [15:10] seb128 carry on with gtk :-) [15:10] sergiusens, well, Trevinho is with us at a team sprint where we collectively work together [15:10] seb128 oh, well he is looking at a nodejs project [15:10] ah ok [15:10] * Trevinho too [15:10] so other thing :-) [15:10] jdstrand, you should just declare it "notabug" and blame seb128 for skipping laptop refreshes twice already :P [15:10] ah yes the loaders cache. I would've forgotten about that [15:10] * Trevinho multi-tasking [15:10] Trevinho: thanks! [15:11] ogra_: hehe [15:11] seb128 and I've just added gulp support (a nodejs build driver) to the nodejs plugin [15:11] still missing grunt [15:11] jdstrand, we got gnome-calcultor to work including icons and exported menus and theme (unrestricted), in restricted menus are missing [15:11] seb128: willcooke said something about you guys pushing a branch somewhere at some point. can you ping me whenever that happens? [15:11] and the G is not related to glib, gtk or gnome :-) [15:12] sergiusens: that is great! I have some policy for menus but lacked an app to verify it [15:12] jdstrand, sure, I need to clean up the diff in the pastebin and replace the arch encoded bits [15:12] darn it [15:12] seb128: ^ [15:12] k [15:12] great :-) [15:13] jdstrand, we hope that the "have to ship precompiled cache, pixbuf loaders, etc" is going to get replaced by proper solutions over time though [15:14] be introducing postinst in snaps ? [15:14] that wouldn't help [15:15] sergiusens: however, in these cases, I should do a custom plugin or is there another way to run gulp? Actually it seems to build the src though [15:15] you don't want each app to ship the glib locales and have to do e.g locale-gen [15:17] sergiusens: the only thing I did was a simple http://pastebin.ubuntu.com/16082644/ [15:17] seb128: oh for sure. that is rather icky. but one step at a time :) [15:18] seb128: curious if you think that means changes to gtk to support snaps (whether that is a plugin or something else) [15:18] jdstrand, are we going to recommend upstream to copy our hacks to include gio, etc caches? [15:18] seb128: no, I mean design a solution that can work with it [15:19] basically, I'm curious if you have ideas on what the proper solution will be [15:19] well it's a design choice [15:19] sergiusens: but then I get something like [15:19] https://www.irccloud.com/pastebin/1tASMLIM/ [15:19] I think e.g image loaders should be part of the core [15:19] not something appdevs are interested to have a custom copy of [15:20] seb128: I would tend to agree. ie, ubuntu personal has all these kinds of things, like how touch does [15:20] right [15:20] then things like schemas, etc we need to resolve [15:20] seb128, i really dont want image loaders in my IoT device :P [15:20] that's why you would install core and not personal [15:20] (unless its some camera IoT think perhaps) [15:20] seb128: now whether that is a separate os snap or a special snap that works with the os snap, idk. that is for the architects to decide [15:21] right [15:21] ok [15:21] i guess we need some low level library snap from canonical that provides the bits and pieces === oparoz_ is now known as oparoz [15:21] and... with other files... Here's the deubg output [15:21] * ogra_ would have it called a framework snap :P [15:21] https://www.irccloud.com/pastebin/1dNpAbUr/ [15:22] ogra_: yeah, a framework for gtk/gnome is really needed... [15:23] except that we killed frameworks with snappy 2.0 [15:23] (thus the :P above ) [15:23] yeah, that's what I was worried about.... [15:23] so, we're going to ship a 66Mb snap for the calculator, and other hundreads of apps? [15:24] ogra_: ^ [15:24] and buy stocks of some SSD manufacturer, yeah [15:24] al least if deduplication was still something we cared about... [15:25] (i know the prob is known ... but the former solutions were abandoned .... not sure whats in the pipe for that in the future ) [15:25] library snap? [15:25] that only helps within one namespace [15:26] per definition [15:27] I thought the goal of the library snap was to offer common tools and space? [15:27] Got an apparmor issue "shm_open() failed" when initializing audio. Syslog: apparmor="DENIED" operation="open" name="/dev/shm/pulse-shm-4267673202 [15:27] jdstrand, sergiusens, ogra_, do we have a plug for sound? [15:27] oparoz, withing your namespace, yes [15:27] seb128, not yet ... [15:27] ogra_, what do you call the namespace? dev ID? [15:27] :( [15:28] oparoz, yes [15:28] ogra_, makes sense [15:28] slvn, I don't think we have any audio interfaces yet. I think zyga is working on it [15:29] kyrofa, ok np, I will just skip the audio initialization for the moment .. [15:30] seb128: not yet. zyga and I discussed it a bit yesterday but need niemeyer_'s input [15:30] just deliver some sheet music alongside your app ... [15:30] k [15:30] this is again, due to not having a working snap [15:30] well no need of that for calculator [15:31] I've just been playing a bit more, including pulseaudio in a snap and trying paplay [15:31] seb128: is there an app that is using it? [15:31] I see [15:32] seb128: so there are two things at play here (fyi niemeyer_): 1) a pulseaudio snap that works on core proper and 2) pulseaudio access for snaps on classic [15:32] I foresee the policies to actually be different [15:33] <_morphis> jdstrand, awe_: updated https://github.com/ubuntu-core/snappy/pull/1036 today, would be great if you guys can have another look [15:33] so we need to work out if for the transition perid of snaps on classic if pulseaudio should just be included in unity7 or maybe a new unity7-audio, and then have the pulseaudio interface for a pulseaudio snap [15:33] seb128, niemeyer_: ^ [15:33] jdstrand, right [15:33] niemeyer_: perhaps you have other opinions. personally, I'm leaning towards unity/unity7-audio [15:34] niemeyer_: but I'm totally open to other options [15:34] s#unity/unity7-audio#unity7/unity7-audio# [15:34] do we have an human-description of the current plugs? [15:34] <_morphis> jdstrand: sounds good to me as we will use an actual "pulseaudio" interface for the real pulseaudio snap we're doing for core [15:35] seb128: in docs/interfaces.md. that will be updated on the website in the coming days [15:35] _morphis, how is that going to work? does it mean an app that needs audio is going to be able to depends on the pulseaudio one? [15:35] * ogra_ wonders if such a setup can even work when pulse runs as a session thing (vs a system daemon) [15:35] also .. SDL_Init(SDL_INIT_JOYSTICK) will say "Can't init SDL JOYSITCK: Could not initialize UDEV: [15:35] <_morphis> seb128: for ubuntu-core not desktop we're going to make an pulseaudio snap [15:35] i assume the pulse snap will spawn a system process ... [15:36] (have to) [15:36] _morphis, but can snaps have depends on other snaps/share resources? [15:36] _morphis: yes. are you guys planning on picking up diwic's work? /me notes that the pulseaudio discussion applies equally to network-manager and bluez [15:36] <_morphis> which will use a "pulseaudio" itnerface to provide slots for other snaps to connect to [15:36] we start having frameworks then? [15:36] seb128: no, frameworks are dead [15:36] <_morphis> jdstrand: we do but its the last item in the list [15:36] we just abandoned them :) [15:36] <_morphis> seb128: the only thing you need in your app is a plug using the "pulseaudio" interface [15:37] _morphis, then installation your application would install the other snap? [15:37] <_morphis> and for sure a client lib inside your snap to connect to pulse [15:37] e.g sort of depends? [15:37] no [15:37] no depends [15:37] the interface would simply not be there and you wouldnt get sound [15:38] so your users might get sound working or not [15:38] yeah [15:38] <_morphis> yes [15:38] "great" [15:38] :-) [15:38] seb128: instead there are interfaces. a pulseaudio interface can be used on the slot side (server) or the plugs side (client). a pulseaudio snap would declare it provides the pulseaudio slot for apps to connect to. clients declare to use the pulseaudio slot. then UX defines how to surface snaps that plug pulseaudio if you have the pulseaudio snap installed or not (ie, the slot is available for use) [15:39] s/clients declare to use the pulseaudio slot/clients declare to use the pulseaudio slot via 'plugs'/ [15:39] <_morphis> seb128: could be that we do different pulseaudio itnerface for different use cases if we have to limit certain aspects for security reasons or so [15:39] jdstrand, any dev/snap is going to be able to provide slot side? [15:39] seb128: that is a pure ubuntu core system. not sdoc [15:39] _morphis, well, i'm still curious about system daemon vs session daemon ... [15:40] <_morphis> ogra_: I suspect we will only have a system instance on core [15:40] today every user has his own pulse daemon on a per session base [15:40] seb128: yes, but if you are declare a slot and the slot is deemed dangerous, then the snap will be flagged for manual review (eventually handled via assertions) [15:40] seb128: today, all snaps that declare slots are flagged. that will evolve [15:42] ogra_, sure and every user has it's own obexd [15:42] seb128 (and niemeyer_): as for pulseaudio on sdoc, you can see that there is an interplay there that we need to consider. the ubuntu-core os snap doesn't provide pulseaudio, but it is magically provided by how snappy on classic is implemented. and the pulseaudio on classic is different (and would certainly conflict with) a pulseaudio snap [15:42] ogra_, for snappy, this was changed to work on the system bus [15:42] so there are questions to be solved [15:42] ogra_, not saying it won't take work... [15:43] answered* [15:43] awe_, well, if i look at NM i have a proper split ... might make sense to have that everywhere [15:43] not sure what you mean? [15:43] by NM split? [15:43] jdstrand, thanks, direction looks good :-) it just feels weird that a dev can't declare that his app requires e.g an audio slot [15:43] NM has a system process and a session process ... [15:44] pulse currently doesnt allow that [15:44] jdstrand, it means device users might be able to install video player and not be able to get sound which makes the app looks buggy [15:44] slvn: as for joysticks-- that is going to need an interface. once you figure out what it is that need and perhaps how to get there, please file a bug against snappy and add the snapd-interface tag [15:44] ogra_, there's only one NM [15:44] and it's system [15:44] seb128: apps do declare it. eg, a game might 'plugs [ network, unity7, pulseaudio ]' [15:45] awe_, but there is a system wide daemon and there are user-session clients using it [15:45] sure, and on snappy.. there'll be a system-wide daemon, and one or more snaps using it via interfaces [15:45] seb128 (and niemeyer_): in the pure ubuntu-core system. in the sdoc system, maybe that is 'plugs: [ network, unity7 ]', maybe 'plugs: [network, unity7, unity7-audio ]', maybe something else (that is the discussion [15:46] awe_, right, but thats not how pulse works atm [15:46] it hogs the device from userspace via a session daemon [15:46] niemeyer_: note, I'm effectively CCing you on the conversation but not because we need to have it this second, just so that you have context in the future conversation [15:46] jdstrand, can snaps be restricted from running on a sdoc system? [15:46] jdstrand, thanks [15:46] I don't see any possible use case for a NM snap to be installed there [15:47] awe_ (and niemeyer_): there is no mechanism for that atm afaik. I guess you are thinking about blocking network-manager from an sdoc system. that is something else to consider for sure (and I think niemeyer_ may be thinking about that already) [15:49] awe_ (and niemeyer_): it sorta feels like ubuntu-core os snap should only expose certain interfaces on sdoc (eg, unity7, x11) and filter other (network-manager, bluez, pulseaudio, etc). that needs to be worked through [15:49] yea, I've seen enough odd requests to make NM co-exist with other pseudo 'network-managers', but two NMs on the same device seems a super bad idea [15:49] jdstrand, +1 [15:49] indeed :) [15:50] awe_, if you hide it and someone is insane enough to upload a wicd snap to the store you get into the same trouble though (and you might not have any control over the person providing the wicd one to sdoc) [15:51] sounds like a very tricky problem [15:51] I think snappy could handle that [15:51] ie, wicd would need an interface too [15:51] so if network-manager was installed, wicd would not be available [15:51] well, some standard network-device-access thing [15:51] and vice versa [15:52] if neither were installed, both would [15:52] jdstrand, i'm talking about hiding NM on sdoc [15:52] well... out interface is *very* specific to NM [15:52] you wont block people from pushing other stuff that breaks this [15:52] I suppose a wicd snap might be able to use it [15:53] however if wicd provided a DBus API it wouldn't work [15:53] but in the end [15:53] (and you wouldnt block me from providing a naetwork-manager.ogra either) [15:53] jdstrand, I'll debug the joystick (and fill a bug report if needed) another day :) [15:53] if they do all the work to create a wicd iface [15:53] then they can upload right? [15:53] and we have the same conflict problem on an sdoc system [15:53] thats my point :) [15:54] I think if any package is valid example [15:54] it's be commman [15:54] s/it's/it'd/ [15:54] the idea with interfaces is that they are a sort of contract [15:54] unfortunately bound a little too tight IMHOP [15:54] if something declares it provides the slor for network-manager, it is network-manager to any clients that connect to it [15:55] so if wicd can't do that, it needs its own interface [15:55] right, definitely not usable to any other package [15:55] ...but to ogra's point [15:55] there's no reason why we wouldn't upload a connman snap at some point [15:55] and it would have the same issues on an sdoc system [15:55] yes [15:56] right ... so how would you filter all of these snaps ... you cant just only forbid n-m on sdoc [15:56] that will need to be discussed [15:56] the question is where's the line... do we assume people won't do such dumb things, or do we need to add a mechanism to prevent? [15:56] but connman would have its own interface, so it could be added to the filter [15:56] (on an sdoc system) [15:56] right [15:56] (if that is how it is implemented) [15:56] I mean we are reviewing [15:56] someone would have to maintain all these filter rules then [15:56] that might become a huge thing [15:57] maybe [15:57] given that anyone can invent interfaces [15:57] no [15:57] all interfaces go through ubuntu core [15:57] for the client side ? [15:57] a snap can't ship an interface [15:57] ah, i thought i can offer a foobar interface to others when i package foobar [15:57] it can only implement it (it slots) or consume it (it plugs) [15:58] but it's all in the one interface added to core [15:58] Ubuntu Core controls the types [15:58] ok [15:58] the types are bluez, network-manager, wicd, connman, pulseaudio, etc [15:58] wicd??? really? [15:58] you can p[rovide an implementation (slots) that uses that type [15:59] awe_: wicd isn't there now. I was just creating a list based on this conversation [15:59] ok, I have a meeting [15:59] are we going to provide oss too? [15:59] thanks jdstrand [15:59] ttyl === chihchun is now known as chihchun_afk [16:01] <_morphis> ogra_, awe_: we can run pulseaudio easily as system daemon [16:01] <_morphis> pulseaudio --system is all you need [16:01] _morphis, i thought there were mutil-user reasons to do it the way we do it today [16:02] <_morphis> ogra_: sure [16:02] like ... not freeing up the interface when you switch users etc [16:02] <_morphis> ogra_: on a multi user system you really don't want --system [16:02] right [16:02] <_morphis> but on a ubuntu-core system you do [16:02] <_morphis> as we don't have multiple users there anyway [16:02] _morphis, that's what I said earlier [16:02] just like we do with obexd [16:03] <_morphis> yeah [16:03] <_morphis> we will do this with all daemons we're putting on ubuntu-core [16:03] <_morphis> no session bus [16:03] again, we may need to run things differently on core [16:03] this is all new ground [16:03] _morphis: you mentioned pulse as last on the list. what is the list? I know bluez nm and pulse [16:04] <_morphis> jdstrand: nm, bluez, ofono, modemmanager, pulseaudio [16:04] cool [16:04] thanks! [16:04] <_morphis> jdstrand: which includes interconnections between them [16:04] and possibley "rild" [16:04] <_morphis> like we need the nm snap to work with both ofono and modemmanager [16:04] but we may just bundle as part of ofono [16:04] <_morphis> jdstrand: ah not to forget location-service [16:04] still tbd [16:05] calling it a day here [16:05] good evening everyone [16:05] jdstrand, I'm going to clean up things and push tomorrow morning [16:06] seb128: thanks! hopefully once I'm done with my meetings today I can play with the paste [16:06] seb128: have a nice evening :) [16:06] cool, let me know tomorrow or it goes (or feel free to drop an email [16:06] thanks [16:06] see you tomorrow! [16:07] _morphis, user management is on the TODO for core ... so i wouldnt count on single-user-forever [16:07] for s16? [16:08] that's all we care about atm [16:08] can't worry about future problems yet [16:08] ;)- [16:08] i know mark is pushy to get rid of the ubuntu user [16:08] but i dont know if for 16 [16:11] Er, should sound work from within a snap? Should one use pulseaudio client libraries? [16:11] LOL !!!! [16:11] looks like someone missed all the fun of the last 2h backlog in this channel :) [16:12] qengho, no audio yet [16:14] Oh. I did. I saw "kodi" had new release, thought I'd try something ambitious. [16:15] Hi guys, I have a question about the python2 plugin. Is there a way to tell the setup.py to include a path? i.e I have a package that depends on a certain numpy version, which requires python-dev, but the path Python.h from python-dev isn't getting included. [16:16] qengho, if you are really ambitious, try it with Mir as standalone snap ;) [16:17] jdstrand: Sorry for not paying too much attention to the conversations this morning [16:18] jdstrand: Have been in calls for the last several hours [16:18] jdstrand: I think we want network-manager to be a slot offered by ubuntu-core itself in sdoc [16:19] * niemeyer_ => late lunch [16:22] Install a snap package once, it works fine. But twice (event with version increment), it says : /bin/sh: 0: Can't open /snap/myapp/100002/command-example.wrapper [16:27] niemeyer_: no worries at all, I was in calls all morning before that, so, I can relate. mostly I wanted you to be aware of the conversations [16:28] niemeyer_: I can say that if network-manager is a slot in sdoc, then we are going to want to consider different slot and plug policy depending on if running on sdoc or not [16:29] niemeyer_: in fact, we'll have to cause the security label for network-manager will be 'unconfined' on an sdoc system whereas on a pure core system it will be 'snap.network-manager...'. I know there will be different policy for pulseaudio too [16:29] niemeyer_: anyway, we can discuss at a more convenient time [16:35] jdstrand: I wasn't aware of issues specific to i386, is there a bug open on this? [17:02] So who is a good Snappy Kernel expert? [17:07] wililupy: It's generally easier to shoot question and see who picks it than to fish for self-appointed experts :) [17:08] That's true. niemeyer_ [17:08] wililupy, ricmm or asac perhaps (asac wrote the basic plugin, and i know ricmm used it quite a lot in the past) [17:08] I'm hitting a brick wall when my kernel snap. I can get it to build, but when I try to boot it fails. [17:09] how does the boot fail [17:09] I've made it work in the past, but since 2.5 I haven't been able to get one to boot. [17:09] what are the symptoms then [17:11] When I use it as the kernel in u-d-f it won't boot. It starts grub, I see writable, it tries to boot and I get error: not a regular file [17:12] error: disk 'loop' not found === rcj` is now known as rcj [17:12] ohm that grub thing [17:12] error: you need to load the kernel first and then back to the grub menu === rcj is now known as Guest12905 [17:12] i remember ... but have not much more help to offer ... apart from ... make sure your kernel has all bits builtin the ubuntu kernel also uses [17:13] the ubuntu kernel has loop device support built in [17:13] If I install the .snap in a working instance, it installs, but never boots to that. [17:13] I verified that, it is a module. [17:13] I'm basically using the 4.4.0-21-generic config [17:14] ogra@styx:~$ grep DEV_LOOP /boot/config-4.4.0-21-generic [17:14] CONFIG_BLK_DEV_LOOP=y [17:14] CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 [17:14] CONFIG_AUFS_BDEV_LOOP=y [17:14] not a module here [17:15] so i'd start there :) [17:15] This is what I have. [17:15] CONFIG_BLK_DEV_LOOP=y [17:15] CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 [17:15] CONFIG_BLK_DEV_CRYPTOLOOP=m [17:16] ok [17:16] CONFIG_AUFS_BDEV_LOOP=y [17:16] and you have the squashfs module in your initrd modules ? [17:16] in my snapcraft.yaml yes. [17:17] I tried adding loopback, but snapcraft failed to build with that option so I removed it. [17:17] (and you also build it i assume ) [17:17] Yep. Snapcraft builds successfully. [17:19] I also have this in my config file for squashfs: [17:19] CONFIG_SQUASHFS=m [17:19] right, else snapcraft would fail [17:19] CONFIG_SQUASHFS_FILE_DIRECT=y [17:19] (trying to add a nonexisting module to the initrd) [17:19] CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y [17:19] CONFIG_SQUASHFS_XATTR=y [17:19] CONFIG_SQUASHFS_ZLIB=y [17:19] CONFIG_SQUASHFS_LZ4=y [17:19] CONFIG_SQUASHFS_LZO=y [17:19] CONFIG_SQUASHFS_XZ=y [17:20] zyga: wrt i386> I didn't mean to refer to that. I meant the fact that autoconnect doesn't seem to always work. I noticed it, sergiusens did, seb128 did, kgunn may have, etc. I don't have a reproducer. sergiusens thought it might have to do with uninstalling/installing the same version over and over again === Guest12905 is now known as rcj [17:20] hmmmmm [17:20] interesting [17:20] there is a mechanism that blacklists auto-connection [17:20] I'll add logging there so that at least we can know it is responsible [17:20] zyga: for example, I've had 3 different pings on things in the network policy that people were hitting, but they plugged network [17:21] I've used this config in the past with this same kernel and it worked. [17:21] jdstrand: there's a bug (now fixed) in 2.0.2 that makes upgrades 100% broken [17:21] jdstrand: until we SRU we'll see plenty of intertwined bugs [17:21] perhaps its that [17:21] wililupy, and you use the very latest u-d-f ? [17:22] zyga: though I think kgunn needs some help which looked like a locking issue. he sent an email last night [17:22] jdstrand: oh? I need to check [17:23] zyga: note, I answered kgunn's final slots question in a hangout today [17:23] ogra_ yes. [17:23] ok [17:23] was the hangout recorded? [17:23] and also the canonical-pc gadget from the "16" series in the store ? [17:24] I updated it yesterday just to be sure. [17:25] yes, my u-d-f is sudo ./ubuntu-device-flash core 16 --channel=edge --kernel=my-kernal.snap --gadget=canonical-pc --os=ubuntu-core -o my-snappy.img [17:25] yeah, that should be all fine [17:25] jdstrand: I see his email now, I'll work on that next [17:26] However, if I install the snap in the base snappy instance, it installs, I can go to /writable/snaps/my-kernel/ and everything is there, but the system never boots to it, it still says 4.4.0-18-generic instead of 4.4.6 when I do uname -r [17:27] zyga: cool. fyi, I think I finally have some time to do some policy updates. I have around 10. it would be easiest for my to group at least some of them in the same PR, but is there a commit policy where I need them all separate? [17:27] jdstrand: that's up to you, a branch with 10 commits with descriptions is perfect for mew [17:27] me* [17:27] that'll work [17:27] thanks! [17:27] jdstrand: but if you think it would be easier to review separate branches I'm fine with that as well [17:28] And i do that with just scping the .snap to the system, and running sudo snap install my-kernel.snap and it shows up with snap list [17:28] wililupy, well, you should see why it doesnt boot on the console ... does it actually attempt to boot and just fall back to the other kernel ... does it not attempt the new one at all etc [17:28] It doesn't even attempt the new one. [17:28] No rollback error or anything. [17:28] right, not sure sideloading lkernel snaps still works with 2.x [17:29] but it should definitely work with u-d-f [17:29] i fear you need mvo ... i'm not really good with the grub mishmash we have on the images (it is quite a mess) [17:30] Thats fine ogra_, when does mvo come on? [17:30] i think he ended his day (i'm not on the internal channel atm, see if you find him there perhaps) [17:31] He's not on the internal channel atm. [17:31] yeah, thought so [17:32] I'll send him a quick email and see if he has any pointers. I'm getting close to my deadline with this device and I want to be able to give them something besides a procedure that doesn't work. [17:32] i think wed. is his hockey day [18:04] kgunn: hey [18:04] kgunn: I'm looking at your branch [18:06] Hi.. someone has time for a question about packaging a snap app? [18:07] almejo_: wont know until you ask your question? [18:08] * zyga was about to reply with the don't ask if you can ask, just ask [18:08] :) [18:08] kgunn: just FYI, you probably saw this already but just in case: http://www.zygoon.pl/2016/04/anatomy-of-snappy-interface.html [18:15] zyga: nope, so i'll read that in a moment [18:15] nothing revolutionary there :) [18:26] Hi! I guess I need to get the security team's input on https://bugs.launchpad.net/snapcraft/+bug/1575188 ? [18:26] Launchpad bug 1575188 in Snapcraft "Fix for bug #1572664 had broken my snap package build" [Undecided,Incomplete] [18:27] haha.. thanks. I am trying to package a qml app. It is written in python for the phone. I am traying to figure out the dependencies and I can not find an example of how to do it.. i found something about a qml plugin but it is not listed in snapcraft list-plugins [18:27] Comment #5 hopefully explains my use case. [18:38] My last output from starting my app is "qmlscene: could not find a Qt installation of ''" [18:39] in stage-packages i have: qmlscene, libxcb1, libqtcore5a, libqtgui5, libqtgui5-gles, libpulse0 [18:40] beuno: hey, can you have someone pull r638 of the review tools for opengl bug #1572140 [18:40] bug 1572140 in Canonical Click Reviewers tools "click-reviewers-tools don't know opengl interface" [Medium,Fix committed] https://launchpad.net/bugs/1572140 [18:44] jdstrand this is for you https://bugs.launchpad.net/snapcraft/+bug/1575188 [18:44] Launchpad bug 1575188 in Snapcraft "Fix for bug #1572664 had broken my snap package build" [Undecided,Incomplete] [18:44] jdstrand even thought it will eventually build, not sure it would be a good idea as the next step would be to block it [18:44] jdstrand as in for you, waiting for your input [18:45] almejo_ look at dpm's clock app work [18:45] jdstrand, sure. cc/ roadmr ^ [18:45] sergiusens: yes, I added it to my list of things to look at this week [18:45] beuno, jdstrand : no problem, I'm on it [18:46] roadmr: thanks! [18:46] roadmr: fyi, that has no code changes, just a change to a data file for the store to consume (not sure how far back the store is at this point, so maybe it is a super fast pull-- up to you) [18:46] sergiusens ¿dpm clock? the one in snap find? The phone clock? [18:47] jdstrand: we're at 636, have been since Monday [18:47] oh yes [18:47] I would love to see the snapcraft.yaml of the app [18:47] then this is fast [18:47] jdstrand: yes :) it's just a matter of negotiating the test -> land -> CI -> staging -> production pipeline [18:47] roadmr: not sure what your processes are, but extremely low risk [18:48] ack [18:48] I'll leave it in your capable hands :) [18:48] jdstrand: so I point a config file to the desired revno, commit, wait ~40 minutes for it to be on staging, test manually, if all is OK request a prod deployment [18:48] nice [18:49] jdstrand: (btw, my manual test is just uploading a package and checking the c-r-t version reported is the expected one. If ever you want more detailed testing, let me know, I can check for more specifics if needed) [18:49] roadmr: ack, good to know [18:50] almejo_ yeah, clock or calculator, I forget [18:51] I know the apps and I can browse de app.. but I can not find the snapcraft.yaml. It seems that it is not part of the project... [18:53] http://bazaar.launchpad.net/~snappers/snappy-desktop-examples/trunk/files/head:/ubuntu-clock-app/ [18:53] almejo_ this might be an abandoned branch, but here you go bzr+ssh://bazaar.launchpad.net/~dpm/ubuntu-clock-app/snap-all-things/ [18:53] thanks!!! exactly what i was looking for! [18:54] thanks for your time :D [18:54] almejo_ the `environment` part can probably replaced by an `after` like in https://github.com/dplanella/snappy-playpen/blob/master/notes/snapcraft.yaml [18:55] thanks again [18:57] np [19:01] roadmr: hey [19:01] roadmr: I'll be in canada next week [19:01] hello zyga ! [19:01] next +1 [19:02] zyga: awesome! it's across the country from me [19:02] roadmr: yeah, I tried to have a 24 layover in montreal but no luck [19:03] zyga: :( well bummer, but I've heard good things about where you're going :) [19:03] zyga: (I've never been there - maybe some day) [19:03] zyga just vanished haha [19:04] * zyga always suspends with some darn shortcut when switching keyboards [19:04] roadmr: are you sprinting anytime soon? I heard that some people from your team are going too [19:05] zyga: yes! not me though, sorry :( recently-arrived baby means I have to stay here and help [19:05] ah, the fantastic and terrible things that await you :) [19:05] I'm trying to convince my son to finish his english homework :-/ [19:05] zyga: yes, he's 3 months old and it's felt like 5 minutes... (underwater haha) [19:06] he loves spanish, doesn't digest english [19:06] it gets easier after three years [19:06] zyga: YEARS!?! NOOOO /o\ [19:06] ...after they move out ;-) [19:06] oops, weren't supposed to tell you so quickly ;) [19:07] zyga: http://theoatmeal.com/pl/minor_differences4/kids [19:07] ohhh yes [19:07] I know that by the URL :D [19:07] :) [19:07] reality is much worse [19:07] much more subtle :) [19:09] yeah heh [19:09] zyga: I didn't tell you - *I* was doing it wrong, that's why I couldn't build the image, remember I had that weird "0 partitions found" error? [19:10] roadmr: yeah, what was the problem? [19:10] zyga: it's because I was trying it inside an lxc. Once I did it natively, it worked. [19:10] ah, yes, I head that people bumped into this before [19:10] layers of layers of software [19:10] zyga: I've also been unable to snap install inside an lxc, even with a privileged, nesting container. I wonder if we'll ever want snap to work inside containers, I imagine so :) [19:10] I wonder if it is because of older kernel or because of something that lxc does itself [19:11] zyga: it's a xenial system so I don't think it's an old kernel :D [19:11] roadmr: I know this too, this will need lots of work on the kernel and snappy side first [19:11] roadmr: apparmor namespaces are required first (those are under way as the security savvy people tell me) [19:11] yay :) [19:12] roadmr: right now kvm works very well but lxc won't for 16.04 [19:12] zyga: yes, I'm running stuff under virtualbox and/or kvm for snap work [19:13] roadmr: running natively on xenial is also an option, it's usually not a disastrer if it breaks [19:13] usually? /o\ haha :) [19:13] no bank account interface yet ;) [19:13] 'show-me-the-money' as a plug? [19:14] no, that's flashlight app 2.0 [19:14] "flashlight needs access to your bank account, allow or deny?" [19:15] haha :) [19:16] next to the "deny" button there is a nice animated icon saying "don't miss out on mr flashy" [19:16] nah, that was android [19:16] we're better :) [19:22] zyga roadmr lxc and u-d-f might just probably fail due to kpartx and needing access to kernely things to map that [19:32] zyga and roadmr: fyi, a lot of work happened with what is called apparmor stacking to support just that. it didn't all land by 16.04 release, but we hope to have enough of it completed by 16.04.1 so that you can run one level deep. Ie, running a full system (ie Ubuntu Core) in lxd so you can install snaps. however, running lxd inside of lxd or snappy in lxd on ubuntu core will not be supported since those required 2 levels deep [19:32] tyhicks: please correct me ^ [19:32] jdstrand: cool!! [19:32] zyga and roadmr: when implemented nesting > 1 may be possible to backport to 16.04, at least with a backport kernel [19:32] jdstrand: yes, I imagine if we're to push snaps as a format going forward, it makes sense to ensure they work inside lxd, which we're also pushing :) [19:33] yes [19:33] jdstrand: not sure "all the way down" will be so useful, but at least one level deep should be [19:33] people will then want to run snappy in lxd on snappy, but that is a bit farther out. it requires upstream kernel changes and a few other things [19:33] jdstrand: thanks for the info! at least I know this is known and I'm not crazy :) [19:34] it is very much known and you are not crazy [19:34] at least not because of this ;) [19:35] jdstrand: I think "snappy in lxd on ubuntu core" should only require 1 level deep container [19:36] tyhicks: well... remember, lxd will be running under a label that is not unconfined [19:37] tyhicks: I'm not sure how that plays into it, but snappy in lxd on snappy would certainly be nice to have in 16.04 [19:37] tyhicks: I guess it would be one level though cause lxd is still in the global namespace [19:37] right [19:38] ok, even better :) [19:38] only one thing is stacking and that's lxd [19:38] roadmr: ^ [19:38] tyhicks: thanks :) [19:38] ogra_ This is interresting, looking at my grubenv on sda2, I don't have a reference to snappy_kernel. I have one for snappy_os. [19:38] jdstrand: np - it is very confusing to think of the profile transitions and stacks involved there.. [19:38] wililupy, looks like u-d-f doesnt pick up your kernel snap properly then :/ [19:39] it should put that variable in place at image creation time [19:39] ogra_ I'm going to manually add it and see what that does... [19:40] (probably u-d-f has an issue with your version string ? ... ) [19:40] tyhicks: indeed. I need to focus on the policy namespaces involved and then I should be able to remember [19:40] (wild guessing here) [19:40] or possiably the name? [19:40] did you use any unusual chards in the name ? [19:40] **chars [19:41] (writing it in arabic or chinese ? ) [19:41] :P [19:41] no [19:41] yeah, i thought so [19:45] well, it finds my kernel and tries to boot now, but it hangs after running /scripts/local-premount ... grep: /proc/device-tree/model: no such file or direcotry [19:47] ogra_: u-d-f doesn't care much about the names, it cares very much about being able to open the snaps and the type in them [19:47] findfs: unabled to resolve 'LABEL=writable' [19:47] pedronis, well, it calls snap install ... and that has issues with certain version strings ... (like ... yu cant use colons for example) [19:48] ogra_: is this 15.04? [19:48] wililupy, ignore the device-tree thing ... [19:48] pedronis, nope [19:48] we don't care about versions anymore much in 2.0 [19:48] wililupy, ext4 compiled in ? [19:48] Yeah, it just looked like it hung, it just popped up the latest error for findfs [19:48] pedronis, ah, cool [19:48] because the logic is about revisions now [19:49] and from sideloaded stuff in u-d-f you just get revision== [19:49] 0 [19:49] yeag [19:49] ogra_ yes [19:49] (bit of a corner case that will be different with ubuntu-image) [19:49] wililupy, you should have an initrd shell now [19:49] CONFIG_EXT4_FS=y [19:49] CONFIG_EXT4_USE_FOR_EXT2=y [19:49] CONFIG_EXT4_FS_POSIX_ACL=y [19:49] CONFIG_EXT4_FS_SECURITY=y [19:49] CONFIG_EXT4_ENCRYPTION=m [19:49] CONFIG_EXT4_FS_ENCRYPTION=y [19:49] so you can inspect further [19:50] now I'm bumped to busybox... [19:50] yeah [19:50] check /proc/modules and see if squashfs is loaded [19:50] ogra_: anyway getting one boot var set and not the other afaict is a bit of a corner case, staring at code you will need something like the kernel not having the right type set in snap.yaml [19:50] or something like that [19:51] looking it doesn't like u-d-f checks that the things have passed have the right types [19:51] it will just skip setting the boot var though [19:51] for maximum confusion [19:51] cat /proc/modules: [19:51] pedronis, well, wililupy uses snapcraft to roll the kernel snap ... i'D expect the snap.yaml to be fine [19:52] squashfs 49152 0 - Live 0xffffffffc0000000 [19:52] looks good [19:53] the other chance is that u-d-f does the right thing but firstboot unsets it [19:53] nah [19:54] the issue shows on freshly built imgs as i understand it [19:54] it has logic to swap things around for crash fallbacks [19:54] pedronis, that is interresting, becuase after first boot, I get my error message, then it says that it is going to trial reboot and then it gives me the same error message. [19:54] before firstboot ran [19:54] ah [19:54] wililupy, huh ? [19:54] but I don't know what it does if there's no fallback [19:54] wililupy, are we talking about the same thing then ? [19:54] wililupy, i thought you use your kernel snap with u-d-f [19:55] ogra_ yes. After first boot after building with u-d-f I get my three error: messages, it then says it is going to trial reboot, and i get the three error: messages and then it takes me to the grub menu. After that, I just get the same three error messages, and that only happens after I do a fresh image using u-d-f [19:55] (dont tinker with instaled systems and trying to sideload your kernel ... that might hit other issues which we wont really resolve) [19:56] ogra_ np. I'm just working with my u-d-f image now. [19:56] zyga: hey, so i get the point of having plugs and slots in the same interface for a server/client...but just for development, i can just populate the slot side to get the server going right? (and just leave the plug stuff empty for the moment) [19:56] that's actually boot-ok to be precise, anyway this may be the bootloader part of that logic [19:57] which I don't know about [19:57] that part is pretty trivial actually [19:57] (lives in https://code.launchpad.net/~snappy-dev/snappy-hub/snappy-systems in the grub.cfg or uboot.env.in files) [19:58] I added snappy_kernel=im-kernel_0.snap in the (hd,1)/EFI/grub/grubenv [19:59] which now I get my kernel to load up, but now I get initramfs errors and dumped into busybox. [19:59] I got this problem before due to now having squashfs in my initrd module in my snapcraft.yaml, but that is fixed now. [20:00] yeah, but it obviously cant find the label for the writable partition [20:00] which is a bit strange [20:00] The last error I got before this was findfs: unabled to resolve 'LABEL=writable' [20:00] ogra_: anyway I checked nothing except install (which would be u--d-f) sets those vars in snappy itself [20:00] I have the home interface included in the plugs in my yaml and once I have the connection made. However, the binary wrapper script that is used has $HOME re-exported to a different location. How am I supposed to access things in ~/ ? [20:01] wililupy, right ... [20:02] it is like the label is missing or some such [20:02] (which i dont belive) [20:03] ChrisTownsend: there's been a bit of discussion around that, atm home means that if you get a path to something there you can access it, doesn't quite mean you get a handle to it, unless you go from user id to its value [20:03] wait-for-root "LABEL=$label" "${ROOTDELAY:-180}" [20:04] thats the code we call ... [20:05] pedronis: Ah, ok, well, I guess there is no way to map in the common XDG directories to the app in the snap. [20:06] ChrisTownsend: maybe there's already a bug that zyga knows about, otherwise we probably need one, there's a bunch of requirements a bit colliding with each other at moment in that area [20:06] pedronis: As the thing I'm working on would like to use ~/Documents, ~/Music, etc. [20:06] pedronis: Ok, thanks. [20:07] hmm [20:09] kgunn: yes, just have the other unused methods return nil, nil [20:10] cool [20:10] swamped today with manager stuff...but will get on this more tomorrow [20:20] Is there a reason system-boot is fat32? Is it due to it being the EFI partition? [20:20] yes [20:21] it also guarantees to work with all bootloaders across the board [20:21] ogra_ gotcha. I'm looking at the partition layout right now. I have three partitions on /dev/sda sda1 is labeled grub unknown fs [20:21] sda1 is labeled system-boot fat32 [20:21] and writable [20:22] thats about right [20:22] and sda3 is writable [20:22] ext4 [20:22] right [20:23] labels are right [20:23] well, but findfs doesnt find it [20:25] Thats funny, from my ubuntu rescue session on my device, findfs LABEL=writable, it finds /dev/sda3 [20:25] Guys... another question if someone can help me. I need to run 'pip3 install hangups' in my snap. Is it possible in snapcraft right now? [20:26] wililupy, tyr the same in the initrd shell on teh image ... perhaps yu get more interesting errors [20:27] ogra_ I'm booting it up right now, waiting for it to timeout... [20:27] the fun thing is ... [20:27] in the code we first call [20:28] wait-for-root "LABEL=$label" "${ROOTDELAY:-180}" [20:28] and then [20:28] findfs LABEL=$label [20:28] the first one doesnt seem to fail [20:28] (since that would spit out a different error) [20:29] elopio for some reason I cannot see http://162.213.35.179:8080/job/github-snapcraft-autopkgtest-cloud/600/ [20:29] mind giving me some crumbs to look at? [20:30] alemjo, I think you can use the "python-packages:" keyword with "hangups" as the value [20:30] thanks!!! :D [20:31] I was able to use it to pip install some dependencies in my snap, but I am still struggling if python-dev is required [20:31] and last question about the life cicle of snaps. If i build a snap, and then I add a new dependency, the only way to build the package again is to do a snap clean? [20:32] I am a little tired of cleaning every time and wait for all the packages to download [20:32] Hello I was trying to follow the snapcraft tutorial online and got the snap to build but I'm wondering how to skip the publication step and just install it for personal use only or just to test it out before publishing. Is there a way? [20:32] LinuxGuy2020, snap install app.snap [20:32] jdstrand: About the networkmanager interface, where do we stand? [20:33] jdstrand: I was a bit surprised by the comment that this should be black listed on 16.04.. why isn't it a slot on the os snap? [20:34] niemeyer_, what do you do if someone installs the NM snap on a desktop ? [20:34] niemeyer_: the actual mp I think is blocked on you deciding the name and zyga refactoring the bluez code for the slot side dbus apparmor label. I do plan to also look at the latest comments regarding bus policy [20:34] (where you already have NM running) [20:34] same error, unable to resolve 'LABEL=writable' [20:34] ogra_: See above.. the point isn't to install the snap on the desktop, but to make the interface available in the os snap [20:35] niemeyer_: then there is that question-- how to handle nm on classic vs nm on core+snap [20:35] niemeyer_, ah, sorry, i thought it was the same "blacklisting" we talked about above [20:35] now jamie brought it into the discussion :) [20:35] * jamiebennett hides [20:35] What did I do? [20:35] jamiebennett: me :) [20:36] jamiebennett, the other one ;) [20:36] * jamiebennett dodges another [20:36] niemeyer_: so, if we do as you suggest, then snapd needs to be adjusted to create different snippets if it is running on classic vs pure core [20:37] almejo_: Thats what I tried the other day but it attempted to download something first and failed.Maybe I didnt build the snap correctly or something. I'm just trying to make snaps for packages that are already available as debs. That way I can use store them on local drives more easily than a boat load of debs. Is there a better tutorial explaining just converting pre-existing debs to snaps? [20:37] Here's a new error: [20:37] jdstrand: Yeah, that seems appropriate [20:37] niemeyer_: cause at a minimum the labels will be wrong [20:37] Or should I just keep trying the way I was before. [20:37] jdstrand: Well [20:37] I was following this https://developer.ubuntu.com/en/snappy/build-apps/your-first-snap/ [20:37] jdstrand: This is the same story we discussed for the bluez snap [20:37] findfs [ 383.689847] random: nonblocking pool is initialized [20:37] niemeyer_: but I know for a fact we will have different actual policy for pulseaudio on classic vs core [20:37] jdstrand: It's bogus to cook a snippet hardcoding the name of the snap [20:37] It seems very vague though. [20:37] niemeyer_: no, you misunderstand [20:38] jdstrand: Ah..? [20:38] wililupy, thats just mess-up of the console messages ... [20:38] niemeyer_: I'm assuming that patch will be committed [20:38] wililupy, not an error [20:38] ogra_ ack [20:38] jdstrand: Sorry, I don't understand the idea about the labels being wrong then? [20:39] niemeyer_: what I'm saying is that the label of the slot side on sdoc would be 'unconfined' but on pure core it will be the slot side snap (ie, snap.nm...) [20:39] niemeyer_: but beyond that, we will likely want different rulesets on sdoc vs pure core [20:40] LinuxGuy2020: That tutorial is about dowloading a .deb form the archives and packaging it with other tools. is that what you want? I know other tutorial in www.zygoon.pl/2016/04/snappy-snapcraft-and-interfaces.html [20:40] niemeyer_: for example, on core, there is no policykit, on sdoc there is. this affects the policy. there will be cases where the rules aren't strictly additive so we need to consider that when deciding on this [20:40] jdstrand: Well, I think on sdoc we don't even need a snippet at all, do we? [20:41] jdstrand: On the slot side, that is [20:41] niemeyer_: if there is no snippet there is no access [20:41] there is a slot side and a plug side [20:41] jdstrand: nm is running already, unconfined [20:41] ogra_ I'm not seeing any sd* in /dev... [20:41] almejo_: I just need a tutorial to make a snap out of lets say the ardour3.deb thats in the repos already. But of course the snap would have all the dependencies included. Thats all Im looking for. [20:41] the plug side needs the label of the slot side [20:42] wililupy, aha [20:42] wililupy, so still some kernnel config bit missing i guess [20:42] jdstrand: So how would that work? [20:42] jdstrand: nm is already running.. [20:42] wililupy, do you have devtmpfs enabled ? [20:42] niemeyer_: I'm not talking about nm being confined. I'm talking about the plug side snippet a) needed label=unconfined on sdoc vs label=snap.whatever on pure core and b) different apparmor rules on sdoc vs on pure core [20:43] almejo_: What would be the best tutorial for me to follow for that? [20:43] CONFIG_DEVTMPFS=y [20:43] CONFIG_DEVTMPFS_MOUNT=y [20:43] wililupy, oooooh ! i know what it is !!!! [20:43] niemeyer_: sdoc and ubuntu core are radically different and the security policy is going to have to deal with that sort of thing [20:43] ogra_ please tell please tell please tell..... [20:44] LinuxGuy2020 I followed the second one and it builds ok. Also, that one teaches you about plugs and slots, something absolutly necesary [20:44] jdstrand: Yeah, absolutely [20:44] wililupy, add ahci to your initrd modules (or compile it in) [20:44] on sdoc nm is unconfined and has one label, on pure core it is confined and has snap...., on sdoc it is compiled with polkit, on pure core not, etc, etc [20:44] LinuxGuy2020, the firstone is also good. Read both :D [20:44] jdstrand: So is "unconfined" a magic label to tell the process has no labels? [20:44] wililupy, and perhaps also libahci [20:45] ogra_ I have this in my config: [20:45] CONFIG_SATA_AHCI=m [20:45] CONFIG_SATA_AHCI_PLATFORM=m [20:45] CONFIG_SATA_INIC162X=m [20:45] CONFIG_SATA_ACARD_AHCI=m [20:45] CONFIG_SATA_SIL24=m [20:45] niemeyer_: if a process is launched without using aa_change_profile/aa_change_on_exec and there is no binary attach policy for it in /etc/apparmor.d, then it automatically defaults to have the unconfined label (and policy) [20:45] CONFIG_ATA_SFF=y [20:45] wililupy, right, it is a module ... and you need it in the initrd [20:45] almejo_: ok thanks. Should the system need to download any files before it actually installs the snap? Cause the ones I built were trying to download something like 64.64MB or something like that. No idea what it was. [20:45] jdstrand: Gotcha [20:45] wililupy, or compile it in [20:45] eg, most process on desktop are 'unconfined' (see ps auxZ) [20:46] most on snappy are confined (well, depending how many snaps you have installed :) [20:46] LinuxGuy2020, When you build a snap, it downloads all the dependecies specified in snapcraft.yaml. Then it build the snap using ALL the dependencies creating a really big .snap file [20:46] I gotcha I see,so add ahci to the kernel_initrd_modules in snapcraft.yaml? [20:46] Nice [20:46] LinuxGuy2020, then, you have to install that snap. It will not dowload other files [20:46] wililupy, right ... [20:46] THe output, not the fact they're unconfined :) [20:47] niemeyer_: so, we can do it your way, but if we do, then snapd needs to make decisions about the system at runtime. in some ways that is nice, but in others it is pretty magical and adding complexity [20:47] almejo_: Right. Then I got the *.snap file and tried the sudo snap install *.snap whatever the name was. Ill just try again and see exactly what happens at that point. [20:47] jdstrand: Well, I don't see it as magical, or even as adding relevant complexity [20:47] LinuxGuy2020, yes. The snap will be installed in /snap/ [20:48] jdstrand: The whole point of the interface system is to enable snaps to interoperate in the different enviornments [20:48] niemeyer_: it seems we need some internal blessed way to know if we are on sdoc vs other scenarios (we need to cleanup firstboot and friends also) [20:48] LinuxGuy2020, you can go to /snap/bin and see the executable files [20:48] niemeyer_: an alternate approach would be what I was saying before-- implement nm, bluez, et al as pure core interfaces, then filter them out on sdoc systems. then adjust unity7(*) accordingly for common policy (since it is transition policy) [20:48] jdstrand: having a network-manager interface that works only on devices would be super awkward [20:49] niemeyer_: I didn't think interfaces really solved anything with pure core vs sdoc. I thought it solved snaps slotting interfaces and connecting in arbitrary ways [20:49] niemeyer_: we need *it* to cleanup firstboot [20:49] ogra_ I'll give it a shot and see what happens. [20:49] pedronis: Hmm.. tell me more? [20:49] jdstrand: Isn't that what we're talking about? [20:49] niemeyer_: we need to know to skip firstboot code etc when setting up from empty state [20:50] niemeyer_: I think it is a bit awkward that nm is considered part of the os snap on sdoc but it needs a snap on pure core [20:50] jdstrand: We have a network manager process in the system, and a network-manager interface.. why would it work on one device and not the other [20:50] ? [20:50] seems we need it now also to drive interface behavior [20:50] niemeyer_: sorta, but an area we never really explored [20:50] jdstrand: That sounds like a misunderstanding about interfaces [20:50] almejo_: Ok im starting with a clean install on my laptop instead of using the live environment. Ill try again and come back if I have issues. Thanks. [20:51] the all point is that you don't need to know what providing the slot [20:51] niemeyer_: there is also the issue of not wanting to install the nm snap on an sdoc system. that is perhaps solved if snapd blocks installing multiple snaps that slot the network-manager type, and ths os snap is shown to slot that on sdoc [20:51] LinuxGuy2020, great!!! But I am going home now.. I hope someone else can help you... or maybe tomorrow [20:51] almejo_: thats cool [20:51] pedronis: Right, exactly [20:52] jdstrand: That's a good idea [20:52] niemeyer_: I see where you are coming from, but the network-manager interface on sdoc will be different because it is on sdoc (ie, the security policy will be different). I thought that the interface provides a contract between the client and the slot [20:52] jdstrand: The security policy is the implementation [20:53] niemeyer_: therefore a snap plugging nm may work on core but not on sdoc, or vice versa, because it is a different contract [20:53] jdstrand: It's a bit like saying the bits on amd64 need to be different than on arm to provide the same CLI experience [20:53] I don't think that is an apt analogy [20:53] jdstrand: Surely they must be different.. what we're trying to preserve is the paltform behaivor, not how it is implemented [20:53] jdstrand: sounds more like it shouldn't be one interface then but needs more granularity, no? [20:53] if it's really diverging that much [20:53] pedronis: that is another option, arguably also awkward [20:53] really, all of the options have warts [20:54] cause we are shoehorning classic into the new world [20:54] or the new world onto classic [20:54] What's the wart? I couldn't see it yet [20:54] Having different security policy to implement the same behavior is expected and not actually a wart [20:55] if we have one interface, but different policy on sdoc vs pure core, and a plugging app works on one and not the other because of the policy [20:55] niemeyer_: I think jdstrand is saying that behavior will be different [20:55] so my remark about granularity [20:56] jdstrand: Why would a plugging app work differently? [20:56] one could argue that the policy should encompass everything, but that may not be appropriate-- it might be too wide on pure core since things in classic aren't designed for snappy [20:56] niemeyer_: the plugging app would try to work the same, but perhaps break in one [20:56] pedronis: Yeah, I just didn't see the actual relevant difference as far as the snap perception is concerned [20:57] I have a feeling in the nm case in particular, we could probably make it work. nm is always going to be reserved since it offers a lot of privilege [20:57] but, for pulseaudio we will have the same issue [20:57] and that one I know we want different policy [20:58] because desktop pulseaudio access is different than say Touch access [20:58] jdstrand: How is it different? [20:58] Touch is much more limited (it uses the safe apis and apps may only use those), whereas on desktop apps, they will not [20:59] because desktop apps weren't designed for that-- they expect to be able to use everything [20:59] but Touch apps are designed for that [20:59] so to be clear [21:00] we *can* do this if we allow for different policies if snapd detects what can of system it is running on [21:00] the question is then if we should or not [21:00] jdstrand: That sounds like two different interfaces then [21:00] and I'm not convinced it is a good idea [21:00] ogra_ It's interresting, in the grubenv file, there is no value for snappy_kernel [21:01] niemeyer_: indeed. with pulseaudio in particular I was considering siply adding it to unity7. we could alternatively create unity7-audio (or similar) [21:01] wililupy, right, that was the initial prob ... but it should now boot if you add the var [21:01] jdstrand: We need to look into this in more detail, but if the protocol the applications use to communicate is actually different, then they're of course incompatible, which implies two interfaces rather than one [21:01] i.e. the initrd bug should be gone [21:02] jdstrand: We shoulld call it out for what it is [21:02] niemeyer_: right. so with nm, one is a subset of the other. the desktop nm is a superset of the pure core nm [21:03] jdstrand: If it is pulseaudio-simplified or similar, than that's what it is [21:03] niemeyer_: I think bluez is also going to fall into that category. what gets interesting again is Personal may have a different subset [21:04] jdstrand: We can also start exploring interface attributes [21:04] niemeyer_: I don't disagree, but then that has warts too cause we have a bunch of different interfaces that people may not know what to use [21:04] jdstrand: But I really need to understand more details before being able to recommend something sensible [21:04] jdstrand: Well, we *will* have a bunch of different interfaces :) [21:04] jdstrand: In fact, we do already [21:05] jdstrand: Conveying what those are and when to use them is an important issue to address properly [21:05] niemeyer_: really it boils down to the characteristics of the device. sdoc has one set of characterists, pure core another and personal possibly another. depending on the device, the policy may or may not be different [21:06] jdstrand: Yeah, and that's all okay [21:06] jdstrand: Different policy just means a different implementation to the same result [21:06] jdstrand: Different protocol means something else [21:06] niemeyer_: I think we should be striving for just enough interfaces and no more. we've seen other platforms make this mistake and developer's getting confused and asking for too much, etc. with user's connecting it then gets confusing, etc [21:07] I should rephrase [21:07] we haven't made a mistake [21:07] jdstrand: Just enough interfaces to do what.. [21:07] jdstrand: Of course we shouldn't be producing interfaces just because it's fun to do so :) [21:07] we've seen other platforms offer too many similar choices... [21:07] niemeyer_: hehe [21:07] no [21:08] but if we are in pulseaudio-simplified vs pulseaudio-complex, it makes me wonder [21:09] because complex would (possibly) always work so no one would choose pulseaudio-simplified, but pulseaudio-simplified is actually 'the good one' [21:09] it is an interesting problem [21:09] ogra_ I think I'm going to have to rebuild my whole snap. I tried just adding ahci to my snapcraft yaml, but cat /proc/modules doesn't show it. [21:09] I may be coming around to your thinking (I was never really opposed to it), but perhaps there is something with attributes there that I haven't considered that would make it really good [21:10] I'll give it a run since it takes about 2 hours to complete and I'll update you tomorrow. [21:10] thanks for all your help ogra_ [21:10] Yeah, let's understand better how pulseaudio is organized so we can have a more informed position [21:10] wililupy, you will need to run whatever step megres the modules into the initrd [21:10] jdstrand: Need to step out now, but let's follow on later/tomorrow [21:10] wililupy, good luck then, i'm sure the initrd side is fixed [21:11] niemeyer_: sure, np. I can fill you in on the pusleaudio differences tomorrow [21:11] jdstrand: Thanks, and thanks for the chat [21:12] niemeyer_: my pleasure :) [21:12] niemeyer_: have a good evening :) [21:14] sergiusens: I can see it. Failed to clone the git repo. [21:15] I'd say retest. [21:23] elopio thanks [21:32] * sergiusens is so tired of resetting snapd [22:15] where to find sources for raspberry pi 2 ubuntu snappy [22:24] Where should snapcraft issues be filed? At https://launchpad.net/snapcraft? I didn't see an issues section on the github repo. [22:58] Hello snapcraft snap fails because the python installation. Her is the output http://pastebin.com/GmZB6v4D can anyone help me?