From 5cec9a37e1de2843d5e6125e43f3c3e8befc0085 Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Tue, 24 Jan 2017 21:26:51 +0000 Subject: [PATCH] Import snapd_2.21-2.debian.tar.xz [dgit import tarball snapd 2.21-2 snapd_2.21-2.debian.tar.xz] --- changelog | 2310 ++++++++++++++++++++++ compat | 1 + control | 116 ++ copyright | 22 + gbp.conf | 3 + golang-github-snapcore-snapd-dev.install | 1 + not-installed | 1 + patches/debian-changes | 307 +++ patches/series | 1 + rules | 213 ++ snap-confine.install | 7 + snapd.autoimport.service | 10 + snapd.autoimport.udev | 3 + snapd.dirs | 10 + snapd.install | 6 + snapd.lintian-overrides | 13 + snapd.maintscript | 4 + snapd.manpages | 1 + snapd.postinst | 14 + snapd.postrm | 67 + snapd.refresh.service | 11 + snapd.refresh.timer | 14 + snapd.service | 11 + snapd.socket | 13 + source/format | 1 + source/options | 2 + tests/README.md | 10 + tests/control | 12 + tests/integrationtests | 29 + tests/testconfig.json | 3 + ubuntu-core-launcher.install | 2 + 31 files changed, 3218 insertions(+) create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 gbp.conf create mode 100644 golang-github-snapcore-snapd-dev.install create mode 100644 not-installed create mode 100644 patches/debian-changes create mode 100644 patches/series create mode 100755 rules create mode 100644 snap-confine.install create mode 100644 snapd.autoimport.service create mode 100644 snapd.autoimport.udev create mode 100644 snapd.dirs create mode 100644 snapd.install create mode 100644 snapd.lintian-overrides create mode 100644 snapd.maintscript create mode 100644 snapd.manpages create mode 100644 snapd.postinst create mode 100644 snapd.postrm create mode 100644 snapd.refresh.service create mode 100644 snapd.refresh.timer create mode 100644 snapd.service create mode 100644 snapd.socket create mode 100644 source/format create mode 100644 source/options create mode 100644 tests/README.md create mode 100644 tests/control create mode 100644 tests/integrationtests create mode 100644 tests/testconfig.json create mode 100644 ubuntu-core-launcher.install diff --git a/changelog b/changelog new file mode 100644 index 00000000..1d576464 --- /dev/null +++ b/changelog @@ -0,0 +1,2310 @@ +snapd (2.21-2) unstable; urgency=medium + + * Modify snap-confine's apparmor rules to work on Debian when apparmor is + enabled on the kernel command line. + + -- Michael Hudson-Doyle Wed, 25 Jan 2017 10:26:51 +1300 + +snapd (2.21-1) unstable; urgency=medium + + * New upstream release. + * Disable i18n so the package can build in stretch without new packages. + + -- Michael Hudson-Doyle Mon, 16 Jan 2017 11:15:32 +1300 + +snapd (2.21) xenial; urgency=medium + + * New upstream release, LP: #1656382 + - daemon: re-enable reexec + - interfaces: allow reading installed files from previous revisions + by default + - daemon: make activation optional + - tests: run all snap-confine tests in c-unit-tests task + - many: fix abbreviated forms of disconnect + - tests: switch more tests to MATCH + - store: export userAgent. daemon: print store.UserAgent() on + startup. + - tests: test classic confinement `snap list` and `snap info` + output + - debian: skip snap-confine unit tests on nocheck + - overlord/snapstate: share code between Update and UpdateMany, so + that it deals with auto-aliases correctly + - interfaces: upower-observe: refactor to allow snaps to provide a + slot + - tests: add end-to-end store test for classic confinement + - overlord,overlord/snapstate: have UpdateMany retire/enable auto- + aliases even without new revision + - interfaces/browser-support: add @{PROC}/@{pid}/fd/[0-9] w and misc + /run/udev + - interfaces/builtin: add physical-memory-* and io-ports-control + - interfaces: allow getsockopt by default since it is so commonly + used + - cmd/snap, daemon, overlord/snapstate: tests and fixes for "snap + refresh" of a classic snap + - interfaces: allow read/write access of real-time clock with time- + control interface + - store: request no CDN via a header using SNAPPY_STORE_NO_CDN + envvar + - snap: add information about tracking channel (not just actual + channel) + - interfaces: use fewer dot imports + - overlord/snapstate: remove restrictions on ResetAliases + - overlord, store: move confinement filtering to the overlord (from + The Store) + - many: move interface test helpers to ifacetest package + - many: implement 'snap aliases' + - vet: fix for unkeyed fields error on aliases_test.go + - interfaces: miscellaneous policy updates for network-control, + unity7, pulseaudio, default and home + - tests: test for auto-aliases + - interface hooks: connect plug slot hooks (step 2) + - cmd/snap: fix internal naming in snap connect + - snap: use "size" as the json tag in snap.ChannelSnapInfo + - tests: restore the missing initialization of iface manager causing + race + - snap: fix missing sizes in `snap info ` + - tests: improve cleanup for c-unit-tests + - cmd/snap-confine: build non-installed libsnap-confine-private.a + - cmd/snap-confine: small tweaks to seccomp support code + - interfaces/docker-support: allow /run/shm/aufs.xeno for 14.04 + - many: obtain installed snaps developer/publisher username through + assertions + - store: setting of fields for details endpoint + - cmd/snap-confine: check for rst2man on configure + - snap: show `snap --help` output when just running `snap` + - interface/builtin: drop the obsolete checks in udisks2 + SanitizeSlot + - cmd/snap: remove currency switch following UX review + - spread: find top-level directory before running generate- + packaging-dir + - interface hooks: prepare plug slot hooks (step 1) + - i18n: use github.com/mvo5/gettext.go (pure go) for i18n to avoid + cgo + - many: put a marker in the User-Agent sent by snapd/snap when under + testingThe User-Agent will look like: + - tests: fix -reuse and -resend when govendor is missing + - snap: provide friendlier `snap find` message when no snaps are + found + - tests: fix mkversions.sh failure on zesty + - spread: install build-essentail unconditionally + - spread: improve qemu ubuntu-14.04-{32,64} support + - overlord/snapstate,daemon: implement GET /v2/aliases handling + - store: retry user info request + - tests: port more snap-confine regression tests + - tests: cancel the scheduled reboot on ubuntu-core-upgrade-no-gc + and restore state + - tests: debug zesty autopkgtest failures + - overlord/snapstate: use keyed fields on literals + - tests: use MATCH in install-remove-multi + - tests: increase wait time for service to be up + - tests: make debug-each succeed if DENIED doesn't match + - tests: skip packaging dir generation for non-git based autopkgtest + runs + - tests: port refresh-all-undo to MATCH + - tests: improve snap connect test + - tests: port additional snap-confine regression tests + - tests: show --version when it matches unknown + - tests: optionally use apt proxy for qemu + - tests: add hello-classic test + - many: behave more consistently when pointed to staging and + possibly the fake store + - overlord/ifacestate: remove stale comments + - interfaces/apparmor: ignore snippets in classic confinement + - tests: port first regression test from snap-confine + - cmd/snap-confine: disable old tests + + -- Michael Vogt Fri, 13 Jan 2017 19:39:51 +0100 + +snapd (2.20.1) xenial; urgency=medium + + * New upstream release, LP: #1648520 + - tests: enable the ppc64el tests again + - tests: add classic confinement test + - tests: run snap confine tests in debian/rules already + + -- Michael Vogt Mon, 19 Dec 2016 11:53:29 +0100 + +snapd (2.20-2) unstable; urgency=medium + + * Replace unversioned Conflicts on snap package with versioned + Breaks/Replaces, now that snap has dropped /usr/bin/snap. + Closes: #849162. + + -- Steve Langasek Sun, 25 Dec 2016 17:50:25 -0600 + +snapd (2.20-1) unstable; urgency=medium + + * New upstream release. + * Update one test (cmd/snap/cmd_interfaces_test.go) to cope with the newer + golang-go-flags-dev in unstable. + * Explicitly include 'udev' in Build-Depends. + * Add tzdata to Build-Depends to avoid ftbfs. (Closes: #848754) + + -- Michael Hudson-Doyle Mon, 19 Dec 2016 11:43:55 +1300 + +snapd (2.20) xenial; urgency=medium + + * New upstream release, LP: #1648520 + - many: implement "snap alias --reset" using snapstate.ResetAliases + - debian: use a packaging branch for 14.04 + - store: retry downloads on io.Copy errors and sha3 checksum errors + - snap: show apps in `snap info` + - store: send an explicit X-Ubuntu-Classic header to the store + - overlord/snapstate: implement snapstate.ResetAliases + - interfaces/builtin: add dbus interface + - tests: fix tests on 17.04 + - store: use mocked retry strategy to make store tests faster + - overlord: apply auto-aliases information from the snap-declaration + on install or refresh + - many: prepare landing on trusty + - many: implement snap unalias using snapstate.Unalias + - overlord/snapstate: fixing the placement/grouping of some + functions + - interfaces: support network namespaces via 'ip netns' in network- + control + - interfaces/builtin: fix pulseaudio apparmor rules + - interfaces/builtin: add iio interface + - tests: update custom core snap with the freshly build snap-confine + - interfaces: use sysd.{Disable,Stop} instead of sysd.DisableNow() + - overlord,overlord/snapstate: implement snapstate.Unalias by + generalizing the "alias" task + - interfaces: misc openstack snap enablement + - cmd/snap: mock terminal.ReadPassword instead of using /dev/ptmx + - notifications, daemon: kill the unsupported events endpoint + - client: only allow Dangerous option in InstallPath + - overlord/ifacestate: no interface checks if no snap id + - many: implement alias command + - snap: tweak snap install output as designed by Mark + - debian: fix Pre-Depends on dpkg + - tests: check if snap-confine --version is unknown + - cmd/snap-confine: allow content interface mounts + - tests: remove ppa:snappy-dev/image again + - interfaces/apparmor: allow access to core snap + - tests: remove snap-confine/ubuntu-core-launcher after the tests + - overlord,overlord/snapstate: implement snapstate.Alias + - cmd/snap: reject "snap disconnect foo" + - debian: add split ubuntu-core-launcher and snap-confine packages + - cmd: fix mkversion.sh and add regression test + - overlord/snapstate: setup/remove aliases as we link/unlink snaps + - cmd/snap,tests: alias support in snap run + - snap/snapenv: don't obscure HOME if snap uses classic confinement + - store: decode response.Body json inside retry loops + - cmd/snap-confine: fix compilation on platforms with gcc < 4.9.0 + - vendor: update tomb package fixing context support + + -- Michael Vogt Thu, 15 Dec 2016 22:07:08 +0100 + +snapd (2.19) xenial; urgency=medium + + * New upstream release, LP: #1648520 + - cmd/snap-confine: disable support for XDG_RUNTIME_DIR + - cmd/snap-confine/tests: fix stale path after move to snapd + - cmd/snap-confine: don't use __attribute__((nonull)) + - snap: add description to `snap info` + - snap: show last refresh time + - store: switch default delta format from xdelta to xdelta3 + - interfaces: fix system-observe interface to work with ps_mem + - debian: add missing ca-certificates dependency + - cmd/snap-confine: add support for classic confinement + - snapstate/backend: add backend methods to manage aliases + - tests: re-enable snap-confine unit tests via spread + - many: merge snap-confine into snapd + - many: add support for classic confinement + - snap: abort install with ctrl+c + - cmd/snap: change terms accept URL following UX review + - interfaces/apparmor: use distinct apparmor template for classic + - snap: add snap size to `snap info` + - interfaces: add unconfined access to modem-manager + - snap: support for parsing and exposing on snap.Info aliases + - debian: disable autopkgtests on ppc64el + - snap: disable support for socket activation + - tests: fix incorrect restore of the current symlink + - asserts: introduce auto-aliases header in snap-declaration + - interfaces/seccomp: add support for classic confinement + - tests: do not use external snaps + - daemon: close the dup()ed file descriptor to not leak it + - overlord, daemon, progress: enable building snapd without CGO + - daemon, store: let snap info find things in any channel + - store: retry tweaks and logging + - snap: Improve `snap --help` output as designed by Mark + - interfaces/builtin: fix incorrect udev rule in i2c + - overlord: increase test timeout and improve failure message + - snap: remove unused experimental command + - debian: remove unneeded conflict against the "snappy" package + - daemon, strutil: move daemon.quotedNames to strutil.Quoted + - docs: document SNAP_DEBUG_HTTP in HACKING.md + - cmd/snap: have some completers + - snap: support "daemon: notify" in snap.yaml + - snap: fix try command when daemon linie is added + - interfaces: apparmor support for classic confinement + - debian/rules: build with -buildoptions=pie + - tests: include /boot in saved state (including bootenv and any + kernels) + - daemon: ensure `snap try` installs core if it's missing + - tests: save/restore /snap/core/current symlink + - tests: decrease the number of expected featured apps + - tests: add set -e to the prepare ssh script + - cmd/snap: add tests for section completion; fix bugs. + - cmd/snap: document 'snap list --all' + + -- Michael Vogt Thu, 08 Dec 2016 16:16:04 +0100 + +snapd (2.18.1) xenial; urgency=medium + + * New upstream release, LP: #1644625 + - daemon: fix crash when `snap refresh` contains a single update + - fix unhandled error from io.Copy() in download() + - interfaces/builtin: fix incorrect udev rule in i2c + + -- Michael Vogt Mon, 05 Dec 2016 15:04:13 +0100 + +snapd (2.18) xenial; urgency=medium + + * New upstream release, LP: #1644625 + - store: retry on io.EOF + - tests: skip pty tests on ppc64el and powerpc + - client, cmd/snap: introducing "snap info" + - snap: do exit 0 on install/remove if that snap is already + installed or already removed + - snap: add `snap watch ` to attach to a running change + - store: retry downloads using retry loop + - snap: try doesn't require snap-dir when run in snap's directory + - daemon: show what will change in the "refresh-all" changes + - tests: disable autorefresh for the external backend + - snap: add `snap list -a` to show all snaps (even inactive ones) + - many: unify boolean env var handling + - overlord/ifacestate: don't setup jailmode snaps with devmode + confinement + - snapstate: do not garbage collect the snaps used by the bootenv + - debian: drop hard xdelta dependency for now + - snap: make `snap login` ask for email if not given as argument + - osutil: fix build on armhf (arm in go-arch) and powerpc (ppc in + go-arch) + - many: rename DevmodeConfinement to DevModeConfinement + - store: resp.Body.Close() missing in ReadyToBuy + - many: use ConfinementOptions instead of ConfinementType + - snap, daemon, store: fake the channel map in the REST API + - misc: run github.com/gordonklaus/ineffassign as part of the static + checks + - docs: add goreportcard badge and remove coveralls badge + - tests: force gofmt -s in static checks + - many: run gofmt -s -w on all the code + - store: DRY actual retry code + - many: fix various errors uncovered by goreportcard.com + - interfaces/builtin: allow additional shared memory for webkit + - many: some more missing snapState->snapst + - asserts: introduce an optional freeform display-name for model + - interfaces/builtin: rename usb-raw to raw-usb + - progress: init pbar with correct total value + - daemon/api.go: add quotedNames() helper + - interfaces: add ConfinementOptions type + - tests: add a test about the extra bits that prepare-device can + specify for device registration + - tests: check that gpio device nodes are exported after reboot + - tests: parameterize core channel with env var for classic too + - many: rename variable "ss" to "snapsup" or "snapst" or "st" + (depending on context) + - tests: do not use external snaps in spread + - store: retry buy request + - store: retry store.Find + - store: retry assertion store call + - store: retry call for snap details + - many: use snap.ConfinementType rather than bool devmode + - daemon: if a bad snap is posted it is not an internal error but a + bad request + - client: add "Snap.Screenshots" to the client API + - interfaces: update base declaration documentation and policy for + on-classic and snap-type + - store: check payment method before TOS for a better UX + - interfaces: allow sched_setaffinity in process-control + - tests: parameterize core channel with env var + - tests: ensure that the XDG_ env contains at least XDG_RUNTIME_DIR + - interfaces: fcitx also listens on the session bus for Qt apps + - store: retry ListRefresh + - snap: use "Password of :" in the `snap login` + - many: reshuffle how we load/inject tests keys so image doesn't + need assertstate anymore + - store: use range requests if we have a local file already + - dirs,interfaces,overlord,snap,snapenv,test: export per-snap + XDG_RUNTIME_DIR per user + - osutil: make RealUser only look at SUDO_USER when uid==0 + - tests: do not use the ppa:snappy-dev/image in the tests + - store: retry readyToBuy request + - tests: increase `expect` timeouts + - static tests: add spell check + - tests: add debug to all flaky expect tests + - systemd: correct the mount arguments when mounting with squashfuse + - interfaces: add avahi-observe + - store: bring delta downloads back + - interfaces: add alsa + - interfaces/builtin: fix a broken test that snuck into master + - osutil: add chattr funcs + - image: init "snap_mode" on image creation time to avoid ugly + messages + - tests: test-snapd-fuse-consumer needs python-fuse as a build- + package + - interfaces/builtin: add i2c interface + - interfaces: add ofono interface + - tests: do not use hello-world in our tests + - snap: add support for classic confinement + - interfaces: remove LegacyAutoConnect() from the interfaces + - interfaces: miscellaneous policy updates + - tests: run autopkgtests in the autopkgtest.ubuntu.com + infrastructure + - Implement lxd-client interface exposing the lxd snap + - asserts: validate optional account username + - many: remove unnecessary snap name parameter from buying endpoint + - tests: do not hardcode the size of /dev/ram0 + - tests: add test that ensures the right content for /etc/os-release + - spread tests: fix snap mode check + - docs: fix path for source files location in HACKING.md + - interfaces/builtin/mir: allow slot to make recvfrom syscalls + - store: sections/featured snaps store support + + -- Michael Vogt Thu, 24 Nov 2016 19:43:08 +0100 + +snapd (2.17.1) xenial; urgency=medium + + * New upstream release, LP: #1637215: + - release: os-release on core has changed + - tests: /dev/ptmx does not work on powerpc, skip here + - docs: moved to github.com/snapcore/snapd/wiki (#2258) + - debian: golang is not installable on powerpc, use golang-any + + -- Michael Vogt Fri, 04 Nov 2016 18:13:10 +0200 + +snapd (2.17) xenial; urgency=medium + + * New upstream release, LP: #1637215: + - overlord/ifacestate: add unit tests for undo of setup-snap- + security (#2243) + - daemon,overlord,snap,tests: download to .partial in final dir + (#2237) + - overlord/state: marshaling tests for lanes (#2245) + - overlord/state: introduce state lanes (#2241) + - overlord/snapstate: fix revert+refresh (#2224) + - interfaces/sytemd: enable/disable generated service units (#2229) + - many: fix incorrect security files generation on undo + - overlord/snapstate: add dynamic snapdX.Y assumes (#2227) + - interfaces: network-manager: give slot full read-write access to + /run/NetworkManager + - docs: update the name of the command for the cross-build + - overlord/snapstate: fix missing argument to Noticef + - snapstate: ensure gadget/core/kernel can not be disabled (#2218) + - asserts: limit to 1y only if len(models) == 0 (#2219) + - debian: only install share/locale if available (missing on + powerpc) + - overlrod/snapstate: fix revert followed by refresh to old-current + (#2214) + - interfaces/builtin: network-manager and bluez can change hostname + (#2204) + - snap: switch the auto-import dir to /run/snapd/auto-import + - docs: less details about cloud.cfg as requested in trello (#2206) + - spread.yaml: Ensure ubuntu user has passwordless sudo for + autopkgtests (#2201) + - interfaces/builtin: add dcdbas-control interface + - boot: do not set boot to try mode if the revision is unchanged + - interfaces: add shutdown interface (#2162) + - interfaces: add system-power-control interface + - many: use the new systemd backend for configuring GPIOs + - overlord/ifacestate: setup security for slots before plugs + - snap: spool assertion candidates if snapd is not up yet + - store,daemon,overlord: download things to a partials dir + - asserts,daemon: implement system-user-authority header/concept + - interfaces/builtin: home base declaration rule using on-classic + for its policy + - interfaces/builtin: finish decl based checks + - asserts: bump snap-declaration to allow signing with new-style + plugs and slots + - overlord: checks for kernel installation/refresh based on model + assertion and previous kernel + - tests/lib/fakestore: fix logic to distinguish assertion not found + errors + - client: add a few explicit error types (around the request cycle) + - tests/lib/fakestore/cmd/fakestore: make it log, and fix a typo + - overlord/snapstate: two bugs for one + - snappy: disable auto-import of assertions on classic (#2122) + - overlord/snapstate: move trash cleanup to a cleanup handler + (#2173) + - daemon: make create-user --known fail on classic without --force- + managed (#2123) + - asserts,interfaces/policy: implement on-classic plug/slot + constraints + - overlord: check that the first installed gadget matches the model + assertion + - tests: use the snapd-control-consumer snap from the store + - cmd/snap: make snap run not talk to snapd for finding the revision + - snap/squashfs: try to hard link instead of copying. Also, switch + to osutil.CopyFile for cp invocation. + - store: send supported max-format when retrieving assertions + - snapstate, devicestate: do not remove seed + - boot,image,overlord,partition: read/write boot variables in single + operation + - tests: reenable ubuntu-core tests on qemu + - asserts,interfaces/policy: allow OR-ing of subrule constraints in + plug/slot rules + - many: move from flags as ints to flags as structs-of-bools (#2156) + - many: add supports for keeping and finding assertions with + different format iterations + - snap: stop using ubuntu-core-launcher, use snap-confine + - many: introduce an assertion format iteration concept, refuse to + add unsupported assertion + - interfaces: tweak wording and comment + - spread.yaml: dump apparmor denials on spread failure + - tests: unflake ubuntu-core-reboot (#2150) + - cmd/snap: tweak unknown command error message (#2139) + - client,daemon,cmd: add payment-declined error kind (#2107) + - cmd/snap: update remove command help (#2145) + - many: removed frameworks target and fixed service files (#2138) + - asserts,snap: validate attributes to a JSON-compatible type subset + (#2140) + - asserts: remove unused serial-proof type + - tests: skip auto-import tests on systems without test keys (#2142) + - overlord/devicestate: don't spam the debug log on classic (#2141) + - cmd/snap: simplify auto-import mountinfo parsing (#2135) + - tests: run ubuntu-core upgrades on isolated machine (#2137) + - overlord/devicestate: recover seeding from old external approach + (#2134) + - overlord: merge overlord/boot pkg into overlord/devicestate + (#2118) + - daemon: add postCreateUserSuite test suite (#2124) + - tests: abort tests if an update process is scheduled (#2119) + - snapstate: avoid reboots if nothing in the boot setup has changed + (#2117) + - cmd/snap: do not auto-import from loop or non-dev devices (#2121) + - tests: add spread test for `snap auto-import` (#2126) + - tests: add test for auto-mount assertion import (#2127) + - osutil: add missing unit tests for IsMounted (#2133) + - tests: check for failure creating user on managed ubuntu-core + systems (#2096) + - snap: ignore /dev/loop addings from udev (#2111) + - tests: remove snapd.boot-ok reference (#2109) + - tests: enable tests related to the home interface in all-snaps + (#2106) + - snapstate: only import defaults from gadget on install (#2105) + - many: move firstboot code into the snapd daemon (#2033) + - store: send correct JSON type of string for expected payment + amount (#2103) + - cmd/snap: rename is-managed to managed and tune (#2102) + - interfaces,overlord/ifacestate: initial cleaning up of no arg + AutoConnect related bits (#2090) + - client, cmd: prompt for password when buying (#2086) + - snapstate: fix hanging `snap remove` if snap is no longer mounted + - image: support gadget specific cloud.conf file (#2101) + - cmd/snap,ctlcmd: fix behavior of snap(ctl) get (#2093) + - store: local users download from the anonymous url (#2100) + - docs/hooks.md: fix typos (#2099) + - many: check installation of slots and plugs against declarations + - docs: fix missing "=" in the systemd-active docs + - store: do not set store auth for local users (#2092) + - interfaces,overlord/ifacestate: use declaration-based checking for + auto-connect (#2071) + - overlord, daemon, snap: support gadget config defaults (#2082)The + main semantic changes are: + - tests: fix snap-disconnect tests after core rename (#2088) + - client,daemon,overlord,cmd: add /v2/users and create-user on auto- + import (#2074) + - many: abbreviated forms of disconnect (#2066) + - asserts: require lowercase model until insensitive matching is + ready (#2076) + - cmd/snap: add version command, same as --version (#2075) + - all: use "core" by default but allow "ubuntu-core" still (#2070) + - overlord/devicestate, docs/hooks.md: nest prepare-device + configuration options + - daemon: fix login API to return local macaroons (#2078) + - daemon: do not hardcode UID in userLookup (#2080) + - client, cmd: connect fixes (#2026) + - many: preparations for switching most of autoconnect to use the + declarationsfor now: + - overlord/auth: update CheckMacaroon to verify local snapd + macaroons (#2069) + - cmd/snap: trivial auto-import and download tweaks (#2067) + - interfaces: add repo.ResolveConnect that handles name resolution + - interfaces/policy: introduce InstallCandidate and its checks + - interfaces/policy,overlord: check connection requests against the + declarations in ifacestate + - many: setup snapd macaroon for local users (#2051)Next step: do + snapd macaroons verification. + - interfaces/policy: implement snap-id/publisher-id checks + - many: change Connect to take ConnRef instead of strings (#2060) + - snap: auto mount block devices and import assertions (#2047) + - daemon: add `snap create-user --force-managed` support (#2041) + - docs: remove references to removed buying features (#2057) + - interfaces,docs: allow sharing SNAP{,_DATA,_COMMON} via content + iface (#2063) + - interfaces: add Plug/Slot/Connection reference helpers (#2056) + - client,daemon,cmd/snap: improve create-user APIs (#2054) + - many: introduce snap refresh --ignore-validation to + override refresh validation (#2052) + - daemon: add support for `snap create-user --known` (#2040) + - interfaces/policy: start of interface policy checking code based + on declarations (#2050) + - overlord/configstate: support nested configuration (#2039) + - asserts,interfaces/builtin,overlord/assertstate: introduce base- + declaration (#2037) + - interfaces: builtin: Allow writing DHCP lease files to + /run/NetworkManager/dhcp (#2049) + - many: remove all traces of the /v2/buy/methods endpoint (#2045) + - tests: add external spread backend (#1918) + - asserts: parse the slot rules in snap-declarations (#2035) + - interfaces: allow read of /etc/ld.so.preload by default for armhf + on series 16 (#2048) + - store: change purchase to order and store clean up first pass + (#2043) + - daemon, store: switch to new store APIs in snapd (#2036) + - many: add email to UserState (#2038) + - asserts: support parsing the plugs stanza i.e. plug rules in snap- + declarations (#2027) + - store: apply deltas if explicitly enabled (#2031) + - tests: fix create-key/snap-sign test isolation (#2032) + - snap/implicit: don't restrict the camera iface to classic (#2025) + - client, cmd: change buy command to match UX document (#2011) + - coreconfig: nuke it. Also, ignore po/snappy.pot. (#2030) + - store: download deltas if explicitly enabled (#2017) + - many: allow use of the system user assertion with create-user + (#1990) + - asserts,overlord,snap: add prepare-device hook for device + registration (#2005) + - debian: adjust packaging for trusty/deputy systemd (#2003) + - asserts: introduce AttributeConstraints (#2015) + - interface/builtin: access system bus on screen-inhibit-control + - tests: add firewall-control interface test (#2009) + - snapstate: pass errors from ListRefresh in updateInfo (#2018) + - README: add links to IRC, mailing list and social media (#2022) + - docs: add `configure` hook to hooks list (#2024)LP: #1596629 + - cmd/snap,configstate: rename apply-config variables to configure. + (#2023) + - store: retry download on 500 (#2019) + - interfaces/builtin: support time and date settings via + 'org.freedesktop.timedate1 (#1832) + + -- Michael Vogt Wed, 02 Nov 2016 01:17:36 +0200 + +snapd (2.16-1) unstable; urgency=medium + + [ Michael Hudson-Doyle ] + * New upstream release. + * Import gopkg.in/cheggaaa/pb.v1 rather than github.com/cheggaaa/pb. + * Switch to unconditional conflict against `snap` (Closes: #826884) + * Update Vcs-Git and Vcs-Browser to point to alioth. + + [ Steve Langasek ] + * Remove govendor from gbp.conf, and import Ubuntu tarball as our + orig.tar.gz (switching our packaging to non-native). + * Add Uploaders. + * Drop lintian overrides not used in Debian because we dynamically link + against golang-yaml.v2. + * Bump standards-version, no changes required. + * Add/fix various lintian overrides. + + -- Steve Langasek Wed, 02 Nov 2016 12:14:52 +0000 + +snapd (2.16) xenial; urgency=medium + + * New upstream release, LP: #1628425 + - overlord/state: prune old empty changes + - interfaces: ppp: load needed kernel module (#2007) + - interfaces/builtin: add missing rule to allow run-parts to + execute all resolvconf scripts + - many: rename apply-config hook to configure + - tests: use new spread `debug` feature + - many: finish `snap set` API. + - overlord: fix and simplify configstate.Transaction + - assertions: add system-user assertion + - snap: add `snap known --remote` + - tests: replace systemd-run with on-the-fly generation of units. + - overlord/boot: switch to using assertstate.Batch + - snap, daemon, store: pass through screenshots from store + - image: add meta/gadget.yaml infrastructure + - tests: add test benchmark script + - daemon: add the actual ssh keys that got added to the create-user + response + - daemon: add REST API behind `snap get` + - debian: re-add golang-github-gosexy-gettext-dev + - tests: added install_local function + - interfaces/builtin: fix resolvconf permissions for network-manager + interface + - tests: use apt as compatible with trusty + - many: discard preserved namespace after removing snap + - daemon, overlord, store: add ReadyToBuy API to snapd + - many: add support for installing/removing multiple snaps + - progress: use New64 and fix output newline + - interfaces/builtin: allow network-manager to access netplan conf + files + - tests: build once and install test snap from cache + - overlord/state: introduce cleanup support + - snap: move/clarify Info.Broken + - ctlcmd: add snapctl get. + - overlord,store: clean up serial-proof plumbing code + - interfaces/builtin: add network-setup-observe interface + - daemon,overlord/assertstate: support streams of assertions with + snap ack + - snapd: kmod backend + - tests: ensure HOME is also set correctly + - configstate,hookstate: add snapctl set + - tests: disable broken create-key test + - interfaces: adjust bluetooth-control to allow getsockopt (LP: + #1613572) + - tests: add a test for core about device initialization and device + registration and auth + - many: show snap name before the download progress bar + - interfaces/builtin: add rcvfrom for client connected plugs to mir + interface + - asserts: support for maps in assertions + - tests: increase timeout for key generation in create-key test + - many: validate refreshes against validation assertions by gating + snaps + - interfaces/apparmor: allow 'm' in default policy for snap-exec + - many: avoid snap.InfoFromSnapYaml in tests + - interfaces/builtin: allow /dev/net/tun with network-control + - tests: add spread test for snap create-key/snap sign + - tests: add missing quotes in security-device-cgroups/task.yaml + - interfaces: drop ErrUnknownSecurity + - store: add "ready to buy" method + - snap/snapenv, tests: use root's data dirs when running via sudo + - interfaces/builtin: add initial docker interface + - snap: remove extra newline after progress is done + - docs: fix formating of HACKING.md "Testing snapd" + - store : add requestOptions.ExtraHeaders so that individual + requests can customise headers. + - many: use unique plug/slot names in tests + - tests: add tests for the classic dimension + - many: add vendoring of dependencies by default + - tests: use in-tree snap{ctl,-exec} for all tests + - many: support snapctl -h + - tests: adjust regex after changes in stat output + - store,snap: initial support for delta downloads + - interfaces/builtin: add run/udev/data paths to mir interface + - snap: lessen annoyance of implicit interface tests + - tests: ensure http{,s}_proxy is defined inside the fake-store + - interfaces: allow xdg-open in unity7, unity7 cleanups + - daemon,store: move store login user logic to store + - tests: replace realpath with readlink -f for trusty support. + - tests: add https_proxy into environment as well + - interfaces/builtin: allow mmaping pulseaudio buffers + + -- Michael Vogt Wed, 28 Sep 2016 11:09:27 +0200 + +snapd (2.15.2ubuntu1) xenial; urgency=medium + + * New upstream release, LP: #1623579 + - snap/snapenv, tests: use root's data dirs when running via sudo + (cherry pick PR: #1857) + - tests: add https_proxy into environment + (cherry pick PR: #1926) + - interfaces: allow xdg-open in unity7, unity7 cleanups + (cherry pick PR: #1946) + - tests: ensure http{,s}_proxy is defined inside the fake-store + (cherry pick PR: #1949) + + -- Michael Vogt Wed, 21 Sep 2016 17:21:12 +0200 + +snapd (2.15.2) xenial; urgency=medium + + * New upstream release, LP: #1623579 + - asserts: define a bit less terse Ref.String + - interfaces: disable auto-connect in libvirt interface + - asserts: check that validation assertions are signed by the + publisher of the gating snap + + -- Michael Vogt Mon, 19 Sep 2016 10:42:29 +0200 + +snapd (2.15.1) xenial; urgency=medium + + * New upstream release, LP: #1623579 + - image: ensure local snaps are put last in seed.yaml + - asserts: revert change that made the account-key's name mandatory. + - many: refresh all snap decls + - interfaces/apparmor: allow reading /etc/environment + + -- Michael Vogt Mon, 19 Sep 2016 09:19:44 +0200 + +snapd (2.15) xenial; urgency=medium + + * New upstream release, LP: #1623579 + - tests: disable prepare-image-grub test in autopkgtest + - interfaces: allow special casing for auto-connect until we have + assertions + - docs: add a little documentation on hooks. + - hookstate,daemon: don't mock HookRunner, mock command. + - tests: add http_proxy to /etc/environment in the autopkgtest + environment + - backends: first bits of kernel-module security backend + - tests: ensure openssh-server is installed in autopkgtest + - tests: make ubuntu-core tests more robust + - many: mostly work to support ABA upgrades + - cmd/snap: do runtime linting of descriptions + - spread.yaml: don't assume LANG is set + - snap: fix SNAP* environment merging in `snap run` + - CONTRIBUTING.md: remove integration-tests, include spread + - store: don't discard error body from request device session call + - docs: add create-user documentation + - cmd/snap: match UX document for message when buying without login + - firstboot: do not overwrite any existing netplan config + - tests: add debug output to ubuntu-core-update-rollback- + stresstest: + - tests/lib/prepare.sh: test that classic does not setting bootvars + - snap: run all tests with gpg2 + - asserts: basic support for validation assertion and refresh- + control + - interfaces: miscellaneous policy updates for default, browser- + support and camera + - snap: (re)add --force-dangerous compat option + - tests: ensure SUDO_{USER,GID} is unset in the spread tests + - many: clean out left over references to integration tests + - overlord/auth,store: fix raciness in updating device/user in state + through authcontext and other issuesbonus fixes: + - tests: fix spread tests on yakkety + - store: refactor auth/refresh tests + - asserts: use gpg --fixed-list-mode to be compatible with both gpg1 + and gpg2 + - cmd/snap: i18n option descriptions + - asserts: required account key name header + - tests: add yakkety test host + - packaging: make sure debhelper-generated snippet is invoked on + postrm + - snap,store: capture newest digest from the store, make it + DownloadInfo only + - tests: add upower-observe spread test + - Merge github.com:snapcore/snapd + - tests: fixes to actually run the spread tests inside autopkgtest + - cmd/snap: make "snap find" error nicer. + - tests: get the gadget name from snap list + - cmd/snap: tweak help of 'snap download' + - cmd/snap,image: teach snap download to download also assertions + - interfaces/builtin: tweak opengl interface + - interfaces: serial-port use udevUsbDeviceSnippet + - store: ensure the payment methods method handles auth failure + - overlord/snapstate: support revert flags + - many: add snap configuration to REST API + - tests: use ubuntu-image for the ubuntu-core-16 image creation + - cmd/snap: serialise empty keys list as [] rather than null + - cmd/snap,client: add snap set and snap get commands + - asserts: update trusted account-key asserts with names + - overlord/snapstate: misc fixes/tweaks/cleanups + - image: have prepare-image set devmode correctly + - overlord/boot: have firstboot support assertion files with + multiple assertions + - daemon: bail from enable and disable if revision given, and from + multi-op if unsupported optons given + - osutil: call sync after cp if + requested.overlord/snapstate/backend: switch to use osutil instead + of another buggy call to cp + - cmd/snap: generate account-key-request "since" header in UTC + - many: use symlinks instead of wrappers + - tests: remove silly [Service] entry from snapd.socket.d/local.conf + - store: switch device session to use device-session-request + assertion + - snap: ensure that plug and slot names are unique + - cmd/snap: fix test suite (no Exit(0) on tests!) + - interfaces: add interface for hidraw devices + - tests: use the real model assertion when creating the core test + image + - interfaces/builtin: add udisks2 and removable-media interfaces + - interface: network_manager: enable resolvconf + - interfaces/builtin: usb serial-port support via udev + - interfaces/udev: support noneSecurityTag keyed snippets + - snap: switch to the new agreed regexp for snap names + - tests: adjust test setup after ubuntu user removal + - many: start services only after the snap is fully ready (link-snap + was run) + - asserts: don't have Add/Check panic in the face of unsupported no- + authority assertions + - asserts: initial support to generate/sign snap-build assertions + - asserts: support checking account-key-request assertions + - overlord: introduce AuthContext.DeviceSessionRequest with support + in devicestate + - overlord/state: fix for reloaded task/change crashing on Set if + checkpointed w. no custom data yet + - snapd.refresh.service: require snap.socket and /snap/*/current. + - many: spell --force-dangerous as just --dangerous, devmode should + imply it + - overlord/devicestate: try to fetch/refresh the signing key of + serial (also in case is not there yet) + - image,overlord/boot,snap: metadata from asserts for image snaps + - many: automatically restart all-snap devices after os/kernel + updates + - interfaces: modem-manager: ignore camera + - firstboot: only configure en* and eth* interfaces by default + - interfaces: fix interface handling on no-app snaps + - snap: set user variables even if HOME is unset (like with systemd + services) + + -- Michael Vogt Fri, 16 Sep 2016 07:46:22 +0200 + +snapd (2.14.2~16.04) xenial; urgency=medium + + * New upstream release: LP: #1618095 + - tests: use the spread tests with the adhoc interface inside + autopkgtest + - interfaces: add fwupd interface + - asserts,cmd/snap: add "name" header to account-key(-request) + - client,cmd/snap: display os-release data only on classic + - asserts/tool,cmd/snap: introduce hidden "snap sign" + - many: when installing snap file derive metadata from assertions + unless --force-dangerous + - osutil: tweak the createUserTests a bit and extract common code + - debian: umount --lazy before rm on snapd.postrm + - interfaces: updates to default policy, browser-support, and x11 + - store: set initial device session + - interfaces: add upower-observe interface (LP: #1595813) + - tests: use beta u-d-f in test by default + - interfaces/builtin: allow writing on /dev/vhci in bluetooth- + control + - interfaces/builtin: allow /dev/vhci on bluetooth-control + - tests: port integration tests to spread + - snapstate: use umount --lazy when removing the mount units + - spread: enable halt-timeout, tweak image selection + - tests: fix firstboot-assertions to actually be runnable on classic + again + - asserts: introduce device-session-request + - interfaces: add screen-inhibit-control interface (LP: #1604880) + - firstboot: change location of netplan config + - overlord/devicestate: some cleanups and solving a couple todos + - daemon,overlord: add subcommand handling to snapctl + + -- Michael Vogt Thu, 01 Sep 2016 18:52:05 +0200 + +snapd (2.14.1) xenial; urgency=medium + + * New upstream release: LP: #1618095 + - snap-exec: add support for commands with internal args in snap- + exec + - store: refresh expired device sessions + - debian: re-add ubuntu-core-snapd-units as a transitional package + - image: snap assertions into image + - overlord/assertstate,asserts/snapasserts: give snap assertions + helpers a package, introduce ReconstructSideInfo + - docs/interfaces: Add empty line after lxd-support title + - README: cover the new /run/snapd-snap.socket + - daemon: make socket split backward-compatible. + + -- Michael Vogt Tue, 30 Aug 2016 16:43:29 +0200 + +snapd (2.14) xenial; urgency=medium + + * New upstream release: LP: #1618095 + - cmd: enable SNAP_REEXEC only if it is set to SNAP_REEXEC=1 + - osutil: fix create-user on classic + - firstboot: disable firstboot on classic for now + - cmd/snap: add export-key --account= option + - many: split public snapd REST API into separate socket. + - many: drop ubuntu-core-snapd-units package, use release.OnClassic + instead + - tests: add content-shareing binary test that excersises snap- + confine + - snap: use "up to date" instead of "up-to-date" + - asserts: add an account-key-request assertion + - asserts: fix GPG key generation parameters + - tests, integration-tests: implement the cups-control manual test + as a spread test + - many: clarify/tie down model assertion + - cmd/snap: add "snap download" command + - integration-tests: remove them in favour of the spread tests + - tests: test all snap ubuntu core upgrade + - many: support install and remove by revision + - overlord/state: prevent change ready => unready + - tests: fixes to make the ubuntu-core-16 image usable with + -keep/-reuse + - asserts: authority-id and brand-id of serial must match + - firstboot: generate netplan config rather than ifupdown + - store: request device session macaroon from store + - tests: add workaround for u-d-f to unblock all-snap image tests + - tests: the stable ubuntu-core snap has snap run support now + - many: use make StripGlobalRootDir public + - asserts: add some stricter checks around format + - many: have AuthContext expose device store-id, serial and serial- + proof signing to the store + - tests: fix "tests/main/ack" to not break if asserts are alreay + there + - tests/main/ack: fix test/style + - snap: add key management commands + - firstboot: add firstboot assertions importing + + -- Michael Vogt Mon, 29 Aug 2016 17:07:20 +0200 + +snapd (2.13) xenial; urgency=medium + + * New upstream release: LP: #1616157 + - many: respect dirs.SnapSnapsDir in tests + - tests: update listing test for latest stable image + - many: hook in start of code to fetch/check assertions when + installing snap from store + - boot: add missing udevadm mock to fix FTBFS + - interfaces: add lxd-support interface + - dirs,snap: handle empty root directory in SetRootDir + - dirs,snap: define methods for SNAP_USER_DATA and SNAP_USER_COMMON + - tests: spread all-snap test cleanup + - tests: add all-snap spread image tests + - store,tests: have just one envvar SNAPPY_USE_STAGING_STORE to + control talking to staging + - overlord/hookstate: use snap run posix parameters. + - interfaces/builtin: allow bind in the network interface + - asserts,overlord/devicestate: simplify private key/key pairs APIs, + they take just key ids + - dependencies: update godeps + - boot: add support for "devmode: {true,false}" in seed.yaml + - many: teach prepare-image to copy the model assertion (and + prereqs) into the seed area of the image + - tests: start teaching the fakestore about assertions + - asserts/sysdb: embed the new format official root/trusted + assertions + - overlord/devicestate: first pass at device registration logic + - tests: add process-control interface spread test + - tests: disable unity test + - tests: adapt to new spread version + - asserts: add serial-proof device assertion + - client, cmd/snap: use the new multi-refresh endpoint + - many: preparations for image code to fetch model prereqs + - debian: add extra checks when debian/snapd.postrm purge is run + - overlord/snapstate, daemon: support for multi-snap refresh + - tests: do not leave "squashfs-root" around + - snap-exec: Fix broken `snap run --shell` and add test + - overlord/snapstate: check changes to SnapState for conflicts also. + - docs/interfaces: change snappy command to snap + - tests: test `snap run --hook` using in-tree snap-exec. + - partition: ensure that snap_{kernel,core} is not overridden with an + empty value + - asserts,overlord/assertstate: introduce an assertstate task + handler to fetch snap assertions + - spread: disable re-exec to always test development tree. + - interfaces: implement a fuse interface + - interfaces/hardware-observe.go: re-add /run/udev/data + - overlord/assertstate,daemon: reorg how the assert manager exposes + the assertion db and adding to it + - release: Remove "UBUNTU_CODENAME" from the test data + - many: implement snapctl command. + - interfaces: mpris updates (fix unconfined introspection, add name + attribute) + - asserts: export DecodePublicKey + - asserts: introduce support for assertions with no authority, + implement serial-request + - interfaces: bluez: add a few more tests to verify interface + connection works + - interfaces: bluez: add missing mount security snippet case + - interfaces: add kernel-module interface for module insertion. + - integration-tests: look for ubuntu-device-flash on PATH before + calling sudo + - client, cmd, daemon, osutil: support --yaml and --sudoer flags for + create-user + - spread: use snap-confine from ppa:snappy-dev/image for the tests + - many: move to purely hash based key lookup and to new + key/signature format (v1) + - spread: Use /home/gopath in spread.yaml + - tests: base security spread tests + + -- Michael Vogt Wed, 24 Aug 2016 14:48:28 +0200 + +snapd (2.12) xenial; urgency=medium + + * New upstream release: LP: #1612362 + - many: do not require root for `snap prepare-image` + - tests: prevent restore error on test failure + - osutil: change escaping for create-user's sudoers + - docs: private flag doesn't exist on /v2/find (it's select) + - snap: do not sort the result of `snap find` + - interfaces/builtin: add gpio interface + - partition: fix cleaning of the boot variables on the second good + boot + - tests: add udev rules spread test + - docs: fix references to refresh action + - interfaces/udev,osutil: avoid doubled rules and put all in a per + snap file + - store: minor store improvements from previous reviews + - many: support interactive payments in snapd, filter from command + line + - docs/interfaces.md: improve interfaces documentation + - overlord,store: set store device authorization header + - store: add device nonce API support + - many: various fixes around the `create-user` command + - client, osutil: chown the auth file + - interfaces/builtin: add transitional browser-support interface + - snap: don't load unsupported implicit hooks. + - cmd/snap,cmd/snap-exec: support hooks again. + - interfaces/builtin: improve pulseaudio interface + - asserts: make account-key's `until` optional to represent a never- + expiring key + - store: refactor newRequest/doRequest to take requestOptions + - tests: allow-downgrades on upgrade test to prevent version errors + - daemon: stop using group membership as succedaneous of running + things with sudo + - interfaces: add bluetooth-control interfaces + - many: remove integration-test coverage metrics + - daemon,docs: drop license docs and error kind + - tests: add network-control interface spread test + - tests: add hardware-observe spread test + - interfaces: add system-trace interface LP: #1600085 + - boot: use `cp -aLv` instead of `cp -a` (no symlinks on vfat) + - store: soft-refresh discharge macaroon from store when required + - partition: clear snap_try_{kernel,core} on success + - tests: add snapd-control interface spread test + - tests: add locale-control write spread test + - store: fix buy method after some refactoring broke it + - interfaces/builtin: read perms for network devices in network- + observe + - interfaces: also allow rfkill in network_control + - snapstate: remove artifacts from a snap try dir that vanished + - client, cmd/snap: better errors for empty snap list result + - wrappers: set BAMF_DESKTOP_FILE_HINT for unity + - many: cleanup/update rest.md; improve auth errors + - interfaces: miscelleneous policy updates for default, log-observe, + mount-observe, opengl, pulseaudio, system-observe and unity7 + - interfaces: add process-control interface (LP: #1598225) + - osutil: support both "nobody" and "nogroup" for grpnam tests + - cmd: support defaulting to the user's preferred payment method + - overlord: actually run hooks. + - overlord/state,overlord/ifacestate: define basic infrastructure + for and then setting up serialising of interface mgr tasks + - asserts: add Assertion.Prerequisites and SigningKey, Ref and + FindTrusted + - overlord/snapstate: ensure calls to store are done without the + state lock held + - asserts,client: switch snap-build and snap-revision to be indexed + by snap-sha3-384 + - many: make seed.yaml on firstboot mandatory and include sideInfo + - asserts,many: start supporting structured headers using the new + parseHeaders + - many: update code for the new snap_mode + - tests: added spread find private test + - store: deal with 404 froms the SSO store properly + - snap: remove meta/kernel.yaml again + - daemon: always mock release info in tests + - snapstate: drop revisions after "current" on refresh + - asserts: introduce new parseHeadersThis introduces the new + parseHeaders returning map[string]interface{} and capable of + accepting: + - asserts: remove/disable comma separated lists and their uses + + -- Michael Vogt Thu, 11 Aug 2016 19:30:36 +0200 + +snapd (2.11) xenial; urgency=medium + + * New upstream release: LP: #1605303 + - increase version number to reflect the nature of the update + better + - store, daemon, client, cmd/snap, docs/rest.md: adieu search + grammar + - debian: move snapd.refresh.timer into timers.target + - snapstate: add daemon-reload to fix autopkgtest on yakkety + - Interfaces: hardware-observe + - snap: rework the output after a snap operation + - daemon, cmd/snap: refresh --devmode + - store, daemon, client, cmd/snap: implement `snap find --private` + - tests: add network-observe interface spread test + - interfaces/builtin: allow getsockopt for connected x11 plugs + - osutil: check for nogrup instead of adm + - store: small cleanups (more needed) + - snap/squashfs: fix test not to hardcode snap size + - client,cmd/snap: cleanup cmd/snap test suite, add extra args + testThis cleans up the cmd/snap test suite: + - wrappers: map "never" restart condition to "no." + - wrappers: run update-desktop-database after add/remove of desktop + files + - release: work around elementary mistake + - many: remove all traces of channel from the buying codepath + - store: kill setUbuntuStoreHeaders + - docs: add payment methods documentation + - many: present user with a choice of payment backends + - asserts: add cross checks for snap asserts + - cmd/snap,cmd/snap-exec: support running hooks via snap-exec. + - tests: improve snap run symlink tests + - tests: add content sharing interface spread test + - store & many: a mechanical branch shortening store names + - snappy: remove old snappy pkg + - overlord/snapstate: kill flagscompat + - overlord/snapstate, daemon, client, cmd/snap: devmode override + (aka confined) + - tests: extend refresh test to talk to the staging and production + stores + - asserts,daemon: cross checks for account and account-key + assertions + - client: existing JSON fixtures uses tabs for indentation + - snap-exec: add proper integration test for snap-exec + - spread.yaml, tests: replace hello-world with test-snapd-tools + - tests: add locale-control interface spread test + - tests: add mount-observe interface spread test + - tests: add system-observe interface spread test + - many: add AuthContext to mediate user updates to the state + - store/auth: add helper for the macaroon refresh endpoint + - cmd: add buy command + - overlord: switch snapstate.Update to use ListRefresh (aka + /snaps/metadata) + - snap-exec: fix silly off-by-one error + - tests: stop using hello-world.echo in the tests + - tests: add env command to test-snapd-tools + - classic: remove (most of) "classic" mode, this is implemented as a + snap now + - many: remove snapstate.Candidate and other cleanups + - many: removed authenticator, store gets a user instead + - asserts: fix minor doc comment typo + - snap: ensure unknown arguments to `snap run` are ignored + - overlord/auth: add Device/SetDevice to persist device identity in + state + - overlord: make SyncBoot work again + - tests: add -y flag to apt autoremove command in unity task restore + - many: migrate SnapSetup and SideInfo to use RealName + - daemon: drop auther() + - client: improve error from client.do() on json decode failures + - tests: readd the fake store tests + - many: allow removal of broken snaps, add spread test + - overlord: implement &Retry{After: duration} support for handlers + - interface: add new interfaces.all.SecurityBackends + - integration-tests: remove login tests + - cmd,interfaces,snap: implement hook whitelist. + - daemon,overlord/auth,store: update macaroon authentication to use + the new endpoints + - daemon, overlord: add buy endpoint to REST API + - tests: use systemd-run for starting and stopping the unity app + - tests, integration-tests: port systemd service check test to + spread + - store: switch search to new snap-specific endpoint + - store, many: start using the new details endpoint + - tests, integration-tests: port unity test to spread + - tests: add spread test for tried snaps removal + - tests, integration-tests: port auth errors test to spread + - snapstate: rename OfficialName to RealName in the new tests + - many: rename SideInfo.OfficialName to SideInfo.RealName + - snapstate: use snapstate.Type in backend.RemoveSnapFiles + - many: add `snap enable/disable` commands + - tests, integration-tests: port refresh all test to spread + - snap: add `snap run --shell` + - tests: set yaml indentation to 4 spaces + - snapstate: cleanup downloaded temp snap files + - overlord: make patch1_test more robust + - debian: add snapd.postrm that purges + - integration-tests: drop already covered refresh app test + - many: add concept of "broken" snaps + - tests, integration-tests: port remove errors tests to spread + - tests, integration-tests: port revert test to spread + - debian: fix snapbuild path + - overlord: fix access to the state without lock in firstboot.go and + add test + - snapstate: add very simple garbage collection on upgrade + - asserts: introduce assertstest with helpers to test code involving + assertions + - tests, integration tests: port undone failed install test to + spread + - snap,store: switch to the new snaps/metadata endpoint, introduce + and start capturing DeveloperID + - tests, integration-tests: port the op remove retry test to spread + - po: remove snappy.pot from git, it will be generated at build time + - many: add some missing tests, clarify some things and nitpicks as + follow up to `snap revert` + - snapstate: when doing snapsate.Update|Install, talk to the store + early + - tests, integration-tests: port the op remove test to spread + - interfaces: allow /usr/bin/locale in default policy + - many: add `snap revert` + - overlord/auth,store: add macaroon serialization/deserialization + helpers + - many: embed main store trusted assertions in snapd, way to have + test ones, spread tests for ack and known + - overlord/snapstate,daemon: clarify active vs current, add + SnapState.HasCurrent,CurrentInfo + - tests: do not search for a specific snap (we hit 100 items) and + pagination kicks in + - tests: use printf instead of echo where we need portability + - tests: rename and generalize basic-binaries to test-snapd-tools + + -- Michael Vogt Tue, 26 Jul 2016 15:49:04 +0200 + +snapd (2.0.10) xenial; urgency=medium + + * New upstream release: LP: #1597329 + - interfaces: also allow @{PROC}/@{pid}/mountinfo and + @{PROC}/@{pid}/mountstats + - interfaces: allow read access to /etc/machine-id and + @{PROC}/@{pid}/smaps + - interfaces: miscelleneous policy updates for default, log-observe + and system-observe + - snapstate: add logging after a successful doLinkSnap + - tests, integration-tests: port try tests to spread + - store, cmd/snapd: send a basic user-agent to the store + - store: add buy method + - client: retry on failed GETs + - tests: actual refresh test + - docs: REST API update + - interfaces: add mount support for hooks. + - interfaces: add udev support for hooks. + - interfaces: add dbus support for hooks. + - tests, integration-tests: port refresh test to spread + - tests, integration-tests: port change errors test to spread + - overlord/ifacestate: don't retry snap security setup + - integration-tests: remove unused file + - tests: manage the socket unit when reseting state + - overlord: improve organization of state patches + - tests: wait for snapd listening after reset + - interfaces/builtin: allow other sr*/scd* optical devices + - systemd: add support for squashfuse + - snap: make snaps vanishing less fatal for the system + - snap-exec: os.Exec() needs argv0 in the args[] slice too + - many: add new `create-user` command + - interfaces: auto-connect content interfaces with the same content + and developer + - snapstate: add Current revision to SnapState + - readme: tweak readme blurb + - integration-tests: wait for listening port instead of active + service reported by systemd + - many: rename Current -> {CurrentSideInfo,CurrentInfo} + - spread: fix home interface test after suite move + - many: name unversioned data. + - interfaces: add "content" interface + - overlord/snapstate: defaultBackend can go away now + - debian: comment to remember why the timer is setup like it is + - tests,spread.yaml: introduce an upgrade test, support/split into + two suites for this + - overlord,overlord/snapstate: ensure we keep snap type in snapstate + of each snap + - many: rework the firstboot support + - integration-tests: fix test failure + - spread: keep core on suite restore + - tests: temporary fix for state reset + - overlord: add infrastructure for simple state format/content + migrations + - interfaces: add seccomp support for hooks. + - interfaces: allow gvfs shares in home and temporarily allow + socketcall by default (LP: #1592901, LP: #1594675) + - tests, integration-tests: port network-bind interface tests to + spread + - snap,snap/snaptest: use PopulateDir/MakeTestSnapWithFiles directly + and remove MockSnapWithHooks + - interfaces: add mpris interface + - tests: enable `snap run` on i386 + - tests, integration-tests: port network interface test to spread + - tests, integration-tests: port interfaces cli to spread + - tests, integration-tests: port leftover install tests to spread + - interfaces: add apparmor support for hooks. + - tests, integration-tests: port log-observe interface tests to + spread + - asserts: improve Decode doc comment about assertion format + - tests: moved snaps to lib + - many: add the camera interface + - many: add optical-drive interface + - interfaces: auto-connect home if running on classic + - spread: bump gccgo test timeout + - interfaces: use security tags to index security snippets. + - daemon, overlord/snapstate, store: send confinement header to the + store for install + - spread: run tests on 16.04 i386 concurrently + - tests,integration-tests: port install error tests to spread + - interfaces: add a serial-port interface + - tests, integration-tests, debian: port sideload install tests to + spread + - interfaces: add new bind security backend and refactor + backendtests + - snap: load and validate implicit hooks. + - tests: add a build/run test for gccgo in spread + - cmd/snap/cmd_login: Adjust message after adding support for wheel + group + - tests, integration-tests: ported install from store tests to + spread + - snap: make `snap change ` show task progress + - tests, integration-tests: port search tests to spread + - overlord/state,daemon: make abort proceed immediately, fix doc + comment, improve tests + - daemon: extend privileged access to users in "wheel" group + - snap: tweak `snap refresh` and `snap refresh --list` outputTiny + branch that does three things: + - interfaces: refactor auto-connection candidate check + - snap: add support for snap {install,refresh} + --{edge,beta,candidate,stable} + - release: don't force KDE Neon into devmode. + + -- Michael Vogt Wed, 29 Jun 2016 21:02:39 +0200 + +snapd (2.0.9) xenial; urgency=medium + + * New upstream release: LP: #1593201 + - snap: add the magic redirect part of `snap run` + - tests, integration-tests: port server related tests to spread + - overlord/snapstate: log restarting in the task + - daemon: test restart wiring, fix setup/teardown + - cmd: don't show the price if a snap has already been purchased + - tests, integration-tests: port listing tests to spread + - integration-tests: do not try to kill ubuntu-clock-app.clock (no + longer a process) + - several: tie up overlord's restart handler into daemon; adjust + snap to cope + - tests, integration-tests: port abort tests to spread + - integration-tests: fix flaky TestRemoveBusyRetries + - testutils: refactor/mock exec + - snap,cmd: add hook support to snap run. + - overlord/snapstate: remove Download from backend + - store: use a custom logging transport + - overlord/hookstate: implement basic HookManager. + - spread: move the suite restore to restore-each + - asserts: turn model os into model core field, making it also more + like the kernel and gadget fields + - asserts: / is not allowed in primary key headers, follow the store + in this + - release: enable full confinement on Elementary 0.4 + - integration-tests: fix another i386 autopkgtest failure. + - cmd/snap: create SNAP_USER_DATA and common dirs in `snap run` + - many: have the installation of the core snap request a restart (on + classic) + - asserts: allow to load also account assertions into the trusted + set + - many: install snaps in devmode on distributions without complete + apparmor and seccomp support + - spread: run on travis + - snapenv: do not hardcode amd64 in tests + - spread: initial harness and first test + - interfaces: miscelleneous policy updates for chromium, x86, + opengl, etc + - integration-tests: remove daemon to use the log-observe interface + - client: remove client.Revision and import snap.Revision instead + - integration-tests: wait for network-bind service in try test + - many: move over from snappy to snapstate/backend SetupSnap and + related code + - integration-tests: add interfaces cli tests + - snapenv: cleanup snapenv.{Basic,User} + - cmd/snap: also print slots that connect to the wanted snap (LP: + #1590704) + - asserts: error style, use "cannot" instead of "failed to" + following the main decided style + - integration-tests: wait until the network-bind service is up + before testing + - many: add new `snap run` command + - snappy: unexport snappy.Install and snappy.Overlord.{Un,}Install + - many: add some shared testing helpers to snap/snaptest and to + boot/boottest + - rest-api: support to send apps per snap (LP: #1564076) + + -- Michael Vogt Thu, 16 Jun 2016 13:56:12 +0200 + +snapd (2.0.8.1) UNRELEASED; urgency=medium + + * New upstream release + - Cherry pick four commits that show snaps as installed in devmode on + distributions without full confinement dependencies available: + + 25634d3364a46b5e9147e4466932c59b1b572d35 + 53f2e8d5f1b2d7ce13f5b50be4c09fa1de8cf1e0 + 38771f4cc324ad9dd4aa48b03108d13a2c361aad + c46e069351c61e45c338c98ab12689a319790bd5 + + -- Zygmunt Krynicki Tue, 14 Jun 2016 15:55:30 +0200 + +snapd (2.0.8+1) unstable; urgency=medium + + * New upstream release. + * Update lintian-overrides for new paths. + * debian/copyright: fix a typo (thanks, lintian!) + + -- Steve Langasek Fri, 10 Jun 2016 23:17:22 +0000 + +snapd (2.0.8) xenial; urgency=medium + + * New upstream release: LP: #1589534 + - debian: make `snap refresh` times more random (LP: #1537793) + - cmd: ExecInCoreSnap looks in "core" snap first, and only in + "ubuntu-core" snap if rev>125. + - cmd/snap: have 'snap list' display helper message on stderr + (LP: #1587445) + - snap: make app names more restrictive. + + -- Michael Vogt Wed, 08 Jun 2016 07:56:58 +0200 + +snapd (2.0.7) xenial; urgency=medium + + * New upstream release: LP: #1589534 + - debian: do not ship /etc/ld.so.conf.d/snappy.conf (LP: #1589006) + - debian: fix snapd.refresh.service install and usage (LP: #1588977) + - ovlerlord/state: actually support task setting themself as + done/undone + - snap: do not use "." import in revision_test.go, as this breaks + gccgo-6 (fix build failure on powerpc) + - interfaces: add fcitx and mozc input methods to unity7 + - interfaces: add global gsettings interfaces + - interfaces: autoconnect home and doc updates (LP: #1588886) + - integration-tests: remove + abortSuite.TestAbortWithValidIdInDoingStatus + - many: adding backward compatible code to upgrade SnapSetup.Flags + - overlord/snapstate: handle sideloading over an old sideloaded snap + without panicing + - interfaces: add socketcall() to the network/network-bind + interfaces (LP: #1588100) + - overlord/snapstate,snappy: move over CanRemoveThis moves over the + CanRemove check to snapstate itself.overlord/snapstate + - snappy: move over CanRemove + - overlord/snapstate,snappy: move over CopyData and Remove*Data code + + -- Michael Vogt Mon, 06 Jun 2016 16:35:50 +0200 + +snapd (2.0.6) xenial; urgency=medium + + * New upstream release: LP: #1588052: + - many: repository moved to snapcore/snapd + - debian: add transitional pkg for the github location change + - snap: ensure `snap try` work with relative paths + - debian: drop run/build dependency on lsb-release + - asserts/tool: gpg key pair manager + - many: add new snap-exec + - many: implement `snap refresh --list` and `snap refresh` + - snap: add parsing support for hooks. + - many: add the cups interface + - interfaces: misc policy fixes (LP: #1583794) + - many: add `snap try` + - interfaces: allow using sysctl and scmp_sys_resolver for parsing + kernel logs + - debian: make snapd get its environ from /etc/environment + - daemon,client,snap: revisions are now strings + - interfaces: allow access to new ibus abstract socket path + LP: #1580463 + - integration-tests: add remove tests + - asserts: stronger crypto choices and follow better latest designs + - snappy,daemon: hollow out more of snappy (either removing or not + exporting stuff on its way out), snappy/gadget.go is gone + - asserts: rename device-serial to serial + - asserts: rename identity to account (and username access) + - integration-tests: add changes tests + - backend: add tests for environment wrapper generation + - interfaces/builtin: add location-control interface + - overlord/snapstate: move over check snap logic from snappy + - release: use os-release instead of lsb-release for cross-distro + use + - asserts: allow empty snap-name for snap-declaration + - interfaces/builtin,docs,snap: add the pulseaudio interface + - many: add support for an environment map inside snap.yaml + - overlord/snapstate: increase robustness of doLinkSnap/undoLinkSnap + with sanity unit tests + - snap: parse epoch property + - snappy: do nothing in SetNextBoot when running on classic + - snap: validate snap type + - integration-tests: extend find command tests + - asserts: extend tests to cover mandatory and empty headers + - tests: stop the update-pot check in run-checks + - snap: parse confinement property. + - store: change applyUbuntuStoreHeaders to not take accept, and to + take a channel + - many: struct-based revisions, new representation + - interfaces: remove 'audit deny' rules from network_control.go + - interfaces: add com.canonical.UrlLauncher.XdgOpen to unity7 + interface + - interfaces: firewall-control can access xtables lock file + - interfaces: allow unity7 AppMenu + - interfaces: allow unity7 launcher API + - interfaces/builtin: add location-observe interface + - snap: fixed snap empty list text LP: #1587445 + + -- Michael Vogt Thu, 02 Jun 2016 08:23:50 +0200 + +snapd (2.0.5+1) unstable; urgency=medium + + * Initial Debian upload. Closes: #824943. + * release/release{,_test}.go: use /etc/os-release, which is guaranteed to + be part of base-files on both Ubuntu and Debian, instead of + /etc/lsb-release which doesn't exist at all on Debian. + * drop transitional packages, not needed in Debian. + * Add lintian overrides for false-positive detection of embedded libyaml. + * Update Vcs-* fields to point at maintainer's branch. + * Add a further lintian override for the /snap directory so that the + package is not automatically rejected by the NEW queue; this directory + location is certainly subject to discussion for Debian, but let's have + the discussion rather than blocking the package at the archive level. + + -- Steve Langasek Mon, 23 May 2016 00:36:06 +0000 + +snapd (2.0.5) xenial; urgency=medium + + * New upstream release: LP: #1583085 + - interfaces: add dbusmenu, freedesktop and kde notifications to + unity7 (LP: #1573188) + - daemon: make localSnapInfo return SnapState + - cmd: make snap list with no snaps not special + - debian: workaround for XDG_DATA_DIRS issues + - cmd,po: fix conflicts, apply review from #1154 + - snap,store: load and store the private flag sent by the store in + SideInfo + - interfaces/apparmor/template.go: adjust /dev/shm to be more usable + - store: use purchase decorator in Snap and FindSnaps + - interfaces: first version of the networkmanager interface + - snap, snappy: implement the new (minmimal) kernel spec + - cmd/snap, debian: move manpage generation to depend on an environ + key; also, fix completion + + -- Michael Vogt Thu, 19 May 2016 15:29:16 +0200 + +snapd (2.0.4) xenial; urgency=medium + + * New upstream release: + - interfaces: cleanup explicit denies + - integration-tests: remove the ancient integration daemon tests + - integration-tests: add network-bind interface test + - integration-tests: add actual checks for undoing install + - integration-tests: add store login test + - snap: add certain implicit slots only on classic + - integration-tests: add coverage flags to snapd.service ExecStart + setting when building from branch + - integration-tests: remove the tests for features removed in 16.04. + - daemon, overlord/snapstate: "(de)activate" is no longer a thing + - docs: update meta.md and security.md for current snappy + - debian: always start snapd + - integration-tests: add test for undoing failed install + - overlord: handle ensureNext being in the past + - overlord/snapstate,overlord/snapstate/backend,snappy: start + backend porting LinkSnap and UnlinkSnap + - debian/tests: add reboot capability to autopkgtest and execute + snapPersistsSuite + - daemon,snappy,progress: drop license agreement broken logic + - daemon,client,cmd/snap: nice access denied message + (LP: #1574829) + - daemon: add user parameter to all commands + - snap, store: rework purchase methods into decorators + - many: simplify release package and add OnClassic + - interfaces: miscellaneous policy updates + - snappy,wrappers: move desktop files handling to wrappers + - snappy: remove some obviously dead code + - interfaces/builtin: quote apparmor label + - many: remove the gadget yaml support from snappy + - snappy,systemd,wrappers: move service units generation to wrappers + - store: add method to determine if a snap must be bought + - store: add methods to read purchases from the store + - wrappers,snappy: move binary wrapper generation to new package + wrappers + - snap: add `snap help` command + - integration-tests: remove framework-test data and avoid using + config-snap for now + - add integration test to verify fix for LP: #1571721 + + -- Michael Vogt Fri, 13 May 2016 17:19:37 -0700 + +snapd (2.0.3) xenial; urgency=medium + + * New upstream micro release: + - integration-tests, debian/tests: add unity snap autopkg test + - snappy: introduce first feature flag for assumes: common-data-dir + - timeout,snap: add YAML unmarshal function for timeout.Timeout + - many: go into state.Retry state when unmounting a snap fails. + (LP: #1571721, #1575399) + - daemon,client,cmd/snap: improve output after snap + install/refresh/remove (LP: #1574830) + - integration-tests, debian/tests: add test for home interface + - interfaces,overlord: support unversioned data + - interfaces/builtin: improve the bluez interface + - cmd: don't include the unit tests when building with go test -c + for integration tests + - integration-tests: teach some new trick to the fake store, + reenable the app refresh test + - many: move with some simplifications test snap building to + snap/snaptest + - asserts: define type for revision related errors + - snap/snaptest,daemon,overlord/ifacestate,overlord/snapstate: unify + mocking snaps behind MockSnap + - snappy: fix openSnapFile's handling of sideInfo + - daemon: improve snap sideload form handling + - snap: add short and long description to the man-page + (LP: #1570280) + - snappy: remove unused SetProperty + - snappy: use more accurate test data + - integration-tests: add a integration test about remove removing + all revisions + - overlord/snapstate: make "snap remove" remove all revisions of a + snap (LP: #1571710) + - integration-tests: re-enable a bunch of integration tests + - snappy: remove unused dbus code + - overlord/ifacestate: fix setup-profiles to use new snap revision + for setup (LP: #1572463) + - integration-tests: add regression test for auth bug LP:#1571491 + - client, snap: remove obsolete TypeCore which was used in the old + SystemImage days + - integration-tests: add apparmor test + - cmd: don't perform type assertion when we know error to be nil + - client: list correct snap types + - intefaces/builtin: allow getsockname on connected x11 plugs + (LP: #1574526) + - daemon,overlord/snapstate: read name out of sideloaded snap early, + improved change summary + - overlord: keep tasks unlinked from a change hidden, prune them + - integration-tests: snap list on fresh boot is good again + - integration-tests: add partial term to the find test + - integration-tests: changed default release to 16 + - integration-tests: add regression test for snaps not present after + reboot + - integration-tests: network interface + - integration-tests: add proxy related environment variables to + snapd env file + - README.md: snappy => snap + - etc: trivial typo fix (LP:#1569892) + - debian: remove unneeded /var/lib/snapd/apparmor/additional + directory (LP: #1569577) + - builtin/unity7.go: allow using gmenu. LP: #1576287 + + -- Michael Vogt Tue, 03 May 2016 07:51:57 +0200 + +snapd (2.0.2) xenial; urgency=medium + + * New upstream release: + - systemd: add multi-user.target (LP: #1572125) + - release: our series is 16 + - integration-tests: fix snapd binary path for mounting the daemon + built from branch + - overlord,snap: add firstboot state sync + + -- Michael Vogt Tue, 19 Apr 2016 16:02:44 +0200 + +snapd (2.0.1) xenial; urgency=medium + + * client,daemon,overlord: fix authentication: + - fix incorrect authenication check (LP: #1571491) + + -- Michael Vogt Mon, 18 Apr 2016 07:24:33 +0200 + +snapd (2.0) xenial; urgency=medium + + * New upstream release: + - debian: put snapd in /usr/lib/snapd/ + - cmd/snap: minor polishing + - cmd,client,daemon: add snap abort command + - overlord: don't hold locks when callling backends + - release,store,daemon: no more default-channel, release=>series + - many: drop support for deprecated environment variables + (SNAP_APP_*) + - many: support individual ids in changes cmd + - overlord/state: use numeric change and task ids + - overlord/auth,daemon,client,cmd/snap: logout + - daemon: don't install ubuntu-core twice + - daemon,client,overlord/state,cmd: add changes command + - interfaces/dbus: drop superfluous backslash from template + - daemon, overlord/snapstate: updates are users too! + - cmd/snap,daemon,overlord/ifacestate: add support for developer + mode + - daemon,overlord/snapstate: on refresh use the remembered channel, + default to stable channel otherwise + - cmd/snap: improve UX of snap interfaces when there are no results + - overlord/state: include time in task log messages + - overlord: prune and abort old changes and tasks + - overlord/ifacestate: add implicit slots in setup-profiles + - daemon,overlord: setup authentication for store downloads + - daemon: macaroon-authed users are like root, and sudoers can login + - daemon,client,docs: send install options to daemon + + -- Michael Vogt Sat, 16 Apr 2016 22:15:40 +0200 + +snapd (1.9.4) xenial; urgency=medium + + * New upstream release: + - etc: fix desktop file location + - overlord/snapstate: stop an update once download sees the revision + is already installed + - overlord: make SnapState.DevMode a method, store flags + - snappy: no more snapYaml in snappy.Snap + - daemon,cmd,dirs,lockfile: drop all lockfiles + - debian: use sudo in setup of the proxy environment + - snap/snapenv,snappy,systemd: expose SNAP_REVISION to app + environment + - snap: validate similarly to what we did with old snapYaml info + from squashfs snaps + - daemon,store: plug in authentication for store search/details + - overlord/snapstate: fix JSON name of SnapState.Candidate + - overlord/snapstate: start using revisions higher than 100000 for + local installs (sideloads) + - interfaces,overlorf/ifacestate: honor user choice and don't auto- + connect disconnected plugs + - overlord/auth,daemon,client: hide user ids again + - daemon,overlord/snapstate: back /snaps (and so snap list) using + state + - daemon,client,overlord/auth: rework state auth data + - overlord/snapstate: disable Activate and Deactivate + - debian: fix silly typo in autopkgtest setup + - overlord/ifacestate: remove connection state with discard-conns + task, on the removal of last snap + - daemon,client: rename API update action to refresh + - cmd/snap: rework login to be more resilient + - overlord/snapstate: deny two changes on one snap + - snappy: fix crash on certain snap.yaml + - systemd: use native systemctl enable instead of our own + implementation + - store: add workaround for misbehaving store + - debian: make autopkgtest use the right env vars + - state: log do/undo status too when a task is run + - docs: update rest.md with price information + - daemon: only include price property if the snap is non-free + - daemon, client, cmd/snap: connect/disconnect now async + - snap,snappy: allow snaps to require system features + - integration-tests: fix report of skips in SetUpTest method + - snappy: clean out major bits (still using Installed) now + unreferenced as cmd/snappy is gone + - daemon/api,overlord/auth: add helper to get UserState from a + client request + + -- Michael Vogt Fri, 15 Apr 2016 23:30:00 +0200 + +snapd (1.9.3) xenial; urgency=medium + + * New upstream release: + - many: prepare for opengl support on classic + - interfaces/apparmor: load all apparmor profiles on snap setup + - daemon,client: move async resource to change in meta + - debian: disable autopilot + - snap: add basic progress reporting + - client,cmd,daemon,snap,store: show the price of snaps in the cli + - state: add minimal taskrunner logging + - daemon,snap,overlord/snapstate: in the API get the snap icon using + state + - client,daemon,overlord: don't guess snap file vs. name + - overlord/ifacestate: reload snap connections when setting up + security for a given snap + - snappy: remove cmd/snappy (superseded in favour of cmd/snap) + - interfaecs/apparmor: remove all traces of old-security from + apparmor backend + - interfaces/builtin: add bluez interface + - overlord/ifacestate: don't crash if connection cannot be reloaded + - debian: add searchSuite to autopkgtest + - client, daemon, cmd/snap: no more tasks; everything is changes + - client: send authorization header in client requests + - client, daemon: marshal suggested currency over REST + - docs, snap: enumerate snap types correctly in docs and comments + - many: add store authenticator parameter + - overlord/ifacestate,daemon: setup security on conect and + disconnect + - interfaces/apparmor: remove unused apparmor variables + - snapstate: add missing "TaskProgressAdapter.Write()" for working + progress reporting + - many: clean out snap config related code not for OS + - daemon,client,cmd: return snap list from /v2/snaps + - docs: update `/v2/snaps` endpoint documentation + - interfaces: rename developerMode to devMode + - daemon,client,overlord: progress current => done + - daemon,client,cmd/snap: move query metadata to top-level doc + - interfaces: add TestSecurityBackend + - many: replace typographic quotes with ASCII + - client, daemon: rework rest changes to export "ready" and "err" + - overlord/snapstate,snap,store: track snap-id in side-info and + therefore in state + - daemon: improve mocking of interfaces API tests + - integration-tests: remove origins in default snap names for udf + call + - integration-test: use "snap list" in GetCurrentVersion + - many: almost no more NewInstalledSnap reading manifest from + snapstate and backend + - daemon: auto install ubuntu-core if missing + - oauth,store: remove OAuth authentication logic + - overlord/ifacestate: simplify some tests with implicit manager + initialization + - store, snappy: move away from hitting details directly + - overlord/ifacestate: reload connections when restarting the + manager + - overlord/ifacestate: increase flexibility of unit tests + - overlord: use state to discover all installed snaps + - overlord/ifacestate: track connections in the state + - many: separate copy-data from unlinking of current snap + - overlord/auth,store/auth: add macaroon authenticator to UserState + - client: support for /v2/changes and /v2/changes/{id} + - daemon/api,overlord/auth: rework authenticated users information + in state + + -- Michael Vogt Thu, 14 Apr 2016 23:29:43 +0200 + +snapd (1.9.2) xenial; urgency=medium + + * New upstream release: + - cmd/snap,daemon,store: rework login command to use daemon login + API + - store: cache suggested currency from the store + - overlord/ifacestate: modularize and extend tests + - integration-tests: reenable failure tests + - daemon: include progress in rest changes + - daemon, overlord/state: expose individual changes + - overlord/ifacestate: drop duplicate package comment + - overlord/ifacestate: allow tests to override security backends + - cmd/snap: install *.snap and *.snap.* as files too + - interfaces/apparmor: replace /var/lib/snap with /var/snap + - daemon,overlord/ifacestate: connect REST API to interfaces in the + overlord + - debian: remove unneeded dependencies from snapd + - overlord/state: checkpoint on final progress only + - osutil: introduce IsUIDInAny + - overlord/snapstate: rename GetSnapState to Get, SetSnapState to + Set + - daemon: add id to changes json + - overlord/snapstate: SetSnapState() needs locks + - overlord: fix broken tests + - overlord/snapstate,overlord/ifacestate: reimplement SnapInfo (as + Info) actually using the state + + -- Michael Vogt Wed, 13 Apr 2016 17:27:00 +0200 + +snapd (1.9.1.1) xenial; urgency=medium + + * debian/tests/control: + - add git to make autopkgtest work + + -- Michael Vogt Tue, 12 Apr 2016 17:19:19 +0200 + +snapd (1.9.1) xenial; urgency=medium + + * Add warning about installing ubuntu-core-snapd-units on Desktop systems. + * Add ${misc:Depends} to ubuntu-core-snapd-units. + * interfaces,overlord: add support for auto-connecting plugs on + install + * fix sideloading snaps and (re)add tests for this + * add `ca-certificates` to the test-dependencies to fix autopkgtest + failure on armhf + + -- Michael Vogt Tue, 12 Apr 2016 14:39:57 +0200 + +snapd (1.9) xenial; urgency=medium + + * rename source and binary package to "snapd" + * update directory layout to final 16.04 layout + * use `snap` command instead of the previous `snappy` + * use `interface` based security + * use new state engine for install/update/remove + + -- Michael Vogt Tue, 12 Apr 2016 01:05:09 +0200 + +ubuntu-snappy (1.7.3+20160310ubuntu1) xenial; urgency=medium + + - debian: update versionized ubuntu-core-launcher dependency + - debian: tweak desktop file dir, ship Xsession.d snip for seamless + integration + - snappy: fix hw-assign to work with per-app udev tags + - snappy: use $snap.$app as per-app udev tag + - snap,snappy,systemd: %s/\/SNAP_DEVELOPER/g + - snappy: add mksquashfs --no-xattrs parameter + - snap,snappy,systemd: kill SNAP_FULLNAME + + -- Michael Vogt Thu, 10 Mar 2016 09:26:20 +0100 + +ubuntu-snappy (1.7.3+20160308ubuntu1) xenial; urgency=medium + + - snappy,snap: move icon under meta/gui/ + - debian: add snap.8 manpage + - debian: move snapd to /usr/lib/snappy/snapd + - snap,snappy,systemd: remove TMPDIR, TEMPDIR, SNAP_APP_TMPDIR + - snappy,dirs: add support to use desktop files from inside snaps + - daemon: snapd API events endpoint redux + - interfaces/builtin: add "network" interface + - overlord/state: do small fixes (typo, id clashes paranoia) + - overlord: add first pass of the logic in StateEngine itself + - overlord/state: introduce Status/SetStatus on Change + - interfaces: support permanent security snippets + - overlord/state: introduce Status/SetStatus and + Progress/SetProgress on Task + - overlord/state: introduce Task and Change.NewTask + - many: selectively swap semantics of plugs and slots + - client,cmd/snap: remove useless indirection in Interfaces + - interfaces: maintain Plug and Slot connection details + - client,daemon,cmd/snap: change POST /2.0/interfaces to work with + lists + - overlord/state: introduce Change and NewChange on state to create + them + - snappy: bugfix for snap.yaml parsing to be more consistent with + the spec + - snappy,systemd: remove "ports" from snap.yaml + + -- Michael Vogt Tue, 08 Mar 2016 11:24:09 +0100 + +ubuntu-snappy (1.7.3+20160303ubuntu4) xenial; urgency=medium + + * rename: + debian/golang-snappy-dev.install -> + debian/golang-github-ubuntu-core-snappy-dev.install: + + -- Michael Vogt Thu, 03 Mar 2016 12:29:16 +0100 + +ubuntu-snappy (1.7.3+20160303ubuntu3) xenial; urgency=medium + + * really fix typo in dependency name + + -- Michael Vogt Thu, 03 Mar 2016 12:21:39 +0100 + +ubuntu-snappy (1.7.3+20160303ubuntu2) xenial; urgency=medium + + * fix typo in dependency name + + -- Michael Vogt Thu, 03 Mar 2016 12:05:36 +0100 + +ubuntu-snappy (1.7.3+20160303ubuntu1) xenial; urgency=medium + + - debian: update build-depends for MIR + - many: implement new REST API: GET /2.0/interfaces + - integration-tests: properly stop snapd from branch + - cmd/snap: update tests for go-flags changes + - overlord/state: implement Lock/Unlock with implicit checkpointing + - overlord: split out the managers and State to their own + subpackages of overlord + - snappy: rename "migration-skill" to "old-security" and use new + interface names instead of skills + - client,cmd/snap: clarify name ambiguity in Plug or Slot + - overlord: start working on state engine along spec v2, have the + main skeleton follow that + - classic, oauth: update tests for change in MakeRandomString() + - client,cmd/snap: s/add/install/:-( + - interfaces,daemon: specialize Name to either Plug or Slot + - interfaces,interfaces/types: unify security snippet functions + - snapd: close the listener on Stop, to force the http.Serve loop to + exit + - snappy,daemon,snap/lightweight,cmd/snappy,docs/rest.md: expose + explicit channel selection to rest api + - interfaces,daemon: rename package holding built-in interfaces + - integration-tests: add the first classic dimension tests + - client,deaemon,docs: rename skills to interfaces on the wire + - asserts: add identity assertion type + - integration-tests: add the no_proxy env var + - debian: update build-depends for new package names + - oauth: fix oauth & quoting in the oauth_signature + - integration-tests: remove unused field + - integration-tests: add the http proxy argument + - interfaces,interfaces/types,deamon: mass internal rename to + interfaces + - client,cmd/snap: rename skills to interfaces (part 2) + - arch: fix missing mapping for powerpc + + -- Michael Vogt Thu, 03 Mar 2016 11:00:19 +0100 + +ubuntu-snappy (1.7.3+20160225ubuntu1) xenial; urgency=medium + + - integration-tests: always use the built snapd when compiling + binaries from branch + - cmd/snap: rename skills to interfaces + - testutil,skills/types,skills,daemon: tweak discovery of know skill + types + - docs: add docs for arm64 cross building + - overlord: implement basic ReadState/WriteState + - overlord: implement Get/Set/Copy on State + - integration-tests: fix dd output check + - integration-tests: add fromBranch config field + - integration-tests: use cli pkg methods in hwAssignSuite + - debian: do not create the snappypkg user, we don't need it anymore + - arch: fix build failure on s390x + - classic: cleanup downloaded lxd tarball + - cmd/snap,client,integration-tests: rename snap subcmds + 'assert'=>'ack', 'asserts'=>'known' + - skills: fix broken tests builds + - skills,skills/types: pass slot to SlotSecuritySnippet() + - skills/types: teach bool-file about udev security + + -- Michael Vogt Thu, 25 Feb 2016 16:17:19 +0100 + +ubuntu-snappy (1.7.2+20160223ubuntu1) xenial; urgency=medium + + * New git snapshot: + - asserts: introduce snap-declaration + - cmd/snap: fix integration tests for the "cmd_asserts" + - integration-tests: fix fanctl output check + - cmd/snap: fix test failure after merging 23a64e6 + - cmd/snap: replace skip-help with empty description + - docs: update security.md to match current migration-skill + semantics + - snappy: treat commands with 'daemon' field as services + - asserts: use more consistent names for receivers in + snap_asserts*.go + - debian: add missing golang-websocket-dev build-dependency + - classic: if classic fails to get created, undo the bind mounts + - snappy: never return nil in NewLocalSnapRepository() + - notifications: A simple notification system + - snappy: when using staging, authenticate there instead + - integration-tests/snapd: fix the start of the test snapd socket + - skills/types: use CamelCase for security names + - skills: add support for implicit revoke + - skills: add security layer + - integration-tests: use exec.Command wrapper for updates + - cmd/snap: add 'snap skills' + - cms/snap: add 'snap revoke' + - docs: add docs for skills API + - cmd/snap: add 'snap grant' + - cmd/snappy, coreconfig, daemon, snappy: move config to always be + bytes (in and out) + - overlord: start with a skeleton and stubs for Overlord, + StateEngine, StateJournal and managers + - integration-tests: skip tests affected by LP: #1544507 + - skills/types: add bool-file + - po: refresh translation templates + - cmd/snap: add 'snap experimental remove-skill-slot' + - asserts: introduce device assertion + - cmd/snap: implemented add, remove, purge, refresh, rollback, + activate, deactivate + - cmd/snap: add 'snap experimental add-skill-slot' + - cmd/snap: add 'snap experimental remove-skill' + - cmd/snap: add tests for common skills code + - cmd/snap: add 'snap experimental add-skill' + - asserts: make assertion checkers used by db.Check modular and + pluggable + - cmd,client,daemon,caps,docs,po: remove capabilities + - scripts: move the script to get dependencies to a separate file + - asserts: make the disk layout compatible for storing more than one + revision + - cmd/snap: make the assert command options exported + - integration-tests: Remove the target release and channel + - asserts: introduce model assertion + - integration-tests: add exec.Cmd wrapper + - cmd/snap: add client test support methods + - cmd/snap: move key=value attribute parsing to commmon + - cmd/snap: apply new style consistency to "snap" commands. + - cmd/snap: support redirecting the client for testing + - cmd/snap: support testing command output + - snappy,daemon: remove the meta repositories abstractions + - cmd: add support for experimental commands + - cmd/snappy,daemon,snap,snappy: remove SetActive from parts + - cmd/snappy,daemon,snappy,snap: remove config from parts interface + - client: improve test data + - cmd: allow to construct a fresh parser + - cmd: don't treat help as an error + - cmd/snappy,snappy: remove "Details" from the repository interface + - asserts: check that primary keys are set when + Decode()ing/assembling assertions + - snap,snappy: refactor to remove "Install" from the Part interface + - client,cmd: make client.New() configurable + - client: enable retrieving asynchronous operation information with + `Client.Operation`. + + -- Michael Vogt Tue, 23 Feb 2016 11:28:18 +0100 + +ubuntu-snappy (1.7.2+20160204ubuntu1) xenial; urgency=medium + + * New git snapshot: + - integration-tests: fix the rollback error messages + - integration-test: use the common cli method when trying to install + an unexisting snap + - integration-tests: rename snap find test + - daemon: refactor makeErrorResponder() + - integration: add regression test for LP: #1541317 + - integration-tests: reenable TestRollbackMustRebootToOtherVersion + - asserts: introduce "snap asserts" subcmd to show assertions in the + system db + - docs: fix parameter style + - daemon: use underscore in JSON interface + - client: add skills API + - asserts,docs/rest.md: change Encoder not to add extra newlines at + the end of the stream + - integration-tests: "snappy search" is no more, its "snap search" + now + - README, integration-tests/tests: chmod snapd.socket after manual + start. + - snappy: add default security profile if none is specified + - skills,daemon: add REST APIs for skills + - cmd/snap, cmd/snappy: move from `snappy search` to `snap find`. + - The first step towards REST world domination: search is now done + via + - debian: remove obsolete /etc/grub.d/09_snappy on upgrade + - skills: provide different security snippets for skill and slot + side + - osutil: make go vet happy again + - snappy,systemd: use Type field in systemd.ServiceDescription + - skills: add basic grant-revoke methods + - client,daemon,asserts: expose the ability to query assertions in + the system db + - skills: add basic methods for slot handling + - snappy,daemon,snap: move "Uninstall" into overlord + - snappy: move SnapFile.Install() into Overlord.Install() + - integration-tests: re-enable some failover tests + - client: remove snaps + - asserts: uniform searching across trusted (account keys) and main + backstore + - asserts: introduce Decoder to parse streams of assertions and + Encoder to build them + - client: filter snaps with a search query + - client: pass query as well as path in client internals + - skills: provide different security snippets for skill and slot + side + - snappy: refactor snapYaml to remove methods on snapYaml type + - snappy: remove unused variable from test + - skills: add basic methods for skill handing + - snappy: remove support for meta/package.yaml and implement new + meta/snap.yaml + - snappy: add new overlord type responsible for + Installed/Install/Uninstall/SetActive and stub it out + - skills: add basic methods for type handling + - daemon, snappy: add find (aka search) + - client: filter snaps by type + - skills: tweak valid names and error messages + - skills: add special skill type for testing + - cmd/snapd,daemon: filter snaps by type + - partition: remove obsolete uEnv.txt + - skills: add Type interface + - integration-tests: fix the bootloader path + - asserts: introduce a memory backed assertion backstore + - integration-tests: get name of OS snap from bootloader + - cmd/snapd,daemon: filter snaps by source + - asserts,daemon: bump some copyright years for things that have + been touched in the new year + - skills: add the initial Repository type + - skills: add a name validation function + - client: filter snaps by source + - snappy: unmount the squashfs snap again if it fails to install + - snap: make a copy of the search uri before mutating it + Closes: LP#1537005 + - cmd/snap,client,daemon,asserts: introduce "assert " snap + subcommand + - cmd/snappy, snappy: fix failover handling of the "active" + kernel/os snap + - daemon, client, docs/rest.md, snapd integration tests: move to the + new error response + - asserts: change Backstore interface, backstores can now access + primary key names from types + - asserts: make AssertionType into a real struct exposing the + metadata Name and PrimaryKey + - caps: improve bool-file sanitization + - asserts: fixup toolbelt to use exposed key ID. + - client: return by reference rather than by value + - asserts: exported filesystem backstores + explicit backstores + + -- Michael Vogt Thu, 04 Feb 2016 16:35:31 +0100 + +ubuntu-snappy (1.7.2+20160113ubuntu1) xenial; urgency=medium + + * New git snapshot + + -- Michael Vogt Wed, 13 Jan 2016 11:25:40 +0100 + +ubuntu-snappy (1.7.2ubuntu1) xenial; urgency=medium + + * New upstream release: + - bin-path integration + - assertions/capability work + - fix squashfs based snap building + + -- Michael Vogt Fri, 04 Dec 2015 08:46:35 +0100 + +ubuntu-snappy (1.7.1ubuntu1) xenial; urgency=medium + + * New upstream release: + - fix dependencies + - fix armhf builds + + -- Michael Vogt Wed, 02 Dec 2015 07:46:07 +0100 + +ubuntu-snappy (1.7ubuntu1) xenial; urgency=medium + + * New upstream release: + - kernel/os snap support + - squashfs snap support + - initial capabilities work + - initial assertitions work + - rest API support + + -- Michael Vogt Wed, 18 Nov 2015 19:59:51 +0100 + +ubuntu-snappy (1.6ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Fix hwaccess for gpio (LP: #1493389, LP: #1488618) + - Fix handleAssets name normalization + - Run boot-ok job late (LP: #1476129) + - Add support for systemd socket files + - Add "snappy service" command + - Documentation improvements + - Many test improvements (unit and integration) + - Override sideload versions + - Go1.5 fixes + - Add i18n + - Add man-page + - Add .snapignore + - Run services that uses external ports only after the network is up + - Bufix in Synbootloader (LP: 1474125) + - Use uboot.env for boot state tracking + + -- Michael Vogt Wed, 09 Sep 2015 14:20:22 +0200 + +ubuntu-snappy (1.5ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Use O_TRUNC when copying files + - Added path redefinition to include test's binaries location + - Don't run update-grub, instead use grub.cfg from the oem + package + - Do network configuration from first boot + - zero size systemd of new partition made executable to + prevent unrecoverable boot failure + - Close downloaded files + + -- Ricardo Salveti de Araujo Mon, 06 Jul 2015 15:14:37 -0300 + +ubuntu-snappy (1.4ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Allow to run the integration tests using snappy from branch + - Add CopyFileOverwrite flag and behaviour to helpers.CopyFile + - add a bunch of missing i18n.G() now that we have gettext + - Generate only the translators comments that start with + TRANSLATORS + - Try both clickpkg and snappypkg when dropping privs + + -- Ricardo Salveti de Araujo Thu, 02 Jul 2015 16:21:53 -0300 + +ubuntu-snappy (1.3ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - gettext support + - use snappypkg user for the installed snaps + - switch to system-image-3.x as the system-image backend + - more reliable developer mode detection + + -- Michael Vogt Wed, 01 Jul 2015 10:37:05 +0200 + +ubuntu-snappy (1.2-0ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Consider the root directory when installing and removing policies + - In the uboot TestHandleAssetsNoHardwareYaml, patch the cache dir + before creating the partition type + - In the PartitionTestSuite, remove the unnecessary patches for + defaultCacheDir + - Fix the help output of "snappy install -h" + + -- Ricardo Salveti de Araujo Wed, 17 Jun 2015 11:42:47 -0300 + +ubuntu-snappy (1.1.2-0ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Remove compatibility for click-bin-path in generated exec-wrappers + - Release the readme.md after parsing it + + -- Ricardo Salveti de Araujo Thu, 11 Jun 2015 23:42:49 -0300 + +ubuntu-snappy (1.1.1-0ubuntu1) wily; urgency=medium + + * New upstream release, including the following changes: + - Set all app services to restart on failure + - Fixes the missing oauth quoting and makes the code a bit nicer + - Added integrate() to set Integration to default values needed for + integration + - Moved setActivateClick to be a method of SnapPart + - Make unsetActiveClick a method of SnapPart + - Check the package.yaml for the required fields + - Integrate lp:snappy/selftest branch into snappy itself + - API to record information about the image and to check if the kernel was + sideloaded. + - Factor out update from cmd + - Continue updating when a sideload error is returned + + -- Ricardo Salveti de Araujo Wed, 10 Jun 2015 15:54:12 -0300 + +ubuntu-snappy (1.1-0ubuntu1) wily; urgency=low + + * New wily upload with fix for go 1.4 syscall.Setgid() breakage + + -- Michael Vogt Tue, 09 Jun 2015 10:02:04 +0200 + +ubuntu-snappy (1.0.1-0ubuntu1) vivid; urgency=low + + * fix symlink unpacking + * fix typo in apparmor rules generation + + -- Michael Vogt Thu, 23 Apr 2015 16:09:56 +0200 + +ubuntu-snappy (1.0-0ubuntu1) vivid; urgency=low + + * 15.04 archive upload + + -- Michael Vogt Thu, 23 Apr 2015 11:08:22 +0200 + +ubuntu-snappy (0.1.2-0ubuntu1) vivid; urgency=medium + + * initial ubuntu archive upload + + -- Michael Vogt Mon, 13 Apr 2015 22:48:13 -0500 + +ubuntu-snappy (0.1.1-0ubuntu1) vivid; urgency=low + + * new snapshot + + -- Michael Vogt Thu, 12 Feb 2015 13:51:22 +0100 + +ubuntu-snappy (0.1-0ubuntu1) vivid; urgency=medium + + * Initial packaging + + -- Sergio Schvezov Fri, 06 Feb 2015 02:25:43 -0200 diff --git a/compat b/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 00000000..74870f18 --- /dev/null +++ b/control @@ -0,0 +1,116 @@ +Source: snapd +Section: devel +Priority: optional +Maintainer: Steve Langasek +Uploaders: Michael Hudson-Doyle , + Zygmunt Krynicki , + Luke Faraone +Build-Depends: autoconf, + automake, + autotools-dev, + bash-completion, + debhelper (>= 9), + dh-apparmor, + dh-autoreconf, + dh-golang (>=1.7), + dh-systemd, + fakeroot, + gettext, + gnupg2, + golang-check.v1-dev, + golang-context-dev, + golang-github-coreos-go-systemd-dev, + golang-github-gorilla-mux-dev, + golang-github-gosexy-gettext-dev, + golang-github-mvo5-goconfigparser-dev, + golang-github-mvo5-uboot-go-dev, + golang-go, + golang-go-flags-dev, + golang-golang-x-crypto-dev, + golang-golang-x-net-dev, + golang-gopkg-tomb.v2-dev (>= 0.0~git20161208.0.d5d1b58-1), + golang-gopkg-cheggaaa-pb.v1-dev, + golang-websocket-dev, + golang-yaml.v2-dev, + golang-gopkg-macaroon.v1-dev, + golang-gopkg-retry.v1-dev, + golang-github-gosexy-gettext-dev, + golang-any (>=2:1.6) | golang-1.6, + indent, + init-system-helpers, + libapparmor-dev, + libglib2.0-dev, + libseccomp-dev, + libudev-dev, + pkg-config, + python3, + python3-docutils, + python3-markdown, + squashfs-tools, + tzdata, + udev +Standards-Version: 3.9.8 +Homepage: https://github.com/snapcore/snapd +Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/snapd.git +Vcs-Git: git://anonscm.debian.org/collab-maint/snapd.git + +Package: golang-github-ubuntu-core-snappy-dev +Architecture: all +Depends: golang-github-snapcore-snapd-dev, ${misc:Depends} +Section: oldlibs +Description: transitional dummy package + This is a transitional dummy package. It can safely be removed. + +Package: golang-github-snapcore-snapd-dev +Architecture: all +Breaks: golang-github-ubuntu-core-snappy-dev (<< 2.0.6), + golang-snappy-dev (<< 1.7.3+20160303ubuntu4) +Replaces: golang-github-ubuntu-core-snappy-dev (<< 2.0.6), + golang-snappy-dev (<< 1.7.3+20160303ubuntu4) +Depends: ${misc:Depends} +Description: snappy development go packages. + Use these to use the snappy API. + +Package: snapd +Architecture: any +Depends: adduser, + apparmor (>= 2.10.95-0ubuntu2.2), + ca-certificates, + gnupg1 | gnupg, + snap-confine (= ${binary:Version}), + squashfs-tools, + systemd, + ubuntu-core-launcher (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Breaks: snap (<< 2013-11-29-5~) +Replaces: snap (<< 2013-11-29-5~) +Built-Using: ${misc:Built-Using} +Description: Tool to interact with Ubuntu Core Snappy. + Manage an Ubuntu system with snappy. + . + Install, configure, refresh and remove snap packages. Snaps are + 'universal' packages that work across many different Linux systems, + enabling secure distribution of the latest apps and utilities for + cloud, servers, desktops and the internet of things. + . + This is the CLI for snapd, a background service that takes care of + snaps on the system. Start with 'snap list' to see installed snaps. + +Package: snap-confine +Architecture: any +Breaks: ubuntu-core-launcher (<< 1.0.32) +Replaces: ubuntu-core-launcher (<< 1.0.32) +Depends: apparmor (>= 2.10.95-0ubuntu2.2), ${misc:Depends}, ${shlibs:Depends} +Description: Support executable to apply confinement for snappy apps + This package contains an internal tool for applying confinement to snappy app. + The executable (snap-confine) is ran internally by snapd to apply confinement + to the started application process. The tool is written in C and carefully + reviewed to limit the attack surface on the security model of snapd. + +Package: ubuntu-core-launcher +Architecture: any +Depends: snap-confine (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: dpkg (>= 1.15.7.2) +Description: Launcher for ubuntu-core (snappy) apps + This package contains the launcher for launching snappy applications diff --git a/copyright b/copyright new file mode 100644 index 00000000..0b980b94 --- /dev/null +++ b/copyright @@ -0,0 +1,22 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: snappy +Source: https://github.com/snapcore/snapd + +Files: * +Copyright: Copyright (C) 2014,2015 Canonical, Ltd. +License: GPL-3 + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License version 3, as + published by the Free Software Foundation. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranties of + MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR + PURPOSE. See the applicable version of the GNU Lesser General Public + License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the complete text of the GNU General Public License + can be found in `/usr/share/common-licenses/GPL-3' diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 00000000..113bcf34 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,3 @@ +[DEFAULT] +debian-branch = debian +export-dir = ../build-area diff --git a/golang-github-snapcore-snapd-dev.install b/golang-github-snapcore-snapd-dev.install new file mode 100644 index 00000000..1dfbabc8 --- /dev/null +++ b/golang-github-snapcore-snapd-dev.install @@ -0,0 +1 @@ +debian/tmp/usr/share/gocode/src/* diff --git a/not-installed b/not-installed new file mode 100644 index 00000000..708d871f --- /dev/null +++ b/not-installed @@ -0,0 +1 @@ +debian/tmp/usr/bin/uboot-go diff --git a/patches/debian-changes b/patches/debian-changes new file mode 100644 index 00000000..27bd8359 --- /dev/null +++ b/patches/debian-changes @@ -0,0 +1,307 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + snapd (2.20-1) unstable; urgency=medium + . + * New upstream release. +Author: Michael Hudson-Doyle + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: + +--- snapd-2.21.orig/progress/progress.go ++++ snapd-2.21/progress/progress.go +@@ -25,7 +25,7 @@ import ( + "os" + "unicode" + +- "github.com/cheggaaa/pb" ++ "gopkg.in/cheggaaa/pb.v1" + "golang.org/x/crypto/ssh/terminal" + ) + +--- snapd-2.21.orig/cmd/snap/cmd_interfaces_test.go ++++ snapd-2.21/cmd/snap/cmd_interfaces_test.go +@@ -60,7 +60,8 @@ Help Options: + -i= Constrain listing to specific interfaces + + [interfaces command arguments] +- :: Constrain listing to a specific snap or snap:name ++ :: Constrain listing to a specific snap or ++ snap:name + ` + rest, err := Parser().ParseArgs([]string{"interfaces", "--help"}) + c.Assert(err.Error(), Equals, msg) +--- snapd-2.21.orig/i18n/i18n.go ++++ snapd-2.21/i18n/i18n.go +@@ -21,82 +21,15 @@ package i18n + + //go:generate update-pot + +-import ( +- "fmt" +- "os" +- "path/filepath" +- "strings" +- +- /* this is actually "github.com/ojii/gettext.go", however because +- https://github.com/ojii/gettext.go/pull/4 +- is not merged as of this writtting we want to use this fork +- */ +- "github.com/mvo5/gettext.go" +- +- "github.com/snapcore/snapd/osutil" +-) +- +-// TEXTDOMAIN is the message domain used by snappy; see dgettext(3) +-// for more information. +-var ( +- TEXTDOMAIN = "snappy" +- locale gettext.Catalog +- translations gettext.Translations +-) +- +-func init() { +- bindTextDomain(TEXTDOMAIN, "/usr/share/locale") +- setLocale("") +-} +- +-func langpackResolver(root string, locale string, domain string) string { +- +- // first check for the real locale (e.g. de_DE) +- // then try to simplify the locale (e.g. de_DE -> de) +- locales := []string{locale, strings.SplitN(locale, "_", 2)[0]} +- for _, locale := range locales { +- r := filepath.Join(locale, "LC_MESSAGES", fmt.Sprintf("%s.mo", domain)) +- +- // ubuntu uses /usr/lib/locale-langpack and patches the glibc gettext +- // implementation +- langpack := filepath.Join(root, "..", "locale-langpack", r) +- if osutil.FileExists(langpack) { +- return langpack +- } +- +- regular := filepath.Join(root, r) +- if osutil.FileExists(regular) { +- return regular +- } +- } +- +- return "" +-} ++import () + + func bindTextDomain(domain, dir string) { +- translations = gettext.NewTranslations(dir, domain, langpackResolver) + } + + func setLocale(loc string) { +- if loc == "" { +- loc = os.Getenv("LC_MESSAGES") +- if loc == "" { +- loc = os.Getenv("LANG") +- } +- } +- // de_DE.UTF-8, de_DE@euro all need to get simplified +- loc = strings.Split(loc, "@")[0] +- loc = strings.Split(loc, ".")[0] +- +- locale = translations.Locale(loc) + } + + // G is the shorthand for Gettext + func G(msgid string) string { +- return locale.Gettext(msgid) +-} +- +-// NG is the shorthand for NGettext +-func NG(msgid string, msgidPlural string, n uint32) string { +- return locale.NGettext(msgid, msgidPlural, n) ++ return msgid + } +--- snapd-2.21.orig/vendor/vendor.json ++++ snapd-2.21/vendor/vendor.json +@@ -43,18 +43,6 @@ + "revisionTime": "2016-02-27T09:34:14Z" + }, + { +- "checksumSHA1": "MXOfmoFN5PBz/N5pDNrFe9ugYf8=", +- "path": "github.com/mvo5/gettext.go", +- "revision": "da4fdf605f1b0e2aa523423db5c0a3f727d62019", +- "revisionTime": "2016-12-13T07:12:38Z" +- }, +- { +- "checksumSHA1": "wClBtrHsGvzusCkIFdF78Iak6y0=", +- "path": "github.com/mvo5/gettext.go/pluralforms", +- "revision": "da4fdf605f1b0e2aa523423db5c0a3f727d62019", +- "revisionTime": "2016-12-13T07:12:38Z" +- }, +- { + "checksumSHA1": "bzUdFxQ29mPK0lwgFVcF0GFN74Q=", + "path": "github.com/mvo5/goconfigparser", + "revision": "26426272dda20cc76aa1fa44286dc743d2972fe8", +--- snapd-2.21.orig/i18n/i18n_test.go ++++ /dev/null +@@ -1,129 +0,0 @@ +-// -*- Mode: Go; indent-tabs-mode: t -*- +- +-/* +- * Copyright (C) 2014-2015 Canonical Ltd +- * +- * This program is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License version 3 as +- * published by the Free Software Foundation. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see . +- * +- */ +- +-package i18n +- +-import ( +- "io/ioutil" +- "os" +- "os/exec" +- "path/filepath" +- "testing" +- +- . "gopkg.in/check.v1" +-) +- +-// Hook up check.v1 into the "go test" runner +-func Test(t *testing.T) { TestingT(t) } +- +-var mockLocalePo = []byte(` +-msgid "" +-msgstr "" +-"Project-Id-Version: snappy\n" +-"Report-Msgid-Bugs-To: snappy-devel@lists.ubuntu.com\n" +-"POT-Creation-Date: 2015-06-16 09:08+0200\n" +-"Language: en_DK\n" +-"MIME-Version: 1.0\n" +-"Content-Type: text/plain; charset=UTF-8\n" +-"Content-Transfer-Encoding: 8bit\n" +-"Plural-Forms: nplurals=2; plural=n != 1;>\n" +- +-msgid "plural_1" +-msgid_plural "plural_2" +-msgstr[0] "translated plural_1" +-msgstr[1] "translated plural_2" +- +-msgid "singular" +-msgstr "translated singular" +-`) +- +-func makeMockTranslations(c *C, localeDir string) { +- fullLocaleDir := filepath.Join(localeDir, "en_DK", "LC_MESSAGES") +- err := os.MkdirAll(fullLocaleDir, 0755) +- c.Assert(err, IsNil) +- +- po := filepath.Join(fullLocaleDir, "snappy-test.po") +- mo := filepath.Join(fullLocaleDir, "snappy-test.mo") +- err = ioutil.WriteFile(po, mockLocalePo, 0644) +- c.Assert(err, IsNil) +- +- cmd := exec.Command("msgfmt", po, "--output-file", mo) +- cmd.Stdout = os.Stdout +- cmd.Stderr = os.Stderr +- err = cmd.Run() +- c.Assert(err, IsNil) +-} +- +-type i18nTestSuite struct { +- origLang string +- origLcMessages string +-} +- +-var _ = Suite(&i18nTestSuite{}) +- +-func (s *i18nTestSuite) SetUpTest(c *C) { +- // this dir contains a special hand-crafted en_DK/snappy-test.mo +- // file +- localeDir := c.MkDir() +- makeMockTranslations(c, localeDir) +- +- // we use a custom test mo file +- TEXTDOMAIN = "snappy-test" +- +- s.origLang = os.Getenv("LANG") +- s.origLcMessages = os.Getenv("LC_MESSAGES") +- +- bindTextDomain("snappy-test", localeDir) +- os.Setenv("LANG", "en_DK.UTF-8") +- setLocale("") +-} +- +-func (s *i18nTestSuite) TearDownTest(c *C) { +- os.Setenv("LANG", s.origLang) +- os.Setenv("LC_MESSAGES", s.origLcMessages) +-} +- +-func (s *i18nTestSuite) TestTranslatedSingular(c *C) { +- // no G() to avoid adding the test string to snappy-pot +- var Gtest = G +- c.Assert(Gtest("singular"), Equals, "translated singular") +-} +- +-func (s *i18nTestSuite) TestTranslatesPlural(c *C) { +- // no NG() to avoid adding the test string to snappy-pot +- var NGtest = NG +- c.Assert(NGtest("plural_1", "plural_2", 1), Equals, "translated plural_1") +-} +- +-func (s *i18nTestSuite) TestTranslatedMissingLangNoCrash(c *C) { +- setLocale("invalid") +- +- // no G() to avoid adding the test string to snappy-pot +- var Gtest = G +- c.Assert(Gtest("singular"), Equals, "singular") +-} +- +-func (s *i18nTestSuite) TestInvalidTextDomainDir(c *C) { +- bindTextDomain("snappy-test", "/random/not/existing/dir") +- setLocale("invalid") +- +- // no G() to avoid adding the test string to snappy-pot +- var Gtest = G +- c.Assert(Gtest("singular"), Equals, "singular") +-} +--- snapd-2.21.orig/tests/main/i18n/task.yaml ++++ /dev/null +@@ -1,4 +0,0 @@ +-summary: Test that i18n works +- +-execute: | +- LANG=de_DE.UTF-8 snap changes everything | MATCH "Ja, ja, allerdings." +--- snapd-2.21.orig/cmd/snap-confine/snap-confine.apparmor.in ++++ snapd-2.21/cmd/snap-confine/snap-confine.apparmor.in +@@ -355,4 +355,9 @@ + + # Allow snap-confine to be killed + signal (receive) peer=unconfined, ++ ++ # Required when using unpatched upstream kernel ++ capability sys_ptrace, ++ # Debian compiles snap-confine without AppArmor, so allow running snaps unconfined ++ /usr/lib/snapd/snap-exec uxr, + } diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..7bb82529 --- /dev/null +++ b/patches/series @@ -0,0 +1 @@ +debian-changes diff --git a/rules b/rules new file mode 100755 index 00000000..590c638c --- /dev/null +++ b/rules @@ -0,0 +1,213 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +#export DH_VERBOSE=1 +export DH_OPTIONS +export DH_GOPKG := github.com/snapcore/snapd +#export DEB_BUILD_OPTIONS=nocheck +export DH_GOLANG_EXCLUDES=tests +export DH_GOLANG_GO_GENERATE=1 + +export PATH:=${PATH}:${CURDIR} +# make sure that correct go version is found on trusty +export PATH:=/usr/lib/go-1.6/bin:${PATH} + +include /etc/os-release + +SYSTEMD_UNITS_DESTDIR= +ifeq (${VERSION_ID},"14.04") + # We are relying on a deputy systemd setup for trusty, + # in which systemd does not run as PID 1. To solve the + # problem of services shipping systemd units and upstart jobs + # being started twice, we altered systemd on trusty to ignore + # /lib/systemd/system and instead consider only selected units from + # /lib/systemd/upstart. + SYSTEMD_UNITS_DESTDIR="lib/systemd/upstart/" + # make sure that trusty's golang-1.6 is picked up correctly. + export PATH:=/usr/lib/go-1.6/bin:${PATH} +else + SYSTEMD_UNITS_DESTDIR="lib/systemd/system/" +endif + +# The go tool does not fully support vendoring with gccgo, but we can +# work around that by constructing the appropriate -I flag by hand. +GCCGO := $(shell go tool dist env > /dev/null 2>&1 && echo no || echo yes) + +BUILDFLAGS:=-buildmode=pie -pkgdir=$(CURDIR)/_build/std +GCCGOFLAGS= +ifeq ($(GCCGO),yes) +GOARCH := $(shell go env GOARCH) +GOOS := $(shell go env GOOS) +BUILDFLAGS:= +GCCGOFLAGS=-gccgoflags="-I $(CURDIR)/_build/pkg/gccgo_$(GOOS)_$(GOARCH)/$(DH_GOPKG)/vendor" +export DH_GOLANG_GO_GENERATE=0 +endif + +# check if we need to include the testkeys in the binary +TAGS= +ifneq (,$(filter testkeys,$(DEB_BUILD_OPTIONS))) + TAGS=-tags withtestkeys +endif + +# export DEB_BUILD_MAINT_OPTIONS = hardening=+all +# DPKG_EXPORT_BUILDFLAGS = 1 +# include /usr/share/dpkg/buildflags.mk + +# Currently, we enable confinement for Ubuntu only, not for derivatives, +# because derivatives may have different kernels that don't support all the +# required confinement features and we don't to mislead anyone about the +# security of the system. Discuss a proper approach to this for downstreams +# if and when they approach us +ifeq ($(shell dpkg-vendor --query Vendor),Ubuntu) + VENDOR_ARGS=--enable-nvidia-ubuntu +else + VENDOR_ARGS=--disable-apparmor +endif + +%: + dh $@ --buildsystem=golang --with=golang --fail-missing --with systemd --builddirectory=_build + +override_dh_fixperms: + dh_fixperms -Xusr/lib/snapd/snap-confine + +override_dh_installdeb: + dh_apparmor --profile-name=usr.lib.snapd.snap-confine -psnap-confine + dh_installdeb + +override_dh_clean: +ifneq (,$(TEST_GITHUB_AUTOPKGTEST)) + # this will be set by the GITHUB webhook to trigger a autopkgtest + # we only need to run "govendor sync" here and then its ready + (export GOPATH="/tmp/go"; \ + mkdir -p $$GOPATH/src/github.com/snapcore/; \ + cp -ar . $$GOPATH/src/github.com/snapcore/snapd; \ + go get -u github.com/kardianos/govendor; \ + (cd $$GOPATH/src/github.com/snapcore/snapd ; $$GOPATH/bin/govendor sync); \ + cp -ar $$GOPATH/src/github.com/snapcore/snapd/vendor/ .; \ + ) +endif + dh_clean + # XXX: hacky + $(MAKE) -C cmd distclean || true + +override_dh_auto_build: + # usually done via `go generate` but that is not supported on powerpc + ./mkversion.sh + # Build golang bits + mkdir -p _build/src/$(DH_GOPKG)/cmd/snap/test-data + cp -a cmd/snap/test-data/*.gpg _build/src/$(DH_GOPKG)/cmd/snap/test-data/ + dh_auto_build -- $(BUILDFLAGS) $(TAGS) $(GCCGOFLAGS) + # Build C bits, sadly manually + cd cmd && ( autoreconf -i -f ) + cd cmd && ( ./configure --prefix=/usr --libexecdir=/usr/lib/snapd $(VENDOR_ARGS)) + $(MAKE) -C cmd all + +override_dh_auto_test: + dh_auto_test -- $(GCCGOFLAGS) +# a tested default (production) build should have no test keys +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + # check that only the main trusted account-key is included + [ $$(strings _build/bin/snapd|grep -c -E "public-key-sha3-384: [a-zA-Z0-9_-]{64}") -eq 1 ] + strings _build/bin/snapd|grep -c "^public-key-sha3-384: -CvQKAwRQ5h3Ffn10FILJoEZUXOv6km9FwA80-Rcj-f-6jadQ89VRswHNiEB9Lxk$$" +endif +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + # run the snap-confine tests + $(MAKE) -C cmd check +endif + +override_dh_systemd_enable: + # enable auto-import + dh_systemd_enable \ + -psnapd \ + snapd.autoimport.service + # we want the auto-update timer enabled by default + dh_systemd_enable \ + -psnapd \ + snapd.refresh.timer + # but the auto-update service disabled + dh_systemd_enable \ + --no-enable \ + -psnapd \ + snapd.refresh.service + # enable snapd + dh_systemd_enable \ + -psnapd \ + snapd.socket + dh_systemd_enable \ + -psnapd \ + snapd.service + +override_dh_systemd_start: + # we want to start the auto-update timer + dh_systemd_start \ + -psnapd \ + snapd.refresh.timer + # but not start the service + dh_systemd_start \ + --no-start \ + -psnapd \ + snapd.refresh.service + # start snapd + dh_systemd_start \ + -psnapd \ + snapd.socket + dh_systemd_start \ + -psnapd \ + snapd.service + # start autoimport + dh_systemd_start \ + -psnapd \ + snapd.autoimport.service + +override_dh_install: + # we do not need this in the package, its just needed during build + rm -rf ${CURDIR}/debian/tmp/usr/bin/xgettext-go + # uboot-go is not shippable + rm -f ${CURDIR}/debian/tmp/usr/bin/uboot-go + # toolbelt is not shippable + rm -f ${CURDIR}/debian/tmp/usr/bin/toolbelt + # we do not like /usr/bin/snappy anymore + rm -f ${CURDIR}/debian/tmp/usr/bin/snappy + # install dev package files + mkdir -p debian/golang-github-snapcore-snapd-dev/usr/share + rm -rf debian/tmp/usr/share/gocode/src/github.com/snapcore/snapd/cmd/snap-confine + cp -R debian/tmp/usr/share/gocode debian/golang-github-snapcore-snapd-dev/usr/share + # install udev stuff, must be installed before 80-udisks + install debian/snapd.autoimport.udev -D debian/snapd/lib/udev/rules.d/66-snapd-autoimport.rules + + # install bash completion files + install --mode=0644 data/completion/snap -D debian/snapd/usr/share/bash-completion/completions/snap + # i18n stuff + mkdir -p debian/snapd/usr/share + if [ -d share/locale ]; then \ + cp -R share/locale debian/snapd/usr/share; \ + fi + # etc/profile.d contains the PATH extension for snap packages + mkdir -p debian/snapd/etc + cp -R etc/profile.d debian/snapd/etc + # etc/X11/Xsession.d will add to XDG_DATA_DIRS so that we have .desktop support + mkdir -p debian/snapd/etc + cp -R etc/X11 debian/snapd/etc + # we conditionally install snapd's systemd units + mkdir -p debian/snapd/$(SYSTEMD_UNITS_DESTDIR) + install --mode=0644 debian/snapd.refresh.timer debian/snapd/$(SYSTEMD_UNITS_DESTDIR) + install --mode=0644 debian/snapd.refresh.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR) + install --mode=0644 debian/snapd.autoimport.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR) + install --mode=0644 debian/*.socket debian/snapd/$(SYSTEMD_UNITS_DESTDIR) + install --mode=0644 debian/snapd.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR) +ifeq ($(RELEASE),trusty) + dh_link debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/snapd.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/multi-user.target.wants/snapd.service + dh_link debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/snapd.autoimport.service debian/snapd/$(SYSTEMD_UNITS_DESTDIR)/multi-user.target.wants/snapd.autoimport.service +endif + $(MAKE) -C cmd install DESTDIR=$(CURDIR)/debian/tmp + dh_install + +override_dh_auto_install: snap.8 + dh_auto_install -O--buildsystem=golang + +snap.8: + $(CURDIR)/_build/bin/snap help --man > $@ + +override_dh_auto_clean: + dh_auto_clean -O--buildsystem=golang + rm -vf snap.8 diff --git a/snap-confine.install b/snap-confine.install new file mode 100644 index 00000000..36b6d498 --- /dev/null +++ b/snap-confine.install @@ -0,0 +1,7 @@ +etc/apparmor.d/usr.lib.snapd.snap-confine +lib/udev/rules.d/80-snappy-assign.rules +lib/udev/snappy-app-dev +usr/lib/snapd/snap-confine +usr/lib/snapd/snap-discard-ns +usr/share/man/man5/snap-confine.5 +usr/share/man/man5/snap-discard-ns.5 diff --git a/snapd.autoimport.service b/snapd.autoimport.service new file mode 100644 index 00000000..2c75f154 --- /dev/null +++ b/snapd.autoimport.service @@ -0,0 +1,10 @@ +[Unit] +Description=Auto import assertions from block devices +After=snapd.service snapd.socket + +[Service] +Type=oneshot +ExecStart=/usr/bin/snap auto-import + +[Install] +WantedBy=multi-user.target diff --git a/snapd.autoimport.udev b/snapd.autoimport.udev new file mode 100644 index 00000000..f06a9f3e --- /dev/null +++ b/snapd.autoimport.udev @@ -0,0 +1,3 @@ +# probe for assertions, must run before udisks2 +ACTION=="add", SUBSYSTEM=="block" \ + RUN+="/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/%k" diff --git a/snapd.dirs b/snapd.dirs new file mode 100644 index 00000000..9383d810 --- /dev/null +++ b/snapd.dirs @@ -0,0 +1,10 @@ +snap +usr/lib/snapd +var/lib/snapd/auto-import +var/lib/snapd/desktop +var/lib/snapd/environment +var/lib/snapd/firstboot +var/lib/snapd/lib/gl +var/lib/snapd/snaps/partial +var/lib/snapd/void +var/snap diff --git a/snapd.install b/snapd.install new file mode 100644 index 00000000..dc5ee731 --- /dev/null +++ b/snapd.install @@ -0,0 +1,6 @@ +usr/bin/snap +usr/bin/snap-exec /usr/lib/snapd/ +usr/bin/snapctl +usr/bin/snapd /usr/lib/snapd/ + +data/info /usr/lib/snapd/ diff --git a/snapd.lintian-overrides b/snapd.lintian-overrides new file mode 100644 index 00000000..b5be2587 --- /dev/null +++ b/snapd.lintian-overrides @@ -0,0 +1,13 @@ +# Up for discussion whether we should use this directory on Debian, or +# patch snap to use some different mountpoint; in the meantime, override to +# pass the NEW queue. +snapd: non-standard-toplevel-dir snap/ +# Up for discussion whether we should use this directory on Debian, or +# patch snap to use some different mountpoint; in the meantime, override. +snapd: non-standard-dir-in-var var/snap/ +# snapd is a very special case which needs to tear out its self-managed +# units on purge, we certainly would not be able to use the Debian +# abstractions for this +snapd: maintainer-script-calls-systemctl postrm:9 +# fortify functions aren't here because we use none of the libc functions. +snapd: hardening-no-fortify-functions * diff --git a/snapd.maintscript b/snapd.maintscript new file mode 100644 index 00000000..66826a72 --- /dev/null +++ b/snapd.maintscript @@ -0,0 +1,4 @@ +# keep mount point busy +# we used to ship a custom grub config that is no longer needed +rm_conffile /etc/grub.d/09_snappy 1.7.3ubuntu1 +rm_conffile /etc/ld.so.conf.d/snappy.conf 2.0.7~ diff --git a/snapd.manpages b/snapd.manpages new file mode 100644 index 00000000..b383785e --- /dev/null +++ b/snapd.manpages @@ -0,0 +1 @@ +snap.8 diff --git a/snapd.postinst b/snapd.postinst new file mode 100644 index 00000000..9aefd971 --- /dev/null +++ b/snapd.postinst @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +#DEBHELPER# + + +case "$1" in + configure) + # ensure /var/lib/snapd/lib/gl is cleared + if dpkg --compare-versions "$2" lt-nl "2.0.7"; then + ldconfig + fi +esac diff --git a/snapd.postrm b/snapd.postrm new file mode 100644 index 00000000..a59aff65 --- /dev/null +++ b/snapd.postrm @@ -0,0 +1,67 @@ +#!/bin/sh + +set -e + +systemctl_stop() { + unit="$1" + if systemctl is-active -q "$unit"; then + echo "Stoping $unit" + systemctl stop -q "$unit" || true + fi +} + +if [ "$1" = "purge" ]; then + mounts=$(systemctl list-unit-files | grep '^snap[-.].*\.mount' | cut -f1 -d ' ') + services=$(systemctl list-unit-files | grep '^snap[-.].*\.service' | cut -f1 -d ' ') + for unit in $services $mounts; do + # ensure its really a snapp mount unit or systemd unit + if ! grep -q 'What=/var/lib/snapd/snaps/' "/etc/systemd/system/$unit" && ! grep -q 'X-Snappy=yes' "/etc/systemd/system/$unit"; then + echo "Skipping non-snapd systemd unit $unit" + continue + fi + + echo "Stopping $unit" + systemctl_stop "$unit" + + # if it is a mount unit, we can find the snap name in the mount + # unit (we just ignore unit files) + snap=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f3 -d/) + rev=$(grep 'Where=/snap/' "/etc/systemd/system/$unit"|cut -f4 -d/) + if [ -n "$snap" ]; then + echo "Removing snap $snap" + # generated binaries + rm -f "/snap/bin/$snap" + rm -f "/snap/bin/$snap".* + # snap mount dir + umount -l "/snap/$snap/$rev" 2> /dev/null || true + rm -rf "/snap/$snap/$rev" + rm -f "/snap/$snap/current" + # snap data dir + rm -rf "/var/snap/$snap/$rev" + rm -rf "/var/snap/$snap/common" + rm -f "/var/snap/$snap/current" + # opportunistic remove (may fail if there are still revisions left + for d in "/snap/bin" "/snap/$snap" "/var/snap/$snap" "/snap" "/var/snap"; do + if [ -d "$d" ]; then + rmdir --ignore-fail-on-non-empty $d + fi + done + fi + + echo "Removing $unit" + rm -f "/etc/systemd/system/$unit" + rm -f "/etc/systemd/system/multi-user.target.wants/$unit" + done + + echo "Discarding preserved snap namespaces" + # opportunistic as those might not be actually mounted + for mnt in /run/snapd/ns/*.mnt; do + umount -l "$mnt" || true + done + umount -l /run/snapd/ns/ || true + + echo "Removing snapd state" + rm -rf /var/lib/snapd +fi + +#DEBHELPER# diff --git a/snapd.refresh.service b/snapd.refresh.service new file mode 100644 index 00000000..4c337578 --- /dev/null +++ b/snapd.refresh.service @@ -0,0 +1,11 @@ +[Unit] +Description=Automatically refresh installed snaps +After=network-online.target snapd.socket +Requires=snapd.socket +ConditionPathExistsGlob=/snap/*/current +Documentation=man:snap(1) + +[Service] +Type=oneshot +ExecStart=/usr/bin/snap refresh +Environment=SNAP_REFRESH_FROM_TIMER=1 diff --git a/snapd.refresh.timer b/snapd.refresh.timer new file mode 100644 index 00000000..fbc62a93 --- /dev/null +++ b/snapd.refresh.timer @@ -0,0 +1,14 @@ +[Unit] +Description=Timer to automatically refresh installed snaps + +[Timer] +# spread the requests gently +# https://bugs.launchpad.net/snappy/+bug/1537793 +OnCalendar=23,05,11,17:00 +RandomizedDelaySec=6h +AccuracySec=10min +Persistent=true +OnStartupSec=15m + +[Install] +WantedBy=timers.target diff --git a/snapd.service b/snapd.service new file mode 100644 index 00000000..08632259 --- /dev/null +++ b/snapd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Snappy daemon +Requires=snapd.socket + +[Service] +ExecStart=/usr/lib/snapd/snapd +EnvironmentFile=/etc/environment +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/snapd.socket b/snapd.socket new file mode 100644 index 00000000..64605992 --- /dev/null +++ b/snapd.socket @@ -0,0 +1,13 @@ +[Unit] +Description=Socket activation for snappy daemon + +[Socket] +ListenStream=/run/snapd.socket +ListenStream=/run/snapd-snap.socket +SocketMode=0666 +# these are the defaults, but can't hurt to specify them anyway: +SocketUser=root +SocketGroup=root + +[Install] +WantedBy=sockets.target diff --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/options b/source/options new file mode 100644 index 00000000..a8547ff5 --- /dev/null +++ b/source/options @@ -0,0 +1,2 @@ +single-debian-patch +include-removal diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 00000000..c32e6db3 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,10 @@ +## Autopkgtest + +In order to run the autopkgtest suite locally you need first to generate an image: + + $ adt-buildvm-ubuntu-cloud -a amd64 -r xenial -v + +This will create a `adt-xenial-amd64-cloud.img` file, then you can run the tests from +the project's root with: + + $ adt-run --unbuilt-tree . --- qemu ./adt-xenial-amd64-cloud.img diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..eb3540b2 --- /dev/null +++ b/tests/control @@ -0,0 +1,12 @@ +Tests: integrationtests +Restrictions: allow-stderr, isolation-container, rw-build-tree, needs-root, breaks-testbed +Depends: @builddeps@, + bzr, + ca-certificates, + git, + golang-golang-x-net-dev, + openssh-server, + snapd, + unity, + x11-utils, + xvfb diff --git a/tests/integrationtests b/tests/integrationtests new file mode 100644 index 00000000..635f5e8a --- /dev/null +++ b/tests/integrationtests @@ -0,0 +1,29 @@ +#!/bin/sh + +set -ex + +# required for the debian adt host +mkdir -p /etc/systemd/system/snapd.service.d/ +if [ "$http_proxy" != "" ]; then + cat <> /etc/environment + echo "https_proxy=$http_proxy" >> /etc/environment +fi +systemctl daemon-reload + +# ensure we can do a connect to localhost +echo ubuntu:ubuntu|chpasswd +sed -i 's/\(PermitRootLogin\|PasswordAuthentication\)\>.*/\1 yes/' /etc/ssh/sshd_config +systemctl reload sshd.service + +# and now run spread against localhost +. /etc/os-release +export GOPATH=/tmp/go +go get -u github.com/snapcore/spread/cmd/spread +/tmp/go/bin/spread -v autopkgtest:${ID}-${VERSION_ID}-$(dpkg --print-architecture) diff --git a/tests/testconfig.json b/tests/testconfig.json new file mode 100644 index 00000000..c1669d09 --- /dev/null +++ b/tests/testconfig.json @@ -0,0 +1,3 @@ +{ + "FromBranch": false +} diff --git a/ubuntu-core-launcher.install b/ubuntu-core-launcher.install new file mode 100644 index 00000000..3bf65c59 --- /dev/null +++ b/ubuntu-core-launcher.install @@ -0,0 +1,2 @@ +usr/bin/ubuntu-core-launcher +usr/share/man/man1/ubuntu-core-launcher.1 -- 2.30.2