Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
snapcore/snapd
3v1n0/snapd
4144/snapd
Acidburn0zzz/snapd
AlexxNica/snapd
CNXTEoEorg/snapd
CatWithApple0708/snapd
ColinIanKing/snapd
Conan-Kudo/snapd
Elleo/snapd
General-Beck/snappy
HenkBoshoff1/snapd
JamesLinus/snapd
JuanJ67m/snapd
Mega-Tr0n/snapd
NoiZeR355/snappy
PatMart/snapd
PraveenkumarDonga/snapd
ProgrammerAndHacker/snapd
RahmadaniBayuAji/snapd
Saviq/snapd
StetHD/snapd
ToyKeeper/snapd
absoludity/snapd
adglkh/snapd
afrantzis/snapd
aiken/snappy
ajpo-js/snapd
albaguirre/snapd
alecu/snappy
alex1818/snappy
alfonsosanchezbeato/snappy
amossu/snapd
apachelogger/snapd
apinter/snapd
arges/snapd
asac/snapd
asalminen/snapd
ashu2188/snapd
atomatt/snapd
axelebas/snapd
barkinet/snappy
bboozzoo/snapd
ben-romer/snapd
bergotorino/snapd
bestwpw/snapd
bogdanap/snapd
caio1982/snapd
caldav/snapd
camako/snapd
chadmiller/snappy
chenhan1218/snapd
chihchun/snapd
chipaca/snappy
chunsangjeong/snapd
cjwatson/snapd
claudioandre/snappy
clobrano/snapd
cmars/snapd
coreycb/snapd
cpaelzer/snapd
cprov/snapd
cschultz702/snapd
cwayne18/snapd
cyphermox/snapd
danklut/snapd
dholbach/snappy
diddledan/snapd
didrocks/snapd
digideskio/snapd
drizzt/snapd
dustinkirkland/snapd
dyllanzhou/snapd
ejfinneran/snapd
elopio/snapd
erihanse/snapd
eriknelson/snapd
eriksjolund/snapd
evandandrea/snapd
facundobatista/snapd
femdom/snapd
fgimenez/snappy
fkaleo/snapd
flexiondotorg/snapd
flysurfer28/snapd
gerboland/snapd
gjsman/snapd
gsherwin3/snapd
guoyu07/snapd
heber013/snapd
hodgesds/snapd
hurricanehrndz/snapd
hussamalbahadli/snapd
ikeydoherty/snapd
ioasis/snapd
jakop345/snapd
jamiedbennett/snapd
jaymell/snapd
jbentke/snapd
jdstrand/snapd
jessesung/snapd
jhenstridge/snapd
jhodapp/snapd
jibel/snapd
jocave/snapd
joedborg/snapd
josharenson/snapd
justincan/snapd
jwmatthews/snapd
kalikiana/snapd
kampsy/snappy
kenvandine/snapd
kerbyrok/snapd
kgunnfront/snapd
knitzsche/snapd
kubiko/snapd
kyrofa/snapd
lfaraone/snappy
liu-xiao-guo/snapd
lpotter/snapd
lszelejewski/snapd
luisriverag/snapd
luisulbaranleonTSCI/snapd
m-abdalrahman/snapd
mardy/snapd
markshuttle/snapd
matiasb/snappy
michihenning/snapd
mikix/snapd
morphis/snapd
mplee/snapd
musicguitar/snapd
mvo5/snappy
mwhudson/snapd
nessita/snappy
niedbalski/snapd
niemeyer/snapd
nottrobin/snapd
nuclearbob/snapd
oSoMoN/snapd
octodo/snapd
ogra1/snapd
panoptikon/snapd
pedronis/snappy
pete-woods/snapd
plars/snapd
pombredanne/snappy-1
praveenmunagapati/snapd
puppycodes/snapd
q0wOp/snapd
raharper/snapd
ralsina/snapd
renatofilho/snapd
rmescandon/snapd
robert-ancell/snapd
rowhit/snapd
sbaldassin/snapd
sbepstein/snapd
seb128/snapd
semafor/snapd
sergiocazzolato/snapd
sergiusens/snappy
shengyao/snappy
skbaum/snapd
slimjim777/snappy
sparkiegeek/snapd
squidsoup/snapd
srk9/snapd
ssweeny/snappy
stephenbhope/snapd
stevenwilkin/snappy
stgraber/snapd
stolowski/snapd
strukturag/snappy
stuartlangridge/snapd
studio666/snapd
ted-gould/snapd
thibran/snapd
tiagosh/snapd
tillkamppeter/snapd
timchen119/snapd
timjp87/snappy
tokurz/snapd
tonyespy/snapd
trenchmortar/snappy
tsdgeos/snapd
tych0/snapd
tyhicks/snapd
vorlonofportland/snappy
vosst/snapd
vrruiz/snapd
wgrant/snapd
wiccasoft/snapd
willdeberry/snapd
wjkennedy/snapd
woodrow-shen/snappy
xavi-garcia-mena/snapd
xaxadmin/snapd
xnox/snapd
zyga/snapd
Nothing to show
...
Choose a Head Repository
snapcore/snapd
3v1n0/snapd
4144/snapd
Acidburn0zzz/snapd
AlexxNica/snapd
CNXTEoEorg/snapd
CatWithApple0708/snapd
ColinIanKing/snapd
Conan-Kudo/snapd
Elleo/snapd
General-Beck/snappy
HenkBoshoff1/snapd
JamesLinus/snapd
JuanJ67m/snapd
Mega-Tr0n/snapd
NoiZeR355/snappy
PatMart/snapd
PraveenkumarDonga/snapd
ProgrammerAndHacker/snapd
RahmadaniBayuAji/snapd
Saviq/snapd
StetHD/snapd
ToyKeeper/snapd
absoludity/snapd
adglkh/snapd
afrantzis/snapd
aiken/snappy
ajpo-js/snapd
albaguirre/snapd
alecu/snappy
alex1818/snappy
alfonsosanchezbeato/snappy
amossu/snapd
apachelogger/snapd
apinter/snapd
arges/snapd
asac/snapd
asalminen/snapd
ashu2188/snapd
atomatt/snapd
axelebas/snapd
barkinet/snappy
bboozzoo/snapd
ben-romer/snapd
bergotorino/snapd
bestwpw/snapd
bogdanap/snapd
caio1982/snapd
caldav/snapd
camako/snapd
chadmiller/snappy
chenhan1218/snapd
chihchun/snapd
chipaca/snappy
chunsangjeong/snapd
cjwatson/snapd
claudioandre/snappy
clobrano/snapd
cmars/snapd
coreycb/snapd
cpaelzer/snapd
cprov/snapd
cschultz702/snapd
cwayne18/snapd
cyphermox/snapd
danklut/snapd
dholbach/snappy
diddledan/snapd
didrocks/snapd
digideskio/snapd
drizzt/snapd
dustinkirkland/snapd
dyllanzhou/snapd
ejfinneran/snapd
elopio/snapd
erihanse/snapd
eriknelson/snapd
eriksjolund/snapd
evandandrea/snapd
facundobatista/snapd
femdom/snapd
fgimenez/snappy
fkaleo/snapd
flexiondotorg/snapd
flysurfer28/snapd
gerboland/snapd
gjsman/snapd
gsherwin3/snapd
guoyu07/snapd
heber013/snapd
hodgesds/snapd
hurricanehrndz/snapd
hussamalbahadli/snapd
ikeydoherty/snapd
ioasis/snapd
jakop345/snapd
jamiedbennett/snapd
jaymell/snapd
jbentke/snapd
jdstrand/snapd
jessesung/snapd
jhenstridge/snapd
jhodapp/snapd
jibel/snapd
jocave/snapd
joedborg/snapd
josharenson/snapd
justincan/snapd
jwmatthews/snapd
kalikiana/snapd
kampsy/snappy
kenvandine/snapd
kerbyrok/snapd
kgunnfront/snapd
knitzsche/snapd
kubiko/snapd
kyrofa/snapd
lfaraone/snappy
liu-xiao-guo/snapd
lpotter/snapd
lszelejewski/snapd
luisriverag/snapd
luisulbaranleonTSCI/snapd
m-abdalrahman/snapd
mardy/snapd
markshuttle/snapd
matiasb/snappy
michihenning/snapd
mikix/snapd
morphis/snapd
mplee/snapd
musicguitar/snapd
mvo5/snappy
mwhudson/snapd
nessita/snappy
niedbalski/snapd
niemeyer/snapd
nottrobin/snapd
nuclearbob/snapd
oSoMoN/snapd
octodo/snapd
ogra1/snapd
panoptikon/snapd
pedronis/snappy
pete-woods/snapd
plars/snapd
pombredanne/snappy-1
praveenmunagapati/snapd
puppycodes/snapd
q0wOp/snapd
raharper/snapd
ralsina/snapd
renatofilho/snapd
rmescandon/snapd
robert-ancell/snapd
rowhit/snapd
sbaldassin/snapd
sbepstein/snapd
seb128/snapd
semafor/snapd
sergiocazzolato/snapd
sergiusens/snappy
shengyao/snappy
skbaum/snapd
slimjim777/snappy
sparkiegeek/snapd
squidsoup/snapd
srk9/snapd
ssweeny/snappy
stephenbhope/snapd
stevenwilkin/snappy
stgraber/snapd
stolowski/snapd
strukturag/snappy
stuartlangridge/snapd
studio666/snapd
ted-gould/snapd
thibran/snapd
tiagosh/snapd
tillkamppeter/snapd
timchen119/snapd
timjp87/snappy
tokurz/snapd
tonyespy/snapd
trenchmortar/snappy
tsdgeos/snapd
tych0/snapd
tyhicks/snapd
vorlonofportland/snappy
vosst/snapd
vrruiz/snapd
wgrant/snapd
wiccasoft/snapd
willdeberry/snapd
wjkennedy/snapd
woodrow-shen/snappy
xavi-garcia-mena/snapd
xaxadmin/snapd
xnox/snapd
zyga/snapd
Nothing to show
Choose a head branch
2.22-for-master
2.22.6-trusty
2.22.8-fixes
14.04-cleanup-ubuntu-core-launcher
14.04-feature/clean-rules-14.04
15.04
actually-retry
actually-run-snap-seccomp-tests-on-2.26
add-dcdbas-interface
add-frombranch-config-field
add-missing-notify-to-14.04
add-netlink-kobject-uevent-to-hardware-observe-2.27
add-netlink-kobject-uevent-to-hardware-observe-2.28
add-netlink-kobject-uevent-to-hardware-observe
add-netlink-kobject-uevent-to-kernel-module-control
add-squashfs-dep
alert-translators-about-desc-2.29
alex-store
all-in-one-pkg
archive-dislikes-symlinks
artful-kills
auto-asserts-prepare-image
auto-import-less-noisy
auto-import-only-from-vfat
backport-cups-control-fix-2.23
backport/2.26/fix-internal-tool-path
bad-query-error-kind
bases-from-the-store
bases-on-core
bionic-beaver
blow-cache-2.29
blow-cache
boot-config-core-support
bugfix-update-desktop-db-lp1597417
bugfix/HACKING.md
bugfix/activate-on-first-boot
bugfix/activate-snaps
bugfix/add-location-hdr
bugfix/add-migration-skill
bugfix/add-missing-breasks
bugfix/add-missing-gosexy-gettext
bugfix/add-s390
bugfix/add-snap-manpage
bugfix/add-systemd-escape-for-tests
bugfix/add-transitional
bugfix/adt-again
bugfix/agressive-find
bugfix/all-good-again
bugfix/all-snap-fixes
bugfix/all-snap-info
bugfix/arm64-missing-syscall
bugfix/armfixes
bugfix/armhf-tests
bugfix/assume-less
bugfix/autopkgtest-downgrades
bugfix/autopkgtest-ensure-sshd
bugfix/autopkgtest-fixes
bugfix/autopkgtest-home
bugfix/autopkgtest-in-release
bugfix/autopkgtest-no-snappy-list
bugfix/autopkgtest-proxy
bugfix/autopkgtest-regression
bugfix/autopkgtest-snapenv
bugfix/autopkgtest-yakkety
bugfix/autopkgtests-use-env
bugfix/autopkgtests
bugfix/bamf-file-hint
bugfix/bigger-timeouts
bugfix/bootenv-fixes
bugfix/bootvars
bugfix/bugfix/stop-sending-15.04-dev-framework
bugfix/build-fixes
bugfix/build-keep-ownership
bugfix/ca-certs
bugfix/clasic-sudo
bugfix/classic-bind-mounts
bugfix/classic-sudo
bugfix/clean-try-kernel-core
bugfix/cleanup-cruft
bugfix/cloud-init-fixes
bugfix/core-config-for-os-snap
bugfix/crash-less
bugfix/create-key-timeout
bugfix/create-user-fixes
bugfix/dbus-recv-from
bugfix/deal-with-sso-errors
bugfix/debian-build-deps
bugfix/disable-classic-for-now
bugfix/disable-config-for-now
bugfix/disable-prepare-image-on-autopkgtest
bugfix/do-error
bugfix/do-not-umount-if-not-mounted
bugfix/do-undo-link-sanity
bugfix/download-hash
bugfix/drop-kernel-yaml
bugfix/drop-xdelta-dep
bugfix/echo-is-evil
bugfix/enable-snap-run-test-on-i386
bugfix/ensure-core-for-sideloaded
bugfix/env-check-in-home-test
bugfix/exclude-testutils-on-ppc
bugfix/explicit-snap-reexec
bugfix/fail-in-update-current-symlink
bugfix/fake-store-revision
bugfix/fakestore-proxy
bugfix/fakestore-tests
bugfix/final-cleanup
bugfix/firstboot-crash
bugfix/firstboot-err
bugfix/fix-autopkgtest
bugfix/fix-booted
bugfix/fix-cap-install-crash
bugfix/fix-daemon-vet-issue
bugfix/fix-deps
bugfix/fix-deps2
bugfix/fix-double-copy
bugfix/fix-firstboot-assertions-test
bugfix/fix-ftbfs-int
bugfix/fix-ftbfs-logger
bugfix/fix-ftbfs
bugfix/fix-integration-tests-snap-yaml
bugfix/fix-integration-tests
bugfix/fix-make-installed-mock-snap
bugfix/fix-mountunit-target
bugfix/fix-origin-lp1534051
bugfix/fix-os-release-check
bugfix/fix-packaging
bugfix/fix-ppc
bugfix/fix-readme
bugfix/fix-remove
bugfix/fix-search-in-integration-tests
bugfix/fix-snapd.socket.d
bugfix/fix-spread-test-failure
bugfix/fix-systemd-dependency
bugfix/fix-systemd-unit-lp1588977
bugfix/fix-test-with-sso-token
bugfix/fix-tests
bugfix/fix-xdg-thanks-seb128
bugfix/force-dangerous
bugfix/force-force-managed-on-classic
bugfix/form-handling
bugfix/format-hacking.md
bugfix/ftbfs-1
bugfix/ftbfs-2
bugfix/ftbfs-3
bugfix/ftbfs-chown
bugfix/ftbfs-in-ppa
bugfix/ftbfs-no-syslog
bugfix/ftbfs-non-amd64
bugfix/ftbfs-on-non-amd64
bugfix/ftbfs-powerpc
bugfix/ftbfs-powerpc2
bugfix/ftbfs-tests
bugfix/ftbfs
bugfix/gadget-yaml-less-details
bugfix/gccgo-6-ftbfs
bugfix/gnupg2
bugfix/go-flags
bugfix/golang-dep-on-powerpc
bugfix/grub-silly-me
bugfix/guess-less
bugfix/hacking.md-fix
bugfix/hello-world-echo-is-gone
bugfix/help-me
bugfix/help-output
bugfix/higher-version
bugfix/https-proxy
bugfix/improve-snapd-form-error
bugfix/init-reace
bugfix/init-snap-mode
bugfix/integration-tests-home-autoconnect
bugfix/integration-tests-improve-error-reporting
bugfix/integration
bugfix/interface-docs-lp1570621
bugfix/keep-state-harder
bugfix/leave-no-cores
bugfix/less-cruft
bugfix/less-dependencies
bugfix/less-limits
bugfix/libvirt-no-auto-connect
bugfix/loop-breakage
bugfix/lp1480248-test-reenable
bugfix/lp1488114-import-msg
bugfix/lp1515709-socket-terms
bugfix/lp1530826-needs-root
bugfix/lp1595558-sudo-secure-path
bugfix/man-fix-lp1570280
bugfix/maybe-fix-adt
bugfix/meeh-fix-trunk
bugfix/missing-dirs
bugfix/missing-err-handling-download-2.18.1
bugfix/missing-err-handling-download
bugfix/missing-hacking-doc
bugfix/missing-home
bugfix/missing-is-mount-test
bugfix/missing-sizes
bugfix/missing-user-data-for-services
bugfix/mkversions
bugfix/more-adt
bugfix/more-aggressive-dch
bugfix/more-context
bugfix/more-ftbfs
bugfix/more-useful-refresh-all-summary
bugfix/mount-busy-lp1589006
bugfix/network-client
bugfix/nice-error-lp1574829
bugfix/no-absolute-path
bugfix/no-absolute-udevadm-path
bugfix/no-assert-auto-import-on-classic
bugfix/no-auto-import-from-loop-non-dev
bugfix/no-cp-a-on-vfat
bugfix/no-crash
bugfix/no-destory-the-world-if-classic-fails
bugfix/no-disable-special
bugfix/no-error-if-already-installed
bugfix/no-export-snappydir
bugfix/no-firstboot-on-classic-for-now
bugfix/no-global-channel
bugfix/no-more-ab-partition
bugfix/no-more-autoconnect
bugfix/no-more-boot-ok
bugfix/no-more-clickdeb-minimal
bugfix/no-more-clickdeb
bugfix/no-more-grub-migrate
bugfix/no-more-hello-world-in-spread
bugfix/no-more-old-security-only
bugfix/no-more-si
bugfix/no-more-type-core
bugfix/no-more-ubuntu-core-launcher
bugfix/no-more-uenv.txt
bugfix/no-next-boot-to-the-same-thing
bugfix/no-next-boot-to-the-same-thing2
bugfix/no-one-left-behind
bugfix/no-ppa-in-tests
bugfix/no-profanities
bugfix/no-snappypkg-user
bugfix/not-dangerous
bugfix/oauth-quote
bugfix/obey-the-commander
bugfix/oem-compat
bugfix/old-security-unbreak
bugfix/only-reboot-when-needed
bugfix/op-output-lp1574830
bugfix/packaging-fixes
bugfix/packaging
bugfix/panic-less-in-priv-mutex
bugfix/partial-user-downloads
bugfix/partial-user-downloads2
bugfix/patch4
bugfix/pkgname
bugfix/prepare-image-ordering
bugfix/progress-adapter
bugfix/progress-finish
bugfix/progress-fixes
bugfix/progress-less-chatty
bugfix/proxy-env-in-tests
bugfix/prune-ticker
bugfix/purge-purges
bugfix/re-add-missing-tests
bugfix/re-enable-failover-tests
bugfix/real-pbuilder-user
bugfix/real-root-user
bugfix/really-real-name
bugfix/really-rename
bugfix/reenable-more-rollback
bugfix/reenable-ppc64el
bugfix/reenable-some-tests
bugfix/refresh-all-crash-master
bugfix/refresh-all-crash
bugfix/refresh-all-single-update-crash
bugfix/refresh-errors
bugfix/refresh-spread-lp1537793
bugfix/refresh-undo-kills-security
bugfix/refresh-undo-retry
bugfix/regression-home-snap-root-owned
bugfix/remove-hacks-in-failover-tests
bugfix/remove-image-ppa
bugfix/remove-non-existing
bugfix/remove-non-existing2
bugfix/remove-ports
bugfix/remove-silly-dir
bugfix/remove-snap-confine-in-restore
bugfix/remove-snap-confine-workaround
bugfix/remove-snappy-conflict
bugfix/remove-snappy-pot
bugfix/remove-store-icon-download
bugfix/restore-upgrade-symlinks
bugfix/review-tools-reenable
bugfix/rm-grub-cfg
bugfix/security-grep-thing
bugfix/security.md-update
bugfix/series-test-fixes
bugfix/silly-mixup
bugfix/silly-restore-bug
bugfix/silly-typo
bugfix/single-boot-set
bugfix/skip-i18n-test-when-needed
bugfix/skip-ptmx-tests-on-ppc64el
bugfix/skip-pty-tests-on-some-arches
bugfix/skip-ram
bugfix/skip-some-tests-non-mainstream-arches
bugfix/skip-tests-when-expect-is-broken
bugfix/skip-unity7-test-for-non-amd64
bugfix/snap-auto-import-dir
bugfix/snap-confine-dependency
bugfix/snap-confine-proposed
bugfix/snap-exec-args-off-by-one
bugfix/snap-exec-args
bugfix/snap-exec-args2
bugfix/snap-exec-args3
bugfix/snap-exec-internal-args
bugfix/snap-exec-tests
bugfix/snap-info-real-channel-tracking
bugfix/snap-install-error-msg
bugfix/snap-library-path
bugfix/snap-run-do-not-talk-to-snapd
bugfix/snap-run-fixes
bugfix/snap-run-shell
bugfix/snap-run-symlink-check
bugfix/snap-setup-state
bugfix/snap-try-installs-missing-core
bugfix/snap-try-relative
bugfix/snap-version-unknown
bugfix/snap-yaml-lp1552005
bugfix/snapctl-no-auth-spread
bugfix/snapctl-no-auth
bugfix/snapd-debug
bugfix/snapd-http-debug
bugfix/snapd-reexec-tests
bugfix/snapd-rename
bugfix/snapd-to-lib
bugfix/snappy-16
bugfix/snappy-post-update-list-output-all-snaps
bugfix/spread-17.04
bugfix/spread-ack-test
bugfix/spread-adhoc
bugfix/spread-all-snap-sync
bugfix/spread-in-adt
bugfix/spread-snap-run-hook-fix
bugfix/spread-snap-run-hook-fix2
bugfix/spread-tests-new-core
bugfix/spread-workaround-missing-asserts-dir
bugfix/squashfs-dependency
bugfix/sru-concerns
bugfix/sso-password-prompt
bugfix/state-handling
bugfix/state-panic-race
bugfix/stop-being-messy
bugfix/stop-mount-on-install-failure
bugfix/store-is-unhappy
bugfix/sync-boot
bugfix/system-observe-ps_mem
bugfix/systemd-enable
bugfix/test-failure
bugfix/test-fixes-2.18.1
bugfix/test-stop-non-existing-service
bugfix/token-unit-tests
bugfix/travis-go-tip
bugfix/trivial-docs-fix
bugfix/trivial-prepare
bugfix/trivial-test-snapd-fuse-consumer
bugfix/type-notify
bugfix/typo-lp1569892
bugfix/udev-rules
bugfix/umask-test-failure
bugfix/umount-failure
bugfix/unbound-changes
bugfix/unbreak-master
bugfix/unbreak-snap-install
bugfix/undo-logging
bugfix/unity-whitelist
bugfix/unknown-version
bugfix/update-build-depends
bugfix/update-current-symlink-on-boot
bugfix/uptodate
bugfix/url-helper-confinement
bugfix/use-build-snap-confine-on-all-snaps
bugfix/use-type-info
bugfix/use-update-debian-build-deps
bugfix/we-hit-pagination
bugfix/xdg-desktop-dir-lp1575014
bugfix/yoda
bugfix/15.04-ftbfs
bugfix/15.04-mask-autopilot
bugfix/15.04-masked-units
bugfix/15.04-unpack-symlink-handling
bugfix/15.04-wait-for-network-timeout
build-id-2.22
build-id-in-errtracker
build-static-snap-seccomp
built-using-cleanup
built-using-unify
cache-downloads
cached-repository
capture-payed
catalog-refresh
cataloge-spam
catlog-refresh
changelog-typo-fix-2.29
changes-needed
changes-needed2
channels-2.0-info
channels-2.0-shortcuts
chattr-s
check-changes-conflict
check-refresh-schedule
chroot-interface
classic-confinement-error-and-symlink-workaround
clean-your-root
cleanup-broken-nvidia-2.28
cleanup-broken-nvidia
cleanup-macro
cleanup-ubuntu-core-launcher
cleanup/binary-sizesize
cmd-get-tweaks
command-not-found-symlink
command-with-vars
completion-etc-profile-d
confighardcore
configstate-ignore-hook-error
configstate-kill-runner
configure-hook-proxy
configure-hook
configure-snapd-dummy
content-attr-2.23
content-defaults
core-fixup-sync
core-fixup
core-revert-restart-no-integration
core-revert-restarts
core-snapshot-fix
coveralls
coverity-fixes
dbus-backend-userd-service-fix
debian-apparmor-workaround
debian-description-improvements
debug-upgrade-core-failures
default-plugin-provider
delta-refresh-test
demote-gnupg-only
demote-gnupg
depair-and-unblock-configure-hook-on-core
desktop-file-info
despair/disable-autopkgtest-on-ppc64el
detect-invalid-udev
diag-mtr
disable-classic-ubuntu-core-transition-2.29
disable-configure-hook-later
disable-core-transition-test-on-ppc64el
disable-disable-autorefresh
disable-docker-for-now
disable-fedora
disable-ipv6-on-core-too
disable-opensuse-2.28
disablle-xdg-compat-for-now
do-not-resume-completed-downloads-2.27
dont-fail-connection-on-module-load
download-not-again
download-retry-hash-test
econnreset-flaky
econnreset
embedded-libseccomp
emergency-skeleton-2
emergency-skeleton
emergency-systemd-timer
empty-base
empty-doc-on-no-config-tweaks
empty-keys-no-header
empty-snap-run
enable-docker-test
ensure-before
ensure-core-in-snapstate-with-bases
ensure-core-in-snapstate
ensure-core-support-is-transitioned
ensure-snaps-set-works-after-core-transition
errtracker-fix-tstamps
errtracker-honor-tests
errtracker-include-kernel-2.22
errtracker-include-transition-details
errtracker-snap-confine
errtracker-tweaks
experimental-strace
explicit-use-of-snapd-sockets-2.23
explicit-use-of-snapd-sockets
f/base-snaps
f/micro-optimization
f/pull-request-template
f/seccomp-resolver
fail-early-in-container
fail-fail-fail-sergio
fail-on-unused
fakestore-new-snap-decl
feature/CreateUserOnClassic2
feature/a-bit-of-transactions
feature/abitlessrandom
feature/add-broken-state
feature/add-desktop-file-snap-integration-test
feature/add-snap-booted
feature/add-yakkety-qemu-spread-host
feature/adding-macaroon-package-dep
feature/adding-macaroon-package
feature/all-snap-reboot-required-refactor
feature/all-snap-reboot-required
feature/all-tests-gpg2
feature/allow-broken-removal
feature/apport-style-errors
feature/apps
feature/arch-pkg
feature/arm64-crossbuild
feature/auth-integration-test
feature/auto-add-ubuntu-core
feature/auto-connect-short-until-we-have-assertions
feature/auto-create-users
feature/auto-install-ubuntu-core
feature/auto-reboot
feature/autopkgtest-for-docker
feature/autopkgtests-via-spread
feature/badges
feature/bind-security-backend
feature/bootconf
feature/bootconfig
feature/bootconfig2
feature/bootenv-test
feature/bootloader-bootsuccess-all-snaps
feature/bootloader-bootsuccess
feature/bootloader-global-rootdir
feature/bootloader-set-bootvar
feature/bootloader-set-bootvar2
feature/capability-interfaces
feature/cert-pin
feature/change-progress
feature/change-progress2
feature/change-progress3
feature/channel-cmdline
feature/classic-confine-test
feature/classic-dimension-interface
feature/classic-dimension-ui
feature/classic-dimension
feature/classic-test
feature/clean-rules-14.04
feature/cleanup-snap
feature/cloud-init
feature/content-auto-connect
feature/content-backend
feature/content-interface
feature/content-plug-default-provider
feature/coveralls
feature/create-user-auth-json
feature/create-user-rest-doc
feature/create-user-ssh-key-changes
feature/daemon-progress
feature/dbus-activatable
feature/dbus-session-services
feature/dbus-session-services2
feature/desktop-files-again
feature/desktop-files
feature/do-not-set-working-directory
feature/env-map
feature/expand-env
feature/extract-into-more-pkgs1
feature/first-boot-sync-state
feature/firstboot-assertions
feature/firstboot-classic
feature/firstboot-devmode
feature/firstboot-seed-yaml
feature/firstboot
feature/friddin-email
feature/gadget.yaml
feature/generate-desktop-file
feature/git-buildpackage
feature/gofmt-s-test
feature/goreportcard
feature/heurisitic-remove
feature/hw-assign-symlink
feature/i18n-core-lookup
feature/improve-help
feature/improve-out-of-time-err-msg
feature/improve-reexec-debug
feature/improve-retry-logging
feature/ineffassign
feature/install-refresh-ui
feature/install-ui-tweaks
feature/integration-test-for-store-regression
feature/internal-refresh-schedule-info
feature/internal-refresh-schedule
feature/internal-refresh-uses-config
feature/internal-refresh
feature/is-managed
feature/its-the-gadget
feature/kernel-assets-removal
feature/kernel-os-no-remove-active
feature/kernel-os-type
feature/last-updated-info
feature/lazy-umount
feature/less-in-debian-dir
feature/libgl-dir
feature/lock-ness
feature/mini-snapmgr
feature/minimal-logging
feature/more-create-key-debug
feature/more-help-for-rick
feature/more-logging
feature/more-logging2
feature/more-multi-ops
feature/more-snap-integration-tests
feature/more-tests-output
feature/more-travis-ci
feature/more-trusty-support
feature/mount-snaps
feature/native-grubenv
feature/native-security-policygen-add-hwaccess
feature/native-security-policygen-compare
feature/native-security-policygen-regen-shaving-the-yak
feature/native-security-policygen-regen-warn
feature/native-security-policygen-regen
feature/native-security-policygen
feature/new-boot-logic
feature/new-i18n
feature/no-more-firstboot
feature/no-unpack-kernel-for-grub
feature/nothing
feature/packaging-branches
feature/partial-files-not-partial-dir
feature/per-app-envmap
feature/prepare-for-snapmgr
feature/prepare-for-snapmgr2
feature/prepare-for-snapmgr3
feature/prepare-image-assertions
feature/prepare-image-assertions2
feature/prepare-image-by-assertion
feature/prepare-image-devmode
feature/progress
feature/provisioning
feature/re-exec-snap-confine
feature/re-exec-test-harder
feature/re-exec
feature/real-content-sharing-test
feature/real-model-assertion
feature/reboot-simplify
feature/reenable-installApp_test
feature/reenable-some-failure-tests
feature/refresh-all
feature/refresh-list-tweaks
feature/refresh-to-local
feature/remove-click-hooks-support
feature/remove-snap-build
feature/rename-to-snapd
feature/rename-to-squashfs
feature/rollback
feature/rollback2
feature/run-snap-confine-tests
feature/screenshots-in-client
feature/security-backend-bind
feature/selective-update
feature/send-apps-via-rest-api
feature/short-binary-names
feature/short-envs
feature/show-support-info
feature/simple-health-checks
feature/simple-state-backend
feature/simpler-docs
feature/simplistic-format-descr
feature/slash-and-burn
feature/slots-plugs-yay-plugs-slots
feature/snap-ack-udev-for-real
feature/snap-ack-udev
feature/snap-bin-path
feature/snap-bootstrap-no-root
feature/snap-bootstrap
feature/snap-change-task-progress
feature/snap-classic
feature/snap-confine-from-core
feature/snap-confine-from-core2
feature/snap-create-user
feature/snap-download-assertion
feature/snap-download-assertions
feature/snap-download-lp1584590
feature/snap-download
feature/snap-download2
feature/snap-enable-disable
feature/snap-exec
feature/snap-first-boot
feature/snap-help
feature/snap-info-apps
feature/snap-info-more
feature/snap-info-price
feature/snap-info-shoter-tests
feature/snap-internal
feature/snap-known-store
feature/snap-list-channels
feature/snap-list-v
feature/snap-login
feature/snap-progress-lp1584590
feature/snap-refresh-different-channels-lp1594330
feature/snap-run-debug
feature/snap-run-hooks
feature/snap-run
feature/snap-run2
feature/snap-run2.1
feature/snap-run2.2
feature/snap-run3
feature/snap-shell
feature/snap-sideload
feature/snap-sign
feature/snap-switch
feature/snap-try-err
feature/snap-try
feature/snap-yaml-refactor-type
feature/snap-yaml-refactor-type2
feature/snap-yaml
feature/snap-yaml2
feature/snap-yaml3
feature/snapbindir
feature/snapfs-boot-ok
feature/snapfs-cleanup-kernel-assets
feature/snapfs-disallow-removal
feature/snapfs-fix-os-image-build
feature/snapfs-fix-review-comments
feature/snapfs-import-systemd-escape
feature/snapfs-mount
feature/snapfs-mount2
feature/snapfs-mount3
feature/snapfs-mount4
feature/snapfs-mount5
feature/snapfs-mount6
feature/snapfs-needs-reboot
feature/snapfs-os-kernel
feature/snapfs-refactor-snappy-file-interface
feature/snapfs-refactor
feature/snapfs-refactor2
feature/snapmgr-do-stuff
feature/snapmgr-do-stuff2
feature/snapmgr-in-daemon-progress
feature/snapmgr-in-daemon
feature/snapmgr-more-tasks
feature/snapmgr-more-tasks2
feature/snapmgr
feature/snapmgr2
feature/snapmgr3
feature/some-gc
feature/spool-assertions
feature/spread-all-snap-image-tests
feature/spread-all-snap-image-tests2
feature/spread-all-snap-ubuntu-core-upgrade
feature/spread-all-snap-upgrade-broken
feature/spread-classic-tests
feature/spread-classic-tests2
feature/spread-gccgo-build
feature/spread-qemu
feature/spread-reuse-fixes
feature/spread-snap-auto-import
feature/spread-snap-auto-mount-import
feature/spread-tests-porting-done-remove-integration
feature/spread-tests-porting
feature/start-snap-services-task
feature/state-access-from-task-change
feature/state-task-err
feature/statemanager-wait
feature/stop-update-po-nagging
feature/store-revision
feature/switch-channel-on-refresh
feature/sync-boot
feature/system-user-all-known
feature/system-user-assertion
feature/system-user-force-managed
feature/system-users-part-of-sysinfo
feature/systemd-user-session
feature/talk-more
feature/task-update
feature/task-wait-for-wait-tasks
feature/taskrunner
feature/tasks-descr
feature/test-core-ahead
feature/timeutil
feature/try-notes
feature/ubuntu-core-transition
feature/unblock-zyga
feature/uninstall-tasks
feature/update-godeps
feature/update-graceful
feature/use-debug
feature/use-in-tree-snap-exec
feature/use-lanes
feature/use-range-requests
feature/use-range-requests2
feature/use-symlinks-instead-of-wrappers
feature/use-system-user-assertion
feature/use-ubuntu-image
feature/vendor
feature/wait-for-change
feature/wire-protocol
feature/xdelta-from-core
feature/14.04-qemu
feature/1586465/snap-exec_hook-mvo
fedora-base
fedora-novendor-2.28
find-more
fix-adt-tests-with-stable-core-2.24
fix-adt-tests-with-stable-core
fix-alice
fix-arm64-syscalls
fix-armhf
fix-autopkgtests
fix-bare-base-on-reexec
fix-caching
fix-catalog-update-test
fix-classic-confinement-2.26
fix-cups-2.5
fix-debian-rules-clean
fix-devicestate-test
fix-did-reexec-on-classic
fix-double-close
fix-double-expand
fix-econnreset-2.26
fix-errtracker-reexec
fix-external-tests-that-need-debug-output
fix-fake-store-going-wild
fix-ftbfs-on-powerpc
fix-ftbfs-powerpc
fix-ftbfs-sbuild
fix-incorrect-exec-lines
fix-internal-tool-path
fix-leftover-aa-snap-confine-profile-2.24
fix-link-pull-request-template
fix-linux-gallium
fix-listing-harder
fix-listing-test-master
fix-listing-test
fix-listing
fix-master-debian
fix-master-snap-repair
fix-master
fix-missing-close-in-test-status-happy
fix-must-unsetenv-docs
fix-powerpc-ftbfs-2.29
fix-powerpc-ftbfs
fix-ppc64el-autopkgtest-failure
fix-reexec-from-2.21
fix-repair-tests-as-root
fix-replaces-2.28
fix-seccomp-arm64
fix-seccomp-tests-on-arttful
fix-seccomp-tests-on-arttful2
fix-snap-reexec-tests
fix-strict-cgroup-tests-on-pi
fix-tests-for-go1.8
fix-vendor-json
fix-xdg-compat
fix/clasic-schizofrenia-bug
fix/golang-1.9-2.28
fix/http-powerbtn-unset
fix/http-proxy
fix/updateKeyValueStream
fixes-go-vet-1.7
flock-non-locking
flock
fold-network-bind-into-core-support-with-tests
foreach-lesseach
from-bzr/expose-bug1498293-boot-try
from-bzr/integration-fix-rollback
from-bzr/integration-tests-verbosity-flag
from-bzr/result_on_error
from-bzr/snappy-security-cleanup
fuse-support-test
gadget-connect
gccgo-unused-fix
generalize-used
gitignore-less
gl32-for-the-rescue
go-fakestore-go-flags
go-vet-zesty
grubs-1-2-3
handle-readme
hardcode-nvidia-devices-in-the-cgroup-2.28
hash-error-mesh-error
hidden-ensure-command
hook-attrs-refactor
hook-time-limit-and-errtracker
hook-time-limit
hook-timeout-and-errtracker-2.23
hotfix-s390x-powerpc
hotfix/fix-master
hotfix/15.04-systemd-enable
hsearch-fail-in-error-msg
i18n-for-real
i18n-from-client
i18n-plus-test
ignore-configure-hooks-failures-from-core-refreshes
improve-snap-refresh-msg
improve-strutil-version-compare
include-chg-summary-in-errreport
increase-snap-confine-timeout-in-tests-2.29
increase-warn-timeout
intercept-core-config
interfaces-snapd-control-with-manage-robustness
into-containers
kill-net-bpf
leave-a-message
less-confusing-snap-confine-error
less-negative
less-noise
limit-ubuntu-core-transition-attempts
list-unit-files-full-2.23
list-unit-files-full
livepatch-test
log-check-apparmor-support
lp-1665787
lp-1669291-regression
lp-1676707
lp-1688720-snap-ops
lp-1688720
lp-1689577
lp-1705489
lp-1740605
lp-1741294
lxd-interface-test
lxd-on-core
lxd-regression-test-2.29
lxd-regression-test
lxd-regression-test2
lxd-sgid
lxd-support
lxd-test
many-errors
master
merge-2.23.1-to-master
merge-2.23.6
metadata-from-asserts-for-image-snaps
mint-18-is-fine
mis-feature/no-more-snapd.socket
mock-journalctl
mock-machine-id
mock-systemd
model-assertion-no-refresh
modernize-snap-exec-tests
modernize-squashfs
more-const
more-core-support
more-debug-classic-ubuntu-core-transition-2.29
more-debug-on-core-transition-test
more-logging
more-opensuse
more-polkit
more-sc-map-reverts
more-tidy-less-noise
more-time-for-slow-machines
more-workers
mpris-updates
multi-volume-gagdget-yaml
naive-strace
network-manager-nmcli
new-change-everywhere
new-packaging
new-style-content
nicer-delta-names
nmcli-regression-test
no-can-i-haz
no-include-2.29
no-more-ubuntu-core
no-nmcli-on-arm
no-no-dev
no-pie-for-everyone
no-pie-on-i386-2.27
no-pie-on-i386
no-proxy
no-services-no-logs-2.29
no-systemctl-on-trusty
not-in-my-watch
not-nice-2.27
not-nice-master
not-too-quiet
nudge-poor-apt
nvidia-gl32-vulkan
nvidia-modeset
origin/bugfix/partial-user-downloads2
origin/emergency-skeleton-2
origin/feature/native-security-policygen-regen-shaving-the-yak2
pam_env-limits
partial-apparmor-still-needs-snapd-profile
partically-exmained-apparmor
password-manager-service
prepare-image-local-assertions
proc-partitions-for-system-observe
profile-d-2.27
profile-digest
quote-unquote
r2.26.8
re-exec-2.27
re-generate-apparmor-on-startup
readme-fix
refactor-ifstate
refactor/add-cleanup
refactor/add-missing-link-tests
refactor/add-overlord-install
refactor/add-overlord-meter-cb
refactor/add-overlord-remove
refactor/add-overlord
refactor/all-snaps-integration-tests
refactor/bootloader-cleanup
refactor/classic-mode-sprint-fixes
refactor/classic-mode-sprint-fixes2
refactor/click-cleanup
refactor/create-user-tests-tweaks
refactor/current-current-side-info
refactor/current-current-side-info2
refactor/current-info
refactor/current-pointer
refactor/disable-now
refactor/disable-snap-ops
refactor/drop-skip-copy-unverified-model
refactor/fix-snapflags-name
refactor/help-the-helpers
refactor/help-the-helpers2
refactor/icon-meta-gui
refactor/improve-snap-run-symlink-tests
refactor/integration-tests-cleanup
refactor/kill-hashes-yaml
refactor/kill-local-repo
refactor/less-cleanup-in-buildtest
refactor/less-gadget
refactor/local-snap-info-returns-snapstate
refactor/lsb-release
refactor/lsb-release2
refactor/merge-boot-devicemgr
refactor/merge-boot-devicemgr2
refactor/mock-exec
refactor/moreboot-cleanup
refactor/new-kernel
refactor/new-kernel2
refactor/new-kernel3
refactor/new-kernel4
refactor/no-more-active
refactor/no-more-candidate
refactor/no-more-frameworks
refactor/no-more-install-on-part-if
refactor/no-parts
refactor/no-parts2
refactor/no-parts3
refactor/no-parts4
refactor/no-parts5
refactor/no-parts6
refactor/no-parts7
refactor/offical-name-rename
refactor/patch1-robustness
refactor/pkg-info-license
refactor/pkg-info
refactor/pkg-info2
refactor/pkgfile
refactor/post-create-user-suite
refactor/provisioning-cleanup
refactor/real-name
refactor/remote-snap-rm
refactor/remove-classic
refactor/remove-client-revision
refactor/remove-cmd-snappy
refactor/remove-config-from-parts-interface
refactor/remove-dead-code
refactor/remove-details-from-repo
refactor/remove-frameworks
refactor/remove-integration-test-hwassign
refactor/remove-meta-repositories
refactor/remove-set-active-from-parts-if
refactor/remove-unused-experimental
refactor/remove-workarounds
refactor/rename-base-dir
refactor/rename-dirs
refactor/rename-origin
refactor/rename-snap-part
refactor/rename-ss
refactor/security-systems
refactor/set-root-dir
refactor/sideloaded-revisions
refactor/sideloaded-revisions2
refactor/snap-file-next
refactor/snap-file-next2
refactor/snap-file-next3
refactor/snap-file-next4
refactor/snap-file-next5
refactor/snap-file
refactor/snap-file2
refactor/snap-info-fixes2
refactor/snapenv-cleanup
refactor/snaps-no-apps
refactor/snaps
refactor/snaps2
refactor/snapstate-get
refactor/sys-unix
refactor/unexport-snappy-install
refactor/use-daemon
refresh-candidates-managed
refresh-control-managed-refactor
refresh-control-managed-refresh
refresh-control-managed-with-test
refresh-control-managed
refresh-hints
refresh-managed-refacor
refresh-schedule-attr
refresh-schedule-refactor
refresh-to-store-rev
release-2.22.3
release-2.24
release-2.25
release-2.26.3
release-2.26.4
release-2.26.9
release-2.26.14
release-2.27
release-2.27.1
release-2.27.2
release-2.27.3
release-2.27.4
release-2.27.5
release-2.27.6
release-2.28
release-2.28.1
release-2.28.2
release-2.28.3
release-2.28.4
release-2.28.5
release-2.29-rc1
release-2.29-rc2
release-2.29
release-2.29.1
release-2.29.2
release-2.29.3
release-2.29.4
release-2.30-rc1
release-2.30.rc2
release-2.30.rc3
release-2.30
release-info-2.28
release-os-detection
release/2.22.2
release/2.26
release/2.26.2
releases/2.15.3
remount-snap-shared
remove-docker-workaround
remove-test-interfaces-help-master
remove-test-interfaces-help
remove-weekday-schedule
rename-complexion
rename/snapstate-snapst
repair-run-skel-with-run
restart-lifecycle
restore-rest-api-fields
retry-based-on-time
retry-logs
retry-on-502
retry-once-on-hashsum-mismatch
revert-8b87ee-2.29
revert-82311cfd14
revert-devmode-log-msg
revert-scmp-cmp-masked-eq
revert-snapstate-core-configure-hack-2.23
revert-snapstate-core-configure-hack
review-feedback-2997
rework-reexec-detection
run-snap-repair-only-on-core
run-wait-for-profiles
runtime-detect-forced-devmode-2.22
runtime-detect-forced-devmode
s390x-autopkgtest
s390x-ftw
sd-notify
seccomp-bpf-2.26
seccomp-bpf-bring-back-argument-filtering
seccomp-bpf-more-tests
seccomp-bpf
seccomp-secondary-arch-integration-test
seccomp-unconfined-2.29
seccomp-unconfined
seccomp-v2
secondary-arch-gcc
service-disable-harder
set-snapd-debug-in-core
shellcheck-zesty
silly-14.04
skip-some-seccomp-on-trusty
slow-journalctl
slow-slow-arm-powerpc
snap-advice-command
snap-advise-snap-rename
snap-advise-snap
snap-cmd-from-core-2.23
snap-confine-apparmor-parser
snap-confine-classic-check
snap-confine-init-buffers
snap-confine-remove-conffile
snap-confine-wrap
snap-list-exit-code
snap-mgmt-test
snap-ms-shared-lp1668659
snap-pack
snap-repair-done-with-repair-binary
snap-repair-done
snap-repair-list-with-summary
snap-repair-list
snap-repair-passthrough
snap-seccomp-from-core-with-libs
snap-seccomp-is-atomic
snap-seccomp-write-atomic
snap-userd-upstart
snap-yaml
snapd-configure-in-hookstate
snapd-notify-snap-confine
snapd-notify
snapd-snap-repair-service
snapfuse-2
snapfuse
snapmgr-autorefresh-refactor
spread-content-interface
spread-cups-control
spread-test-for-environ
stderr-stdout-stdftw
sync-for-core-support
system-key-build-stamp
system-key-conditional-rewrites
system-key-snap-run
system-key
systemd-mask-unmask
systemd-reload-tests
targeted-snap-ignore
techdebt/pbar
techdebt/quoted-names
test-bash-completion-on-core
test-fixes-2.23
test-fixes-really-2.23
test-for-core-services
test-fragility-tweaks-2.28
test-kernel-revert-on-core
test-lp1681739
test-more-revert
test-revert-on-core
test-robustness
test-update-for-core-support-only-core
test-xdg-open-compat
tests/classic-confinement-tests
tests/disable-ipv6-harder
tests/disable-ppc64-el-on-y-z
tests/flaky-tests
tests/os-release-test
tests/refresh-undo
tests/upgrade-os-no-gc
timedatectl-2.26
transactions-pkg
travis-fail-fast
trivial/remove-ubuntu-codename
trusty-skip-socketcall-tests
trusty-test-failure
trusty-unittests
try-again-2.22
tweak-set-proxy-store-test
two-keys-for-trusty-2.28
two-keys-for-trusty
ubootenv-dirsync
ubuntu-14.04-rules
ubuntu-image-now-needs-classic-confinement
ubuntu/16.04
unbreak-master
unit-testing-ftw
unrestricted-on-all-arches-master
unrestricted-on-all-arches
unset-link-errors
update-breaks-replaces
use-base
use-beta-u-d-f
use-built-using
use-netplan
use-old-golang.org/x/crypto/ssh/terminal
use-real-vendor-gettext
use-right-snap
user-agent-accross-redirects-2.22
userd-ui
userid-in-state
vet-fix
vulkan-support
we-need-isolation-machine
we-need-udev
work-more
workaround/bad-store
wrap-and-sort
xdg-open-2.27
xdg-open-for-real
xdg-open-test
xdg-open
xdg-settings
zygas-suse-autogen
Nothing to show
Checking mergeability… Don’t worry, you can still create the pull request.
  • 13 commits
  • 6 files changed
  • 0 commit comments
  • 1 contributor
