~mvo/snapd/+git/snapd-mvo:remodel-allow-kernel-remove-forbid-boot-in-use

Last commit made on 2019-05-29
Get this branch:
git clone -b remodel-allow-kernel-remove-forbid-boot-in-use https://git.launchpad.net/~mvo/snapd/+git/snapd-mvo

Branch merges

Branch information

Name:
remodel-allow-kernel-remove-forbid-boot-in-use
Repository:
lp:~mvo/snapd/+git/snapd-mvo

Recent commits

f236ced... by Michael Vogt

devicestate: disallow removal of snaps used in booting early

During the review of #6835 the question about the order of
the checks in canRemove for the active boot snaps was raised.

This PR improves snapsate.canRemove() so that it checks early
if the revision about to be removed is currently used for the
boot. Also adds some unit tests around this.

In practise its a bit of a corner case. A kernel/base used for
booting is usually active and we disallow removing of active
revisions anyway. The window is only when snapd refreshed
base/kernel but has not rebooted yet. But then it does not
accept commands right now until the reboot happend. But even
though we should be careful in canRemove().

d46f0d7... by Zygmunt Krynicki

Merge pull request #6909 from zyga/tweak/match-and-reboot

spread.yaml,tests: change MATCH and REBOOT to cmds

f88e597... by Michael Vogt

Merge pull request #6924 from bboozzoo/bboozzoo/fedora-force-static-link

packaging/fedora: force external linker to ensure static linking and -extldflags use

0a36573... by Maciej Borzecki

packaging/fedora: force external linker to ensure static linking and -extldflags use

Go toolchain will use external linking only under specfiic conditions, such as
enabling PIE buildmode, using code that depends on CGO or an OGARCH/GOOS
unsupported by the internal linker.

Make sure that Go binaries are always using the external linker. This ensures
that external flags defined by distro policy, or package (such as -static) are
actually used.

Signed-off-by: Maciej Borzecki <email address hidden>

64afc84... by Paweł Stołowski

Merge pull request #6921 from stolowski/tweak-ensure-timing-check

timings: tweak the conditional for ensure timings

257f8d0... by Paweł Stołowski

Tweak the conditional when storing ensure timings to make it more readable. This is a followup to #6904.

58556a2... by Michael Vogt

Merge pull request #6904 from stolowski/ensure-timings-fix

timings: always store ensure timings as long as they have an associated change

d9f262f... by Maciej Borzecki

Merge pull request #6896 from stolowski/snap-debug-timings-tweak

cmd/snap: tweak the output of snap debug timings --ensure=...

a067cd8... by Samuele Pedroni

overlord/devicestate: introduce remodel kinds and contexts

different context implementations will be used depending on the kind
of remodel, and those will play the roles/implement as needed
snapstate.DeviceContext, storecontext.DeviceBackend and
registrationContext:

same brand/model, brand store => updateRemodel
this is just a contextual carrier for the new model

same brand/model different brand store => storeSwitchRemodel this
mediates access to device state kept on the remodel change, it also
creates a store that uses that and refers to the new brand store

different brand/model, maybe different brand store => reregRemodel
similar to storeSwitchRemodel case after a first phase that performs
re-registration where the context plays registrationContext's role
(NOT IMPLEMENTED YET)

4009122... by Samuele Pedroni

fix test setup isolation