[02:51] Does sudo snap install snap-codelabs no longer work or do I have something setup incorrectly. === mup_ is now known as mup [04:53] hi [04:53] I am porting snappy to bubblegum96 board, the Soc has a fixed layout that the bootloader.bin ’s offset is at 2097664 and the u-boot is at 3145728.It works when I use https://github.com/uCRDev/Bubblegum96-Snappy/blob/master/gadget/gadget/meta/gadget.yaml and ubuntu-image version 0.10. [04:54] Since the ubuntu-image is updated to version 0.12, it may cause the error like this: [04:54] sudo /snap/bin/ubuntu-image --channel stable --image-size 2G --extra-snaps bubblegum96-gadget_16.04-1.1_arm64.snap --extra-snaps bubblegum96-kernel_3.10.0_arm64.snap -o bubblegum96.img bubblegum96.model [04:54] Fetching core [04:54] Copying "bubblegum96-kernel_3.10.0_arm64.snap" (bubblegum96-kernel) [04:54] Copying "bubblegum96-gadget_16.04-1.1_arm64.snap" (bubblegum96-gadget) [04:54] bubblegum96-gadget already prepared, skipping [04:54] bubblegum96-kernel already prepared, skipping [04:54] gadget.yaml parse error: mbr structures cannot be larger than 446 bytes. [04:54] Use --debug for more information [04:55] ubuntu-image had fixed a bug so that causes my issue https://bugs.launchpad.net/ubuntu-image/+bug/1630769 [04:55] Bug #1630769: part with role='mbr' should be stricter about its parameters === chihchun_afk is now known as chihchun [08:29] good morning [08:47] PR snapd#2602 opened: overlord/snapstate: remove restriction on ResetAliases [09:04] Issue snapd#2603 opened: Disk free space left check [09:12] PR snapd#2604 opened: interfaces: add classic-dimension interface [09:16] PR snapd#2605 opened: overlord,overlord/snapstate: have UpdateMany retire/enable auto-aliases even without new revision [09:30] PR snapd#2498 closed: interfaces: add new upower-control interface [09:38] Issue snapd#2557 closed: interfaces: connect tun-based serial port [09:52] Issue snapd#2503 closed: chattr code (tests/main/chattr/task.yaml) fails on ppc64el [09:52] Issue snapd#2504 closed: interfaces-upower-observe snap test fails on ppc64el [09:52] Bug #1655592 opened: interfaces-upower-observe snap test fails on ppc64el [09:52] Bug #1655593 opened: chattr code (tests/main/chattr/task.yaml) fails on ppc64el [09:52] Bug #1655594 opened: expect based tests fails on ppc64el [09:53] Issue snapd#2502 closed: expect based tests fails on ppc64el [09:54] sergiusens: trying to do my classic snap, I added the .desktop file to the snap and suddenly snapcraft hates me again with: 'classic confinement requires the core_dynamic_linker to be set' [09:56] ogra_, ping [09:56] hey [09:57] ogra_, yesterday, thanks for answering my question regarding the slow build. do you mean to replace all of strings "http://ports.ubuntu.com/ubuntu-ports/ " in the source.list to " http://localhost:9999/ubuntu-ports"? [09:58] ogra_, currently the sources.list file is like http://paste.ubuntu.com/23780838/ [09:58] liuxg, yep ... then you need to use apt update once to initialize the proxy db ... [09:59] hmm [09:59] * zyga feels spring in the air :) [09:59] ogra_, how to initialize the proxy db? once it is installed, it is initialized? [09:59] that sources.list misses all basic entries [10:00] no, it is initialized with the first apt-get update [10:00] (just means it downloads the index files once from the archive) [10:01] Bug #1639284 changed: Cant start any snap application on Xenial [10:02] ogra_, ok.. thanks. this is the default sources.list file in my pi device. http://paste.ubuntu.com/23780856/ do you mean I need to add more stuff there? [10:03] I'm trying to remove the ubuntu-core snap (so I can install the core snap), and I can't work out how to do so. `sudo snap remove ubuntu-core` gives "error: cannot remove "ubuntu-core": snap "ubuntu-core" is not removable". [10:03] liuxg, no, that one looks fine .,.. your first one was missing the top part [10:03] https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1589210 suggests that running snap disable first allows removal, but that also doesn't work. [10:03] Bug #1589210: snap remove failed ubuntu-core snap package [10:03] ogra_, I think your solution is very useful since a lot of developers could not compile their target due to the slaggish network on-site. [10:03] Odd_Bloke: Just doing that myself. I think you are stuck 'apt purge snapd', trashing all your snaps and their data, then 'apt install snapd' [10:04] ogra_, yeah, I just cut some of part of it, it is my fault. thanks for clarification. [10:06] why is snapcraft.io not served with SSL? [10:06] sergiusens, this python encodings error makes me sad [10:07] stub: Aha, fair enough; I knew I'd have to trash all snaps, didn't realise snapd itself had to go. Thanks! [10:08] stokachu we can skip lunch and fix it :-) Have you tried removing the stage/prime entries in your parts? [10:08] sergiusens: see my ping above? [10:08] also, can classic snaps access the system clipboard? [10:09] sergiusens, yea i cleared those out [10:09] icey nope, just logged on to irc after 6 days [10:09] sergiusens, we can look after lunch :) [10:09] sergiusens: it was 10 minutes ago :-P [10:09] how about this: sergiusens: trying to do my classic snap, I added the .desktop file to the snap and suddenly snapcraft hates me again with: 'classic confinement requires the core_dynamic_linker to be set' [10:09] icey you need the core snap installed [10:09] rather than the ubuntu-core snap, I'm going to have to do that uninstall dance aren't I? [10:10] icey yeah [10:10] I just filed https://bugs.launchpad.net/snappy/+bug/1655599 since this is technically a dataloss bug (if people have production data in their snap containment) [10:10] Bug #1655599: No migration of ubuntu-core to core [10:11] sergiusens: after removing everything, how do I replace ububtu-core with core [10:11] Bug #1655599 opened: No migration of ubuntu-core to core [10:11] oh really, uninstall snapd!? [10:11] https://bugs.launchpad.net/snapcraft/+bug/1650946 [10:12] Bug #1650946: unhelpful error when building a classic snap: classic confinement requires the core_dynamic_linker to be set [10:14] ogra_, one more question, do I need to change the sources.list in the ubuntu core snap or in the classic snap? sorry [10:15] in classic, i dont think it is even writable in the core side [10:15] sergiusens: :-/ '[Errno 2] No such file or directory: '/mnt/Media/projects/alacritty/parts/desktop/install/meta/gui'' [10:15] ogra_, ok. I got it.. yeah, that is currently what I am doing now :) [10:16] icey wait, let me get back to you on this, this is not how setup/gui works [10:17] ogra_, this is currently how sources.list looks like in my classic snap http://paste.ubuntu.com/23780885/ [10:17] sergiusens: sure, I'll grab you in a bit, copying the original source on it :) [10:17] that shoudl work fine [10:18] ogra_, thanks. I am now trying to apt-get, it is still slow. the first time apt update is slow, right? after that, it should be fine. [10:19] how do you clean a specific part again? [10:19] thought it was snapcraft clean pull [10:19] liuxg, yeah, it only pays off the second time you access a package indeed [10:19] liuxg, but from then on it will only download packages that are newer in the archive [10:19] stokachu: `snapcraft clean {STAGE}` just worked for me [10:20] ah stage [10:20] icey, thanks [10:21] ogra_, this is awesome. You saved the world:) [10:21] :) [10:22] liuxg, under http://localhost:9999/ you can also see some very basic statistics [10:23] (or rather http://:9999/ since you need a browser fro this indeed) [10:25] ogra_, this is what I am building now http://imgur.com/a/6UqDY, is it downloading some new packages? I have already done the apt-get update. [10:27] liuxg, it will have to download the index files every time to compare if something was updated [10:27] also, if it is your first build it indeed has to download the packages once, like i said above [10:28] ogra_, ok. thanks. I will check it. yeah, the first time build seems to be slow anyway. now, it says 30 mins [10:29] it needs to pull all debs into the proxy once indeed ... [10:33] ogra_, still, I think this is cool. for hackathon event, it is very needed. sometimes a single line change takes the build for 20 mins, basically, it makes the event useless. [10:34] well, on a hackathin i'D set up a dedicated machine and have everyone else point to it [10:34] *hackathon [10:34] and if you knwo what you are building you can do one build in advance and fill the proxy cache ahead of time [10:35] ogra_, but for developers, they may not know what are needed. Last time, I saw a developer using nodejs, the package took years to get downloaded. [10:36] yeah [10:38] ogra_, do you know how to set up a machine like what you said so that everyone can point to the machine? [10:38] you just do the same you just did above ;) and have people use the ip instead of localhost [10:40] ogra_, oh, you mean a Pi device? so everyone changes the sources.list to point to the same pi device? [10:40] or a laptop [10:40] ogra_, but a laptop is x86, right? most people work on arm. [10:41] whatever you have around ... the point is to use one central machine instead of everyone having his own proxy [10:41] ogra_, I got it. May I will have a try [10:41] the underlying arch doesnt matter ... packageproxy works on all arches ;) [10:42] and for all arches ... i.e. for x86 packages you would simply point to http://localhost:9999/ubuntu ... instead of /ubuntu-ports [10:44] ogra_, how does a x86 provides the debian packages for the arm architecture. [10:44] you are aware that the ubuntu archive is just a webserver ? [10:44] ogra_, yeah [10:45] the packageproxy just copies the content ... doesnt matter what arch [10:45] ogra_, ok. I got it. so it archives all of the debian packages whenever it is used to download from the archieve [10:46] for the main archive it serves them under /ubuntu ... for poirts.ubuntu.com it serves them under /ubuntu-ports [10:46] ogra_, so the proxy snap should be installed on the laptop machine, right? [10:46] yep [10:47] or on a central rpi if you have one spare ... or on a PC at home if you have proper bandwith to serve the archive from there ... [10:47] (or in the office if you have an external IP for the machine) [10:48] wherever you like ;) === chihchun is now known as chihchun_afk [10:48] ogra_, thanks. I got what you mean. this is truly useful for events. I had headaches to let developers develop onsite.. most of the time, they go home to finish the work. [10:49] PR snapd#2606 opened: overlord/snapstate: share code between Update and UpdateMany, so that it deals with auto-aliases correctly [10:56] hello all [10:56] ogra_: I'm building an image with edge, and I get snap 2.20.1, is that equivalent to 2.21? [10:56] obviously not [10:57] 2.20.1ubuntu1 is the latest release [10:57] ogra_: I see [10:59] ogra_: So when 2.21 is available, will it be in both edge and candidate channels? [10:59] yep [11:00] well, edge first, but it will move to candidate eventually indeed [11:01] Ok [11:06] PR snapd#2607 opened: many: move interface test helpers to ifacetest package [11:12] ogasawara: hey, do you remember the conversation about putting kernel snap projects on github.com/snapcore/snapd similar to how the gadget snaps are there now? [11:12] ogasawara: did you have a chance to discuss that in the kernel team? [11:14] zyga: yep, did you not see the email I sent you about it? [11:14] * ogasawara will resend [11:16] zyga: sent [11:16] PR snapd#2608 opened: don't install govendor each time [11:17] ogasawara: thanks, I got it now [11:38] PR snapd#2555 closed: many: implement 'snap aliases' === didrocks1 is now known as didrocks [12:11] ogra_, when I build my project for the second time, I get the error like http://paste.ubuntu.com/23781469/, what could be the reason for it? thanks [12:12] sergiusens: elopio the "build dir is empty" bug.. I'm seeing similar with nodejs plugin, not just rust. Plausibly same bug or new one? [12:12] hmm [12:13] liuxg, can you ping localhost ? [12:14] ogra_, yes http://paste.ubuntu.com/23781476/ [12:16] weird, works fine here [12:16] ogra_, inside classic http://paste.ubuntu.com/23781481/ [12:17] and if you just call apt update in classic ? [12:17] does it update ? [12:17] PR snapd#2608 closed: don't install govendor each time [12:18] or install a random package [12:18] ogra_, the snap is there [12:18] that wasnt my question [12:18] does apt update inside the classic env work [12:18] or can you apt install some random package [12:19] ogra_, it is like http://paste.ubuntu.com/23781493/ [12:19] looks like the proxy isnt running ... could it be that you ran out of diskspace or some such ? [12:19] ogra_, http://paste.ubuntu.com/23781496/ [12:20] ogra_, http://paste.ubuntu.com/23781501/, I have a 16G disk [12:22] systemctl status snap.packageproxy.approx.service [12:22] ? [12:22] (outside of classic obviously) [12:24] ogra_, http://paste.ubuntu.com/23781511/, it is running. I just disable and enable it again. [12:25] well, i have never seen it not work and i use it since about two years on various machines ... pretty weird [12:26] ogra_, http://paste.ubuntu.com/23781527/ [12:27] anything in syslog about why it fails ? [12:27] (thats an extremely dumb app, it can not fail, this is super strange) [12:27] PR snapd#2609 opened: store: request no CDN via a header using SNAPPY_STORE_NO_CDN envvar [12:30] is 9999 taken by anything else ? [12:31] ogra_, no, I do not think it is taken. no other software uses the port [12:33] do you perhaps have a stale lockfile in /var/snap/packageproxy/3/lockfile.lock ? [12:34] ogra_, I am now doing it again. [12:34] doing what again ? [12:35] ogra_, http://paste.ubuntu.com/23781554/ [12:35] ogra_, you are right. [12:35] remove it [12:35] thought this is extremely odd ... it is really a very dumb script, i havent seen it fail in years [12:36] the only thing i could imagine is that you either run out of diskspace (which you dont) or ram to make it fall over [12:36] ogra_, how could that happen? I must win the first prize :) [12:37] ogra_, now, it seems to be right. it starts to snap ... [12:40] ogra_, thanks.. this time, the build is really fast :) [12:40] ogra_, we should let the rest of the developers know this trick! [12:41] are you building something that could use a lot of ram during the build process? [12:42] ogra_, I do not think so. it is just dump plugin and compile some c files. [12:42] liuxg, well, if you see anything like the above again, please let me know [12:42] ogra_, by the way, if someday I do not want to have the cached files, how can I remove them? [12:42] ogra_, sure, I will observe it. [12:43] either snap remove packageproxy ... or just rm -rf /var/snap/packageproxy/3/var/cache/approx/* [12:43] ogra_, alright. many thanks [12:43] if you want to toggle it dynamically, just use a default sources.list and copy them back and forth as you need [12:45] ogra_, yeah, that makes sense. In fact, i did not keep the old one :) I will find it back. [12:45] it is in the core env ... if you exit classic [12:45] remember ? it is readonly there [12:46] ogra_: is there any kind of autoclean of the cache? [12:46] ogra_, yeah, it is the same. [12:46] ogra@pi3:~$ cp /etc/apt/sources.list . [12:46] ogra@pi3:~$ sudo classic [12:46] (classic)ogra@pi3:~$ sudo cp sources.list /etc/apt/ [12:46] and you are back on the default sources.list ;) [12:48] didrocks, there is /var/snap/packageproxy/3/config.yaml ... you can adjust such stuff if needed [12:48] nice! [12:48] ogra_, right. I got it. thanks [12:49] didrocks, i didnt port all config options yet but largely http://manpages.ubuntu.com/manpages/xenial/man5/approx.conf.5.html applies [12:51] ogra_: good work! thanks for the reference :) [12:51] old stuff ... i need to update it again so that snap set and get work ;) [12:52] i created it in 15.04 snappy originally ... :) [12:52] adjusted it for newer changes) [12:52] *(only adjusted it... [12:52] PR snapd#2607 closed: many: move interface test helpers to ifacetest package [13:13] PR snapd#2601 closed: overlord, store: move confinement filtering to the overlord (from The Store) [13:17] fgimenez: ping [13:18] fgimenez: Hey. Do you have a doc/spec or any good description about re-exec? It's planned for 2.21, want to be prepared to check it. [13:23] rvr: give me some minutes and I send you something [13:23] mvo: Thanks [13:24] hey rvr, nope sorry, none that i know, thx mvo! === hikiko is now known as hikiko|ln [13:29] PR snapd#2610 opened: interfaces/browser-support: add @{PROC}/@{pid}/fd/[0-9] w and misc /run/udev [13:46] PR snapd#2599 closed: interfaces: add new-style interfaces === ben_r_ is now known as ben_r [14:09] PR snapd#2602 closed: overlord/snapstate: remove restrictions on ResetAliases === hikiko|ln is now known as hikiko === andyrock_ is now known as andyrock [14:16] PR snapd#2611 opened: interfaces: use fewer dot imports === ben_r_ is now known as ben_r [14:42] popey: can you share your nodejs snapcraft.yaml ? [14:42] I've been playing a lot with nodejs and haven't seen anything like the error on the rust one. [14:47] elopio: it's super basic. http://paste.ubuntu.com/23782053/ - output http://paste.ubuntu.com/23782054/ === ben_r_ is now known as ben_r [14:53] popey: agh, seems like exactly the same rust issue :( Can you please report a bug? I'll fix it for tomorrow's release. [15:01] is the snap store accepting classic confinement snaps, yet? [15:02] ryebot: I believe it should but I heard that people had some issues [15:02] zyga: ack, thanks [15:02] elopio: ok [15:04] PR snapd#2612 opened: cmd/snap, daemon, overlord/snapstate: tests and fixes for "snap refresh" of a classic snap [15:15] elopio: https://bugs.launchpad.net/snapcraft/+bug/1655678 [15:15] Bug #1655678: nodejs plugin fails to build - empty build dir [15:16] thank you. [15:22] PR snapd#2611 closed: interfaces: use fewer dot imports [15:23] PR snapd#2613 opened: interfaces: add new interface API [15:27] jdstrand: ^^ [15:27] jdstrand: take two on the idea [15:47] jdstrand: hey [15:49] jdstrand: debugging those i386 seccomp failures on xenial (for the old tests) [15:49] jdstrand: I get killed by lack of 201, looking at libseccomp source code that is geteuid32 [15:49] jdstrand: what was that tool that resolves syscalls to numbers? [15:50] jdstrand: I'm asking because this cannot be right, we allow that specific syscall in the common.sh profile [15:50] ah [15:50] found it [15:50] sorry :) [15:52] kyrofa, sergiusens: somehow the dependency handling for my snap is really different when using snapcraft to build and switching between classic and devmode confinement [15:53] kyrofa, sergiusens: my app depends on libboost which I pull in a build-depends via libboost-system-dev for example but with classic confinement libboost-system doesn't end up in prime [15:53] with devmode or strict it does [15:53] is there some fundamental difference other than that confinement is disabled with classic? [15:58] morphis, hmm... there is a difference, but I wouldn't expect it to cause that [15:59] morphis, it uses the linker of the core snap and uses rpaths to the libs within, but that shouldn't stop boost from getting in [15:59] kyrofa: so classic snaps are still running against the core snap or not? [16:00] and fixed it :) [16:00] morphis, you're on the verge of my knowledge here, but zyga will know more [16:01] zyga: any ideas? [16:01] I suspect that since snapcraft uses the rpaths, all those bind mounts don't happen [16:01] So while the core snap is not its execution context, it still runs reliably [16:01] But I'm making stuff up [16:03] kyrofa: possible, lets see what zyga says [16:03] morphis: classic and devmode are not just confinement, the snap is built entirely differently [16:04] morphis: all the code in your snap needs to be built from source [16:04] morphis: and it is built against what is in the core snap [16:04] zyga: means if I use boost, I have to build boost on my own? [16:04] morphis: all the executables are linked with stuff from /snap/core/current [16:04] morphis: yes [16:04] so I can't reuse any deb packages? [16:04] morphis: the dynamic linker is also used from the core snap [16:05] morphis: not that I know of [16:05] so if I have a app which depends on mesa, sdl, boost, protobuf, sdl, alsa, ... I have to build all of them manually? [16:05] yes [16:05] wow [16:06] that makes it a knockout thing [16:06] I don't think anyone tried it against gui apps [16:06] since core doesn't contain anything GUI-ish it is a difficult task I think [16:06] so what is the reason for this? [16:06] what is the reason for what? [16:07] that they need to be built? [16:07] because they are linked against the core snap [16:07] zyga: when I don't use classic confinement I use the linker from the core snap too, correct? [16:08] morphis: no [16:08] morphis: not directly [16:08] morphis: it depends on where you run [16:08] true [16:08] so on Ubuntu Core I do but on desktop I don't [16:08] morphis: if you want to understand the details I can discuss this with you but believe me when I say this is the only way it can work [16:08] morphis: you have to build it [16:08] zyga: I believe you, just trying to understand [16:08] morphis: ok [16:08] morphis: build this and ldd it [16:09] https://git.launchpad.net/checkbox-converged/tree/build-me [16:09] hmm [16:09] wrong link [16:09] https://github.com/zyga/hello-classic [16:09] morphis: ^^ [16:09] morphis: ldd this and look at what the elf file contains [16:10] morphis: this is the only way to make it work without controling the mount namespace [16:10] hm [16:10] I see [16:11] morphis: yeah, I bet it is going to be tough; I would love to see better support in snapcraft where one can lessen the cost of those builds [16:11] morphis: smarter caching [16:11] morphis: distcc/ccache [16:11] morphis: and working complex examples [16:11] zyga: its quite of useless if you have to rebuild everything and add it to your snapcraft.yaml [16:11] which makes it kind of complex for not tiny applications [16:12] morphis: well, not useless [16:12] morphis: just time consuming [16:12] morphis: sergio built a lot of nice things (git, vim) this way [16:12] morphis: and this is not a design choice, just technical challenge [16:12] morphis: this is a hard problem [16:13] morphis: you can cheat [16:13] yeah it is [16:13] morphis: you can build it to look for big libraries in /usr/lib [16:13] morphis: but that's not guaranteed to work [16:13] morphis: only /snap/core is guaranteed [16:20] morphis: btw, I could use a review on the new interface API if you have some time [16:20] zyga: sure! [16:20] zyga: but not today [16:33] PR snapd#2587 closed: interfaces/mount: add snippet types [16:34] popey: could you try with snapcraft from master? [16:45] elopio: uhm, where's that? [16:46] popey: git clone https://github.com/snapcore/snapcraft [16:47] and then instead of running just snapcraft, use the full to the bin/snapcraft that you cloned from that repo. [16:48] ok [16:50] elopio: ok, fails differently now :) [16:51] popey: let me see... [16:52] elopio: http://paste.ubuntu.com/23782441/ [16:52] PR snapd#2573 closed: snap: add information about tracking channel (not just actual channel) [16:53] trying to get around a apparmor issue: http://paste.ubuntu.com/23782447/ [16:53] wanting to systemctl start my custom bridge [16:53] popey: ok, I think you should use cleanbuild, because it might be having a conflict with your local npm stuff. [16:54] ah [16:54] heres my snapcraft http://paste.ubuntu.com/23782451/ [16:54] elopio: trying.. [16:55] jdstrand: hello! so the store is updated to tools r817 finally \o/ (also heads up - the controls for plugs/slots, classic and others have moved to the snap level (rather than upload level). Let me know if you have any trouble finding them now [16:56] elopio: fails in the old way in cleanbuild... http://paste.ubuntu.com/23782468/ [16:56] also ubuntu-core doesn't seem to have the firewall-control anymore [16:56] nm was called core [16:57] oh, right, cleanbuild installs the released one. [16:57] so, hum, I don't think there's a way for you to test it. [16:57] i can just make a deb [16:58] instead of a snap? :) [16:58] lulz [16:58] popey: no, you can get a lxc container, or a clean vm. Clone snapcraft, and try there. [16:58] PR snapd#2609 closed: store: request no CDN via a header using SNAPPY_STORE_NO_CDN envvar [16:59] making a deb is quicker [16:59] or delete your local npm stuff. [16:59] hm, might do that too [17:00] popey: hum, but you need to install that deb in a clean environment. [17:00] yeah, just realised that :D [17:00] we have a few bugs about using unclean containers for cleanbuild. That would make testing easier, despite the contradiction. [17:01] and it might be a bug that npm fails if you have some local stuff. I'm not sure about that, npm is confusing altogether. [17:02] yeah, nuking my ~/.npm helped [17:05] Bug #1655711 opened: typo in Ubuntu Core documentation - Ubuntu Core Images [17:05] elopio: built! :D [17:06] ratliff, hello! I noticed you were looking at my notes re per-snap context implementation; just a heads up, I [17:07] ratliff, I've added two sentences regarding the use of snap-confine and the behavior on missing context [17:08] popey: yay! so the bad news is that I spent a couple of hours trying to fix a bug that was already fixed, wondering why I couldn't reproduce it here. [17:10] jdstrand: can you please +1 https://github.com/snapcore/snapd/pull/2433 [17:10] PR snapd#2433: tests: run all snap-confine tests in c-unit-tests task [17:10] jdstrand: it's tiny and I wanted to land it when green [17:10] jdstrand: the tests were okay, just common.sh needed more i386 specific syscalls [17:11] hah, sorry el [17:11] *elopio [17:12] popey: no, thanks a lot for your help. I also found a couple of things that are not nice, and a mistake in my rust PR. [17:12] sweet! good to hear [17:43] Issue snapd#2559 closed: seccomp tests fail on Ubuntu 16.04 in when running in qemu or linode [18:09] PR snapd#2521 closed: interfaces: allow read/write access of real-time clock with time-control interface [18:47] zyga: I'll add it to my list [18:47] roadmr: thanks! [18:49] stokachu: I think that may be bug #1655369. if you have time, it would be great if you could comment in the bug and provide more info [18:49] Bug #1655369: cannot use the platform plug with a snap in 'classic' confinement [18:50] zyga: the tool that resolves syscalls both ways is scmp_sys_resolver [18:53] so, i know that snapcraft has a daemon key you can set to have snapcraft generate a systemd unit file. Say i want to deliver a custom systemd unit file + defaults with my daemon, would the proper path forward be to write a wrapper that does the systemd unit install + configuration, and invoke that bash script manually, or is there a tuneable unit file template syntax? [18:53] Sorry if this has been covered elsewhere, i've been in/out of this conundrum for a few days now and have been split-attention with it, so any pointers are welcome. [19:20] I'd like to include a LOCAL (non-published) gadget snap in a model assertion for use with ubuntu-image. I tried the full gadget snap file name in the model assertion ("gadget": "pi2kyle_16.04-0.17_armhf.snap",) but the ubuntu-image command does not find it. is there a way to do this? [19:27] put another way, is it a requirement that the gadget snap is published to stable for ubuntu-image to find it? [19:42] PR snapd#2614 opened: interfaces: allow getsockopt by default since it is so commonly used [19:57] PR snapd#2615 opened: make patch4 robust against in-progress install changes [20:00] kyleN: no, the model assertion just needs the name, you pass the local snap to ubuntu-image with --extra-snaps [20:03] pedronis, thanks. I did not know you could do that with the gadget snap. [20:04] kyleN: the option name is a bit unclear but is both extra or local overrides [20:06] ack [20:16] PR snapd#2612 closed: cmd/snap, daemon, overlord/snapstate: tests and fixes for "snap refresh" of a classic snap [20:19] PR snapd#2614 closed: interfaces: allow getsockopt by default since it is so commonly used [20:31] jdstrand, yea i can provide my snapcraft etc to that bug [20:37] As part of my snapcraft.yaml, I'm pulling a binary from an upstream source and using the dump plugin. Problem is, the binary isn't marked executable. Is there a pattern for dealing with this? [20:37] I tried writing a wrapper that sets the executable bit, but of course the fs is readonly, so. [20:37] jdstrand, updated that bug #1655369 [20:37] Bug #1655369: cannot use the platform plug with a snap in 'classic' confinement [20:40] ryebot: Newer snapcraft have keywords for parts that let you execute shell statements as part of the build process. Maybe you can use that to set the executable bit during the build? [20:41] Skuggen: excellent, thanks, I'll take a look [20:43] Can't actually find it in the online docs, but if you run snapcraft help plugins it's mentioned, I think. I've used the prepare: keyword to run a script that stages files to use in the build [20:48] Bug #1655369 opened: cannot use content interface with a snap in 'classic' confinement [20:51] stokachu: I responded in the bug [20:51] jdstrand, thank you! testing now [20:52] jdstrand, in theory if i do a classic snap can i just include other binaries i need to run my app? [20:52] i realize it isn't confined and im interested in getting updates out quicker than a ppa [20:52] PR snapd#2424 closed: interfaces/builtin: add physical-memory-* and io-ports-control [20:53] stokachu: you can put whatever you want in your snap [20:53] plus i want to eventually control the versions of juju/lxd that go into it [20:54] at least until there is a sense of snap dependencies i guess [20:54] stokachu: note that if this is going to be officially supported by Canonical, you'll want to talk to ratliff and tyhicks about best practices and tracking. this is work that is being discussed at the sprint [20:54] jdstrand, ok yea ive spoke to tyhicks today, i wanted to get this at least running so he could see what im trying to accomplish [20:54] but in terms of what is possible with snapd, you can put anything in your snap [20:54] then iterate from there [20:54] cool [20:56] OP: : so, i know that snapcraft has a daemon key you can set to have snapcraft generate a systemd unit file. Say i want to deliver a custom systemd unit file + defaults with my daemon. The generated unit file clearly states at the top its auto-generated, and editing is highly discouraged. How can I provide these extra bits to my daemon? [20:56] stokachu: also, I'll be adding a check to the review tools to alert when specifying 'confinement: classic' with 'plugs' (in general, there is one possible use case with the content interface) [20:56] jdstrand, ok awesome [20:56] lazyPower, i think you can do like templating in the yaml [20:57] lazyPower, believe i saw it in some of the openstack snaps jamespage was writing [20:58] stokachu ah good info, thanks for the pointer [21:00] stokachu - i think this is what i was looking for under config [21:00] https://github.com/javacruft/snap-openstack-compute-controller/blob/master/snapcraft.yaml [21:24] Bug #1594919 changed: Require a method to ship udev rules independent of apps and slots [21:26] PR snapd#2615 closed: make patch4 robust against in-progress install changes [21:37] jdstrand, do the review tools break on _any_ symlinks pointing outside of the snap? [21:47] kyrofa: no. there are exceptions based on snapcraft and one other for symlinks from the SNAP dir into SNAP_DATA [21:47] well, /var/snap/SNAP_NAME/... [21:47] jdstrand, alright, I just noticed that snapcraft leaves dangling symlinks if they're pointing to libs contained in libc [21:47] I didn't realize that was ever done on purpose [21:48] kyrofa: yes. that is intentional and the review tools make exceptions for those [21:51] PR snapd#2610 closed: interfaces/browser-support: add @{PROC}/@{pid}/fd/[0-9] w and misc /run/udev [21:52] jdstrand, can you imagine any downside to snapcraft simply deleting those links and letting the snap use the one directly from core? [21:53] kyrofa: I don't recall the details, but sergiusens left those on purpose cause things were crashing if they used a different libc than what was on core [21:53] jdstrand, but the libs they link to (/lib//blah) _come_ from core, do they not? [21:55] Ever since snap-confine reversed the mounts I've not been able to keep track of what's mounted where :P [21:56] kyrofa: I'm not sure they are guaranteed to. Like I said, I sergiusens did this very specifically. probably best to ask him cause the details are foggy for me [21:56] jdstrand, alright will do, thanks :) [21:56] sure thing [22:06] is there a way in --classic to run the systemctl command to start a service i need within my snap? [22:06] automatically after snap install [22:06] similar to the postinst in a deb package [22:07] You might be able to do that in the configure hook [22:08] kyrofa: Do you have any references to configure hook? documentation or example? [22:10] seshu, https://github.com/snapcore/snapd/wiki/hooks [22:10] kyrofa: Thanks much! [22:12] where would i put this in snapcraft? [22:14] stokachu, https://github.com/snapcore/snapcraft/blob/master/docs/hooks.md but note that what's documented there has not yet been released [22:14] You can run out of master if you need it [22:15] cool thanks, yea i run master [22:19] kyrofa: I don't see snap get example. Is it still under development? [22:21] seshu, `snap get` should work [22:21] Does it not? [22:23] kyrofa: it works, kind of... [22:23] seshu, what's wrong? [22:23] We are trying to build kernel snap from a binary .deb, it's not working, want to know if it is supported. We get the following error after executing '$ snapcraft' [22:23] kyrofa: two things. 1. I'm trying to see how I can implement get and set for my snap [22:23] $ snapcraft [22:23] "confinement" property not specified: defaulting to "strict" [22:23] "grade" property not specified: defaulting to "stable" [22:23] Use of build-properties in the schema is deprecated. [22:23] Plugins should now implement get_build_properties [22:23] Skipping pull kernel (already ran) [22:23] Preparing to build kernel [22:23] Building kernel [22:23] make -j1 defconfig [22:23] make: *** No rule to make target 'defconfig'. Stop. [22:23] Command '['/bin/sh', '/tmp/tmp_gqzcokn', 'make', '-j1', 'defconfig']' returned non-zero exit status 2 [22:24] snappy_irc, please utilize http://pastebin.ubuntu.com/ [22:24] kyrofa: 2. Trying to get key:value pairs network-manager supports...apparently, without knowing key there is no way to use snap get command [22:26] seshu, you don't have to do anything special to support `snap get/set` [22:27] seshu, as for trying to obtain all keys, or defining a schema, indeed that functionality doesn't exist today [22:27] kyrofa: got it. Thanks for clarification. [22:28] seshu, `snap set` will result in your configure hook being called (if you wrote one), where you can handle the configuration change. `snap get` doesn't use your hook at all, it just returns whatever was previously set (either by snap set or by snapctl set, in your hook) [22:29] kyrofa: ah! okay! [22:29] someone mind looking at https://github.com/conjure-up/conjure-up/blob/snapcraft-updates/snapcraft.yaml and why my conjure-up.sh script isn't replacing the conjure-up command? [22:32] stokachu: is conjure-up.sh correctly placed in the snap's squashfs? [22:33] nacc, do i use like snapcraft try to see that? [22:33] stokachu: i tend to use `unsquashfs -l /path/to/whatever.snap` [22:33] ah nice [22:33] stokachu: there might be a more 'official' snapcraft way , though :) [22:34] here's the output squashfs-root/bin/conjure-up.sh [22:34] err [22:34] http://paste.ubuntu.com/23783977/ [22:35] looks like both are there [22:35] stokachu: the other thing to look at, might be to see if you can add a shell app (I don't know if that has been added as default boilerplate or not), so you can drop to a shell in the snap and see what's where [22:35] stokachu: and in this case, I guess, what is pointing to where :) [22:35] ah ok, ill add bash toit and see [22:36] stokachu: ah there is 'snap run --shell ` [22:36] stokachu: that *might* be all you need [22:36] lemme try that [22:41] stokachu: sorry for the vagueness, i'm not a snapping expert by any means :) [22:42] all good, the tips help :) [22:48] bah need to sleep, sergiusens im needing some help tomorrow :) [22:53] PR snapcraft#1035 closed: rust plugin: use the part source path [22:54] stokachu, what do you mean "replacing" ? [22:55] nacc, note that whatever is in `prime` will end up in the snap, so it's easier to just look in there [22:55] kyrofa, so i have a conjure-up.sh file and i want that to be used instead [22:55] stokachu, instead of what? [22:56] instead of the conjure-up script that gets created from the python setuptools [22:56] i need to pass in some custom snap paths [22:56] stokachu, ah, is the one from python the bin/conjure-up (no .sh) ? [22:57] yea [22:57] stokachu, it's not replacing it because it's named `conjure-up.sh` [22:57] What are you expecting exactly? [22:58] stokachu, do you want to exclude bin/conjure-up completely? [22:58] so i want conjure-up.sh to be called from the cli as 'conjure-up' but that script is just a wrapper around the real 'conjure-up' with some additional options [22:58] Ah, then you should be fine on all counts [22:58] You don't want bin/conjure-up replaced [22:58] You just want it callable via `conjure-up`, which is should be thanks to your app [22:59] ah ok [22:59] stokachu, if bin/conjure-up.sh replaced bin/conjure-up... you wouldn't be wrapping anything! [22:59] so the error i get is fatal: could not create work tree dir '/snap/conjure-up/x8/spells': Read-only file system [22:59] stokachu, might I recommend a better naming convention though [22:59] should i not be using $SNAP/spells [23:00] kyrofa, yea ill take all the help i can get [23:00] stokachu, just name the wrapper something more obvious, like conjure-up-wrapper.sh, or run-conjure-up.sh, etc [23:00] (note that you don't even need the .sh if you don't want it) [23:00] ah ok [23:00] stokachu, is that error at runtime, then? [23:01] kyrofa, yea [23:01] Yeah, $SNAP is the squashfs image, which is always read-only [23:01] You'll want to use one of the writable areas [23:01] SNAP_USER_DATA persists through upgrades, is that the best place to put it? [23:02] or i think it used too [23:02] stokachu, all writable areas persist through upgrades, but do so slightly differently [23:02] stokachu, see https://askubuntu.com/questions/762354/where-can-ubuntu-snaps-write-data for more information [23:02] thanks will take a look [23:06] kyrofa, \o/ yay that worked [23:06] now i can just bug sergiusens about the hooks tomorrow :D [23:06] kyrofa, thanks again [23:07] stokachu, sure thing. Note that sergiusens is sprinting this week and likely won't be very responsive [23:07] kyrofa, yea im at the same sprint :D [23:07] Ah :) [23:08] i tend to stalk him, he's popular at these things [23:09] stokachu, yeah he's a popular dude. I can help you with the hooks if you need some pointers [23:10] ok cool, i read the snapcraft hook doc it wants me to place the hooks in a snap dir, should i just put everything inside there? [23:10] ive been keeping it all in snapcraft dir [23:11] stokachu, "everything" meaning what, exactly? [23:11] oh i see the demo [23:11] i create a part for the hook and then manually copy over a script I need to run after an install into $SNAPCRAFT_PART_INSTALL/snap/hooks? [23:12] i guess $SNAPCRAFT_PART_INSTALL/snap/hooks/ [23:12] stokachu, that's the second of the two supported methods [23:13] stokachu, if your hook is coming from a part, you do it that way. If instead your hook is maintained in the repo along with the snapcraft.yaml, you can put it in the snap directory [23:13] (like the other demo) [23:13] ah [23:14] kyrofa, is configure the write hook to use? [23:14] stokachu, for what? [23:14] stokachu, note that, according to the snapd docs, that's really the ONLY hook to use [23:15] ok [23:15] it's just for installing a network bridge and doing it via systemd once [23:15] and on any reboots [23:15] stokachu, it won't run on reboot, just install, upgrade, and `snap set` [23:15] stokachu, so you might want to do it from the wrapper itself [23:16] ah ok just check before hand for the interface and bring it up that way [23:17] Yeah [23:17] yea that makes sense as the app isn't running a long standing process [23:18] so my snap contains lxd daemon, does that get started at all prior to me running the actual conjure-up script? [23:18] stokachu, yes, daemons contained within the snap are fired up as part of the installation [23:19] kyrofa, what happens on reboot will they be started again? [23:19] stokachu, indeed, they're systemd units (check /etc/systemd/system) [23:19] ah nice [23:20] kyrofa, i think that covers everything then :D [23:20] ill give this a run in the morning [23:20] stokachu, very good [23:21] cya [23:53] PR snapcraft#1043 opened: [DO NOT MERGE] check the cla exception