Commits on Feb 07, 2017
Commits on Feb 08, 2017
Commits on Feb 09, 2017
Commits on Feb 10, 2017
Commits on Feb 14, 2017
Commits on Feb 15, 2017
Commits on Feb 23, 2017
Showing with 265 additions and 84 deletions.
  1. +3 −78 cmd/cmd.go
  2. +18 −2 cmd/snap/cmd_run.go
  3. +6 −0 dirs/dirs.go
  4. +112 −0 overlord/snapstate/snapmgr.go
  5. +113 −0 reexec/reexec.go
  6. +13 −4 tests/main/security-setuid-root/task.yaml
View
@@ -20,101 +20,26 @@
package cmd
import (
- "io/ioutil"
"os"
- "path/filepath"
- "regexp"
"syscall"
"github.com/snapcore/snapd/logger"
"github.com/snapcore/snapd/osutil"
- "github.com/snapcore/snapd/release"
- "github.com/snapcore/snapd/strutil"
+ "github.com/snapcore/snapd/reexec"
)
-// The SNAP_REEXEC environment variable controls whether the command
-// will attempt to re-exec itself from inside an ubuntu-core snap
-// present on the system. If not present in the environ it's assumed
-// to be set to 1 (do re-exec); that is: set it to 0 to disable.
-const key = "SNAP_REEXEC"
-
-// newCore is the place to look for the core snap; everything in this
-// location will be new enough to re-exec into.
-const newCore = "/snap/core/current"
-
-// oldCore is the previous location of the core snap. Only things
-// newer than minOldRevno will be ok to re-exec into.
-const oldCore = "/snap/ubuntu-core/current"
-
// ExecInCoreSnap makes sure you're executing the binary that ships in
// the core snap.
func ExecInCoreSnap() {
- if !release.OnClassic {
- // you're already the real deal, natch
- return
- }
-
- // should we re-exec? no option in the environment means yes
- if !osutil.GetenvBool(key, true) {
- logger.Debugf("re-exec disabled by user")
- return
- }
-
- // can we re-exec? some distributions will need extra work before re-exec really works.
- switch release.ReleaseInfo.ID {
- case "fedora", "centos", "rhel":
- logger.Debugf("re-exec not supported on distro %q yet", release.ReleaseInfo.ID)
- return
- }
-
// did we already re-exec?
if osutil.GetenvBool("SNAP_DID_REEXEC") {
return
}
- exe, err := os.Readlink("/proc/self/exe")
- if err != nil {
+ full := reexec.Path(Version)
+ if full == "" {
return
}
-
- corePath := newCore
- full := filepath.Join(newCore, exe)
- if !osutil.FileExists(full) {
- corePath = oldCore
- full = filepath.Join(oldCore, exe)
- if !osutil.FileExists(full) {
- return
- }
- }
-
- // ensure we do not re-exec into an older version of snapd, look
- // for info file and ignore version of core that do not yet have
- // it
- fullInfo := filepath.Join(corePath, "/usr/lib/snapd/info")
- if !osutil.FileExists(fullInfo) {
- logger.Debugf("not restarting into %q (no version info): older than %q (%s)", full, exe, Version)
- return
- }
- content, err := ioutil.ReadFile(fullInfo)
- if err != nil {
- logger.Noticef("cannot read info file %q: %s", fullInfo, err)
- return
- }
- ver := regexp.MustCompile("(?m)^VERSION=(.*)$").FindStringSubmatch(string(content))
- if len(ver) != 2 {
- logger.Noticef("cannot find version information in %q", content)
- }
- // > 0 means our Version is bigger than the version of snapd in core
- res, err := strutil.VersionCompare(Version, ver[1])
- if err != nil {
- logger.Debugf("cannot version compare %q and %q: %s", Version, ver[1], res)
- return
- }
- if res > 0 {
- logger.Debugf("not restarting into %q (%s): older than %q (%s)", full, ver, exe, Version)
- return
- }
-
logger.Debugf("restarting into %q", full)
env := append(os.Environ(), "SNAP_DID_REEXEC=1")
View
@@ -29,9 +29,13 @@ import (
"github.com/jessevdk/go-flags"
+ "github.com/snapcore/snapd/cmd"
"github.com/snapcore/snapd/dirs"
"github.com/snapcore/snapd/i18n"
"github.com/snapcore/snapd/logger"
+ "github.com/snapcore/snapd/osutil"
+ "github.com/snapcore/snapd/reexec"
+ "github.com/snapcore/snapd/release"
"github.com/snapcore/snapd/snap"
"github.com/snapcore/snapd/snap/snapenv"
)
@@ -220,9 +224,21 @@ func runSnapConfine(info *snap.Info, securityTag, snapApp, command, hook string,
logger.Noticef("WARNING: cannot create user data directory: %s", err)
}
- cmd := []string{
- filepath.Join(dirs.DistroLibExecDir, "snap-confine"),
+ // check for host snap-confine
+ snapConfinePath := filepath.Join(dirs.DistroLibExecDir, "snap-confine")
+ // check for core snap-confine, note the different libexec dirs
+ snapConfinePathInCore := filepath.Join(dirs.SnapMountDir, "/core/current/", dirs.CoreLibExecDir, "snap-confine")
+
+ shouldReexec := (reexec.Path(cmd.Version) != "")
+ cmd := []string{}
+ if release.OnClassic && shouldReexec && osutil.FileExists(snapConfinePathInCore) {
+ // FIXME: once https://github.com/snapcore/snapd/pull/2791
+ // lands use osutil.CommandFromCore() here
+ cmd = append(cmd, snapConfinePathInCore)
+ } else {
+ cmd = append(cmd, snapConfinePath)
}
+
if info.NeedsClassic() {
cmd = append(cmd, "--classic")
}
View
@@ -63,6 +63,9 @@ var (
SnapDesktopFilesDir string
SnapBusPolicyDir string
+ SystemApparmorDir string
+ SystemApparmorCacheDir string
+
CloudMetaDataFile string
ClassicDir string
@@ -147,6 +150,9 @@ func SetRootDir(rootdir string) {
SnapServicesDir = filepath.Join(rootdir, "/etc/systemd/system")
SnapBusPolicyDir = filepath.Join(rootdir, "/etc/dbus-1/system.d")
+ SystemApparmorDir = filepath.Join(rootdir, "/etc/apparmor.d")
+ SystemApparmorCacheDir = filepath.Join(rootdir, "/etc/apparmor.d/cache")
+
CloudMetaDataFile = filepath.Join(rootdir, "/var/lib/cloud/seed/nocloud-net/meta-data")
SnapUdevRulesDir = filepath.Join(rootdir, "/etc/udev/rules.d")
@@ -23,14 +23,18 @@ package snapstate
import (
"errors"
"fmt"
+ "io/ioutil"
"math/rand"
"os"
+ "os/exec"
+ "path/filepath"
"strings"
"time"
"gopkg.in/tomb.v2"
"github.com/snapcore/snapd/boot"
+ "github.com/snapcore/snapd/dirs"
"github.com/snapcore/snapd/errtracker"
"github.com/snapcore/snapd/i18n"
"github.com/snapcore/snapd/logger"
@@ -576,6 +580,107 @@ func (m *SnapManager) ensureUbuntuCoreTransition() error {
return nil
}
+// cleanupSnapConfineApparmor will remove all but the current apparmor
+// profiles for the snap-confine binary from core
+func (m *SnapManager) cleanupSnapConfineApparmor(currentSnapConfineProfilePath string) error {
+ apparmorProfilePathPattern := strings.Replace(filepath.Join(dirs.SnapMountDir, "/core/*/usr/lib/snapd/snap-confine"), "/", ".", -1)[1:]
+
+ glob, err := filepath.Glob(filepath.Join(dirs.SystemApparmorDir, apparmorProfilePathPattern))
+ if err != nil {
+ return err
+ }
+
+ for _, path := range glob {
+ if path == currentSnapConfineProfilePath {
+ continue
+ }
+
+ // not using apparmor.UnloadProfile() because it uses a
+ // different cachedir
+ if output, err := exec.Command("apparmor_parser", "-R", filepath.Base(path)).CombinedOutput(); err != nil {
+ logger.Noticef("cannot unload apparmor profile %s: %v", filepath.Base(path), osutil.OutputErr(output, err))
+ }
+ if err := os.Remove(path); err != nil && !os.IsNotExist(err) {
+ return err
+ }
+ if err := os.Remove(filepath.Join(dirs.SystemApparmorCacheDir, filepath.Base(path))); err != nil && !os.IsNotExist(err) {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (m *SnapManager) addSnapConfineApparmor(snapConfineInCore, apparmorProfilePath string) error {
+ coreRoot := filepath.Join(dirs.SnapMountDir, "/core/current/")
+
+ // FIXME: make this more generic once we start supporting more
+ // distros with apparmor around snap-confine, i.e.
+ // ship `snap-confine.apparmor.in` and use that as the base
+ // because core is ubuntu and classic host might be anything
+ apparmorProfile, err := ioutil.ReadFile(filepath.Join(coreRoot, "/etc/apparmor.d/usr.lib.snapd.snap-confine"))
+ if err != nil {
+ return err
+ }
+
+ apparmorProfileForCore := strings.Replace(string(apparmorProfile), "/usr/lib/snapd/snap-confine", snapConfineInCore, -1)
+
+ // /etc/apparmor.d is read/write OnClassic, so write out the
+ // new core's profile there
+ if err := osutil.AtomicWriteFile(apparmorProfilePath, []byte(apparmorProfileForCore), 0644, 0); err != nil {
+ return err
+ }
+
+ // not using apparmor.LoadProfile() because it uses a different cachedir
+ if output, err := exec.Command("apparmor_parser", "--replace", "--write-cache", apparmorProfilePath, "--cache-loc", dirs.SystemApparmorCacheDir).CombinedOutput(); err != nil {
+ return fmt.Errorf("cannot replace snap-confine apparmor profile: %v", osutil.OutputErr(output, err))
+ }
+
+ return nil
+}
+
+// ensureSnapConfineApparmor ensures that we have a valid apparmor
+// profile for snap-confine when we are in re-exec mode
+func (m *SnapManager) ensureSnapConfineApparmor() error {
+ // On all-snaps we always use the mounted snapd, snap-confine,
+ // apparmor, etc but on classic we use the snapd and
+ // snap-confine from the latest core snap. As such, nothing
+ // to do when not OnClassic
+ if !release.OnClassic {
+ return nil
+ }
+ // On releases that do not support apparmor there is no need to
+ // write an apparmor profile for snap-confine
+ if release.ReleaseInfo.ForceDevMode() {
+ return nil
+ }
+
+ root := filepath.Join(dirs.SnapMountDir, "/core/current/")
+ snapConfineInCore, err := filepath.EvalSymlinks(filepath.Join(root, "/usr/lib/snapd/snap-confine"))
+ // We do not always have a "current" symlink currently. This may happen
+ // when the system has no snaps yet or during a `snap refresh core`
+ if os.IsNotExist(err) {
+ return nil
+ }
+ if err != nil {
+ return err
+ }
+
+ apparmorProfilePath := filepath.Join(dirs.SystemApparmorDir, strings.Replace(snapConfineInCore[1:], "/", ".", -1))
+
+ if err := m.cleanupSnapConfineApparmor(apparmorProfilePath); err != nil {
+ return err
+ }
+
+ if !osutil.FileExists(apparmorProfilePath) {
+ if err := m.addSnapConfineApparmor(snapConfineInCore, apparmorProfilePath); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
// Ensure implements StateManager.Ensure.
func (m *SnapManager) Ensure() error {
// do not exit right away on error
@@ -585,6 +690,13 @@ func (m *SnapManager) Ensure() error {
m.runner.Ensure()
+ // run after the runner so if we get a new core snap, we immediately
+ // generate the matching apparmor profile for snap-confine from core
+ if err := m.ensureSnapConfineApparmor(); err != nil {
+ // FIMXE: this will spam the world as ensure runs often
+ logger.Noticef("ensureSnapConfineApparmor failed with: %s", err)
+ }
+
//FIXME: use firstErr helper
if err1 != nil {
return err1
Oops, something went wrong.

No commit comments for this range