[ubuntu/bionic-security] snapd 2.54.3+18.04 (Accepted)

Paulo Flabiano Smorigo pfsmorigo at canonical.com
Thu Feb 17 17:07:24 UTC 2022


snapd (2.54.3+18.04) bionic-security; urgency=medium

  * SECURITY UPDATE: Sensitive information exposure
    - usersession/autostart: change ~/snap perms to 0700 on startup.
    - cmd: create ~/snap dir with 0700 perms.
    - CVE-2021-3155
    - LP: #1910298
  * SECURITY UPDATE: Local privilege escalation
    - snap-confine: Add validations of the location of the snap-confine
      binary within snapd.
    - snap-confine: Fix race condition in snap-confine when preparing a
      private mount namespace for a snap.
    - CVE-2021-44730
    - CVE-2021-44731
  * SECURITY UPDATE: Data injection from malicious snaps
    - interfaces: Add validations of snap content interface and layout
      paths in snapd.
    - CVE-2021-4120
    - LP: #1949368

snapd (2.54.2) xenial; urgency=medium

  * New upstream release, LP: #1955137
    - tests: exclude interfaces-kernel-module load on arm
    - tests: ensure that test-snapd-kernel-module-load is
      removed
    - tests: do not test microk8s-smoke on arm
    - tests/core/failover: replace boot-state with snap debug boot-vars
    - tests: use snap info|awk to extract tracking channel
    - tests: fix remodel-kernel test when running on external devices
    - .github/workflows/test.yaml: also check internal snapd version for
      cleanliness
    - packaging/ubuntu-16.04/rules: eliminate seccomp modification
    - bootloader/assets/grub_*cfg_asset.go: update Copyright
    - build-aux/snap/snapcraft.yaml: adjust comment about get-version
    - .github/workflows/test.yaml: add check in github actions for dirty
      snapd snaps
    - build-aux/snap/snapcraft.yaml: use build-packages, don't fail
      dirty builds
    - data/selinux: allow poking /proc/xen

snapd (2.54.1) xenial; urgency=medium

  * New upstream release, LP: #1955137
    - buid-aux: set version before calling ./generate-packaging-dir
      This fixes the "dirty" suffix in the auto-generated version

