many: switch channels on refresh if needed (#2817)
This will switch the tracked channel if no update is available on refresh but the channel is different than the currently tracked channel. This allows:
$ sudo snap refresh --edge godd
snap "godd" has no update available and tracks "edge" now
interfaces/builtin: add /boot/uboot/config.txt access to core-support (#2857)
As discussed in #2488 this moves the config.txt editing into core-support.
This allows us to write a config hook for core to set the options
for the pi2 config.txt. We do it in core for now because we tightly
control this snap and any mistakes in editing config.txt may make
the system unbootable.
release: assume higher version of supported distros will still work (#2836)
The current code in release.go:os.ForceDevMode() uses a strict
version check to test if a new release supports non-devmode.
This is problematic as we always need to add new versions when
a derivate releases a new version. This branch uses VersionCompare()
to check the version and assumes that higher versions will continue
to work. It also assume somewhat sane versioning in VersionID. This
is the case so far and once we see expection we can always add code
for this.
The risk is of course that the distributions in higher version stop supporting
us. So this PR assumes that most derivates will not (i.e. it is less work to
add the exceptions than to track all the new versions).
cmd/snap-update-ns: add compare function for mount entries (#2848)
This patch adds a simple function for comparing mount entries. This will
be followed up with a simple routine that sorts two lists of mount
entries qucikly.