/srv/irclogs.ubuntu.com/2015/05/27/#snappy.txt

psusihow do you switch to the alpha channel?  or maybe install a gui?01:15
psusialso why is man not included and why is the root fs image ext4 instead of squashfs?01:15
=== c74d is now known as Guest7878
=== c74d3 is now known as c74d
dholbachgood morning07:00
davidcalleGood morning all07:21
mvohey dholbach and davidcalle, good morning07:22
davidcallemvo, hello, I don't seem to be able to catch rcj on IRC, any idea at what time he is around?07:22
dholbachhi mvo07:25
mvodavidcalle: a good question, he is US timezone AFAIK07:30
davidcallemvo, thanks, I've noticed, but still no luck in my european evenings. Nothing urgent though, I'll drop him an email.07:33
* mvo nods07:36
willcookeMorning folks, I've been asked a question on G+ which I'd like to check with you08:21
mvowillcooke: what is the question?08:22
willcookeWill it be possible to install Snaps on the U7/.deb based at some point in the future?08:22
willcookeEither for developers to test their packages08:22
willcookeor as an alternative to .deb based application installation08:23
mvowillcooke: I think so, yes. not sure when, but conceptually I see no reason why that would not work. you can have snap/deb in parallel just fine08:28
willcookecool, thx mvo08:28
JamesTaitGood morning all; happy Senior Health & Fitness Day! 😃08:35
=== erkules_ is now known as erkules
=== sabdfl_ is now known as sabdfl
rickspencer3asac, https://code.launchpad.net/~rick-rickspencer3/+junk/go-template11:41
rickspencer3Chipaca, ^ since you were there last week ;)11:41
rickspencer3mvo, where do I file a bug against snappy build?11:50
ogra_rickspencer3, see topic ;)11:52
rickspencer3oops, it was beneath the fold in xchat-gnome and I didn't see it :)11:52
rickspencer3thanks ogra_11:56
ogra_np :)11:56
ogra_pitti, do you happen to know what handles /etc/mtab in the boot process (pre and post systemd) ?11:59
ogra_for pre-systemd i see /etc/init.d/checkroot.sh but i'm not sure that is used at all12:00
pittiogra_: how do you mean "handle"?12:15
pitti<jedi wave> /etc/mtab is not the thing you are looking for :)12:15
pittiogra_: post-systemd> entirely ignored; the Debian package turns it into a symlink to /proc/mounts for legacy stuff that parses it, but systemd, util-linux, our boot scripts etc. all don't care12:16
pittiogra_: I'm not entirely sure about mountall, though12:16
pittiogra_: we never ran /etc/init.d/checkroot.sh, both upstart and systemd override it12:17
ogra_hmm, k12:19
ogra_pitti, we have some code on the system-image server that unpacks/repacks the rootfs tarball to enforce it being a symlink ... i'm not really sure why it is there12:20
pittiogra_: it's only there because some stone old software might look at it12:20
pittiogra_: which is hopefully not the case on touch, and most certainly not on snappy, so if we just want to remove it there, please let's12:21
ogra_yes, and we dont use any such software on the phone and snappy images12:21
ogra_yet stgraber once added code for it12:21
pittithis is sorta like the x86 A20 gate -- everyone hates it, it's broken, but it's sticky as glue :)12:21
pittiogra_: I think we shoudl start dropping it from snappy; we can test the core, snapps should not ever care12:22
pittiand drop it from touch as well if we ever aren't in a "deep freeze/product release round the corner" situation12:22
ogra_well, we use systemd, so i guess on snappy it is already gone12:22
ogra_touch not so much ... and i cant reqally find out why12:22
pittiogra_: as I said, our systemd package creates an /etc/mtab -> /proc/mounts symlink for legacy stuff compat12:23
ogra_initrds /init makes it a symlink on start12:23
ogra_but i dont find any code that turns it back into a file after run-init12:23
ogra_yet, on my desktop installs it is a file12:23
pittiogra_: oh - we had a bug about that the other day12:24
pittiogra_: I don't remember which package any more, it was something like lxcfs or so12:24
ogra_somethinng removes the link and makes it a "proper" mtab again12:24
pittiwhich accidentally turned an mtab symlink into a file12:24
pittibut I added a postinst to fix that, so maybe that got broken again12:25
ogra_ogra@styx:~/Devel/tmp/meizu$ ls -l /etc/mtab12:25
ogra_-rw-r--r-- 1 root root 1096 Mai 22 12:59 /etc/mtab12:25
ogra_thats my utopic laptop12:25
Chipacarickspencer3: what problems did you bump into? (bug#?)12:25
pittiogra_: ah, utopic12:25
pittiogra_: yeah, we didn't have any transition code under upstart12:25
mvoChipaca: https://bugs.launchpad.net/snappy/+bug/145921212:25
ubottuUbuntu bug 1459212 in Snappy "snappy build does odd things with poorly formed /meta/package.yaml" [Medium,Confirmed]12:25
ogra_pitti, well, i doubt it is any different in upstarted vivid installs12:25
ogra_which touch is12:25
* genii sips and ponders "odd things"12:25
Chipacamvo: maybe we should state “snappy build is a SISO pipe”12:26
pittiogra_: right12:26
pittiogra_: sorry, you said "desktop", and I implied "vivid/wily"12:26
ogra_but grepping recursively for mtab in /etc/init* doesnt really reveal anything ...12:26
rickspencer3Chipaca, Chipaca https://bugs.launchpad.net/snappy/+bug/145921212:26
Chipacarickspencer3: yep, mvo pointed me at it12:26
ogra_probably mountall :/12:26
* ogra_ goes to get the code12:26
pittiogra_: right, transition happens by /lib/systemd/system/debian-fixup.service calling /lib/systemd/debian-fixup12:26
Chipacarickspencer3: at least, an easy fix :)12:27
pittiogra_: so what are you looking for now?12:27
ogra_pitti, a way to make mtab not being created in the vivid touch images12:27
ogra_and just keep the symlink around that we get from the initrd12:27
pittiogra_: ah, right; TBH I have no idea what creates it in the first place12:27
ogra_i want to drop the link creation from the system-iage server so we dont need to re-pack the rootfs anymore12:28
pittithis thing is like "slap, go away", and it comes back12:28
ogra_yeah12:28
ogra_i remember discussion turning it into a symlink around dapper time :)12:28
ogra_*discussing12:29
* pitti grep -w mtab * in /var/lib/dpkg/info12:29
* pitti sees bug 906293 and closes it12:29
ubottubug 906293 in util-linux (Ubuntu) "Get rid of /etc/mtab and store userspace options in /run" [Low,Triaged] https://launchpad.net/bugs/90629312:29
pittiogra_: hm, neither package maintscripts nor debootstrap12:30
pittilive-build? livecd-rootfs?12:31
ogra_pitti, yeah, it must be something in the boot process ... else the symlink the initrd created would just stay around12:31
pittiÜbereinstimmungen in Binärdatei /sbin/mountall.12:31
* pitti RTFC12:31
ogra_sigh, i knew it12:31
ogra_yeah12:31
ogra_so i will do then ...12:32
pitti./src/mountall.c:written_mtab = TRUE;12:32
pitti./src/mountall.c:if (written_mtab)12:32
pittifairly sure we have a "winner"12:32
ogra_yep12:32
kgunnmterry: hey, so made my snaps, but then when i ran clocks, it gave me13:12
kgunnhttps://pastebin.canonical.com/132060/13:12
kgunndid you ever hit that?13:12
kgunnweird RAOF hit it last night as well when he tried...13:12
mterrykgunn, oh right!13:12
mterrykgunn, export LC_ALL=C.UTF-813:13
mterrykgunn, sorry, should have been part of my instructions13:13
kgunnnp!13:13
ogra_kgunn, any specific reason to use a secret pastebin in the public channels ?13:13
ogra_:)13:13
kgunnnope sorry13:13
kgunnmterry: success!....now matters of curiosity, why does it herald "bad system call" on running clocks13:19
ogra_probably seccomp blocking it ?13:19
mterrykgunn, interesting, not sure.  I'd have to look at a strace -- didn't remember seeing that13:20
mvokgunn: dmesg should tell you what syscall was blocked13:20
mvokgunn: then you can use "scmp_sys_resolver $nr" to figure out what the number means13:20
kgunnthanks mvo13:27
kgunndirty dog....seems it no longer appears when i launch clocks, like a one time failure ?13:28
davidcallercj, ping13:28
rcjdavidcalle, hi, what's up?13:29
davidcallercj, hey, do you mind having a look at this Amazon ec2 doc bug? https://bugs.launchpad.net/developer-ubuntu-com/+bug/1456390?13:30
ubottuUbuntu bug 1456390 in Ubuntu Developer Portal "Snappy ec2 getting started - various issues" [Undecided,New]13:30
rcjdavidcalle, I can in a few minutes.  My mouse pointer has disappeared so I need to restart before I can do precision tasks like clicking on links.  I'll be back on in 5m.13:31
davidcallercj, :)13:31
rcjdavidcalle, I've added our team to the bug and I'll get us started on this13:39
davidcallercj, many thanks! I'll take care of updating the doc, just ping me or add changes in a comment on the report.13:41
rcjdavidcalle, I provided answers and assigned it back to you.13:53
davidcallercj, great, thanks :)13:54
elopiogood morning.14:03
ogra_bug 52999314:55
ubottubug 529993 in mountall (Ubuntu) "mountall produces unharmful error messages when /etc/mtab is symlink to /proc/mounts" [Low,Fix released] https://launchpad.net/bugs/52999314:56
elopiosergiusens: what's the plan with the cmd directory?15:37
sergiusenselopio: we need to rewrite what is inside the code; the external interface (cli) should behave the same15:39
sergiusenselopio: but basically moving to client/server; so the client could be easily mocked when this happens too ;-)15:40
elopiosergiusens: good. I was thinking that the cli conformance tests should be unit tests, leaving just a few functional tests. But I started digging how to fake the replies and that was not easy.15:42
beowulf@reviewlist15:48
nothalhttps://code.launchpad.net/~stephen-stewart/webdm/remote-and-local-collections-with-sorting-and-filtering/+merge/260305 | No reviews (less than a day old)15:48
nothalhttps://code.launchpad.net/~sergiusens/webdm/godepsForBuilding/+merge/260156 | No reviews (less than a day old)15:48
nothalhttps://code.launchpad.net/~stephen-stewart/webdm/repent-harlequin-said-the-ticktockman/+merge/260120 | No reviews (less than a day old)15:48
nothalhttps://code.launchpad.net/~stephen-stewart/webdm/the-sun-is-the-same-in-a-relative-way/+merge/259933 | No reviews (4 days old)15:48
nothalhttps://code.launchpad.net/~stephen-stewart/webdm/icons-icons-icons/+merge/259800 | No reviews (5 days old)15:48
sergiusenselopio: no, not at all; well you can set functions to var in as in var snappyInstall = snappy.Install and then in the tests set snappyInstall to your mock15:48
sergiusenselopio: if you aspire to 100% coverage, this is the only way I think, unless Chipaca has a more clever idea15:49
sergiusenselopio: the go stdlib is full of exported functions calling the internal function and testing just the internal functions15:50
sergiusensbeowulf: feeling better?15:50
beowulfsergiusens: much15:50
beowulfsergiusens: migraine15:50
beowulfmvo: if you want some reviews ^^ i can start you by saying i haven't enough tests15:51
elopiosergiusens: hum, Let me try that. I'm not looking for 100% coverage (yet), I just want to improve tests like 01_test_info, which just check that the reply conforms to the spec.15:52
beowulfsergiusens: i added a card to trello to expose what would be the results of a GET of installed snaps to the GO templates, i want to bootstrap the app so it doesn't have to make an api call first time15:52
mvobeowulf: heh :) dinner time here, probably needs to wait until tomorrow (unless someone lese beats me to it)15:52
sergiusenselopio: the what I propose will get you going15:52
beowulfmvo: no problem , dinner here too15:52
elopiosergiusens: I'll play with that. But better wait and do it with the refactor of cmd, I think.15:53
sergiusensbeowulf: oh nice, if we do this, can we just do updates with websockets for all else?15:53
sergiusenselopio: that will happen next month the soonest I guess15:53
sergiusensbeowulf: I'll do your reviews, and let me set something up for tomorrow to discuss websockets, that template you speak of and all else15:55
elopiosergiusens: in the mean time we can work on tests for the functional part. Install a snap -> check the list, and things like that. Which are better without fakes and will survive the refactor.15:55
beowulfsergiusens: yeah, but in the first instance i'm going to rely on a local (to the browser) list initially populated from the Go template, then sync the list in the background when the user won't notice15:55
sergiusenselopio: agreed15:56
beowulfsergiusens: also, sad face that we don't have https, is that correct?15:56
sergiusensbeowulf: works for me; initially we were going to go with a go template for most things so I'm not against it15:56
sergiusensbeowulf: no https as no cert, but there is a plan15:56
beowulfno https would rule out a couple of browser apis that webdm could use15:57
Chipacasergiusens: elopio: I have zero clever ideas.15:57
beowulfChipaca: oh you16:02
sergiusensbeowulf: well, it's coming16:03
=== rickspencer3_ is now known as rickspencer3
mterrybzoltan, tedg: want to join a quick hangout to talk about IDEs & snapcraft?16:48
bzoltanmterry: tedg: I can do a quick chat16:48
ogra_isnt that just a plugin thing ?16:48
mterryogra_, well that's what I'm trying to determine, but it may influence how buildenvs are stored etc.  fact finding16:49
ogra_ah, well, i thought we would have pluggable build envs too :)16:50
bzoltanmterry: ogra_: I  am fine with wjatever plugin :) as long the rootfs and the tollchain of the target is directly accessible from the IDE :)16:50
ogra_so it would just be a matter of picking the ones the IDE wants16:50
ogra_bzoltan, right, but other parts might have different reqs ... so i would envision we have pluggable backends as well as pluggable frontends ... and the frontend just defines what it wants as backend env16:51
bzoltanogra_: mterry: so any sort of wrapping and confining of the toolchain+rootfs is a showstopper for the IDE16:51
ogra_there might be parts that require a clean bootstrap ... others might want to  use a VM ... you want to use a chroot etc16:51
bzoltanogra_: I am fine with it... as long after plugging I can access the toolchain and the rootfs :)16:52
ogra_sure, your backend plugin would have to do that then :)16:52
mterryogra_, why would there be so many options?  you just want a .snap sitting there, why require a VM?16:52
bzoltanogra_:  Noooooouuuuu :) I do not want chroot... I want sysroot + native toolchain_S_16:52
ogra_mterry, no idea, i was just making up examples :)16:52
* bzoltan things that G+ hangouts are overrated :D16:53
ogra_mterry, i think snapcraft should be flexible here16:53
bzoltans/things/thinks/16:53
ogra_bzoltan, +1 .... excludes the community from the discussion :)16:53
mterryogra_, the more flexible we are, the less magic we can be.  We wanted to be very magic, ideally user never has to think about buildenvs16:53
bzoltanmterry: I second that16:53
ogra_mterry, not a user ... a provider for a certain setup16:53
mterrybzoltan, talk me through the different options.  So VM doesn't make sense, sure.  chroot is bad because your plugin would need to be root to get in?  let me look at what sysroot is, /me is dumb about it16:54
ogra_pypi will have different reqs than node-snapper ...16:54
ogra_C++ will have another set of different reqs16:54
ogra_or java ...16:54
mterryogra_, provider for a certain setup?  oh, the pypi plugin just gets pointed at the buildenv and uses it.  Why does it care what sort of chroot thing it is?16:55
bzoltanmterry: Ok... I explain...16:55
mterrybzoltan, ok, so sysroot is a gcc option?16:55
tedgI thought a VM was fine as long as the build directory is in the local FS.16:55
tedgi.e. we just need to be able to pull the directory through some magic into the VM.16:56
tedgThat way the IDE can get full source introspection.16:56
ogra_tedg, you also want direct interaction from your Ui etc ...16:56
bzoltanmterry:  In our present app dev SDK we use the chroot model.. it means that whatever Ubuntu you are on... even on LTS ... and you develop for 15.04 phone ...teh chroot will be an x86 15.04 chroot with the armhf libs and headers. And we use the x86 toolchain (make-compiler-linker) to build the armhf binaries16:56
tedgAh, so it needs some routing of STDIN/STDOUT16:57
ogra_yeah, i guess so16:57
bzoltanmterry:  that is a major hackaround ... but a huge saving because we do not need target specific toolchain... we simple use the target system's native one16:57
ogra_but bzoltan experimented with VMs and can surely give you more details about the probs16:57
mterrybzoltan, hold up16:58
mterrybzoltan, you say "target specific toolchain" and "target system's native one"16:58
bzoltanmterry:  yes16:58
mterrybzoltan, can you please dumb that down a tad?  "target specific" is x86 toolchain that knows how to build armhf?16:58
mterryAnd "target system's native one" is actual armhf binary toolchain?16:59
bzoltanmterry:  so when you compile a phone app you do not use the LTS edition of the toolchain, but the one from the chroot16:59
tedgI think he's also saying that it's the version of the target as well.16:59
bzoltantedg:  precisely!16:59
tedgSo the wily would default to gcc 5.2 but trusty would be a gcc 4.x16:59
mterryOk...  So "target specific" is same-arch-diff-version, and "target native" is same-arch-same-version?17:00
tedgbzoltan, So then do you run the test suite using a QEMU hack? It seems like you still need to be able to exec armhf binaries in that chroot somehow.17:00
bzoltantedg: mterry: some bed time reading -> https://developer.ubuntu.com/en/blog/2015/03/18/everything-you-always-wanted-know-about-kits-were-afraid-ask/ Kits here are the chroots17:00
zbenjaminmterry: a sysroot is nothing else than a rootfs, plain simple. The catch here is that you have a specially built toolchain that can use that rootfs as the source to get the headers and libraries. So instead of /usr/include, it usues /path/to/sysroot/usr/include. Same for libs17:00
mterryAnd then the toolchain can also cross compile?17:00
ogra_well, irt kind of does a native build17:01
zbenjaminmterry: the toolchain itself is a cross toolchain running directly on the host. Its the standard way for most cross build SDKS, including android and Qt17:01
ogra_but using the host toolchain inside the chroot for speed17:01
zbenjaminmterry: thats why all lots of tools support it by default17:01
ogra_in a cross way17:01
zbenjamintedg: for running cross build tests you need a emulator of course17:02
ogra_it is the same ugly thing that scratchbox and the SuSE OBS use ...17:02
mterryzbenjamin, yup.  Just trying to think of non-c++ stories too17:02
tedgSo then do we need kits to be more generic than QtCreator? We need "snapcraft Kits" ?17:02
zbenjaminmterry: does a nodejs for example need to be installed systemwide? can't you use a nodejs installation from everywere to build your app?17:02
ogra_mterry, as long as it is gcc you can use that model for all langs gcc compiles17:03
bzoltanmterry: ogra_: We as the SDK team are lobbying for target specific toolchain + sysroot modell for years... the chroot solution is an acceptable ugly solution we can live with.. but hat is not troublefree either. VM is pointless.17:03
mterryzbenjamin, I'm sure.  And Python can set PYTHONHOME and all that17:03
mterryzbenjamin, but I'm not sure about other compiled language cross compile stories.  I'm sure they have something, but I've never done it in Go for example.  I know it can, just don't know what it needs17:03
zbenjaminmterry: go as well can be used from everywhere afaik17:03
ogra_zbenjamin, take a look at node-snapper ...17:03
mterrybzoltan, zbenjamin: (A) you're IRC nicks are driving me crazy17:04
ogra_i envision we'll use something similar for node in the end ... the prob with node  is that you need to compile the modules on the fly ...17:04
zbenjaminmterry: lols :D17:04
mterrybzoltan, zbenjamin: (B) it sounds like you guys just want a directory sitting on disk.  Nothing special to it.  It will just contain its own headers and build env setup.  Right?17:05
zbenjaminogra_: mterry: also i was wondering how to handle snaps that combine languages? For example C++ and go and nodejs ....17:05
tedgmterry, I think they want the default paths changed. So, really, it's kinda snap-ifying the toolchain.17:05
ogra_zbenjamin, good question ... on a snap level you just throw the binaries into the right places17:05
mterryzbenjamin, I suspect each language plugin would know how to set up its own parts17:05
ogra_zbenjamin, for building that gets interesting :)17:05
zbenjaminmterry: almost yes, the qt tools need to be built for cross building but when we have the base sysroot + toolchain thats easy17:05
ogra_there we will need the magic that mterry mentioned earlier ;)17:06
mterrytedg, default paths?  I think they just want to set sysroot at build time to point at the buildenv, not by default17:06
zbenjaminmterry: ogra_: so if we think about sysroots and chroots. We totally could use a chroot as sysroot, all we need is the toolchain and the cross build tools (in our case Qt) in a extra location17:06
ogra_or copied in place ... or linked/bind-mounted/overlayfs-mounted17:07
zbenjaminogra_: don't say the bad word "overlayfs mounted" :D17:07
ogra_might be our future :)17:07
mterryzbenjamin, but you want to ideally be handed a directory that has usr/include usr/lib etc inside it, as well as usr/bin/gcc and friends.17:07
ogra_mterry, quite a bit more ...17:08
ogra_we're talking about gigs of build deps17:08
bzoltanmterry: zbenjamin: yes, the sysroot is really not much else then the  directory structure of the target system + dev files ... PLUS we need the toolchain what knows the whereabout of that diretcory17:08
mterryogra_, yeah, the whole shebang.  everything needed to build17:08
ogra_(the whole phone framework)17:08
zbenjaminogra_: as i said we could use the libraries from the chroots. We just need a external toolchain17:09
mterrybzoltan, the toolchain which sits outside that directory?  why wouldn't it be the toolchain inside that dir?  for speed reasons in case we are cross compiling?17:09
bzoltanogra_:  are you sure it is gigs?17:09
ogra_mterry, yeah17:09
zbenjaminmterry: thats a gcc requirement17:09
zbenjaminmterry: afaik a relocatable toolchain can not be inside the sysroot17:09
bzoltanmterry:  the location of the toolchain is not relevan, as long it is not emulated but native17:09
ogra_mterry, using the native armhf compiler in a qemu-user-static chroot works but is slower and less reliable ...17:09
mterryOK, well that's fine17:10
ogra_so you use the host one in cross setup17:10
mterryHost toolchain is fine17:10
ogra_and copy/link/mount it into the chroot17:10
mterryBut libs and everything inside the sysroot directory17:10
mterryogra_, wait, I thought it didn't need to be inside?17:10
zbenjaminogra_: mterry: catch is we can not move the toolchain around. Gcc does not like this. Except we compile it as relocatable.17:10
ogra_yeah, they need to match the target17:10
mterryzbenjamin, why is that a catch?17:10
mterryzbenjamin, gcc outside, all libs inside, right?17:11
ogra_yeah17:11
zbenjaminmterry: i mean we can not use the default toolchain from the archive17:11
* tedg needs to run, but will catch up on the backlog when back (much better than hangouts) :-)17:11
zbenjaminmterry: at least not how its compiled atm afaik17:11
* mterry *likes* hangouts17:11
mterryzbenjamin, oh wait weird.  I didn't know we were using non-archive gcc17:11
ogra_mterry, especially the transcripts that you can read from logs next week ?17:11
ogra_:P17:11
mterryzbenjamin, so there's some SDK-specific gcc we need to use?17:12
mterryogra_, I get it!  I just like your pretty faces is all17:12
ogra_haha, we like yours too :)17:12
zbenjaminmterry: either that, or we need to make sure the archive toolchain supports what we need17:12
zbenjaminmterry: we probably need to ask a toolchain dev what is required here17:12
mterryzbenjamin, (why hasn't that happened?  was it rejected?)17:12
mterryzbenjamin, what exactly is it that we need that archive doens't do?17:12
zbenjaminmterry: it needs to support the --sysroot switch.17:13
zbenjaminmterry: and i think you need to compile that in17:13
mterryzbenjamin, oh weird, that's not standard?  curious17:13
bzoltanmterry:  yes, it was rejected with the explanation that they have no time and hands to maintain more than one toolchain17:13
zbenjaminmterry: basically we need a toolchain that can select the sysroot its compiling against17:13
mterrySo this is not a solution we could build today17:13
mterryOr on 14.0417:13
zbenjaminbzoltan: mterry: yeah but back then we didn't come up with the idea that the default toolchain could do that maybe17:13
bzoltanzbenjamin: mterry: we did not know17:14
mterryyeah I get that.  I'm just trying to figure out how to move forward17:14
mterrySounds like this won't be sufficient for now17:14
bzoltanmterry:  correct.. on LTS we are busted either way ... because we can not replace the toolchain there17:14
zbenjaminmterry: yes so that would be only possible when we SRU that toolchain back17:14
mterrythat's not happening  :)17:14
ogra_mterry, get doko really really drunk :)17:14
zbenjamin:D17:14
zbenjaminogra_: add a "really" there :D17:15
ogra_(step 1)17:15
bzoltanogra_:  you can not get doko _THAT_ drunk17:15
mterryzbenjamin, bzoltan: OK...  so this sysroot solution is a future idea.  For next LTS17:15
ogra_yeah, it is also very hard to get him drunk :)17:15
mterryzbenjamin, bzoltan: what do you need on 14.04?  You need a chroot?17:15
bzoltanmterry: sysroot + fixed toolchain on new releases and chroot on old releases17:15
mterryIf I give you a sysroot directory on 14.04, you can't compile using it?17:15
zbenjaminbzoltan: mterry: since we switching to distribute the SDK from an installer rather the archive we could ship a new toolchain with it (maybe)17:16
bzoltanmterry:  on LTS we already have the chroot based solution... kind of okey17:16
mterrybzoltan, ok...  so on 14.04 give you a sysroot directory with toolchain *inside*17:16
bzoltanzbenjamin:  +117:16
mterryhmm, ok...17:16
bzoltanmterry:  yes, and we chroot to that sysroot17:16
zbenjaminmterry: our problem is we are hitting a wall with backporting the SDK because of the new Qt that is incompatible17:17
ogra_you dont really want to diverge from the archive toolchain17:17
mterrybzoltan, zbenjamin: OK, so only difference is if toolchain is inside or outside sysroot17:17
zbenjaminogra_: true :/17:17
ogra_we need to find a way to utilize it from the archive17:17
mterryogra_, yeah... but I'm ok having a copy of it inside a directory17:17
bzoltanmterry:  yes.. and that with the present solution we chroot17:17
zbenjaminogra_: how about using exactly the same sources but enabling the sysroot caps?17:17
zbenjaminogra_: would that break ABI?17:17
ogra_mterry, sure, but that looks more like "we need to recompile it first"17:18
mterryzbenjamin, bzoltan: is there a bug for this yet?17:18
mterry(to enable --sysroot)17:18
ogra_zbenjamin, it could even get you different binary behavior ...17:18
zbenjaminmterry: no i kind of just came up with it :D17:18
bzoltanogra_: crap17:18
mterryzbenjamin, file one then from the SDK point of view, I'll subscribe and watch  :)17:18
zbenjaminogra_: yeah thats the problem , we probably need to ask someone who knows the toolchains by heart17:18
ogra_right17:18
ogra_either doko or infinity17:19
mterryzbenjamin, bzoltan: so even if I gave you a chroot, that would still work in the --sysroot future, right?  You just wouldn't use the toolchain sitting inside of it17:20
bzoltanmterry:  yes, it would work17:20
zbenjaminmterry: you can even setup the very same chroot to do, lets say nodejs builds in it17:20
ogra_mterry, how do you handle the "cross" part in that ?17:20
zbenjaminogra_: same as we do with the click chroots?17:20
ogra_how do we handle it there ? qemu-user-static ?17:21
mterrywhich is just build once per chroot, right?17:21
zbenjaminogra_: cross toolchains17:21
zbenjaminogra_: native cross toolchains17:21
mterryoh do you still have one chroot that builds more than one arch output?17:21
ogra_thats enough for QT ?17:21
bzoltanmterry: ogra_: the present chroot solution in single run builds are pretty functional... the problem with it is that 1) takes time to set up 2) unstable for long run 3) needs root to set up17:21
zbenjaminmterry: ogra_: 4) slows down the IDE horribly  5) leaks mounts17:22
mterrybzoltan, zbenjamin: I'm not saying I love chroots.  By all means, get rid of them17:22
zbenjamin6) restores the leaked mounts after boot17:22
mterrybzoltan, zbenjamin: but for now, they're the only game in town  :)17:22
ogra_mterry, that might work for just Qt ... as soon as anything in the build tries to exec something inside the chroot you will need something like qemu-user-static again though17:22
bzoltanmterry:  getting rid of chroot is good... but not by migrating to th even more messy VM17:22
mterrybzoltan, I'm not advocating that.  I like the sysroot thing just fine, I think.  But it's just not available today is what I'm saying17:23
mterrybzoltan, go get it added to our toolchain and then we can talk17:23
ogra_and it is limited to the toolchain ...17:23
mterryogra_, yeah we may need one-chroot-per-arch17:23
bzoltanmterry:  the funny things is that pretty much all otherplatform's sdk is using that sysroot + toolchain modell ... nobody is using chroot or builder VM17:24
ogra_mterry, and something clever that notices if some build script tries to exec something inside the foreign chroot17:24
ogra_this needs to be wrapped in qemu-user-static calls17:24
mterryogra_, or just run the build under qemu in the first place17:25
mterryand be slow17:25
ogra_no17:25
zbenjamin+1 ogra_17:25
mterrybzoltan, that's fine!  I can't control other platforms' sdks  :)17:25
ogra_then your RPi will be faster :)17:25
bzoltanmterry: that is called scratchbox :) NOOOOOO17:25
mterrybzoltan, but nor can I flip a switch and fix our toolchain.  File a bug!17:25
mterryogra_, bzoltan, zbenjamin: OK, OK  :)  No qemu-by-default...17:26
bzoltanmterry: +1 will be done17:26
ogra_mterry, so your first focus shoilld be to develop such a switch then :)17:26
ogra_*should17:26
mterryogra_, oh that's just for the toolchain-in-or-out-of-sysroot problem.  That doesn't solve the qemu problem, does it?17:26
zbenjaminogra_: atm all projects that are compiled for the phone need to be cross build capable. And so all tools since we have no qemu there. But thats just the phone story of course17:26
mterryogra_, yeah maybe if a snapcraft language plugin needs qemu, it will know that and do what's necessary.  but most won't need qemu, one hopes...17:27
ogra_mterry, qemu-user-static (just syscall translation) is reasonably fast ... but also slightly unstable (not all syscalls can be translated) ... what i would do is to run such a syscall translated chroot and then replace the armhf toolchain with a cross x86 one that skips any syscall translation17:28
zbenjaminmterry: ogra_: bzoltan: sorry guys i need to run, GF is already looking angry at me :D17:28
mterryzbenjamin, thanks!17:28
zbenjamini will read teh backlog... man always the interesting conversations when i need to go D17:29
bzoltanzbenjamin:  do you have GF? Duuude, where is your comitment? :D17:29
zbenjaminbzoltan: lol , what was it with wife and kids you just mentioned?17:29
ogra_mterry, that way your compiler runs at host speed ... and in cases where tools inside the chroot needs to exec some native binaries they can use the syscall translation and run natively17:29
bzoltanzbenjamin:  that is after life17:29
mterryogra_, you're saying the x86 one inside the chroot would be able to skip the qemu translation being done on it?  qemu is fancy enough to not translate native code?17:30
ogra_mterry, right17:30
mterryneat17:30
ogra_qemu-user-static uses the binfmt kernel module ... that checks the binary header of a file you try to exec17:31
ogra_if it is foreign it wraps it17:31
ogra_if not, it doesnt :)17:31
mterryOK.  So sounds like the way forward is provide chroot directories to the SDK.  They'll have toolchains inside.  Which we may swap in and out for native toolchain as speed demands dictate.  We'll have one chroot per arch17:31
ogra_sounds good17:32
mterryThat's not very controversial17:32
bzoltanmterry: ogra_: sounds smart enough to me17:32
mterryAnd in future, maybe we can skip stuffing the toolchain inside, if we get future --sysroot smarts17:32
ogra_and at some point in the future we'll have --sysroot support17:32
ogra_*snap*17:32
mterry:)17:32
ogra_(...py)17:33
* bzoltan lays back and opens the can17:33
ogra_you havent yet ? tsk :)17:33
mterrybzoltan, and that's basically the same as current SDK uses, right?17:33
mterryThis solution needs root though, which is a bummer.  I'd like that --sysroot option too17:33
bzoltanhttps://www.youtube.com/watch?v=3YmMNpbFjp017:33
ogra_mterry, fakechroot :)17:33
* ogra_ hides in a hole17:34
bzoltan:D :D17:34
bzoltanmterry:  we already get used to the chroot what requires root access... it is not great but keeping it is not a regression :)17:34
mterryogra_, what is wrong with fakechroot?  I know I rarely use it for anything.  Does it just have holes in it's wall?17:35
ogra_it is pretty similar to deb2snap :)17:35
mterryYeah, it uses preload too17:35
mterryogra_, but deb2snap is so great!  Surely fakechroot is too17:35
ogra_mangling all sorts of vars and preloading17:35
ogra_haha17:36
ogra_well, it is surely not worse17:36
mterryHrm...17:36
ogra_we should try it our17:36
ogra_*out17:36
mterrySomeone hasn't learned to love deb2snap yet17:36
ogra_i must admit i havent used it yet :)17:36
mterryogra_, eh, it's what you'd expect17:37
* ogra_ is still stuck with nodejs mostly :)17:37
bzoltanmterry:  so what is the catch with that fakecroot?17:37
ogra_and my shiny projects are usually shell ... foor that i just copy a busybox static binary in place ;)17:37
ogra_(and snap that up)17:37
ogra_bzoltan, you can run it as non-root17:38
mterryogra_, tsk tsk  :)17:38
zbenjaminbzoltan: our chroots  do only need root for creation not for ru17:38
zbenjaminning tools17:38
bzoltanzbenjamin:  I know that :)17:38
zbenjaminCrappy.phone keyboard :)17:38
ogra_yeah, somone needs to port ubuntu to the neo90017:39
mterryzbenjamin, why not during a run?   I would think you'd still need to enter the chroot there?17:39
bzoltanzbenjamin: I am sure your GF is delighted that you irc on the phone17:39
ogra_haha17:39
zbenjaminmterry: thr17:39
mterryzbenjamin, yeah get out of here and kiss your SO17:39
zbenjaminSchroot does not need root for running17:40
bzoltanmterry:  it is true... we do not need  root to enter the schroot17:40
zbenjaminbla17:40
zbenjaminbzoltan: she loves it17:40
mterrybzoltan, zbenjamin: Huh.  setuid then?17:41
zbenjaminI guess so17:41
zbenjaminBut schroot is not optimal .. We should do better even with a chroot solution17:43
bzoltanmterry:  I do not know how schroot does it17:50
mterryzbenjamin, bzoltan: oh interesting -- what's wrong with schroot?  Seems like rest of Ubuntu uses it happily17:51
bzoltanmterry:  there are lots of problems 1) bootstraping it takes ages and it is a fragile process 2) it leaks mount points... after some time you mind find 10k mount points, because schroot re-mounts sessions  what are dead 3) it does require root to set up 4) it is still an extra step between the rootfs and the IDE, so it is slow17:53
zbenjaminmterry: worst thing, it leaks mounts. And then restores them all on boot. We once had a dev with 16k mountpoints17:53
bzoltanmterry:  keep in mind that we hand this weapon over to entry level app developers... schroot is safe as long hard core gurus are using it17:53
bzoltanzbenjamin:  dude if you jusr write redundant stuff then you are really better off kissimg your GF :)17:54
zbenjaminmterry: every call to schroot.adds 3 seconds when executin something in it. Now imagine Qtc querys the qmake tool 5 times per kit when starting. also cmake. that adds.up.to a loong startup time17:55
zbenjaminbzoltan: pff just because you.type faster on your fancy keyboard17:56
mterryzbenjamin, bzoltan: so alright.  this is all solved by future --sysroot, I guess.  Is there some other chroot tool I should be using today until --sysroot happens?17:57
bzoltanzbenjamin: I can switch over to the nexus10 just out of solidarity :D But my wife is out of the house... so no reason17:57
zbenjaminbzoltan: lol17:58
bzoltanmterry:  I think if you can be happy for the time being with schroot then we are on the safe track ... the VM idea we should forget as soon as possible :) that was a scary one17:58
sergiusensbzoltan: as long as it works on Windows and Mac, the solutions are fine17:59
zbenjaminsergiusens: well sysroots.do work18:00
bzoltansergiusens: yeps... sysroot with toolchains do work18:00
bzoltansergiusens:  it is the chroot what pulled off he cable from the portable SDK18:00
zbenjaminbzoltan: redundancy dude.. Redundancy18:00
sergiusensjdstrand: btw https://code.launchpad.net/~sergiusens/snappy/frameworkPath/+merge/26020218:01
bzoltanzbenjamin:  LOL18:01
jdstrandsergiusens: yeah, I saw that-- haven't had a chance to look at it yet18:01
sergiusensjdstrand: ack, just in case18:03
bzoltansergiusens:  The VM idea for the above listed reasons is a big no for the app developer... even on OSX and Windows. Application development without IDE is not an application developer. And IDE without code completions, syntax highligh, context sensitive help, source code debuging and quick builds is not an IDE.18:05
bzoltansergiusens:  the VM might be good for some sort of system emulation and for packaging non compiled non UI projects.. for everything else VM does not deliver18:06
* tedg back18:15
tedgI don't understand how a chroot works on Win/Mac?18:16
tedgSeems like you need at least Linux kernel headers… I guess… but you'd really want more than that.18:16
bzoltantedg:  on Win it does not, at all.. on Mac it might, but still doubt that it is trivil18:28
tedgSo it seems on those we'd need VMs, eh?18:29
bzoltantedg: VM is a dead end ..  if no chroot  then the only viable solution is the sysroot + toolchain18:30
tedgAh, I see. So you're basically rolling the chroot into the toolchain.18:31
bzoltantedg:  few years back I have asked if we want a portable SDK. I have asked if we want to port the app development story to OSX and Windows. I was told on many occasions that I better focus on providing an Ubuntu based SDK and if sombeody from teh community picks up the porting stuff then fine18:31
tedgSeems there's no way to get tests to work in that case though. Even one same arch. Without a VM.18:32
bzoltantedg:  I am not sure if I understand what you mean18:32
tedgI mean if you build the test, and it links against let's say a kernel syscall, you couldn't run that test on Win32.18:33
tedgEven if they were both x8618:33
bzoltantedg:  when we talk about running a test we talk about runtime use case... tests are runtime actions. For that case we need the emulator or a VM.18:34
beowulfsergiusens: regarding your comment about reviewing code, mvo expressed an interest there :)18:34
bzoltantedg:  but that is runtime and not editing-compiling-linking-packaging18:34
tedgDon't you really want it to be edit-compile-link-test-package ?18:34
sergiusensbeowulf: but mvo also mentioned he wasn't an expert in js, that is what I think we should have18:35
tedgFor things like unit tests, not integration.18:35
bzoltantedg:  no.. testing for me means running. Different game18:35
bzoltantedg:  true... unit tests brings an extra hook18:35
tedgbzoltan, So if I'm correct, your issue with VMs is that you can't get a directory of source code out for highlighting, etc?18:36
bzoltantedg:  in the present app sdk we do not have much story for unit tests... functional tests we support, but that is runtime18:36
tedgbzoltan, Why couldn't we mount a dir from the host system into the VM, and use the edits in the host system?18:37
bzoltantedg:  that is just one ... code completion, source code debugging, context sensitive help... al features what makes the IDE18:37
bzoltantedg:  it still would not give us access to the qmake in the VM18:38
tedgbzoltan, Sure, but if we told the IDE that your sysroot is /foo/bar and to compile you run "in-vm-gcc" as long as that gcc could mount the VM, mount /foo/bar and run on it. Everyone is happy.18:38
tedgbzoltan, I'm pretty sure I can do that :-)18:38
tedgi.e. you run vm-qmake and perhaps that ssh's into the VM and runs qmake18:39
bzoltantedg:  and you give me 10 developers for 2 years and tell the Qt upstream that we have just forked their IDE :)18:39
tedgIt seems all you need is access to the files and the STDIN/STDOUT of the tools.18:39
tedgHow they do their job isn't important to the IDE.18:40
bzoltantedg: horrible slow ... already the chroot puts 3-5 seconds on each call.. with ssh and VM it would be horror18:40
tedgSo if I can make it fast, you'd be happy with a solution like that though?18:40
bzoltantedg: VMs just simple do not blend with IDEs18:41
tedgI think we could do tricks with things like LXC to make it not be performance bound.18:41
bzoltantedg: but why?18:41
tedgWell, we can use the toolchain we have for one :-)18:41
bzoltantedg:  I doubt you can even fix any VM to get even close to direct access...18:42
tedgBut once we abstract at that level the archiecture thing starts to fade away.18:42
tedgBasically all the path/directory issues get handled by the container.18:42
bzoltantedg:  the real solutiuon is what we talked with mterry, ogra_ and zbenjamin18:42
tedgThat solution seems pretty limited, and requires some base changes in how our toolchain works. Which seems expensive.18:44
* mterry is happy with whatever you folks come up with18:45
* mterry is tired of thinking about toolkits18:45
tedgPerhaps I'm not seeing it, but a relocatable toolchain really only solves the problem of building it. But not really the rest.18:45
bzoltantedg:  I give you a scenario... I am an app developer.. I have set up my project so it targets three devices ... one phone, one desktop and one legacy tablet. Very generic scenario ... One app different targets. I am editing my code .. each target have different API set... I push tab-tab to complete a property of a component... the IDE looks up for the name .. I change teh target and hit tab-tab ... I canhe again tab-tab ... do you want to pre-deploy 3 VMs and18:47
bzoltan access 3 times ssh/mounting for that simple property? Or do you start the VM when I hit tab-tab? It just does not work that way with IDEs... you want direct access to the rootfs and to the toolchain18:47
tedgI only want to start the VM when you hit compile.18:47
tedgSo instead of gcc it calls lxc-gcc18:47
tedgSo all the code is available directly to the IDE in the host system.18:48
bzoltantedg:  compliation is just one thing.. code completion, syntax highligt, context sensitive help, etc18:48
tedgSure, and you get all of those with local access to the files.18:48
bzoltantedg:  developers want code completion before compilation18:48
bzoltantedg: how do you mount the rootfs + the qmake from a non deployed VM?18:49
tedgI don't do it that way. The VM deployment mounts from the host fs.18:50
tedgThe VM's image is tiny, only enough to mount to host's exported filesystem.18:50
tedgSo all the files remain in the host.18:50
bzoltantedg:  so you expect the SDK to deploy _all_ VMs what the developer configures as target?18:50
mterryOnly for building one target, one VM right?18:51
bzoltantedg:  and even if you mount the file system... how do you expose the qmake?18:51
tedgCorrect18:51
tedgExpose qmake via SSH18:51
bzoltanmterry:  tedg: no .. building is the last step18:51
tedgSo you call lxc-qmake18:51
bzoltantedg:  not possible to expose the qmake via ssh18:51
tedgIt will start the container if need be, and give you STDIN/STDOUT of Qmake in the container.18:51
bzoltantedg: start the container on-demand? Wait for how long for a code completion?18:52
tedgWe're expecting to run containers for all of your legacy apps as well. They'll have to be fast :-)18:52
tedgNo, code completion is done on the host file system.18:53
tedgYou don't need the container to access the files.18:53
bzoltantedg:  but I need to run the container at least once to export the files18:53
tedgI'm not sure what you mean by "export the files"18:53
bzoltantedg:  Simple... the IDE needs instant, random access to the files of the target and native access to the toolchain. that is it...18:54
tedgI think that getting the files from the host FS to the container FS will just be a bind mount.18:54
bzoltantedg: we can not and will not fork the IDE :) to work around our VM hacks... Qt upstream already rolling eyeballs seeing our chroot hacks18:55
bzoltantedg:  opposite direction... the IDE on the host needs to access the target file system18:55
tedgI guess I'm not asking you to. I'm saying that we have a compiler kit that is "lxc-gcc" and "lxc-g++" and those would be used in that case.18:56
tedgThe IDE doesn't need to know more about containers.18:56
bzoltantedg: I need to cross-check it... qmake is one level higher than gcc/g++18:56
tedgI imagine we won't need to fork to make qmake configurable :-)18:57
bzoltantedg:  and as I said, the IDE needs editing time access to the files and qmake not only build time18:57
bzoltantedg:  well... that is exactly what we made with Meego :) back in stone age18:58
tvossbzoltan, how does eclipse solve that problem?18:58
bzoltantvoss: does it?18:59
tvossbzoltan, I used to use it in a somewhat vanilla configuration quite some time ago for embedded development and it works surprisingly well18:59
bzoltantvoss:  does eclipse support Qt development with VMs?18:59
bzoltantvoss:  with local sysroot and toolchains yes .. that is not a challange for QtCreator either19:00
tvossbzoltan, that's not the question, the question is: cross-compiling/building for a target that is not the host19:00
bzoltantvoss: the questio is where the IDE pulls the toolchain and the target fs19:00
tvossbzoltan, sure, just saying that eclipse has way more exposure to embedded dev environments than qt creator has ... likely to have some good ideas over there19:00
bzoltantvoss:  if it is local then it is a nobrainer19:00
tvossbzoltan, sure, the interesting questiion is non-local (vm/container/device)19:01
tvosswhatever19:01
rsalvetibzoltan: tedg: how is android solving this?19:01
bzoltantvoss:  no, it is not eclipse vs. qtc issue ... it is local sysroot versus container issue19:01
bzoltanrsalveti:  with sysroot19:01
rsalvetiI think a native cross compiler + sysroot would generally fix the issue19:01
rsalvetiright19:01
rsalvetias long we ship both, we're good19:01
bzoltanrsalveti:  precisely19:01
rsalvetiwe don't need anything else19:01
rsalvetiI don't want to rely on our toolchain at all19:01
tedgSo then Android apps don't have unit tests?19:01
rsalvetiwe could consume it from the archive, but I prefer having a pre-built (static only) toolchain that we ship as part of the sdk or something19:02
bzoltantvoss:  rsalveti: both eclipse and qtc were primarily made for dealing with toolchains and sysroots19:02
rsalvetisame thing as android does19:02
tvossrsalveti, I don't think it would harm to investigate into other ides19:02
tvossin the sense of gaining inspiration19:02
rsalvetianything besides sysroot (vms/chroot and so on) is just super complicated when you need to support multiple os19:02
bzoltantvoss:  just do not make the impression that :) this issue is about a shortcoming of the QtC :) code completion and syntaxt highlight, API help are the same in all IDEs19:03
rsalvetibzoltan: right, and why are we not doing that *today* already with touch?19:03
rsalvetiI don't get this idea of relying on backporting a toolchain and such19:03
bzoltanrsalveti:  I am asking that question since day zero :)19:03
rsalvetiwell, and what is the answer that you got? :-)19:03
rsalvetithere must be at least one19:04
tvossbzoltan, I don't say that it's a shortcoming, just saying we should look around :)19:04
bzoltanrsalveti:  we went thru this with ogra_ and zbenjamin with mterry. We need to check the possibility of enabling --sysroot in out toolchain and make it relocatable.19:04
rsalvetibzoltan: right, my question is why can't we do that?19:04
rsalvetiyou said above that nobody wanted to maintain 2 toolchains in the archive19:05
bzoltantvoss: Of course... what android sdk does better is that they use sysroot19:05
rsalvetiwhat I'm saying is that we don't necessarily even need to maintain this *in* the archive19:05
rsalvetitvoss: the overall solution across IDEs is providing a native cross toolchain + sysroot19:05
bzoltanrsalveti:  my hope is that this 2nd toolchain would be the same as the 1st... with some extra build options19:05
rsalvetibzoltan: right, and that is something that your team could maintain, right?19:06
rsalvetisimple, create a snap for your toolchain ;-)19:06
bzoltanrsalveti:  sysroot support and relocation of the toolchain are what we need19:06
bzoltanrsalveti:  Yeps, i will  investigate this option19:06
rsalvetibzoltan: right, then just fix it :-)19:06
bzoltanrsalveti: duuuude19:07
rsalvetion our side all we need to do is offer a way for a sysroot to be used/consumed19:07
rsalvetithe plugin can do whatever19:07
bzoltanrsalveti:  my agenda here is to raise the red flag that the VM path is just a big hack and would cost us more then doing the right thing (tm)19:08
tedgWe're gonna need some sort of container solution if we expect to be able to install debs as dependencies anyway. (i.e. for nodejs core)19:08
tedgEven if that ends up in a sysroot19:08
rsalvetiright19:08
bzoltantedg: +1 for that .. chrootable sysroots are fine19:09
rsalvetibzoltan: it's fine, from the snapcraft perspective we could support sysroot, chroot and also vms19:09
bzoltanrsalveti: \o/19:09
rsalvetiguess that's the basic requirement you were looking for19:09
zbenjaminrsalveti: do we need apt there? I thought we will have devpacks for that19:10
tedgI think that, at least for the short term, we'll need apt to get started.19:10
bzoltanrsalveti: tedg: what we agreed with the boys before was that as an intermediate solution we keep the schroot alive and do not cause feature regression. As next step we investigate the toolchain issues and possible fix it and offer a sysroot + toolchain solution. For testing and runtime and all other non compiled non UI projects VM is just fine.19:11
rsalvetiyeah, I see we moving from apt -> devpacks19:11
zbenjaminrsalveti: +1 for the android way but keepn in mind we need.a binary compatible tc to.our.libs19:11
rsalvetisince then we could have people providing devpacks as well19:11
rsalvetilike upstream and so on19:11
rsalvetizbenjamin: sure19:12
* bzoltan EOD ... 10pm here19:15
zbenjamini wonder if its possible to let apt run against a sysroot/rootfs... something like apt-get --rootfs /somepath install somepackage19:15
zbenjaminbzoltan: you are going to sleep? Now i need to wonder about your commitment :D19:16
rsalvetithat's kind of tricky indeed19:16
rsalvetiwhat we did on linaro was always creating the sysroot from scratch19:16
rsalvetieither building it (when using OE), or debootstraping it19:16
rsalvetisince you generally don't want to update the sysroot so often19:16
bzoltantedg: rsalveti: mterry: zbenjamin: ogra_: Thanks for this discussion.. let's itterate it :) I really enjoy that we move this ship forward19:16
tedgI think for apt you probably want to just use LXC there. Then it thinks that the sysroot is /19:16
zbenjaminbzoltan: +119:17
tedgIt is also "root" and can change all the files it wants19:17
* tedg watches out for icebergs19:17
tedg;-)19:17
rsalvetitedg: right, that's a way, more to the chroot direction19:17
zbenjamintedg: yeah sure, i just know that other package managers _can_ do that :D19:17
rsalvetifor sysroots I think devpacks will be very handy19:17
zbenjaminrsalveti: +1 , devpacks sounds perfect for sysroots19:18
tedgrsalveti, Do you imaging a devpack is a just an app snap with known paths that we mount into the sysroot?19:18
zbenjaminrsalveti: and since we are doing the tool from scratch it should be able to use a sysroot... snapcraft --sysroot ~/device1/sysroot install-devpack touch-sdk19:19
tedgi.e. /usr/include/foo for the foo devpack19:19
rsalvetitedg: yeah, something like that19:19
rsalvetiwe could have a small sysroot + a huge qt devpack for example (painful but to show how it could work)19:20
rsalvetifor personal it's easier since Qt is part of the core image19:20
rsalvetiso we could have a big sysroot including our supported libs by default19:20
rsalveti*supported sdk libs19:20
tedgSo then my package definition would be something like: devpacks: [a, b, c], npm: [d, e, f], go: [x, y, x]19:21
tedgAnd that builds up the dependencies for the environment.19:21
rsalvetiright19:21
rsalvetithe main advantage, I see, for devpacks is that we don't necessarily need to consume the dependencies from the archive19:22
rsalvetiof course we could have devpacks produced out of the archive, initially19:22
tedgPerhaps someone could sell devpacks in the store ;-)19:22
rsalvetimaybe :-)19:23
zbenjaminrsalveti: tedg: regarding snaps. Will it be possible for us as the SDK ship devtools for the device (gdbserver , custom app launcher) as a snap so we can pull it from the store for a device?19:24
zbenjaminrsalveti: tedg: so we do not need to include them in the core image but can painless install them when required19:24
rsalvetiright, don't see why not19:24
tedgzbenjamin, I think we need something like that, not sure exactly how that'll work quite yet.19:24
tedgThat way you could have stable/devel builds for the device as well.19:25
tedgUsing the example of needed gcc 5.2 for wily vs. gcc 4.9 for vivid19:25
zbenjaminon the "other" Qt device they pull packages from the archives when developer mode is enabled19:25
tedgHmm, that's crazy :-)19:27
zbenjamin:D19:27
tedgClearly they need more sunlight.19:27
zbenjaminbetter than the current situation on our phone, where a developer manually needs to make the rootfs writeable to install gdbserver ;)19:28
tedgI think we really want you to be able to build for a specific device without having that device available. For things like buildservers for instance.19:28
zbenjaminyes definately19:28
rsalvetiright, either something we make available via the store19:29
rsalvetior something that the sdk could sideload19:29
zbenjaminrsalveti: sideloading from the SDK is problematic as soon as we have binaries19:29
rsalvetizbenjamin: why?19:29
zbenjaminrsalveti: gdbserver needs to have the right architecture for the device.19:29
tedgzbenjamin, https://code.launchpad.net/~ted/ubuntu-seeds/gdbserver/+merge/25787219:30
rsalvetiright, but we could simply sideload the right snap19:30
zbenjaminwhere do we get the correct package from is the better question19:30
zbenjamintedg: wow finally :D19:30
rsalvetizbenjamin: right, depends on who is the owner of it :-) we could always consume what is available in the archive19:31
zbenjaminrsalveti: we can hardly ship all possible snaps for the sdk, if we can provide a central place to download them thats fine too19:31
rsalvetiand produce something snappy compatible19:31
rsalvetiright, we can have something :-)19:31
zbenjaminrsalveti: so you worked for linaro? Then you know exactly how to build a binary compatible static toolchain for our devices right? :D19:33
zbenjaminits horrible to find informations about that topic19:34
rsalvetizbenjamin: I was managing the team doing that19:34
rsalvetibut in a smaller scope19:34
rsalvetiwe used sysroots for 2 things19:35
rsalvetione was using open embedded to create the sysroot and the cross compiler in order to allow people building stuff for arm64 (when we didn't have any major os supporting it)19:35
rsalvetiand the other was to help bootstraping new architectures for debian/ubuntu, mostly using multi-arch19:36
rsalvetigetting the toolchain right is the painful thing19:36
rsalvetiwhich is why linaro was producing native toolchains based on their own gcc versions19:37
zbenjamini figured, we considered shippig a custom static tc for the click SDK but i was not sure i could make a compatible toolchain and could not find enough informations about how to test that19:37
rsalvetito help people that were relying on codesourcery19:37
rsalvetiyeah, it's a bit painful, but I think we had that documented somwhere19:38
zbenjaminrsalveti: i hope you still have that somewhere :D19:47
rsalvetizbenjamin: I think I do, need to dig a bit :-)20:10
beowulfsergiusens: hey, need help, trying out queryPackageNames branch and http://webdm.local:4200/api/v2/packages/?q=xkcd isn't returning what i'd expect, is the url i'm using correct?20:10
zbenjaminrsalveti: \o/ thats good20:10
sergiusensbeowulf: it would exactly the same thing a "snappy search" from the cli would return20:34
sergiusensbeowulf: which would be similar to curl -H "X-Ubuntu-Release: rolling-core" https://search.apps.ubuntu.com/api/v1/search?q=xkcd |python -m json.tool20:43
beowulfsergiusens: then i'm doing something wrong as http://webdm.local:4200/api/v2/packages/?q=xkcd returns 22 results, as does a search for 'foo'20:44
sergiusensbeowulf: are you running the version compiled from the MP?20:44
beowulfsergiusens: yes20:44
beowulfsergiusens: 0.620:45
beowulfcurrent is 0.6.120:45
beowulf(as in, trunk is 0.6.1, i don't mean /apps/webdm/current is 0.6.1)20:45
sergiusensbeowulf: remember, just in case, that it case to be in $GOPATH/src/launchpad.net/webdm and not some random branch20:45
sergiusenssorry for typos, ssh on a slow connection20:46
beowulfsergiusens: *facepalm*20:46
sergiusensbeowulf: I thought it would be somethin like that20:48
tedgmterry, I added a section "Snap from scratch" at the bottom of the doc. Thoughts?20:54
tedgmterry, I think it distills a bit of what we've discussed today, with the idea of targets providing their own toolchain.20:55
* mterry looks20:55
tedgI imagine we could build the first dev packs with chroot and deb2snap or something like that.20:59
tedgAnd then in time we can make them smarter.20:59
beowulfsergiusens: +1, \o/21:06
mterrytedg, you and your snappy-native thinking  :)21:17
mterrytedg, I'm still in desktop land21:17
tedgHa, I've been upset at dpkg for a long time :-)21:17
tedgThe reason I like that idea is that it basically inverts the cross-build problem.21:18
tedgAnd, I think, then makes it simpler.21:18
mterrytedg, so this is vearing toward an idea I was thinking about.  There is a lot of similarity between devpacks and our language plugins21:18
tedgHmm, that is true21:19
mterrytedg, I don't think I'm ready to say one eclipses the other.  But maybe they could21:19
mterrytedg, and more importantly, that would solve the problem of what to call the languages: key  ;)21:20
tedgPerhaps they build on each other. It seems like you'll want a base target and then others.21:20
tedgFor instance, the base would have to provide the C compiler for Python modules.21:20
mterrytedg, you're thinking about the gcc toolchain?21:20
mterrytedg, I guess.  But then you'd just say "devpacks: python3, c++" (except in yaml)21:21
mterryIt's already a list field21:21
mterryOr maybe the python3 devpack would dep on the c++ one?  (on the expectation that compiled modules are common)21:21
tedgYeah, that could provide more power to dev packs that are perhaps, non-standard in that they'd run other things.21:22
mterrytedg, but for example, the codespell app doesn't need c++21:22
mterryIt would just need a python3 plugin (or devpack or whatever we call it)21:22
tedgHmm, it would still need to know the target platform though.21:23
tedgi.e. whether python3 was installed there21:23
mterrytedg, maybe.  I think it's reasonable for python3 to just always install python3 into the snap21:24
mterrytedg, but you're talking about the version of Core that is targeted, right?21:24
tedgYeah, I can see that. Let deduplication solve the problem.21:24
tedgYes21:24
mterrytedg, (also, some apps may want a specific version of python3)21:24
mterrytedg, version of Core is a whole separate problem though I think.  early versions of snappy.yaml spec had (have?) a target: key21:25
mterrywhere you specify core or whatever21:25
mterryThat seems reasonable to define in yaml vs build command21:25
mterryslash devpack21:25
tedgHmm, I was thinking that you'd have multiple though, eh?21:26
mterrytedg, multiple what?21:26
tedgAre there fat snap packages?21:26
tedgcore-armhf, core-arm64, core-i38621:26
mterrytedg, target multiple versions of coree?21:26
mterrytedg, ah.  well that's not quite version.  that's arch21:26
tedgcore-mips ;-)21:26
mterrywe're talking two different things I realize21:26
mterryI was talking 15.10 vs 16.0421:26
mterrytedg, ok, regarding arch...  let me reread  :)21:27
tedgSure, I think they're related though. The version is a number and an architecture, no?21:27
=== devil is now known as Guest2761
=== Guest2761 is now known as devil_
mterrytedg, well I was approaching from version may mean whether python3 is available in Core or not.  Whereas that's not an issue across arches21:28
mterryso sure... python3 devpack is available for multiple arches.  no problem, right?21:28
mterrytedg, ^21:29
tedgI think so yes. But I think it has to then depend on a "core devpack" that is arch specific.21:29
tedgFor example, to build modules.21:29
mterrytedg, well in each buildenv, the devpack would the right version of python in21:30
mterry*put21:30
tedgThe right version of python, but what about the modules it downloads and installs?21:30
tedgSeems also the Python devpack would then need to have a version of python to put into the environment for every target arch.21:31
rsalvetiyou could have a base devpack for the interpreter21:31
mterrytedg, it's the intermediary for that... so it can make sure21:31
rsalvetiand just use pypi for the other stuff21:31
mterrytedg, sure21:31
mterryrsalveti, right -- I assume pip is getting every dep we care about21:31
mterryI mean, there are also compiled deps21:32
tedgYeah, so if I'm on x86 building an arm package. The python devpack would have a compiled armhf version of the interpreter that'd show up in the install directory.21:32
rsalvetiright21:32
rsalvetiyou could as well have fat devpacks (multi-arch)21:33
rsalvetiand just install for the target snap arch you're creating21:33
tedgNot sure if the python devpack needs to be target arch based. i.e. python-armhf-devpack, because we probably don't want to have everything in one.21:33
tedgDoes fat here mean multiple host arch or multiple target arch?21:33
rsalvetidepending on the case it could mean btoh21:34
rsalvetisince it could provide the cross compiler + target libs21:34
tedgI think we're gonna have to support some minority architectures, so it might not be useful to be really fat.21:35
rsalvetiright21:35
tedgWe might need to kinda have a mixed situation there.21:35
rsalvetiyeah, it's just a convenience21:35
tedgWhen snappy queries the store it'll look for the host architecture.21:36
tedgSo besides building, we can assume that's correct.21:36
rsalvetiright21:36
tedgSo it seems that a devpack needs the target architecture in the name?21:36
tedgOr is there some way we can be more clever there?21:36
rsalvetihttp://bazaar.launchpad.net/~lool/snappy/snappy.devpacks-definition/view/head:/devpacks.md21:37
rsalvetiwhat is a bit complicated is that this interferes directly with the snap naming21:37
rsalvetisame for apps, frameworks and such21:37
rsalvetithat same problem of starting an 'app' that is armhf only21:37
tedgAh, I didn't realize there was docs already for this.21:37
rsalvetiand then wanting to do the x86 version for it as well21:37
rsalvetiwould you rename that? would you go with fat by default?21:38
rsalvetifat might be too fat though21:38
rsalvetiwhen querying the store is a bit easier21:38
rsalvetisince you give the arch21:39
tedgOh, that doc describes a lot of how snapcraft should work...21:39
rsalvetitedg: yeah, check the links part of that doc21:39
rsalvetimore how it could work at this stage21:40
tedgSo it might be that we can just support querying the devpack yaml directly to align all the architectures.21:43
mterrytedg, we've been able to avoid dealing with a lot of what devpacks might entail by avoiding compiled languages in our first pass21:43
rsalvetiyeah21:44
rsalvetisolving the case for pure python/nodejs apps is already a big win21:44
tedgNot sure that the dependencies don't kill us there before we get to the win. Seems like a lot of modules have a compiled part underneath21:45
mterrytedg, medium win then  :)21:46
rsalvetithat could as well be true, but could still be a second step thing21:46
tedgHeh21:46
tedgCan we please bikeshed the amount of win it would be?21:46
tedg:-)21:46
mterrytedg, there's a lot of bootstrapping to get to even one win  :)21:46
mterryI'll take a baby win from the ground up21:46
mterrytedg, let me open a google doc for that21:46
tedgmterry, So could a "language plugin" really be a devpack that provided a "snapcraft" command?21:48
mterrytedg, I'm not sure they are perfectly overlappig21:48
mterrytedg, it was just a quick thought21:48
mterrytedg, it might be safer to continue with language plugins for now21:49
tedgI think they overlap from the lifcycle perspective, which is really nice.21:49
psusihow do you switch from 15.04 stable to rolling/alpha?22:06

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