UbuConLA 2017 Summit Summary

These are my notes about UbuconLA, a bit of social activities and thoughts on the talks related to the snappy ecosystem. Arriving I left late on thursday for a planned night arrival into Lima, Leo was going to be arriving around 2 hours earlier than me flying in from Costa Rica. Once the plane I was on coming from Cordoba, Argentina landed into Lima I got onto an ad-hoc telegram group we had created and mentioned that I had landed and discovered Leo was still trying to Uber out of there.

Making your snaps available to the store using snapcraft

Now that Ubuntu Core has been officially released, it might be a good time to get your snaps into the Store. Delivery and Store Concepts So let’s start with a refresher on what we have available on the Store side to manage your snaps. Every time you push a snap to the store, the store will assign it a revision, this revision is unique in the store for this particular snap.

The Snapcraft Parts Ecosystem

Today I am going to be discussing parts. This is one of the pillars of snapcraft (together with plugins and the lifecycle). For those not familiar, this is snapcraft’s general purpose landing page, http://snapcraft.io/ but if you are a developer and have already been introduced to this new world of snaps, you probably want to just go and hop on to http://snapcraft.io/create/ If you go over this snapcraft tour you will notice the many uses of parts and start to wonder how to get started or think that maybe you are duplicating work done by others, or even better, maybe an upstream.

Snapcrafting a kernel

Introduction With snapcraft 2.5 which can be installed on the upcoming 16.04 Xenial Xerus with apt or consumed from the 2.5 tag on github we have included two interesting plugins: kbuild and kernel. The kbuild plugin is interesting in itself, but here we will be discussing the kernel plugin which is based out of the kbuild one. A note of caution though, this kernel plugin is still not considered production ready.

Linaro Connect BKK16

Just a week ago I made my way back from Linaro Connect. It is my first time at a Linaro Connect that was not jointly done with a UDS and even then I did not participate in the event. It was also my first time in Thailand and to a greater extent Asia so I was very interested in going. The main purpose for attending was to show snappy and in particular, snapcraft.

UbuCon and SCaLE 2016 trip report

I’m finally taking some time to wite about things that happened during UbuCon and SCaLE. I am really grateful for Canonical as without the sponsorship I wouldn’t have been there at all. UbuCon UbuCon is where was I was mostly involved, I had a scheduled lightning talk, a proper talk that I gave out with Manik and also actively involved in 3 unconference sessions. Presenting Plenary talk The day started with some an intro to the UbuCon Summit and what it was all about followed by a keynote from Mark Shuttleworth.

UbuConLA 2015 Summary

This is a post I never got to publish from way back. About UbuConLA Last week I attended the 2015 edition of UbuConLA, a successor to what once was UDS, the Ubuntu Developer Summit which later transformed into vUDS, the v standing for virtual which eventually was renamed to Ubuntu Online Summit. UbuConLA, fully organized by the community, tries to relive the days of UDS for a chance to see face to face with fellow Ubuntu contributors or contributors to be or just people generally interested in Ubuntu.

Recovering Ubuntu Core

Introduction A note of caution, most of this is an experiment and lacks finess. Ubuntu Core was released over half a year ago using this nice thing called snappy, the design allows for transactional updates among others, these updates keep on rolling though their streams and can be kicked out (rolled back) if something was fishy, guaranteeing a certain level of confidence that the system should not break.

Grub and snappy updates

This week, the snappy powered Ubuntu Core landed some interesting changes with regards to how it handles grub based systems. History The original implementation was based on traditional Ubuntu systems, where a bunch of files that any debian package could setup influenced the resulting grub.cfg that resulted after running update-grub. This produced a grub.cfg that was really hard to manage or debug, and what is most important, out of our control.

The github or launchpad dilemma

We wanted to start a migration path from bazaar to git given how ubiquitous it is and due to the fact that most in our team prefer it. A few months ago the decision was easy, since launchpad did not support git, we would just switch to github given it’s popularity. That’s not true anymore… Today launchpad supports git and our comparison becomes finer grained and we have to break it down a bit more.

Snappy rolling back on kernel panic

Image you get an update and the kernel panics with that update, what are you to do? Suppose now that you have a snappy based system, this is automatically solved for you. Here’s a short video showing this on a Beagle Bone Black, the concept is quite simple, if there is a panic, we revert to the last known state. In this video I inject an initrd that panics on boot after issuing a snappy update and before rebooting into the update.

Updates to snappy and ubuntu-device-flash

The past few weeks in the snappy world have been a revolt, better said a rapid evolution for it to be closer to what we wanted it to be. Some things have change, if you are tracking the bleeding edge you will notice a couple of changes, the store for example now exposes packages depending on the OS release, and system images are now built against an OS release as well.

Preliminary support for dtb override from OEM snaps

Today the always in motion ppa ppa:snappy-dev/tools has landed support for overriding the dtb provided by the platform in the device part with one provided by the oem snap. The package.yaml for the oem snap has been extended a bit to support this, an example follows for extending the am335x-boneblack platform. name: mydevice.sergiusens vendor: sergiusens icon: meta/icon.png version: 1.0 type: oem branding: name: My device subname: Sergiusens Inc. store: oem-key: 123456 hardware: dtb: mydtb.

Snappy Things

A while back, Snappy was introduced and it was great, while that was happening we were already working on the next great thing, Snappy for devices, or as everyone calls it, things. Today that was finally announced. It’s been lots of fun working on this. Enablement aside, we also created a very minimal webdm, it is a Web Device Management snap framework provided in the store which can be easily installed on existing devices by calling

Ubuntu Core

Ubuntu Core is what we’ve been working on this past time, it has been an interesting ride. It was developed completely in the open, there was just no real promotion about it until we were ready. If you had noticed, we use ubuntu-device-flash to create this core image, and for development we used it across the board with the core subcommand. We did learn a couple of things from the phone and decided to just provide a static image that we could make sure would work for everyone giving it a try (aka more QA).

Travis and ruby gems setup on Ubuntu

Quick install Most of the instalation instructions that dangle the web just make you sudo gem install, I don’t like that, so here’s the quick reference for when I need to do this next time: sudo apt install ruby-dev export GEM_HOME=$HOME/gems gem install travis -v 1.7.4 --no-rdoc --no-ri And this goes into ~/.bashrc: export GEM_HOME=$HOME/gems export PATH=$PATH:$GEM_HOME/bin