From: Michael Hudson-Doyle Date: Tue, 24 Jan 2017 21:26:51 +0000 (+0000) Subject: Import snapd_2.21-2.debian.tar.xz X-Git-Tag: archive/raspbian/2.27.6-1+rpi1~1^2^2~1^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5cec9a37e1de2843d5e6125e43f3c3e8befc0085;p=snapd.git Import snapd_2.21-2.debian.tar.xz [dgit import tarball snapd 2.21-2 snapd_2.21-2.debian.tar.xz] --- 5cec9a37e1de2843d5e6125e43f3c3e8befc0085 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