Snapcraft Summit summary – day 2
by Kyle Fazzari on 1 February 2018
The second day of Snapcraft Summits tend to be particularly productive as all the participants get more familiar with each other, and this one is no exception. In addition to developers from CircleCI, Electron, Microsoft, Plex, and Slack, today saw the addition of our friends from ROSHub joining us to hack on their snaps.
Snapcraft recently (in v2.37) gained the ability to patch ELF files in classic snaps to have an rpath to load its libraries instead of relying on LD_LIBRARY_PATH. Some of the participants here ran into an issue with this new feature where they needed to set rpaths themselves, and Snapcraft overwrote whatever they did while patching. In a thrilling show of tactile force, Sergio Schvezov cranked out a fix for Snapcraft.
Snapcraft uses Click for its command-line interface. Click requires a locale to be set, and raises an ugly error if it’s not. Unfortunately, this is often the case in some of the environments that run snapcraft, e.g. CI systems that spin up a Docker container to build and push a snap. A few participants hit this, and it was pointed out to be a terrible experience, so Kyle Fazzari whipped up a feature that fell back to C.UTF-8 if it was available. It was reviewed and available in the edge channel before the room could blink.
In a similar vein, there were a number of issues discovered with the Snapcraft docker images, and Kyle devoted some time to making them shine with an eye toward rewriting the CircleCI tutorial to be much simpler.
There has been some interest in adding a Kotlin plugin to Snapcraft. We finally have the skills and experience together in the same room to make it happen, so Leo Arias devoted a good chunk of time to working on his first Kotlin snap: ktlint.
Leo also worked with James Henstridge to make a plan for integrating with Gnome Builder. The idea is to start with fairly basic integration to gauge interest before undertaking the more in-depth Snapcraft work required.