snapd (2.54) xenial; urgency=medium

  * New upstream release, LP: #1955137
    - interfaces/builtin/opengl.go: add boot_vga sys/devices file
    - o/configstate/configcore: add tmpfs.size option
    - tests: moving to manual opensuse 15.2
    - cmd/snap-device-helper: bring back the device type identification
      behavior, but for remove action fallback only
    - cmd/snap-failure: use snapd from the snapd snap if core is not
      present
    - tests/core/failover: enable the test on core18
    - o/devicestate: ensure proper order when remodel does a simple
      switch-snap-channel
    - builtin/interfaces: add shared memory interface
    - overlord: extend kernel/base success and failover with bootenv
      checks
    - o/snapstate: check disk space w/o store if possible
    - snap-bootstrap: Mount snaps read only
    - gadget/install: do not re-create partitions using OnDiskVolume
      after deletion
    - many: fix formatting w/ latest go version
    - devicestate,timeutil: improve logging of NTP sync
    - tests/main/security-device-cgroups-helper: more debugs
    - cmd/snap: print a placeholder for version of broken snaps
    - o/snapstate: mock system with classic confinement support
    - cmd: Fixup .clangd to use correct syntax
    - tests: run spread tests in fedora-35
    - data/selinux: allow snapd to access /etc/modprobe.d
    - mount-control: step 2
    - daemon: add multiple snap sideload to API
    - tests/lib/pkgdb: install dbus-user-session during prepare, drop
      dbus-x11
    - systemd: provide more detailed errors for unimplemented method in
      emulation mode
    - tests: avoid checking TRUST_TEST_KEYS on restore on remodel-base
      test
    - tests: retry umounting /var/lib/snapd/seed on uc20 on fsck-on-boot
      test
    - o/snapstate: add hide/expose snap data to backend
    - interfaces: kernel-module-load
    - snap: add support for `snap watch
      --last={revert,enable,disable,switch}`
    - tests/main/security-udev-input-subsystem: drop info from udev
    - tests/core/kernel-and-base-single-reboot-failover,
      tests/lib/fakestore: verify failover scenario
    - tests/main/security-device-cgroups-helper: collect some debug info
      when the test fails
    - tests/nested/manual/core20-remodel: wait for device to have a
      serial before starting a remodel
    - tests/main/generic-unregister: test re-registration if not blocked
    - o/snapstate, assertsate: validation sets/undo on partial failure
    - tests: ensure snapd can be downloaded as a module
    - snapdtool, many: support additional key/value flags in info file
    - data/env: improve fish shell env setup
    - usersession/client: provide a way for client to send messages to a
      subset of users
    - tests: verify that simultaneous refresh of kernel and base
      triggers a single reboot only
    - devicestate: Unregister deletes the device key pair as well
    - daemon,tests: support forgetting device serial via API
    - asserts: change behavior of alternative attribute matcher
    - configcore: relax validation rules for hostname
    - cmd/snap-confine: do not include libglvnd libraries from the host
      system
    - overlord, tests: add managers and a spread test for UC20 to UC22
      remodel
    - HACKING.md: adjust again for building the snapd snap
    - systemd: add support for systemd unit alias names
    - o/snapstate: add InstallPathMany
    - gadget: allow EnsureLayoutCompatibility to ensure disk has all
      laid out structsnow reject/fail:
    - packaging/ubuntu, packaging/debian: depend on dbus-session-bus
      provider (#11111)
    - interfaces/interfaces/scsi_generic: add interface for scsi generic
      de… (#10936)
    - osutil/disks/mockdisk.go: add MockDevicePathToDiskMapping
    - interfaces/microstack-support: set controlsDeviceCgroup to true
    - network-setup-control: add netplan generate D-Bus rules
    - interface/builtin/log_observe: allow to access /dev/kmsg
    - .github/workflows/test.yaml: restore failing of spread tests on
      errors (nested)
    - gadget: tweaks to DiskStructureDeviceTraits + expand test cases
    - tests/lib/nested.sh: allow tests to use their own core18 in extra-
      snaps-path
    - interfaces/browser-support: Update rules for Edge
    - o/devicestate: during remodel first check pending download tasks
      for snaps
    - polkit: add a package to validate polkit policy files
    - HACKING.md: document building the snapd snap and splicing it into
      the core snap
    - interfaces/udev: fix installing snaps inside lxd in 21.10
    - o/snapstate: refactor disk space checks
    - tests: add (strict) microk8s smoke test
    - osutil/strace: try to enable strace on more arches
    - cmd/libsnap-confine-private: fix snap-device-helper device allow
      list modification on cgroup v2
    - tests/main/snapd-reexec-snapd-snap: improve debugging
    - daemon: write formdata file parts to snaps dir
    - systemd: add support for .target units
    - tests: run snap-disconnect on uc16
    - many: add experimental setting to allow using ~/.snap/data instead
      of ~/snap
    - overlord/snapstate: perform a single reboot when updating boot
      base and kernel
    - kernel/fde: add DeviceUnlockKernelHookDeviceMapperBackResolver,
      use w/ disks pkg
    - o/devicestate: introduce DeviceManager.Unregister
    - interfaces: allow receiving PropertiesChanged on the mpris plug
    - tests: new tool used to retrieve data from mongo db
    - daemon: amend ssh keys coming from the store
    - tests: Include the tools from snapd-testing-tools project in
      "$TESTSTOOLS"
    - tests: new workflow step used to report spread error to mongodb
    - interfaces/builtin/dsp: update proc files for ambarella flavor
    - gadget: replace ondisk implementation with disks package, refactor
      part calcs
    - tests: Revert "tests: disable flaky uc18 tests until systemd is
      fixed"
    - Revert: "many: Vendor apparmor-3.0.3 into the snapd snap"
    - asserts: rename "white box" to "clear box" (woke checker)
    - many: Vendor apparmor-3.0.3 into the snapd snap
    - tests: reorganize the debug-each on the spread.yaml
    - packaging: sync with downstream packaging in Fedora and openSUSE
    - tests: disable flaky uc18 tests until systemd is fixed
    - data/env: provide profile setup for fish shell
    - tests: use ubuntu-image 1.11 from stable channel
    - gadget/gadget.go: include disk schema in the disk device volume
      traits too
    - tests/main/security-device-cgroups-strict-enforced: extend the
      comments
    - README.md: point at bugs.launchpad.net/snapd instead of snappy
      project
    - osutil/disks: introduce RegisterDeviceMapperBackResolver + use for
      crypt-luks2
    - packaging: make postrm script robust against `rm` failures
    - tests: print extra debug on auto-refresh-gating test failure
    - o/assertstate, api: move enforcing/monitoring from api to
      assertstate, save history
    - tests: skip the test-snapd-timedate-control-consumer.date to avoid
      NTP sync error
    - gadget/install: use disks functions to implement deviceFromRole,
      also rename
    - tests: the `lxd` test is failing right now on 21.10
    - o/snapstate: account for deleted revs when undoing install
    - interfaces/builtin/block_devices: allow blkid to print block
      device attributes
    - gadget: include size + sector-size in DiskVolumeDeviceTraits
    - cmd/libsnap-confine-private: do not deny all devices when reusing
      the device cgroup
    - interfaces/builtin/time-control: allow pps access
    - o/snapstate/handlers: propagate read errors on "copy-snap-data"
    - osutil/disks: add more fields to Partition, populate them during
      discovery
    - interfaces/u2f-devices: add Trezor and Trezor v2 keys
    - interfaces: timezone-control, add permission for ListTimezones
      DBus call
    - o/snapstate: remove repeated test assertions
    - tests: skip `snap advise-command` test if the store is overloaded
    - cmd: create ~/snap dir with 0700 perms
    - interfaces/apparmor/template.go: allow udevadm from merged usr
      systems
    - github: leave a comment documenting reasons for pipefail
    - github: enable pipefail when running spread
    - osutil/disks: add DiskFromPartitionDeviceNode
    - gadget, many: add model param to Update()
    - cmd/snap-seccomp: add riscv64 support
    - o/snapstate: maintain a RevertStatus map in SnapState
    - tests: enable lxd tests on impish system
    - tests: (partially) revert the memory limits PR#r10241
    - o/assertstate: functions for handling validation sets tracking
      history
    - tests: some improvements for the spread log parser
    - interfaces/network-manager-observe: Update for libnm / dart
      clients
    - tests: add ntp related debug around "auto-refresh" test
    - boot: expand on the fact that reseal taking modeenv is very
      intentional
    - cmd/snap-seccomp/syscalls: update syscalls to match libseccomp
      abad8a8f4
    - data/selinux: update the policy to allow snapd to talk to
      org.freedesktop.timedate1
    - o/snapstate: keep old revision if install doesn't add new one
    - overlord/state: add a unit test for a kernel+base refresh like
      sequence
    - desktop, usersession: observe notifications
    - osutil/disks: add AllPhysicalDisks()
    - timeutil,deviceutil: fix unit tests on systems without dbus or
      without ntp-sync
    - cmd/snap-bootstrap/README: explain all the things (well most of
      them anyways)
    - docs: add run-checks dependency install instruction
    - o/snapstate: do not prune refresh-candidates if gate-auto-refresh-
      hook feature is not enabled
    - o/snapstate: test relink remodel helpers do a proper subset of
      doInstall and rework the verify*Tasks helpers
    - tests/main/mount-ns: make the test run early
    - tests: add `--debug` to netplan apply
    - many: wait for up to 10min for NTP synchronization before
      autorefresh
    - tests: initialize CHANGE_ID in _wait_autorefresh
    - sandbox/cgroup: freeze and thaw cgroups related to services and
      scopes only
    - tests: add more debug around qemu-nbd
    - o/hookstate: print cohort with snapctl refresh --pending (#10985)
    - tests: misc robustness changes
    - o/snapstate: improve install/update tests (#10850)
    - tests: clean up test tools
    - spread.yaml: show `journalctl -e` for all suites on debug
    - tests: give interfaces-udisks2 more time for the loop device to
      appear
    - tests: set memory limit for snapd
    - tests: increase timeout/add debug around nbd0 mounting (up, see
      LP:#1949513)
    - snapstate: add debug message where a snap is mounted
    - tests: give nbd0 more time to show up in preseed-lxd
    - interfaces/dsp: add more ambarella things
    - cmd/snap: improve snap disconnect arg parsing and err msg
    - tests: disable nested lxd snapd testing
    - tests: disable flaky "interfaces-udisks2" on ubuntu-18.04-32
    - o/snapstate: avoid validationSetsSuite repeating snapmgrTestSuite
    - sandbox/cgroup: wait for start transient unit job to finish
    - o/snapstate: fix task order, tweak errors, add unit tests for
      remodel helpers
    - osutil/disks: re-org methods for end of usable region, size
      information
    - build-aux: ensure that debian packaging matches build-base
    - docs: update HACKING.md instructions for snapd 2.52 and later
    - spread: run lxd tests with version from latest/edge
    - interfaces: suppress denial of sys_module capability
    - osutil/disks: add methods to replace gadget/ondisk functions
    - tests: split test tools - part 1
    - tests: fix nested tests on uc20
    - data/selinux: allow snap-confine to read udev's database
    - i/b/common_test: refactor AppArmor features test
    - tests: run spread tests on debian 11
    - o/devicestate: copy timesyncd clock timestamp during install
    - interfaces/builtin: do not probe parser features when apparmor
      isn't available
    - interface/modem-manager: allow connecting to the mbim/qmi proxy
    - tests: fix error message in run-checks
    - tests: spread test for validation sets enforcing
    - cmd/snap-confine: lazy set up of device cgroup, only when devices
      were assigned
    - o/snapstate: deduplicate snap names in remove/install/update
    - tests/main/selinux-data-context: use session when performing
      actions as test user
    - packaging/opensuse: sync with openSUSE packaging, enable AppArmor
      on 15.3+
    - interfaces: skip connection of netlink interface on older
      systems
    - asserts, o/snapstate: honor IgnoreValidation flag when checking
      installed snaps
    - tests/main/apparmor-batch-reload: fix fake apparmor_parser to
      handle --preprocess
    - sandbox/apparmor, interfaces/apparmor: detect bpf capability,
      generate snippet for s-c
    - release-tools/repack-debian-tarball.sh: fix c-vendor dir
    - tests: test for enforcing with prerequisites
    - tests/main/snapd-sigterm: fix race conditions
    - spread: run lxd tests with version from latest/stable
    - run-checks: remove --spread from help message
    - secboot: use latest secboot with tpm legacy platform and v2 fully
      optional
    - tests/lib/pkgdb: install strace on Debian 11 and Sid
    - tests: ensure systemd-timesyncd is installed on debian
    - interfaces/u2f-devices: add Nitrokey 3
    - tests: update the ubuntu-image channel to candidate
    - osutil/disks/labels: simplify decoding algorithm
    - tests: not testing lxd snap anymore on i386 architecture
    - o/snapstate, hookstate: print remaining hold time on snapctl
      --hold
    - cmd/snap: support --ignore-validation with snap install client
      command
    - tests/snapd-sigterm: be more robust against service restart
    - tests: simplify mock script for apparmor_parser
    - o/devicestate, o/servicestate: update gadget assets and cmdline
      when remodeling
    - tests/nested/manual/refresh-revert-fundamentals: re-enable
      encryption
    - osutil/disks: fix bug in BlkIDEncodeLabel, add BlkIDDecodeLabel
    - gadget, osutil/disks: fix some bugs from prior PR'sin the dir.
    - secboot: revert move to new version (revert #10715)
    - cmd/snap-confine: die when snap process is outside of snap
      specific cgroup
    - many: mv MockDeviceNameDisksToPartitionMapping ->
      MockDeviceNameToDiskMapping
    - interfaces/builtin: Add '/com/canonical/dbusmenu' path access to
      'unity7' interface
    - interfaces/builtin/hardware-observer: add /proc/bus/input/devices
      too
    - osutil/disks, many: switch to defining Partitions directly for
      MockDiskMapping
    - tests: remove extra-snaps-assertions test
    - interface/modem-manager: add accept for MBIM/QMI proxy clients
    - tests/nested/core/core20-create-recovery: fix passing of data to
      curl
    - daemon: allow enabling enforce mode
    - daemon: use the syscall connection to get the socket credentials
    - i/builtin/kubernetes_support: add access to Calico lock file
    - osutil: ensure parent dir is opened and sync'd
    - tests: using test-snapd-curl snap instead of http snap
    - overlord: add managers unit test demonstrating cyclic dependency
      between gadget and kernel updates
    - gadget/ondisk.go: include the filesystem UUID in the returned
      OnDiskVolume
    - packaging: fixes for building on openSUSE
    - o/configcore: allow hostnames up to 253 characters, with dot-
      delimited elements
    - gadget/ondisk.go: add listBlockDevices() to get all block devices
      on a system
    - gadget: add mapping trait types + functions to save/load
    - interfaces: add polkit security backend
    - cmd/snap-confine/snap-confine.apparmor.in: update ld rule for
      s390x impish
    - tests: merge coverage results
    - tests: remove "features" from fde-setup.go example
    - fde: add new device-setup support to fde-setup
    - gadget: add `encryptedDevice` and add encryptedDeviceLUKS
    - spread: use `bios: uefi` for uc20
    - client: fail fast on non-retryable errors
    - tests: support running all spread tests with experimental features
    - tests: check that a snap that doesn't have gate-auto-refresh hook
      can call --proceed
    - o/snapstate: support ignore-validation flag when updating to a
      specific snap revision
    - o/snapstate: test prereq update if started by old version
    - tests/main: disable cgroup-devices-v1 and freezer tests on 21.10
    - tests/main/interfaces-many: run both variants on all possible
      Ubuntu systems
    - gadget: mv ensureLayoutCompatibility to gadget proper, add
      gadgettest pkg
    - many: replace state.State restart support with overlord/restart
    - overlord: fix generated snap-revision assertions in remodel unit
      tests

snapd (2.53.4) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - devicestate: mock devicestate.MockTimeutilIsNTPSynchronized to
      avoid host env leaking into tests
    - timeutil: return NoTimedate1Error if it can't connect to the
      system bus

snapd (2.53.3) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - devicestate: Unregister deletes the device key pair as well
    - daemon,tests: support forgetting device serial via API
    - configcore: relax validation rules for hostname
    - o/devicestate: introduce DeviceManager.Unregister
    - packaging/ubuntu, packaging/debian: depend on dbus-session-bus
      provider
    - many: wait for up to 10min for NTP synchronization before
      autorefresh
    - interfaces/interfaces/scsi_generic: add interface for scsi generic
      devices
    - interfaces/microstack-support: set controlsDeviceCgroup to true
    - interface/builtin/log_observe: allow to access /dev/kmsg
    - daemon: write formdata file parts to snaps dir
    - spread: run lxd tests with version from latest/edge
    - cmd/libsnap-confine-private: fix snap-device-helper device allow
      list modification on cgroup v2
    - interfaces/builtin/dsp: add proc files for monitoring Ambarella
      DSP firmware
    - interfaces/builtin/dsp: update proc file accordingly

snapd (2.53.2) xenial; urgency=medium

  * New upstream release, LP: #1946127
    - interfaces/builtin/block_devices: allow blkid to print block
      device attributes/run/udev/data/b{major}:{minor}
    - cmd/libsnap-confine-private: do not deny all devices when reusing
      the device cgroup
    - interfaces/builtin/time-control: allow pps access
    - interfaces/u2f-devices: add Trezor and Trezor v2 keys
    - interfaces: timezone-control, add permission for ListTimezones
      DBus call
    - interfaces/apparmor/template.go: allow udevadm from merged usr
      systems
    - interface/modem-manager: allow connecting to the mbim/qmi proxy
    - interfaces/network-manager-observe: Update for libnm client
      library
    - cmd/snap-seccomp/syscalls: update syscalls to match libseccomp
      abad8a8f4
    - sandbox/cgroup: freeze and thaw cgroups related to services and
      scopes only
    - o/hookstate: print cohort with snapctl refresh --pending
    - cmd/snap-confine: lazy set up of device cgroup, only when devices
      were assigned
    - tests: ensure systemd-timesyncd is installed on debian
    - tests/lib/pkgdb: install strace on Debian 11 and Sid
    - tests/main/snapd-sigterm: flush, use retry
    - tests/main/snapd-sigterm: fix race conditions
    - release-tools/repack-debian-tarball.sh: fix c-vendor dir
    - data/selinux: allow snap-confine to read udev's database
    - interfaces/dsp: add more ambarella things* interfaces/dsp: add
      more ambarella things

snapd (2.53.1) xenial; urgency=medium

  * New upstream release, LP: #1946127
    - spread: run lxd tests with version from latest/stable
    - secboot: use latest secboot with tpm legacy platform and v2 fully
      optional (#10946)
    - cmd/snap-confine: die when snap process is outside of snap
      specific cgroup (2.53)
    - interfaces/u2f-devices: add Nitrokey 3
    - Update the ubuntu-image channel to candidate
    - Allow hostnames up to 253 characters, with dot-delimited elements 
      (as suggested by man 7 hostname).
    - Disable i386 until it is possible to build snapd using lxd
    - o/snapstate, hookstate: print remaining hold time on snapctl
      --hold
    - tests/snapd-sigterm: be more robust against service restart
    - tests: add a regression test for snapd hanging on SIGTERM
    - daemon: use the syscall connection to get the socket
      credentials
    - interfaces/builtin/hardware-observer: add /proc/bus/input/devices
      too
    - cmd/snap-confine/snap-confine.apparmor.in: update ld rule for
      s390x impish
    - interface/modem-manager: add accept for MBIM/QMI proxy clients
    - secboot: revert move to new version

snapd (2.53) xenial; urgency=medium

  * New upstream release, LP: #1946127
    - overlord: fix generated snap-revision assertions in remodel unit
      tests
    - snap-bootstrap: wait in `mountNonDataPartitionMatchingKernelDisk`
    - interfaces/modem-manager: add access to PCIe modems
    - overlord/devicestate: record recovery capable system on a
      successful remodel
    - o/snapstate: use device ctx in prerequisite install/update
    - osutil/disks: support filtering by mount opts in
      MountPointsForPartitionRoot
    - many: support an API flag system-restart-immediate to make snap
      ops proceed immediately with system restarts
    - osutil/disks: add RootMountPointsForPartition
    - overlord/devicestate, tests: enable UC20 remodel, add spread tests
    - cmd/snap: improve snap run help message
    - o/snapstate: support ignore validation flag on install/update
    - osutil/disks: add Disk.FindMatchingPartitionWith{Fs,Part}Label
    - desktop: implement gtk notification backend and provide minimal
      notification api
    - tests: use the latest cpu family for nested tests execution
    - osutil/disks: add Partition struct and Disks.Partitions()
    - o/snapstate: prevent install hang if prereq install fails
    - osutil/disks: add Disk.KernelDevice{Node,Path} methods
    - disks: add `Size(path)` helper
    - tests: reset some mount units failing on ubuntu impish
    - osutil/disks: add DiskFromDevicePath, other misc changes
    - interfaces/apparmor: do not fail during initialization when there
      is no AppArmor profile for snap-confine
    - daemon: implement access checkers for themes API
    - interfaces/seccomp: add clone3 to default template
    - interfaces/u2f-devices: add GoTrust Idem Key
    - o/snapstate: validation sets enforcing on update
    - o/ifacestate: don't fail remove if disconnect hook fails
    - tests: fix error trying to create the extra-snaps dir which
      already exists
    - devicestate: use EncryptionType
    - cmd/libsnap-confine-private: workaround BPF memory accounting,
      update apparmor profile
    - tests: skip system-usernames-microk8s when TRUST_TEST_KEYS is
      false
    - interfaces/dsp: add a usb rule to the ambarella flavor
    - interfaces/apparmor/template.go: allow inspection of dbus
      mediation level
    - tests/main/security-device-cgroups: fix when both variants run on
      the same host
    - cmd/snap-confine: update s-c apparmor profile to allow versioned
      ld.so
    - many: rename systemd.Kind to Backend for a bit more clarity
    - cmd/libsnap-confine-private: fix set but unused variable in the
      unit tests
    - tests: fix netplan test on i386 architecture
    - tests: fix lxd-mount-units test which is based on core20 in ubuntu
      focal system
    - osutil/disks: add new `CreateLinearMapperDevice` helper
    - cmd/snap: wait while inhibition file is present
    - tests: cleanup the job workspace as first step of the actions
      workflow
    - tests: use our own image for ubuntu impish
    - o/snapstate: update default provider if missing required content
    - o/assertstate, api: update validation set assertions only when
      updating all snaps
    - fde: add HasDeviceUnlock() helper
    - secboot: move to new version
    - o/ifacestate: don't lose connections if snaps are broken
    - spread: display information about current device cgroup in debug
      dump
    - sysconfig: set TMPDIR in tests to avoid cluttering the real /tmp
    - tests, interfaces/builtin: introduce 21.10 cgroupv2 variant, tweak
      tests for cgroupv2, update builtin interfaces
    - sysconfig/cloud-init: filter MAAS c-i config from ubuntu-seed on
      grade signed
    - usersession/client: refactor doMany() method
    - interfaces/builtin/opengl.go: add libOpenGL.so* too
    - o/assertstate: check installed snaps when refreshing validation
      set assertions
    - osutil: helper for injecting run time faults in snapd
    - tests: update test nested tool part 2
    - libsnap-confine: use the pid parameter
    - gadget/gadget.go: LaidOutSystemVolumeFromGadget ->
      LaidOutVolumesFromGadget
    - tests: update the time tolerance to fix the snapd-state test
    - .github/workflows/test.yaml: revert #10809
    - tests: rename interfaces-hooks-misbehaving spread test to install-
      hook-misbehaving
    - data/selinux: update the policy to allow s-c to manipulate BPF map
      and programs
    - overlord/devicestate: make settle wait longer in remodel tests
    - kernel/fde: mock systemd-run in unit test
    - o/ifacestate: do not create stray task in batchConnectTasks if
      there are no connections
    - gadget: add VolumeName to Volume and VolumeStructure
    - cmd/libsnap-confine-private: use root when necessary for BPF
      related operations
    - .github/workflows/test.yaml: bump action-build to 1.0.9
    - o/snapstate: enforce validation sets/enforce on InstallMany
    - asserts, snapstate: return full validation set keys from
      CheckPresenceRequired and CheckPresenceInvalid
    - cmd/snap: only log translation warnings in debug/testing
    - tests/main/preseed: update for new base snap of the lxd snap
    - tests/nested/manual: use loop for checking for initialize-system
      task done
    - tests: add a local snap variant to testing prepare-image gating
      support
    - tests/main/security-device-cgroups-strict-enforced: demonstrate
      device cgroup being enforced
    - store: one more tweak for the test action timeout
    - github: do not fail when codecov upload fails
    - o/devicestate: fix flaky test remodel clash
    - o/snapstate: add ChangeID to conflict error
    - tests: fix regex of TestSnapActionTimeout test
    - tests: fix tests for 21.10
    - tests: add test for store.SnapAction() request timeout
    - tests: print user sessions info on debug-each
    - packaging: backports of golang-go 1.13 are good enough
    - sysconfig/cloudinit: add cloudDatasourcesInUseForDir
    - cmd: build gdb shims as static binaries
    - packaging/ubuntu: pass GO111MODULE to dh_auto_test
    - cmd/libsnap-confine-private, tests, sandbox: remove warnings about
      cgroup v2, drop forced devmode
    - tests: increase memory quota in quota-groups-systemd-accounting
    - tests: be more robust against a new day stepping in
    - usersession/xdgopenproxy: move PortalLauncher class to own package
    - interfaces/builtin: fix microstack unit tests on distros using
      /usr/libexec
    - cmd/snap-confine: handle CURRENT_TAGS on systems that support it
    - cmd/libsnap-confine-private: device cgroup v2 support
    - o/servicestate: Update task summary for restart action
    - packaging, tests/lib/prepare-restore: build packages without
      network access, fix building debs with go modules
    - systemd: add AtLeast() method, add mocking in systemdtest
    - systemd: use text.template to generate mount unit
    - o/hookstate/ctlcmd: Implement snapctl refresh --show-lock command
    - o/snapstate: optimize conflicts around snaps stored on
      conditional-auto-refresh task
    - tests/lib/prepare.sh: download core20 for UC20 runs via
      BASE_CHANNEL
    - mount-control: step 1
    - go: update go.mod dependencies
    - o/snapstate: enforce validation sets on snap install
    - tests: revert revert manual lxd removal
    - tests: pre-cache snaps in classic and core systems
    - tests/lib/nested.sh: split out additional helper for adding files
      to VM imgs
    - tests: update nested tool - part1
    - image/image_linux.go: add newline
    - interfaces/block-devices: support to access the state of block
      devices
    - o/hookstate: require snap-refresh-control interface for snapctl
      refresh --proceed
    - build-aux: stage libgcc1 library into snapd snap
    - configcore: add read-only netplan support
    - tests: fix fakedevicesvc service already exists
    - tests: fix interfaces-libvirt test
    - tests: remove travis leftovers
    - spread: bump delta ref to 2.52
    - packaging: ship the `snapd.apparmor.service` unit in debian
    - packaging: remove duplicated `golang-go` build-dependency
    - boot: record recovery capable systems in recovery bootenv
    - tests: skip overlord tests on riscv64 due to timeouts.
    - overlord/ifacestate: fix arguments in unit tests
    - ifacestate: undo repository connection if doConnect fails
    - many: remove unused parameters
    - tests: failure of prereqs on content interface doesn't prevent
      install
    - tests/nested/manual/refresh-revert-fundamentals: fix variable use
    - strutil: add Intersection()
    - o/ifacestate: special-case system-files and force refreshing its
      static attributes
    - interface/builtin: add qualcomm-ipc-router interface for
      AF_QIPCRTR socket protocol
    - tests:  new snapd-state tool
    - codecov: fix files pathnames
    - systemd: add mock systemd helper
    - tests/nested/core/extra-snaps-assertions: fix the match pattern
    - image,c/snap,tests: support enforcing validations in prepare-image
      via --customize JSON validation enforce(|ignore)
    - o/snapstate: enforce validation sets assertions when removing
      snaps
    - many: update deps
    - interfaces/network-control: additional ethernet rule
    - tests: use host-scaled settle timeout for hookstate tests
    - many: move to go modules
    - interfaces: no need for snapRefreshControlInterface struct
    - interfaces: introduce snap-refresh-control interface
    - tests: move interfaces-libvirt test back to 16.04
    - tests: bump the number of retries when waiting for /dev/nbd0p1
    - tests: add more space on ubuntu xenial
    - spread: add 21.10 to qemu, remove 20.10 (EOL)
    - packaging: add libfuse3-dev build dependency
    - interfaces: add microstack-support interface
    - wrappers: fix a bunch of duplicated service definitions in tests
    - tests: use host-scaled timeout to avoid riscv64 test failure
    - many: fix run-checks gofmt check
    - tests: spread test for snapctl refresh --pending/--proceed from
      the snap
    - o/assertstate,daemon: refresh validation sets assertions with snap
      declarations
    - tests: migrate tests that are only executed on xenial to bionic
    - tests: remove opensuse-15.1 and add opensuse-15.3 from spread runs
    - packaging: update master changelog for 2.51.7
    - sysconfig/cloudinit: fix bug around error state of cloud-init
    - interfaces, o/snapstate: introduce AffectsPlugOnRefresh flag
    - interfaces/interfaces/ion-memory-control: add: add interface for
      ion buf
    - interfaces/dsp: add /dev/ambad into dsp interface
    - tests: new spread log parser
    - tests: check files and dirs are cleaned for each test
    - o/hookstate/ctlcmd: unify the error message when context is
      missing
    - o/hookstate: support snapctl refresh --pending from snap
    - many: remove unused/dead code
    - cmd/libsnap-confine-private: add BPF support helpers
    - interfaces/hardware-observe: add some dmi properties
    - snapstate: abort kernel refresh if no gadget update can be found
    - many: shellcheck fixes
    - cmd/snap: add Size column to refresh --list
    - packaging: build without dwarf debugging data
    - snapstate: fix misleading `assumes` error message
    - tests: fix restore in snapfuse spread tests
    - o/assertstate: fix missing 'scheduled' header when auto refreshing
      assertions
    - o/snapstate: fail remove with invalid snap names
    - o/hookstate/ctlcmd: correct err message if missing root
    - .github/workflows/test.yaml: fix logic
    - o/snapstate: don't hold some snaps if not all snaps can be held by
      the given gating snap
    - c-vendor.c: new c-vendor subdir
    - store: make sure expectedZeroFields in tests gets updated
    - overlord: add manager test for "assumes" checking
    - store: deal correctly with "assumes" from the store raw yaml
    - sysconfig/cloudinit.go: add functions for filtering cloud-init
      config
    - cgroup-support: allow to hide cgroupv2 warning via ENV
    - gadget: Export mkfs functions for use in ubuntu-image
    - tests: set to 10 minutes the kill timeout for tests failing on
      slow boards
    - .github/workflows/test.yaml: test github.events key
    - i18n/xgettext-go: preserve already escaped quotes
    - cmd/snap-seccomp/syscalls: update syscalls list to libseccomp
      v2.2.0-428-g5c22d4b
    - github: do not try to upload coverage when working with cached run
    - tests/main/services-install-hook-can-run-svcs: shellcheck issue
      fix
    - interfaces/u2f-devices: add Nitrokey FIDO2
    - testutil: add DeepUnsortedMatches Checker
    - cmd, packaging: import BPF headers from kernel, detect whether
      host headers are usable
    - tests: fix services-refresh-mode test
    - tests: clean snaps.sh helper
    - tests: fix timing issue on security-dev-input-event-denied test
    - tests: update systems for sru validation
    - .github/workflows: add codedov again
    - secboot: remove duplicate import
    - tests: stop the service when is active in test interfaces-
      firewall-control test
    - packaging: remove TEST_GITHUB_AUTOPKGTEST support
    - packaging: merge 2.51.6 changelog back to master
    - secboot: use half the mem for KDF in AddRecoveryKey
    - secboot: switch main key KDF memory cost to 32KB
    - tests: remove the test user just when it was installed on create-
      user-2 test
    - spread: temporarily fix the ownership of /home/ubuntu/.ssh on
      21.10
    - daemon, o/snapstate: handle IgnoreValidation flag on install (2/3)
    - usersession/agent: refactor common JSON validation into own
      function
    - o/hookstate: allow snapctl refresh --proceed from snaps
    - cmd/libsnap-confine-private: fix issues identified by coverity
    - cmd/snap: print logs in local timezone
    - packaging: changelog for 2.51.5 to master
    - build-aux: build with go-1.13 in the snapcraft build too
    - config: rename "virtual" config to "external" config
    - devicestate: add `snap debug timings --ensure=install-system`
    - interfaces/builtin/raw_usb: fix platform typo, fix access to usb
      devices accessible through platform
    - o/snapstate: remove commented out code
    - cmd/snap-device-helper: reimplement snap-device-helper
    - cmd/libsnap-confine-private: fix coverity issues in tests, tweak
      uses of g_assert()
    - o/devicestate/handlers_install.go: add workaround to create dirs
      for install
    - o/assertstate: implement ValidationSetAssertionForEnforce helper
    - clang-format: stop breaking my includes
    - o/snapstate: allow auto-refresh limited to snaps affected by a
      specific gating snap
    - tests: fix core-early-config test to use tests.nested tool
    - sysconfig/cloudinit.go: measure (but don't use) gadget cloud-init
      datasource
    - c/snap,o/hookstate/ctlcmd: add JSON/string strict processing flags
      to snap/snapctl
    - corecfg: add "system.hostname" setting to the system settings
    - wrappers: measure time to enable services in StartServices()
    - configcore: fix early config timezone handling
    - tests/nested/manual: enable serial assertions on testkeys nested
      VM's
    - configcore: fix a bunch of incorrect error returns
    - .github/workflows/test.yaml: use snapcraft 4.x to build the snapd
      snap
    - packaging: merge 2.51.4 changelog back to master
    - {device,snap}state: skip kernel extraction in seeding
    - vendor: move to snapshot-4c814e1 branch and set fixed KDF options
    - tests: use bigger storage on ubuntu 21.10
    - snap: support links map in snap.yaml (and later from the store
      API)
    - o/snapstate: add AffectedByRefreshCandidates helper
    - configcore: register virtual config for timezone reading
    - cmd/libsnap-confine-private: move device cgroup files, add helper
      to deny a device
    - tests: fix cached-results condition in github actions workflow
    - interfaces/tee: add support for Qualcomm qseecom device node
    - packaging: fix build failure on bionic and simplify rules
    - o/snapstate: affectedByRefresh tweaks
    - tests: update nested wait for snapd command
    - interfaces/builtin: allow access to per-user GTK CSS overrides
    - tests/main/snapd-snap: install 4.x snapcraft to build the snapd
      snap
    - snap/squashfs: handle squashfs-tools 4.5+
    - asserts/snapasserts: CheckPresenceInvalid and
      CheckPresenceRequired methods
    - cmd/snap-confine: refactor device cgroup handling to enable easier
      v2 integration
    - tests: skip udp protocol on latest ubuntus
    - cmd/libsnap-confine-private: g_spawn_check_exit_status is
      deprecated since glib 2.69
    - interfaces: s/specifc/specific/
    - github: enable gofmt for Go 1.13 jobs
    - overlord/devicestate: UC20 specific set-model, managers tests
    - o/devicestate, sysconfig: refactor cloud-init config permission
      handling
    - config: add "virtual" config via config.RegisterVirtualConfig
    - packaging: switch ubuntu to use golang-1.13
    - snap: change `snap login --help` to not mention "buy"
    - tests: removing Ubuntu 20.10, adding 21.04 nested in spread
    - tests/many: remove lxd systemd unit to prevent unexpected
      leftovers
    - tests/main/services-install-hook-can-run-svcs: make variants more
      obvious
    - tests: force snapd-session-agent.socket to be re-generated

snapd (2.52.1) xenial; urgency=medium

  * New upstream release, LP: #1942646
    - snap-bootstrap: wait in `mountNonDataPartitionMatchingKernelDisk`
      for the disk (if not present already)
    - many: support an API flag system-restart-immediate to make snap
      ops proceed immediately with system restarts
    - cmd/libsnap-confine-private: g_spawn_check_exit_status is
      deprecated since glib 2.69
    - interfaces/seccomp: add clone3 to default template
    - interfaces/apparmor/template.go: allow inspection of dbus
      mediation level
    - interfaces/dsp: add a usb rule to the ambarella flavor
    - cmd/snap-confine: update s-c apparmor profile to allow versioned
      ld.so
    - o/ifacestate: don't lose connections if snaps are broken
    - interfaces/builtin/opengl.go: add libOpenGL.so* too
    - interfaces/hardware-observe: add some dmi properties
    - build-aux: stage libgcc1 library into snapd snap
    - interfaces/block-devices: support to access the state of block
      devices
    - packaging: ship the `snapd.apparmor.service` unit in debian

snapd (2.52) xenial; urgency=medium

  * New upstream release, LP: #1942646
    - interface/builtin: add qualcomm-ipc-router interface for
      AF_QIPCRTR socket protocol
    - o/ifacestate: special-case system-files and force refreshing its
      static attributes
    - interfaces/network-control: additional ethernet rule
    - packaging: update 2.52 changelog with 2.51.7
    - interfaces/interfaces/ion-memory-control: add: add interface for
      ion buf
    - packaging: merge 2.51.6 changelog back to 2.52
    - secboot: use half the mem for KDF in AddRecoveryKey
    - secboot: switch main key KDF memory cost to 32KB
    - many: merge release/2.51 change to release/2.52
    - .github/workflows/test.yaml: use snapcraft 4.x to build the snapd
      snap
    - o/servicestate: use snap app names for ExplicitServices of
      ServiceAction
    - tests/main/services-install-hook-can-run-svcs: add variant w/o
      --enable
    - o/servicestate: revert only start enabled services
    - tests: adding Ubuntu 21.10 to spread test suite
    - interface/modem-manager: add support for MBIM/QMI proxy clients
    - cmd/snap/model: support storage-safety and snaps headers too
    - o/assertstate: Implement EnforcedValidationSets helper
    - tests: using retry tool for nested tests
    - gadget: check for system-save with multi volumes if encrypting
      correctly
    - interfaces: make the service naming entirely internal to systemd
      BE
    - tests/lib/reset.sh: fix removing disabled snaps
    - store/store_download.go: use system snap provided xdelta3 priority
      + fallback
    - packaging: merge changelog from 2.51.3 back to master
    - overlord: only start enabled services
    - interfaces/builtin: add sd-control interface
    - tests/nested/cloud-init-{never-used,nocloud}-not-vuln: fix tests,
      use 2.45
    - tests/lib/reset.sh: add workaround from refresh-vs-services tests
      for all tests
    - o/assertstate: check for conflicts when refreshing and committing
      validation set asserts
    - devicestate: add support to save timings from install mode
    - tests: new tests.nested commands copy and wait-for
    - install: add a bunch of nested timings
    - tests: drop any-python wrapper
    - store: set ResponseHeaderTimeout on the default transport
    - tests: fix test-snapd-user-service-sockets test removing snap
    - tests: moving nested_exec to nested.tests exec
    - tests: add tests about services vs snapd refreshes
    - client, cmd/snap, daemon: refactor REST API for quotas to match
      CLI org
    - c/snap,asserts: create/delete-key external keypair manager
      interaction
    - tests: revert disable of the delta download tests
    - tests/main/system-usernames-microk8s: disable on centos 7 too
    - boot: support device change
    - o/snapstate: remove unused refreshSchedule argument for
      isRefreshHeld helper
    - daemon/api_quotas.go: handle conflicts, returning conflict
      response
    - tests: test for gate-auto-refresh hook error resulting in hold
    - release: 2.51.2
    - snapstate/check_snap: add snap_microk8s to shared system-
      usernames
    - snapstate: remove temporary snap file for local revisions early
    - interface: allows reading sd cards internal info from block-
      devices interface
    - tests: Renaming tool nested-state to tests.nested
    - testutil: fix typo in json checker unit tests
    - tests: ack assertions by default, add --noack option
    - overlord/devicestate: try to pick alternative recovery labels
      during remodel
    - bootloader/assets: update recovery grub to allow system labels
      generated by snapd
    - tests: print serial log just once for nested tests
    - tests: remove xenial 32 bits
    - sandbox/cgroup: do not be so eager to fail when paths do not exist
    - tests: run spread tests in ubuntu bionic 32bits
    - c/snap,asserts: start supporting ExternalKeypairManager in the
      snap key-related commands
    - tests: refresh control spread test
    - cmd/libsnap-confine-private: do not fail on ENOENT, better getline
      error handling
    - tests: disable delta download tests for now until the store is
      fixed
    - tests/nested/manual/preseed: fix for cloud images that ship
      without core18
    - boot: properly handle tried system model
    - tests/lib/store.sh: revert #10470
    - boot, seed/seedtest: tweak test helpers
    - o/servicestate: TODO and fix preexisting typo
    - o/servicestate: detect conflicts for quota group operations
    - cmd/snap/quotas: adjust help texts for quota commands
    - many/quotas: little adjustments
    - tests: add spread test for classic snaps content slots
    - o/snapstate: fix check-rerefresh task summary when refresh control
      is used
    - many: use changes + tasks for quota group operations
    - tests: fix test snap-quota-groups when checking file
      cgroupProcsFile
    - asserts: introduce ExternalKeypairManager
    - o/ifacestate: do not visit same halt tasks in waitChainSearch to
      avoid cycles
    - tests/lib/store.sh: fix make_snap_installable_with_id()
    - overlord/devicestate, overlord/assertstate: use a temporary DB
      when creating recovery systems
    - corecfg: allow using `# snapd-edit: no` header to disable pi-
      config# snapd-edit: no
    - tests/main/interfaces-ssh-keys: tweak checks for openSUSE
      Tumbleweed
    - cmd/snap: prevent cycles in waitChainSearch with snap debug state
    - o/snapstate: fix populating of affectedSnapInfo.AffectingSnaps for
      marking self as affecting
    - tests: new parameter used by retry tool to set env vars
    - tests: support parameters for match-log on journal-state tool
    - configcore: ignore system.pi-config.* setting on measured kernels
    - sandbox/cgroup: support freezing groups with unified
      hierarchy
    - tests: fix preseed test to used core20 snap on latest systems
    - testutil: introduce a checker which compares the type after having
      passed them through a JSON marshaller
    - store: tweak error message when store.Sections() download fails
    - o/servicestate: stop setting DoneStatus prematurely for quota-
      control
    - cmd/libsnap-confine-private: bump max depth of groups hierarchy to
      32
    - many: turn Contact into an accessor
    - store: make the log with download size a debug one
    - cmd/snap-update-ns: Revert "cmd/snap-update-ns: add SRCDIR to
      include search path"
    - o/devicestate: move SystemMode method before first usage
    - tests: skip tests when the sections cannot be retrieved
    - boot: support resealing with a try model
    - o/hookstate: dedicated handler for gate-auto-refresh hook
    - tests: make sure the /root/snap dir is backed up on test snap-
      user-dir-perms-fixed
    - cmd/snap-confine: make mount ns use check cgroup v2 compatible
    - snap: fix TestInstallNoPATH unit test failure when SUDO_UID is set
    - cmd/libsnap-confine-private/cgroup-support.c: Fix typo
    - cmd/snap-confine, cmd/snapd-generator: fix issues identified by
      sparse
    - o/snapstate: make conditional-auto-refresh conflict with other
      tasks via affected snaps
    - many: pass device/model info to configcore via sysconfig.Device
      interface
    - o/hookstate: return bool flag from Error function of hook handler
      to ignore hook errors
    - cmd/snap-update-ns: add SRCDIR to include search path
    - tests: fix for tests/main/lxd-mount-units test and enable
      ubuntu-21.04
    - overlord, o/devicestate: use a single test helper for resetting to
      a post boot state
    - HACKING.md: update instructions for go1.16+
    - tests: fix restore for security-dev-input-event-denied test
    - o/servicestate: move SetStatus to doQuotaControl
    - tests: fix classic-prepare-image test
    - o/snapstate: prune gating information and refresh-candidates on
      snap removal
    - o/svcstate/svcstatetest, daemon/api_quotas: fix some tests, add
      mock helper
    - cmd: a bunch of tweaks and updates
    - o/servicestate: refactor meter handling, eliminate some common
      parameters
    - o/hookstate/ctlcmd: allow snapctl refresh --pending --proceed
      syntax.
    - o/snapstate: prune refresh candidates in check-rerefresh
    - osutil: pass --extrausers option to groupdel
    - o/snapstate: remove refreshed snap from snaps-hold in
      snapstate.doInstall
    - tests/nested: add spread test for uc20 cloud.conf from gadgets
    - boot: drop model from resealing and boostate
    - o/servicestate, snap/quota: eliminate workaround for buggy
      systemds, add spread test
    - o/servicestate: introduce internal and servicestatetest
    - o/servicestate/quota_control.go: enforce minimum of 4K for quota
      groups
    - overlord/servicestate: avoid unnecessary computation of disabled
      services
    - o/hookstate/ctlcmd: do not call ProceedWithRefresh immediately
      from snapctl
    - o/snapstate: prune hold state during autoRefreshPhase1
    - wrappers/services.go: do not restart disabled or inactive
      services
    - sysconfig/cloudinit.go: allow installing both gadget + ubuntu-seed
      config
    - spread: switch LXD back to latest/candidate channel
    - interfaces/opengl: add support for Imagination PowerVR
    - boot: decouple model from seal/reseal handling via an auxiliary
      type
    - spread, tests/main/lxd: no longer manual, switch to latest/stable
    - github: try out golangci-lint
    - tests: set lxd test to manual until failures are fixed
    - tests: connect 30% of the interfaces on test interfaces-many-core-
      provided
    - packaging/debian-sid: update snap-seccomp patches for latest
      master
    - many: fix imports order (according to gci)
    - o/snapstate: consider held snaps in autoRefreshPhase2
    - o/snapstate: unlock the state before calling backend in
      undoStartSnapServices
    - tests: replace "not MATCH" by NOMATCH in tests
    - README.md: refer to new IRC server
    - cmd/snap-preseed: provide more error info if snap-preseed fails
      early on mount
    - daemon: add a Daemon argument to AccessChecker.CheckAccess
    - c/snap-bootstrap: add bind option with tests
    - interfaces/builtin/netlink_driver_test.go: add test snippet
    - overlord/devicestate: set up recovery system tasks when attempting
      a remodel
    - osutil,strutil,testutil: fix imports order (according to gci)
    - release: merge 2.51.1 changelog
    - cmd: fix imports order (according to gci)
    - tests/lib/snaps/test-snapd-policy-app-consumer: remove dsp-control
      interface
    - o/servicestate: move handlers tests to quota_handlers_test.go file
      instead
    - interfaces: add netlink-driver interface
    - interfaces: remove leftover debug print
    - systemd: refactor property parsers for int values in
      CurrentTasksCount, etc.
    - tests: fix debug section for postrm-purge test
    - tests/many: change all cloud-init passwords for ubuntu to use
      plain_test_passwd
    - asserts,interfaces,snap: fix imports order (according to gci)
    - o/servicestate/quota_control_test.go: test the handlers directly
    - tests: fix issue when checking the udev tag on test security-
      device-cgroups
    - many: introduce Store.SnapExists and use it in
      /v2/accessories/themes
    - o/snapstate: update LastRefreshTime in doLinkSnap handler
    - o/hookstate: handle snapctl refresh --proceed and --hold
    - boot: fix model inconsistency check in modeenv, extend unit tests
    - overlord/servicestate: improve test robustness with locking
    - tests: first part of the cleanup
    - tests: new note in HACKING file to clarify about
      yamlordereddictloader dependency
    - daemon: make CheckAccess return an apiError
    - overlord: fix imports ordering (according to gci)
    - o/servicestate: add quotastate handlers
    - boot: track model's sign key ID, prepare infra for tracking
      candidate model
    - daemon: have apiBaseSuite.errorReq return *apiError directly
    - o/servicestate/service_control.go: add comment about
      ExplicitServices
    - interfaces: builtin: add dm-crypt interface to support external
      storage encryption
    - daemon: split out error response code from response*.go to
      errors*.go
    - interfaces/dsp: fix typo in udev rule
    - daemon,o/devicestate: have DeviceManager.SystemMode take an
      expectation on the system
    - o/snapstate: add helpers for setting and querying holding time for
      snaps
    - many: fix quota groups for centos 7, amazon linux 2 w/ workaround
      for buggy systemd
    - overlord/servicestate: mv ensureSnapServicesForGroup to new file
    - overlord/snapstate: lock the mutex before returning from stop snap
      services undo
    - daemon: drop resp completely in favor of using respJSON
      consistently
    - overlord/devicestate: support for snap downloads in recovery
      system handlers
    - daemon: introduce a separate findResponse, simplify SyncRespone
      and drop Meta
    - overlord/snapstate, overlord/devicestate: exclusive change
      conflict check
    - wrappers, packaging, snap-mgmt: handle removing slices on purge
      too
    - services: remember if acting on the entire snap
    - store: extend context and action objects of SnapAction with
      validation-sets
    - o/snapstate: refresh control - autorefresh phase2
    - cmd/snap/quota: refactor quota CLI as per new design
    - interfaces: opengl: change path for Xilinx zocl driver
    - tests: update spread images for ubuntu-core-20 and ubuntu-21.04
    - o/servicestate/quota_control_test.go: change helper escaping
    - o/configstate/configcore: support snap set system swap.size=...
    - o/devicestate: require serial assertion before remodeling can be
      started
    - systemd: improve systemctl error reporting
    - tests/core/remodel: use model assertions signed with valid keys
    - daemon: use apiError for more of the code
    - store: fix typo in snapActionResult struct json tag
    - userd: mock `systemd --version` in privilegedDesktopLauncherSuite
    - packaging/fedora: sync with downstream packaging
    - daemon/api_quotas.go: include current memory usage information in
      results
    - daemon: introduce StructuredResponse and apiError
    - o/patch: check if we have snapd snap with correct snap type
      already in snapstate
    - tests/main/snapd-snap: build the snapd snap on all platforms with
      lxd
    - tests: new commands for snaps-state tool
    - tests/main/snap-quota-groups: add functional spread test for quota
      groups
    - interfaces/dsp: add /dev/cavalry into dsp interface
    - cmd/snap/cmd_info_test.go: make test robust against TZ changes
    - tests: moving to tests directories snaps built locally - part 2
    - usersession/userd: fix unit tests on systems using /var/lib/snapd
    - sandbox/cgroup: wait for pid to be moved to the desired cgroup
    - tests: fix snap-user-dir-perms-fixed vs format checks
    - interfaces/desktop-launch: support confined snaps launching other
      snaps
    - features: enable dbus-activation by default
    - usersession/autostart: change ~/snap perms to 0700 on startup
    - cmd/snap-bootstrap/initramfs-mounts: mount ubuntu-data nosuid
    - tests: new test static checker
    - release-tool/changelog.py: misc fixes from real world usage
    - release-tools/changelog.py: add function to generate github
      release template
    - spread, tests: Fedora 32 is EOL, drop it
    - o/snapstate: bump max postponement from 60 to 95 days
    - interfaces/apparmor: limit the number of jobs when running with a
      single CPU
    - packaging/fedora/snapd.spec: correct date format in changelog
    - packaging: merge 2.51 changelog back to master
    - packaging/ubuntu-16.04/changelog: add 2.50 and 2.50.1 changelogs,
      placeholder for 2.51
    - interfaces: allow read access to /proc/tty/drivers to modem-
      manager and ppp/dev/tty

snapd (2.51.7) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - cmd/snap-seccomp/syscalls: update syscalls list to libseccomp
      v2.2.0-428-g5c22d4b1
    - tests: cherry-pick shellcheck fix `bd730fd4`
    - interfaces/dsp: add /dev/ambad into dsp interface
    - many: shellcheck fixes
    - snapstate: abort kernel refresh if no gadget update can be found
    - overlord: add manager test for "assumes" checking
    - store: deal correctly with "assumes" from the store raw yaml

snapd (2.51.6) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - secboot: use half the mem for KDF in AddRecoveryKey
    - secboot: switch main key KDF memory cost to 32KB

snapd (2.51.5) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - snap/squashfs: handle squashfs-tools 4.5+
    - tests/core20-install-device-file-install-via-hook-hack: adjust
      test for 2.51
    - o/devicestate/handlers_install.go: add workaround to create dirs
      for install
    - tests: fix linter warning
    - tests: update other spread tests for new behaviour
    - tests: ack assertions by default, add --noack option
    - release-tools/changelog.py: also fix opensuse changelog date
      format
    - release-tools/changelog.py: fix typo in function name
    - release-tools/changelog.py: fix fedora date format
    - release-tools/changelog.py: handle case where we don't have a TZ
    - release-tools/changelog.py: fix line length check
    - release-tools/changelog.py: specify the LP bug for the release as
      an arg too
    - interface/modem-manager: add support for MBIM/QMI proxy
      clients
    - .github/workflows/test.yaml: use snapcraft 4.x to build the snapd
      snap

snapd (2.51.4) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - {device,snap}state: skip kernel extraction in seeding
    - vendor: move to snapshot-4c814e1 branch and set fixed KDF options
    - tests/interfaces/tee: fix HasLen check for udev snippets
    - interfaces/tee: add support for Qualcomm qseecom device node
    - gadget: check for system-save with multi volumes if encrypting
      correctly
    - gadget: drive-by: drop unnecessary/supported passthrough in test
      gadget.yaml

snapd (2.51.3) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - interfaces/builtin: add sd-control interface
    - store: set ResponseHeaderTimeout on the default transport

snapd (2.51.2) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - snapstate: remove temporary snap file for local revisions early
    - interface: allows reading sd cards internal info from block-
      devices interface
    - o/ifacestate: do not visit same halt tasks in waitChainSearch to
      avoid slow convergence (or unlikely cycles)
    - corecfg: allow using `# snapd-edit: no` header to disable pi-
      config
    - configcore: ignore system.pi-config.* setting on measured kernels
    - many: pass device/model info to configcore via sysconfig.Device
      interface
    - o/configstate/configcore: support snap set system swap.size=...
    - store: make the log with download size a debug one
    - interfaces/opengl: add support for Imagination PowerVR

snapd (2.51.1) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - interfaces: add netlink-driver interface
    - interfaces: builtin: add dm-crypt interface to support external
      storage encryption
    - interfaces/dsp: fix typo in udev rule
    - overlord/snapstate: lock the mutex before returning from stop
      snap services undo
    - interfaces: opengl: change path for Xilinx zocl driver
    - interfaces/dsp: add /dev/cavalry into dsp interface
    - packaging/fedora/snapd.spec: correct date format in changelog

snapd (2.51) xenial; urgency=medium

  * New upstream release, LP: #1929842
    - cmd/snap: stacktraces debug endpoint
    - secboot: deactivate volume again when model checker fails
    - store: extra log message, a few minor cleanups
    - packaging/debian-sid: update systemd patch
    - snapstate: adjust update-gadget-assets user visible message
    - tests/nested/core/core20-create-recovery: verify that recovery
      system can be created at runtime
    - gadget: support creating vfat partitions during bootstrap
    - daemon/api_quotas.go: support updating quotas with ensure action
    - daemon: tighten access to a couple of POST endpoints that should
      be really be root-only
    - seed/seedtest, overlord/devicestate: move seed validation helper
      to seedtest
    - overlord/hookstate/ctlcmd: remove unneeded parameter
    - snap/quota: add CurrentMemoryUsage for current memory usage of a
      quota group
    - systemd: add CurrentMemoryUsage to get current memory usage for a
      unit
    - o/snapstate: introduce minimalInstallInfo interface
    - o/hookstate: print pending info (ready, inhibited or none)
    - osutil: a helper to find out the total amount of memory in the
      system
    - overlord, overlord/devicestate: allow for reloading modeenv in
      devicemgr when testing
    - daemon: refine access testing
    - spread: disable unattended-upgrades on debian
    - tests/lib/reset: make nc exit after a while when connection is
      idle
    - daemon: replace access control flags on commands with access
      checkers
    - release-tools/changelog.py: refactor regexp + file reading/writing
    - packaging/debian-sid: update locale patch for the latest master
    - overlord/devicestate: tasks for creating recovery systems at
      runtime
    - release-tools/changelog.py: implement script to update all the
      changelog files
    - tests: change machine type used for nested testsPrices:
    - cmd/snap: include locale when linting description being lower case
    - o/servicestate: add RemoveSnapFromQuota
    - interfaces/serial-port: add Qualcomm serial port devices to
      allowed list
    - packaging: merge 2.50.1 changelog back
    - interfaces/builtin: introduce raw-input interface
    - tests: remove tests.cleanup prepare from nested test
    - cmd/snap-update-ns: fix linter errors
    - asserts: fix errors reported by linter
    - o/hookstate/ctlcmd: allow system-mode for non-root
    - overlord/devicestate: comment why explicit system mode check is
      needed in ensuring tried recovery systems (#10275)
    - overlord/devicesate: observe snap writes when creating recovery
      systems
    - packaging/ubuntu-16.04/changelog: add placeholder for 2.50.1
    - tests: moving to tests directories snaps built locally - part 1
    - seed/seedwriter: fail early when system seed directory exists
    - o/snapstate: autorefresh phase1 for refresh-control
    - c/snap: more precise message for ErrorKindSystemRestart op !=
      reboot
    - tests: simplify the tests.cleanup tool
    - boot: helpers for manipulating current and good recovery systems
      list
    - o/hookstate, o/snapstate: print revision, version, channel with
      snapctl --pending
    - overlord:  unit test tweaks, use well known snap IDs, setup snap
      declarations for most common snaps
    - tests/nested/manual: add test for install-device + snapctl reboot
    - o/servicestate: restart slices + services on modifications
    - tests: update mount-ns test to support changes in the distro
    - interfaces: fix linter issues
    - overlord: mock logger in managers unit tests
    - tests: adding support for fedora-34
    - tests: adding support for debian 10 on gce
    - boot: reseal given keys when the respective boot chain has changed
    - secboot: switch encryption key size to 32 byte (thanks to Chris)
    - interfaces/dbus: allow claiming 'well-known' D-Bus names with a
      wildcard suffix
    - spread: bump delta reference version
    - interfaces: builtin: update permitted paths to be compatible with
      UC20
    - overlord: fix errors reported by linter
    - tests: remove old fedora systems from tests
    - tests: update spread url
    - interfaces/camera: allow devices in /sys/devices/platform/**/usb*
    - interfaces/udisks2: Allow access to the login manager via dbus
    - cmd/snap: exit normally if "snap changes" has no changes
      (LP #1823974)
    - tests: more fixes for spread suite on openSUSE
    - tests: fix tests expecting cgroup v1/hybrid on openSUSE Tumbleweed
    - daemon: fix linter errors
    - spread: add Fedora 34, leave a TODO about dropping Fedora 32
    - interfaces: fix linter errors
    - tests: use op.paths tools instead of dirs.sh helper - part 2
    - client: Fix linter errors
    - cmd/snap: Fix errors reported by linter
    - cmd/snap-repair: fix linter issues
    - cmd/snap-bootstrap: Fix linter errors
    - tests: update permission denied message for test-snapd-event on
      ubuntu 2104
    - cmd/snap: small tweaks based on previous reviews
    - snap/snaptest: helper that mocks both the squashfs file and a snap
      directory
    - overlord/devicestate: tweak comment about creating recovery
      systems, formatting tweaks
    - overlord/devicestate: move devicemgr base suite helpers closer to
      test suite struct
    - overlord/devicestate: keep track of tried recovery system
    - seed/seedwriter: clarify in the diagram when SetInfo is called
    - overlord/devicestate: add helper for creating recovery systems at
      runtime
    - snap-seccomp: update syscalls.go list
    - boot,image: support image.Customizations.BootFlags
    - overlord: support snapctl --halt|--poweroff in gadget install-
      device
    - features,servicestate: add experimental.quota-groups flag
    - o/servicestate: address comments from previous PR
    - tests: basic spread test for snap quota commands
    - tests: moving the snaps which are not locally built to the store
      directory
    - image,c/snap: implement prepare-image --customize
    - daemon: implement REST API for quota groups (create / list / get)
    - cmd/snap, client: snap quotas command
    - o/devicestate,o/hookstate/ctlcmd: introduce SystemModeInfo methods
      and snapctl system-mode
    - o/servicestate/quota_control.go: introduce (very) basic group
      manipulation methods
    - cmd/snap, client: snap remove-quota command
    - wrappers, quota: implement quota groups slice generation
    - snap/quotas: followups from previous PR
    - cmd/snap: introduce 'snap quota' command
    - o/configstate/configcore/picfg.go: use ubuntu-seed config.txt in
      uc20 run mode
    - o/servicestate: test has internal ordering issues, consider both
      cases
    - o/servicestate/quotas: add functions for getting and setting
      quotas in state
    - tests: new buckets for snapd-spread project on gce
    - spread.yaml: update the gce project to start using snapd-spread
    - quota: new package for managing resource groups
    - many: bind and check keys against models when using FDE hooks v2
    - many: move responsibilities down seboot -> kernel/fde and boot ->
      secboot
    - packaging: add placeholder changelog
    - o/configstate/configcore/vitality: fix RequireMountedSnapdSnap
      bug
    - overlord: properly mock usr-lib-snapd tests to mimic an Ubuntu
      Core system
    - many: hide EncryptionKey size and refactors for fde hook v2 next
      steps
    - tests: adding debug info for create user tests
    - o/hookstate: add "refresh" command to snapctl (hidden, not
      complete yet)
    - systemd: wait for zfs mounts (LP #1922293)
    - testutil: support referencing files in FileEquals checker
    - many: refactor to kernel/fde and allow `fde-setup initial-setup`
      to return json
    - o/snapstate: store refresh-candidates in the state
    - o/snapstate: helper for creating gate-auto-refresh hooks
    - bootloader/bootloadertest: provide interface implementation as
      mixins, provide a mock for recovery-aware-trusted-asses bootloader
    - tests/lib/nested: do not compress images, return early when
      restored from pristine image
    - boot: split out a helper for making recovery system bootable
    - tests: update os.query check to match new bullseye codename used
      on sid images
    - o/snapstate: helper for getting snaps affected by refresh, define
      new hook
    - wrappers: support in EnsureSnapServices a callback to observe
      changes (#10176)
    - gadget: multi line support in gadget's cmdline file
    - daemon: test that requesting restart from (early) Ensure works
    - tests: use op.paths tools instead of dirs.sh helper - part 1
    - tests: add new command to snaps-state to get current core, kernel
      and gadget
    - boot, gadget: move opening the snap container into the gadget
      helper
    - tests, overlord: extend unit tests, extend spread tests to cover
      full command line support
    - interfaces/builtin: introduce dsp interface
    - boot, bootloader, bootloader/assets: support for full command line
      override from gadget
    - overlord/devicestate, overlord/snapstate: add task for updating
      kernel command lines from gadget
    - o/snapstate: remove unused DeviceCtx argument of
      ensureInstallPreconditions
    - tests/lib/nested: proper status return for tpm/secure boot checks
    - cmd/snap, boot: add snapd_full_cmdline_args to dumped boot vars
    - wrappers/services.go: refactor helper lambda function to separate
      function
    - boot/flags.go: add HostUbuntuDataForMode
    - boot: handle updating of components that contribute to kernel
      command line
    - tests: add 20.04 to systems for nested/core
    - daemon: add new accessChecker implementations
    - boot, overlord/devicestate: consider gadget command lines when
      updating boot config
    - tests: fix prepare-image-grub-core18 for arm devices
    - tests: fix gadget-kernel-refs-update-pc test on arm and when
      $TRUST_TEST_KEY is false
    - tests: enable help test for all the systems
    - boot: set extra command line arguments when preparing run mode
    - boot: load bits of kernel command line from gadget snaps
    - tests: update layout for tests - part 2
    - tests: update layout for tests - part 1
    - tests: remove the snap profiler from the test suite
    - boot: drop gadget snap yaml which is already defined elsewhere in
      the tests
    - boot: set extra kernel command line arguments when making a
      recovery system bootable
    - boot: pass gadget path to command line helpers, load gadget from
      seed
    - tests: new os.paths tool
    - daemon: make ucrednetGet() return a *ucrednet structure
    - boot: derive boot variables for kernel command lines
    - cmd/snap-bootstrap/initramfs-mounts: fix boot-flags location from
      initramfs

snapd (2.50.1) xenial; urgency=medium

  * New upstream release, LP: #1926005
    - interfaces: update permitted /lib/.. paths to be compatible with 
      UC20
    - interfaces: builtin: update permitted paths to be compatible with
      UC20
    - interfaces/greengrass-support: delete white spaces at the end of
      lines
    - snap-seccomp: update syscalls.go list
    - many: backport kernel command line for 2.50
    - interfaces/dbus: allow claiming 'well-known' D-Bus names with a
      wildcard suffix
    - interfaces/camera: allow devices in /sys/devices/platform/**/usb*
    - interfaces/builtin: introduce dsp interface

snapd (2.50) xenial; urgency=medium

  * New upstream release, LP: #1926005
    - overlord: properly mock usr-lib-snapd tests to mimic an Ubuntu
      Core system
    - o/configstate/configcore/vitality: fix RequireMountedSnapdSnap bug
    - o/servicestate/servicemgr.go: add ensure loop for snap service
      units
    - wrappers/services.go: introduce EnsureSnapServices()
    - snapstate: add "kernel-assets" to featureSet
    - systemd: wait for zfs mounts
    - overlord: make servicestate responsible to compute
      SnapServiceOptions
    - boot,tests: move where we write boot-flags one level up
    - o/configstate: don't pass --root=/ when
      masking/unmasking/enabling/disabling services
    - cmd/snap-bootstrap/initramfs-mounts: write active boot-flags to
      /run
    - gadget: be more flexible with kernel content resolving
    - boot, cmd/snap: include extra cmdline args in debug boot-vars
      output
    - boot: support read/writing boot-flags from userspace/initramfs
    - interfaces/pwm: add PWM interface
    - tests/lib/prepare-restore.sh: clean out snapd changes and snaps
      before purging
    - systemd: enrich UnitStatus returned by systemd.Status() with
      Installed flag
    - tests: updated restore phase of spread tests - part 1
    - gadget: add support for kernel command line provided by the gadget
    - tests: Using GO111MODULE: "off" in spread.yaml
    - features: add gate-auto-refresh-hook feature flag
    - spread: ignore linux kernel upgrade in early stages for arch
      preparation
    - tests: use snaps-state commands and remove them from the snaps
      helper
    - o/configstate: fix panic with a sequence of config unset ops over
      same path
    - api: provide meaningful error message on connect/disconnect for
      non-installed snap
    - interfaces/u2f-devices: add HyperFIDO Pro
    - tests: add simple sanity check for systemctl show
      --property=UnitFileState for unknown service
    - tests: use tests.session tool on interfaces-desktop-document-
      portal test
    - wrappers: install D-Bus service activation files for snapd session
      tools on core
    - many: add x-gvfs-hide option to mount units
    - interfaces/builtin/gpio_test.go: actually test the generated gpio
      apparmor
    - spread: tentative workaround for arch failure caused by libc
      upgrade and cgroups v2
    - tests: add spread test for snap validate against store assertions
    - tests: remove snaps which are not used in any test
    - ci: set the accept-existing-contributors parameter for the cla-
      check action
    - daemon: introduce apiBaseSuite.(json|sync|async|error)Req (and
      some apiBaseSuite cosmetics)
    - o/devicestate/devicemgr: register install-device hook, run if
      present in install
    - o/configstate/configcore: simple refactors in preparation for new
      function
    - tests: unifying the core20 nested suite with the core nested suite
    - tests: uboot-unpacked-assets updated to reflect the real path used
      to find the kernel
    - daemon: switch api_test.go to daemon_test and various other
      cleanups
    - o/configstate/configcore/picfg.go: add hdmi_cvt support
    - interfaces/apparmor: followup cleanups, comments and tweaks
    - boot: cmd/snap-bootstrap: handle a candidate recovery system v2
    - overlord/snapstate: skip catalog refresh when snappy testing is
      enabled
    - overlord/snapstate, overlord/ifacestate: move late security
      profile removal to ifacestate
    - snap-seccomp: fix seccomp test on ppc64el
    - interfaces, interfaces/apparmor, overlord/snapstate: late removal
      of snap-confine apparmor profiles
    - cmd/snap-bootstrap/initramfs-mounts: move time forward using
      assertion times
    - tests: reset the system while preparing the test suite
    - tests: fix snap-advise-command check for 429
    - gadget: policy for gadget/kernel refreshes
    - o/configstate: deal with no longer valid refresh.timer=managed
    - interfaces/udisks2: allow locking /run/mount/utab for udisks 2.8.4
    - cla-check: Use has-signed-canonical-cla GitHub Action
    - tests: validation sets spread test
    - tests: simplify the reset.sh logic by removing not needed command
    - overlord/snapstate: make sure that snapd current symlink is not
      removed during refresh
    - tests/core/fsck-on-boot: unmount /run/mnt/snapd directly on uc20
    - tests/lib/fde-setup-hook: also verify that fde-reveal-key key data
      is base64
    - o/devicestate: split off ensuring next boot goes to run mode into
      new task
    - tests: fix cgroup-tracking test
    - boot: export helper for clearing tried system state, add tests
    - cmd/snap: use less aggressive client timeouts in unit tests
    - daemon: fix signing key validity timestamp in unit tests
    - o/{device,hook}state: encode fde-setup-request key as base64
      string
    - packaging: drop dh-systemd from build-depends on ubuntu-16.04+
    - cmd/snap/pack: unhide the compression option
    - boot: extend set try recovery system unit tests
    - cmd/snap-bootstrap: refactor handling of ubuntu-save, do not use
      secboot's implicit fallback
    - o/configstate/configcore: add hdmi_timings to pi-config
    - snapstate: reduce reRefreshRetryTimeout to 1/2 second
    - interfaces/tee: add TEE/OPTEE interface
    - o/snapstate: update validation sets assertions with auto-refresh
    - vendor: update go-tpm2/secboot to latest version
    - seed: ReadSystemEssentialAndBetterEarliestTime
    - tests: replace while commands with the retry tool
    - interfaces/builtin: update unit tests to use proper distro's
      libexecdir
    - tests: run the reset.sh helper and check test invariants while the
      test is restored
    - daemon: switch preexisting daemon_test tests to apiBaseSuite and
      .req
    - boot, o/devicestate: split makeBootable20 into two parts
    - interfaces/docker-support: add autobind unix rules to docker-
      support
    - interfaces/apparmor: allow reading
      /proc/sys/kernel/random/entropy_avail
    - tests: use retry tool instead a loops
    - tests/main/uc20-create-partitions: fix tests cleanup
    - asserts: mode where Database only assumes cur time >= earliest
      time
    - daemon: validation sets/api tests cleanup
    - tests: improve tests self documentation for nested test suite
    - api: local assertion fallback when it's not in the store
    - api: validation sets monitor mode
    - tests: use fs-state tool in interfaces tests
    - daemon:  move out /v2/login|logout and errToResponse tests from
      api_test.go
    - boot: helper for inspecting the outcome of a recovery system try
    - o/configstate, o/snapshotstate: fix handling of nil snap config on
      snapshot restore
    - tests: update documentation and checks for interfaces tests
    - snap-seccomp: add new `close_range` syscall
    - boot: revert #10009
    - gadget: remove `device-tree{,-origin}` from gadget tests
    - boot: simplify systems test setup
    - image: write resolved-content from snap prepare-image
    - boot: reseal the run key for all recovery systems, but recovery
      keys only for the good ones
    - interfaces/builtin/network-setup-{control,observe}: allow using
      netplan directly
    - tests: improve sections prepare and restore - part 1
    - tests: update details on task.yaml files
    - tests: revert os.query usage in spread.yaml
    - boot: export bootAssetsMap as AssetsMap
    - tests/lib/prepare: fix repacking of the UC20 kernel snap for with
      ubuntu-core-initramfs 40
    - client: protect against reading too much data from stdin
    - tests: improve tests documentation - part 2
    - boot: helper for setting up a try recover system
    - tests: improve tests documentation - part 1
    - tests/unit/go: use tests.session wrapper for running tests as a
      user
    - tests: improvements for snap-seccomp-syscalls
    - gadget: simplify filterUpdate (thanks to Maciej)
    - tests/lib/prepare.sh: use /etc/group and friends from the core20
      snap
    - tests: fix tumbleweed spread tests part 2
    - tests: use new commands of os.query tool on tests
    - o/snapshotstate: create snapshots directory on import
    - tests/main/lxd/prep-snapd-in-lxd.sh: dump contents of sources.list
    - packaging: drop 99-snapd.conf via dpkg-maintscript-helper
    - osutil: add SetTime() w/ 32-bit and 64-bit implementations
    - interfaces/wayland: rm Xwayland Xauth file access from wayland
      slot
    - packaging/ubuntu-16.04/rules: turn modules off explicitly
    - gadget,devicestate: perform kernel asset update for $kernel: style
      refs
    - cmd/recovery: small fix for `snap recovery` tab output
    - bootloader/lkenv: add recovery systems related variables
    - tests: fix new tumbleweed image
    - boot: fix typo, should be systems
    - o/devicestate: test that users.create.automatic is configured
      early
    - asserts: use Fetcher in AddSequenceToUpdate
    - daemon,o/c/configcore: introduce users.create.automatic
    - client, o/servicestate: expose enabled state of user daemons
    - boot: helper for checking and marking tried recovery system status
      from initramfs
    - asserts: pool changes for validation-sets (#9930)
    - daemon: move the last api_foo_test.go to daemon_test
    - asserts: include the assertion timestamp in error message when
      outside of signing key validity range
    - ovelord/snapshotstate: keep a few of the last line tar prints
      before failing
    - gadget/many: rm, delay sector size + structure size checks to
      runtime
    - cmd/snap-bootstrap/triggerwatch: fix returning wrong errors
    - interfaces: add allegro-vcu and media-control interfaces
    - interfaces: opengl: add Xilinx zocl bits
    - mkversion: check that version from changelog is set before
      overriding the output version
    - many: fix new ineffassign warnings
    - .github/workflows/labeler.yaml: try work-around to not sync
      labels
    - cmd/snap, boot: add debug set-boot-vars
    - interfaces: allow reading the Xauthority file KDE Plasma writes
      for Wayland sessions
    - tests/main/snap-repair: test running repair assertion w/ fakestore
    - tests: disable lxd tests for 21.04 until the lxd images are
      published for the system
    - tests/regression/lp-1910456: cleanup the /snap symlink when done
    - daemon: move single snap querying and ops to api_snaps.go
    - tests: fix for preseed and dbus tests on 21.04
    - overlord/snapshotstate: include the last message printed by tar in
      the error
    - interfaces/system-observe: Allow reading /proc/zoneinfo
    - interfaces: remove apparmor downgrade feature
    - snap: fix unit tests on Go 1.16
    - spread: disable Go modules support in environment
    - tests: use new path to find kernel.img in uc20 for arm devices
    - tests: find files before using cat command when checking broadcom-
      asic-control interface
    - boot: introduce good recovery systems, provide compatibility
      handling
    - overlord: add manager gadget refresh test
    - tests/lib/fakestore: support repair assertions too
    - github: temporarily disable action labeler due to issues with
      labels being removed
    - o/devicestate,many: introduce DeviceManager.preloadGadget for
      EarlyConfig
    - tests: enable ubuntu 21.04 for spread tests
    - snap: provide a useful error message if gdbserver is not installed
    - data/selinux: allow system dbus to watch /var/lib/snapd/dbus-1
    - tests/lib/prepare.sh: split reflash.sh into two parts
    - packaging/opensuse: sync with openSUSE packaging
    - packaging: disable Go modules in snapd.mk
    - snap: add deprecation noticed to "snap run --gdb"
    - daemon: add API for checking and installing available theme snaps
    - tests: using labeler action to add automatically a label to run
      nested tests
    - gadget: improve error handling around resolving content sources
    - asserts: repeat the authority cross-check in CheckSignature as
      well
    - interfaces/seccomp/template.go: allow copy_file_range
    - o/snapstate/check_snap.go: add support for many subversions in
      assumes snapdX..
    - daemon: move postSnap and inst.dispatch tests to api_snaps_test.go
    - wrappers: use proper paths for mocked mount units in tests
    - snap: rename gdbserver option to `snap run --gdbserver`
    - store: support validation sets with fetch-assertions action
    - snap-confine.apparmor.in: support tmp and log dirs on Yocto/Poky
    - packaging/fedora: sync with downstream packaging in Fedora
    - many: add Delegate=true to generated systemd units for special
      interfaces (master)
    - boot: use a common helper for mocking boot assets in cache
    - api: validate snaps against validation set assert from the store
    - wrappers: don't generate an [Install] section for timer or dbus
      activated services
    - tests/nested/core20/boot-config-update: skip when snapd was not
      built with test features
    - o/configstate,o/devicestate: introduce devicestate.EarlyConfig
      implemented by configstate.EarlyConfig
    - cmd/snap-bootstrap/initramfs-mounts: fix typo in func name
    - interfaces/builtin: mock distribution in fontconfig cache unit
      tests
    - tests/lib/prepare.sh: add another console= to the reflash magic
      grub entry
    - overlord/servicestate: expose dbus activators of a service
    - desktop/notification: test against a real session bus and
      notification server implementation
    - cmd/snap-bootstrap/initramfs-mounts: write realistic modeenv for
      recover+install
    - HACKING.md: explain how to run UC20 spread tests with QEMU
    - asserts: introduce AtSequence
    - overlord/devicestate: task for updating boot configs, spread test
    - gadget: fix documentation/typos
    - gadget: cleanup MountedFilesystem{Writer,Updater}
    - gadget: use ResolvedSource in MountedFilesystemWriter
    - snap/info.go: add doc-comment for SortServices
    - interfaces: add an optional mount-host-font-cache plug attribute
      to the desktop interface
    - osutil: skip TestReadBuildGo inside sbuild
    - o/hookstate/ctlcmd: add optional --pid and --apparmor-label
      arguments to "snapctl is-connected"
    - data/env/snapd: use quoting in case PATH contains spaces
    - boot: do not observe successful boot assets if not in run mode
    - tests: fix umount for snapd snap on fsck-on-boot testumount:
      /run/mnt/ubuntu-seed/systems/*/snaps/snapd_*.snap: no mount
    - misc: little tweaks
    - snap/info.go: ignore unknown daemons in SortSnapServices
    - devicestate: keep log from install-mode on installed system
    - seed: add LoadEssentialMeta to seed16 and allow all of its
      implementations to be called multiple times
    - cmd/snap-preseed: initialize snap.SanitizePlugsSlots for gadget in
      seeds
    - tests/core/uc20-recovery: move recover mode helpers to generic
      testslib script
    - interfaces/fwupd: allow any distros to access fw files via fwupd
    - store: method for fetching validation set assertion
    - store: switch to v2/assertions api
    - gadget: add new ResolvedContent and populate from LayoutVolume()
    - spread: use full format when listing processes
    - osutil/many: make all test pkgs osutil_test instead of "osutil"
    - tests/unit/go: drop unused environment variables, skip coverage
    - OpenGL interface: Support more Tegra libs
    - gadget,overlord: pass kernelRoot to install.Run()
    - tests: run unit tests in Focal instead of Xenial
    - interfaces/browser-support: allow sched_setaffinity with browser-
      sandbox: true
    - daemon: move query /snaps/<name> tests to api_snaps_test.go
    - cmd/snap-repair/runner.go: add SNAP_SYSTEM_MODE to env of repair
      runner
    - systemd/systemd.go: support journald JSON messages with arrays for
      values
    - cmd: make string/error code more robust against errno leaking
    - github, run-checks: do not collect coverage data on subsequent
      test runs
    - boot: boot config update & reseal
    - o/snapshotstate: handle conflicts between snapshot forget, export
      and import
    - osutil/stat.go: add RegularFileExists
    - cmd/snapd-generator: don't create mount overrides for snap-try
      snaps inside lxc
    - gadget/gadget.go: rename ubuntu-* to system-* in doc-comment
    - tests: use 6 spread workers for centos8
    - bootloader/assets: support injecting bootloader assets in testing
      builds of snapd
    - gadget: enable multi-volume uc20 gadgets in
      LaidOutSystemVolumeFromGadget; rename too
    - overlord/devicestate, sysconfig: do nothing when cloud-init is not
      present
    - cmd/snap-repair: filter repair assertions based on bases + modes
    - snap-confine: make host /etc/ssl available for snaps on classic

snapd (2.49.2) xenial; urgency=medium

  * New upstream release, LP: #1915248
    - interfaces/tee: add TEE/OPTEE interface
    - o/configstate/configcore: add hdmi_timings to pi-config
    - interfaces/udisks2: allow locking /run/mount/utab for udisks 2.8.4
    - snap-seccomp: fix seccomp test on ppc64el
    - interfaces{,/apparmor}, overlord/snapstate:
      late removal of snap-confine apparmor profiles
    - overlord/snapstate, wrappers: add dependency on usr-lib-
      snapd.mount for services on core with snapd snap
    - o/configstate: deal with no longer valid refresh.timer=managed
    - overlord/snapstate: make sure that snapd current symlink is not
      removed during refresh
    - packaging: drop dh-systemd from build-depends on ubuntu-16.04+
    - o/{device,hook}state: encode fde-setup-request key as base64
    - snapstate: reduce reRefreshRetryTimeout to 1/2 second
    - tests/main/uc20-create-partitions: fix tests cleanup
    - o/configstate, o/snapshotstate: fix handling of nil snap config on
      snapshot restore
    - snap-seccomp: add new `close_range` syscall

snapd (2.49.1) xenial; urgency=medium

  * New upstream release, LP: #1915248
    - tests: turn modules off explicitly in spread go unti test
    - o/snapshotstate: create snapshots directory on import
    - cmd/snap-bootstrap/triggerwatch: fix returning wrong errors
    - interfaces: add allegro-vcu and media-control interfaces
    - interfaces: opengl: add Xilinx zocl bits
    - many: fix new ineffassign warnings
    - interfaces/seccomp/template.go: allow copy_file_range
    - interfaces: allow reading the Xauthority file KDE Plasma writes
      for Wayland sessions
    - data/selinux: allow system dbus to watch
      /var/lib/snapd/dbus-1
    - Remove apparmor downgrade feature
    - Support tmp and log dirs on Yocto/Poky

snapd (2.49) xenial; urgency=medium

  * New upstream release, LP: #1915248
    - many: add Delegate=true to generated systemd units for special
      interfaces
    - cmd/snap-bootstrap: rename ModeenvFromModel to
      EphemeralModeenvForModel
    - cmd/snap-bootstrap/initramfs-mounts: write realistic modeenv for
      recover+install
    - osutil: skip TestReadBuildGo inside sbuild
    - tests: fix umount for snapd snap on fsck-on-boot test
    - snap/info_test.go: add unit test cases for bug
    - tests/main/services-after-before: add regression spread test
    - snap/info.go: ignore unknown daemons in SortSnapServices
    - cmd/snap-preseed: initialize snap.SanitizePlugsSlots for gadget in
      seeds
    - OpenGL interface: Support more Tegra libs
    - interfaces/browser-support: allow sched_setaffinity with browser-
      sandbox: true
    - cmd: make string/error code more robust against errno leaking
    - o/snapshotstate: handle conflicts between snapshot forget, export
      and import
    - cmd/snapd-generator: don't create mount overrides for snap-try
      snaps inside lxc
    - tests: update test pkg for fedora and centos
    - gadget: pass sector size in to mkfs family of functions, use to
      select block sz
    - o/snapshotstate: fix returning of snap names when duplicated
      snapshot is detected
    - tests/main/snap-network-errors: skip flushing dns cache on
      centos-7
    - interfaces/builtin: Allow DBus property access on
      org.freedesktop.Notifications
    - cgroup-support.c: fix link to CGROUP DELEGATION
    - osutil: update go-udev package
    - packaging: fix arch-indep build on debian-sid
    - {,sec}boot: pass "key-name" to the FDE hooks
    - asserts: sort by revision with Sort interface
    - gadget: add gadget.ResolveContentPaths()
    - cmd/snap-repair: save base snap and mode in device info; other
      misc cleanups
    - tests: cleanup the run-checks script
    - asserts: snapasserts method to validate installed snaps against
      validation sets
    - tests: normalize test tools - part 1
    - snapshotstate: detect duplicated snapshot imports
    - interfaces/builtin: fix unit test expecting snap-device-helper at
      /usr/lib/snapd
    - tests: apply workaround done for snap-advise-command to apt-hooks
      test
    - tests: skip main part of snap-advise test if 429 error is
      encountered
    - many: clarify gadget role-usage consistency checks for UC16/18 vs
      UC20
    - sandbox/cgroup, tess/main: fix unit tests on v2 system, disable
      broken tests on sid
    - interfaces/builtin: more drive by fixes, import ordering, removing
      dead code
    - tests: skip interfaces-openvswitch spread test on debian sid
    - interfaces/apparmor: drive by comment fix
    - cmd/libsnap-confine-private/cleanup-funcs-test.c: rm g_autofree
      usage
    - cmd/libsnap-confine-private: make unit tests execute happily in a
      container
    - interfaces, wrappers: misc comment fixes, etc.
    - asserts/repair.go: add "bases" and "modes" support to the repair
      assertion
    - interfaces/opengl: allow RPi MMAL video decoding
    - snap: skip help output tests for go-flags v1.4.0
    - gadget: add validation for "$kernel:ref" style content
    - packaging/deb, tests/main/lxd-postrm-purge: fix purge inside
      containers
    - spdx: update to SPDX license list version: 3.11 2020-11-25
    - tests: improve hotplug test setup on classic
    - tests: update check to verify is the current system is arm
    - tests: use os-query tool to check debian, trusty and tumbleweed
    - daemon: start moving implementation to api_snaps.go
    - tests/main/snap-validate-basic: disable test on Fedora due to go-
      flags panics
    - tests: fix library path used for tests.pkgs
    - tests/main/cohorts: replace yq with a Python snippet
    - run-checks: update to match new argument syntax of ineffassign
    - tests: use apiBaseSuite for snapshots tests, fix import endpoint
      path
    - many: separate consistency/content validation into
      gadget.Validate|Content
    - o/{device,snap}state: enable devmode snaps with dangerous model
      assertions
      secboot: add test for when systemd-run does not honor
      RuntimeMaxSec
    - secboot: add workaround for snapcore/core-initrd issue #13
    - devicestate: log checkEncryption errors via logger.Noticef
    - o/daemon: validation sets api and basic spread test
    - gadget: move BuildPartitionList to install and make it unexported
    - tests: add nested spread end-to-end test for fde-hooks
    - devicestate: implement checkFDEFeatures()
    - boot: tweak resealing with fde-setup hooks
    - tests: add os query commands for subsystems and architectures
    - o/snapshotstate: don't set auto flag in the snapshot file
    - tests: use os.query tool instead of comparing the system var
    - testutil: use the original environment when calling shellcheck
    - sysconfig/cloudinit.go: add "manual_cache_clean: true" to cloud-
      init restrict file
    - gadget,o/devicestate,tests: drop EffectiveFilesystemLabel and
      instead set the implicit labels when loading the yaml
    - secboot: add new LockSealedKeys() that uses either TPM/fde-reveal-
      key
    - gadget/quantity: introduce Offset, start using it for offset
      related fields in the gadget
    - gadget: use "sealed-keys" to determine what method to use for
      reseal
    - tests/main/fake-netplan-apply: disable test on xenial for now
    - daemon: start splitting snaps op tests out of api_test.go
    - testutil: make DBusTest use a custom bus configuration file
    - tests: replace pkgdb.sh (library) with tests.pkgs (program)
    - gadget: prepare gadget kernel refs (0/N)
    - interfaces/builtin/docker-support: allow /run/containerd/s/...
    - cmd/snap-preseed: reset run inhibit locks on --reset.
    - boot: add sealKeyToModeenvUsingFdeSetupHook()
    - daemon: reorg snap.go and split out sections and icons support
      from api.go
    - sandbox/seccomp: use snap-seccomp's stdout for getting version
      info
    - daemon: split find support to its own api_*.go files and move some
      helpers
    - tests: move snapstate config defaults tests to a separate file.
    - bootloader/{lk,lkenv}: followups from #9695
    - daemon: actually move APIBaseSuite to daemon_test.apiBaseSuite
    - gadget,o/devicestate: set implicit values for schema and role
      directly instead of relying on Effective* accessors
    - daemon: split aliases support to its own api_*.go files
    - gadget: start separating rule/convention validation from basic
      soundness
    - cmd/snap-update-ns: add better unit test for overname sorting
    - secboot: use `fde-reveal-key` if available to unseal key
    - tests: fix lp-1899664 test when snapd_x1 is not installed in the
      system
    - tests: fix the scenario when the "$SRC".orig file does not exist
    - cmd/snap-update-ns: fix sorting of overname mount entries wrt
      other entries
    - devicestate: add runFDESetupHook() helper
    - bootloader/lk: add support for UC20 lk bootloader with V2 lkenv
      structs
    - daemon: split unsupported buy implementation to its own api_*.go
      files
    - tests: download timeout spread test
    - gadget,o/devicestate: hybrid 18->20 ready volume setups should be
      valid
    - o/devicestate: save model with serial in the device save db
    - bootloader: add check for prepare-image time and more tests
      validating options
    - interfaces/builtin/log_observe.go: allow controlling apparmor
      audit levels
    - hookstate: refactor around EphemeralRunHook
    - cmd/snap: implement 'snap validate' command
    - secboot,devicestate: add scaffoling for "fde-reveal-key" support
    - boot: observe successful command line update, provide a default
    - tests: New queries for the os tools
    - bootloader/lkenv: specify backup file as arg to NewEnv(), use ""
      as path+"bak"
    - osutil/disks: add FindMatchingPartitionUUIDWithPartLabel to Disk
      iface
    - daemon: split out snapctl support and snap configuration support
      to their own api_*.go files
    - snapshotstate: improve handling of multiple errors
    - tests: sign new nested-18|20* models to allow for generic serials
    - bootloader: remove installableBootloader interface and methods
    - seed: cleanup/drop some no longer valid TODOS, clarify some other
      points
    - boot: set kernel command line in modeenv during install
    - many: rename disks.FindMatching... to FindMatching...WithFsLabel
      and err type
    - cmd/snap: suppress a case of spurious stdout logging from tests
    - hookstate: add new HookManager.EphemeralRunHook()
    - daemon: move some more api tests from daemon to daemon_test
    - daemon: split apps and logs endpoints to api_apps.go and tests
    - interfaces/utf: Add Ledger to U2F devices
    - seed/seedwriter: consider modes when checking for deps
      availability
    - o/devicestate,daemon: fix reboot system action to not require a
      system label
    - cmd/snap-repair,store: increase initial retry time intervals,
      stalling TODOs
    - daemon: split interfacesCmd to api_interfaces.go
    - github: run nested suite when commit is pushed to release branch
    - client: reduce again the /v2/system-info timeout
    - tests: reset fakestore unit status
    - update-pot: fix typo in plural keyword spec
    - tests: remove workarounds that add "ubuntu-save" if missing
    - tests: add unit test for auto-refresh with validate-snap failure
    - osutil: add helper for getting the kernel command line
    - tests/main/uc20-create-partitions: verify ubuntu-save encryption
      keys, tweak not MATCH
    - boot: add kernel command lines to the modeenv file
    - spread: bump delta ref, tweak repacking to make smaller delta
      archives
    - bootloader/lkenv: add v2 struct + support using it
    - snapshotstate: add cleanup of abandonded snapshot imports
    - tests: fix uc20-create-parition-* tests for updated gadget
    - daemon: split out /v2/interfaces tests to api_interfaces_test.go
    - hookstate: implement snapctl fde-setup-{request,result}
    - wrappers, o/devicestate: remove EnableSnapServices
    - tests: enable nested on 20.10
    - daemon: simplify test helpers Get|PostReq into Req
    - daemon: move general api to api_general*.go
    - devicestate: make checkEncryption fde-setup hook aware
    - client/snapctl, store: fix typos
    - tests/main/lxd/prep-snapd-in-lxd.sh: wait for valid apt files
      before doing apt ops
    - cmd/snap-bootstrap: update model cross-check considerations
    - client,snapctl: add naive support for "stdin"
    - many: add new "install-mode: disable" option
    - osutil/disks: allow building on mac os
    - data/selinux: update the policy to allow operations on non-tmpfs
      /tmp
    - boot: add helper for generating candidate kernel lines for
      recovery system
    - wrappers: generate D-Bus service activation files
    - bootloader/many: rm ConfigFile, add Present for indicating
      presence of bloader
    - osutil/disks: allow mocking DiskFromDeviceName
    - daemon: start cleaning up api tests
    - packaging/arch: sync with AUR packaging
    - bootloader: indicate when boot config was updated
    - tests: Fix snap-debug-bootvars test to make it work on arm devices
      and core18
    - tests/nested/manual/core20-save: verify handling of ubuntu-save
      with different system variants
    - snap: use the boot-base for kernel hooks
    - devicestate: support "storage-safety" defaults during install
    - bootloader/lkenv: mv v1 to separate file,
      include/lk/snappy_boot_v1.h: little fixups
    - interfaces/fpga: add fpga interface
    - store: download timeout
    - vendor: update secboot repo to avoid including secboot.test binary
    - osutil: add KernelCommandLineKeyValue
    - gadget/gadget.go: allow system-recovery-{image,select} as roles in
      gadget.yaml
    - devicestate: implement boot.HasFDESetupHook
    - osutil/disks: add DiskFromName to get a disk using a udev name
    - usersession/agent: have session agent connect to the D-Bus session
      bus
    - o/servicestate: preserve order of services on snap restart
    - o/servicestate: unlock state before calling wrappers in
      doServiceControl
    - spread: disable unattended-upgrades on ubuntu
    - tests: testing new fedora 33 image
    - tests: fix fsck on boot on arm devices
    - tests: skip boot state test on arm devices
    - tests: updated the systems to run prepare-image-grub test
    - interfaces/raw_usb: allow read access to /proc/tty/drivers
    - tests: unmount /boot/efi in fsck-on-boot test
    - strutil/shlex,osutil/udev/netlink: minimally import go-check
    - tests: fix basic20 test on arm devices
    - seed: make a shared seed system label validation helper
    - tests/many: enable some uc20 tests, delete old unneeded tests or
      TODOs
    - boot/makebootable.go: set snapd_recovery_mode=install at image-
      build time
    - tests: migrate test from boot.sh helper to boot-state tool
    - asserts: implement "storage-safety" in uc20 model assertion
    - bootloader: use ForGadget when installing boot config
    - spread: UC20 no longer needs 2GB of mem
    - cmd/snap-confine: implement snap-device-helper internally
    - bootloader/grub: replace old reference to Managed...Blr... with
      Trusted...Blr...
    - cmd/snap-bootstrap: add readme for snap-bootstrap + real state
      diagram
    - interfaces: fix greengrass attr namingThe flavor attribute names
      are now as follows:
    - tests/lib/nested: poke the API to get the snap revisions
    - tests: compare options of mount units created by snapd and snapd-
      generator
    - o/snapstate,servicestate: use service-control task for service
      actions
    - sandbox: track applications unconditionally
    - interfaces/greengrass-support: add additional "process" flavor for
      1.11 update
    - cmd/snap-bootstrap, secboot, tests: misc cleanups, add spread test

Date: 2022-02-17 00:59:09.567633+00:00
Changed-By: Michael Vogt <michael.vogt at canonical.com>
Signed-By: Paulo Flabiano Smorigo <pfsmorigo at canonical.com>
https://launchpad.net/ubuntu/+source/snapd/2.54.3+18.04
-------------- next part --------------
Sorry, changesfile not available.


More information about the Bionic-changes mailing list