diff options
author | Maciek Borzecki | 2020-05-18 15:54:13 +0200 |
---|---|---|
committer | Maciek Borzecki | 2020-05-18 15:54:13 +0200 |
commit | 5695be9662efa6cb87c3315e048e429ee14d1023 (patch) | |
tree | c9d15e6dc2507fe33be793439046969bcf7b7608 | |
parent | 39fd5272cad805a4e0961cd02b596fc14fbd99fe (diff) | |
download | aur-5695be9662efa6cb87c3315e048e429ee14d1023.tar.gz |
upgpkg: snapd 2.45-1
New upstream release.
Cherry pick patches for:
- fontconfig cache incompatibility
- zsh completion
Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com>
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | 0001-fontconfig-compat.patch | 209 | ||||
-rw-r--r-- | 0002-zsh-completion.patch | 409 | ||||
-rw-r--r-- | PKGBUILD | 25 |
4 files changed, 643 insertions, 12 deletions
@@ -1,7 +1,7 @@ pkgbase = snapd pkgdesc = Service and tools for management of snap packages. - pkgver = 2.44.3 - pkgrel = 2 + pkgver = 2.45 + pkgrel = 1 url = https://github.com/snapcore/snapd install = snapd.install arch = x86_64 @@ -27,8 +27,12 @@ pkgbase = snapd conflicts = snap-confine options = !strip options = emptydirs - source = snapd-2.44.3.tar.xz::https://github.com/snapcore/snapd/releases/download/2.44.3/snapd_2.44.3.vendor.tar.xz - sha256sums = fbe7299bd09e91b7e5610f3c44a0d546856901f383dff2b57d11bb591ae8a22f + source = snapd-2.45.tar.xz::https://github.com/snapcore/snapd/releases/download/2.45/snapd_2.45.vendor.tar.xz + source = 0001-fontconfig-compat.patch + source = 0002-zsh-completion.patch + sha256sums = 54399873d874d3797784ff685e2b21840751d77ccfada6292b34060d58ee4256 + sha256sums = ceb4592363a5b56a1fa118b96764fc24e477f8e2bf727331ce7d726bf36ab9e3 + sha256sums = c9f40bb1e1b9aa7f3cbf3431a910e0da38cdf467de160870f75ad03e4a3ebb17 pkgname = snapd diff --git a/0001-fontconfig-compat.patch b/0001-fontconfig-compat.patch new file mode 100644 index 000000000000..1ca34af046bd --- /dev/null +++ b/0001-fontconfig-compat.patch @@ -0,0 +1,209 @@ +From 0f8dfa23744150b2aa91f6bd169b871308ecb43f Mon Sep 17 00:00:00 2001 +Message-Id: <0f8dfa23744150b2aa91f6bd169b871308ecb43f.1589805773.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Wed, 6 May 2020 10:45:38 +0200 +Subject: [PATCH 1/3] interfaces/builtin/desktop: do not mount fonts cache on + distros with quirks + +There is a problem with compatibility of fontconfig cache files generated across +different versions of the fontconfig library. The cache files appear to be using +the same format, but when loaded by an older version of the library, they cause +instability, bad font rendering or plain segfaults. + +The following versions of packages present on specific distros are known to +generate incompatible cache files: + +- Arch: fontconfig 2:2.13.91+24+g75eadca-2 +- Fedora 32: fontconfig-2.13.92-9.fc32.x86_64 + +More information is provided in the following post: +https://forum.snapcraft.io/t/snapped-app-not-loading-fonts-on-fedora-and-arch/12484/32 +A bisect identified this commit where the problem first occurred: +https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/0f9bbbcf8f6f8264efb0a2ded4d8d05f3b10f7a4 + +Until we work out a better solution, disable the fonts cache on distros that are +known to cause issues. This comes at the potential cost of slightly longer +application startup times, but a working app is better than a segfaulting one. + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + interfaces/builtin/desktop.go | 13 ++++++++ + interfaces/builtin/desktop_test.go | 52 +++++++++++++++++------------- + 2 files changed, 42 insertions(+), 23 deletions(-) + +diff --git a/interfaces/builtin/desktop.go b/interfaces/builtin/desktop.go +index 05a97251f7fcad66a356ea7d77690dcb02f724d1..8e18a4fc4409e957b51f0763dc791c8e54eec09e 100644 +--- a/interfaces/builtin/desktop.go ++++ b/interfaces/builtin/desktop.go +@@ -26,6 +26,7 @@ import ( + "github.com/snapcore/snapd/interfaces/mount" + "github.com/snapcore/snapd/osutil" + "github.com/snapcore/snapd/release" ++ "github.com/snapcore/snapd/strutil" + ) + + const desktopSummary = `allows access to basic graphical desktop resources` +@@ -288,6 +289,18 @@ func (iface *desktopInterface) MountConnectedPlug(spec *mount.Specification, plu + if !osutil.IsDirectory(dir) { + continue + } ++ if release.DistroLike("arch", "fedora") { ++ // XXX: on Arch and Fedora 32+ there is a known ++ // incompatibility between the binary fonts cache files ++ // and ones expected by desktop snaps; even though the ++ // cache format level is same for both, the host ++ // generated cache files cause instability, segfaults or ++ // incorrect rendering of fonts, for this reason do not ++ // mount the cache directories on those distributions ++ if strutil.ListContains(dirs.SystemFontconfigCacheDirs, dir) { ++ continue ++ } ++ } + // Since /etc/fonts/fonts.conf in the snap mount ns is the same + // as on the host, we need to preserve the original directory + // paths for the fontconfig runtime to poke the correct +diff --git a/interfaces/builtin/desktop_test.go b/interfaces/builtin/desktop_test.go +index d30af78ddea39f874eb2f4d8b765c82adab6872b..e0f995fd7633b06f81d4439c700fab34a59264d5 100644 +--- a/interfaces/builtin/desktop_test.go ++++ b/interfaces/builtin/desktop_test.go +@@ -154,6 +154,8 @@ func (s *DesktopInterfaceSuite) TestMountSpec(c *C) { + // are bind mounted from the host system if they exist. + restore = release.MockOnClassic(true) + defer restore() ++ restore = release.MockReleaseInfo(&release.OS{ID: "ubuntu"}) ++ defer restore() + spec = &mount.Specification{} + c.Assert(spec.AddConnectedPlug(s.iface, s.plug, s.coreSlot), IsNil) + +@@ -177,29 +179,33 @@ func (s *DesktopInterfaceSuite) TestMountSpec(c *C) { + c.Assert(entries, HasLen, 1) + c.Check(entries[0].Dir, Equals, "$XDG_RUNTIME_DIR/doc") + +- // Fedora is a little special with their fontconfig cache location(s) +- restore = release.MockReleaseInfo(&release.OS{ID: "fedora"}) +- defer restore() +- +- tmpdir = c.MkDir() +- dirs.SetRootDir(tmpdir) +- c.Assert(dirs.SystemFontconfigCacheDirs, DeepEquals, []string{filepath.Join(tmpdir, "/var/cache/fontconfig"), filepath.Join(tmpdir, "/usr/lib/fontconfig/cache")}) +- c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/share/fonts"), 0777), IsNil) +- c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/local/share/fonts"), 0777), IsNil) +- c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/lib/fontconfig/cache"), 0777), IsNil) +- c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/var/cache/fontconfig"), 0777), IsNil) +- spec = &mount.Specification{} +- c.Assert(spec.AddConnectedPlug(s.iface, s.plug, s.coreSlot), IsNil) +- entries = spec.MountEntries() +- c.Assert(entries, HasLen, 4) +- +- c.Check(entries[2].Name, Equals, hostfs+dirs.SystemFontconfigCacheDirs[0]) +- c.Check(entries[2].Dir, Equals, "/var/cache/fontconfig") +- c.Check(entries[2].Options, DeepEquals, []string{"bind", "ro"}) +- +- c.Check(entries[3].Name, Equals, hostfs+dirs.SystemFontconfigCacheDirs[1]) +- c.Check(entries[3].Dir, Equals, "/usr/lib/fontconfig/cache") +- c.Check(entries[3].Options, DeepEquals, []string{"bind", "ro"}) ++ for _, distroWithQuirks := range []string{"fedora", "arch"} { ++ restore = release.MockReleaseInfo(&release.OS{ID: distroWithQuirks}) ++ defer restore() ++ ++ tmpdir = c.MkDir() ++ dirs.SetRootDir(tmpdir) ++ if distroWithQuirks == "fedora" { ++ // Fedora is a little special with their fontconfig cache location(s) and how we handle them ++ c.Assert(dirs.SystemFontconfigCacheDirs, DeepEquals, []string{filepath.Join(tmpdir, "/var/cache/fontconfig"), filepath.Join(tmpdir, "/usr/lib/fontconfig/cache")}) ++ } else { ++ c.Assert(dirs.SystemFontconfigCacheDirs, DeepEquals, []string{filepath.Join(tmpdir, "/var/cache/fontconfig")}) ++ } ++ c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/share/fonts"), 0777), IsNil) ++ c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/local/share/fonts"), 0777), IsNil) ++ c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/usr/lib/fontconfig/cache"), 0777), IsNil) ++ c.Assert(os.MkdirAll(filepath.Join(tmpdir, "/var/cache/fontconfig"), 0777), IsNil) ++ spec = &mount.Specification{} ++ c.Assert(spec.AddConnectedPlug(s.iface, s.plug, s.coreSlot), IsNil) ++ entries = spec.MountEntries() ++ c.Assert(entries, HasLen, 2) ++ ++ for _, en := range entries { ++ if en.Dir == "/var/cache/fontconfig" || en.Dir == "/usr/lib/fontconfig/cache" { ++ c.Fatalf("unpexected cache mount entry: %q", en.Dir) ++ } ++ } ++ } + } + + func (s *DesktopInterfaceSuite) TestStaticInfo(c *C) { +-- +2.26.2 + +From b1183c5ed448e61f7da7ec518682a00ca4cb9161 Mon Sep 17 00:00:00 2001 +Message-Id: <b1183c5ed448e61f7da7ec518682a00ca4cb9161.1589805773.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Wed, 6 May 2020 15:39:48 +0200 +Subject: [PATCH 2/3] interfaces/builtin/desktop: mention the fonts bug report + in comments + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + interfaces/builtin/desktop.go | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/interfaces/builtin/desktop.go b/interfaces/builtin/desktop.go +index 8e18a4fc4409e957b51f0763dc791c8e54eec09e..950c02c2463879bd997ddd5ff95f35051912b26a 100644 +--- a/interfaces/builtin/desktop.go ++++ b/interfaces/builtin/desktop.go +@@ -296,7 +296,8 @@ func (iface *desktopInterface) MountConnectedPlug(spec *mount.Specification, plu + // cache format level is same for both, the host + // generated cache files cause instability, segfaults or + // incorrect rendering of fonts, for this reason do not +- // mount the cache directories on those distributions ++ // mount the cache directories on those distributions, ++ // see https://bugs.launchpad.net/snapd/+bug/1877109 + if strutil.ListContains(dirs.SystemFontconfigCacheDirs, dir) { + continue + } +-- +2.26.2 + +From c73b5879d78f10b16f7b3168948299dacd6da40c Mon Sep 17 00:00:00 2001 +Message-Id: <c73b5879d78f10b16f7b3168948299dacd6da40c.1589805773.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589805773.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Wed, 6 May 2020 15:40:58 +0200 +Subject: [PATCH 3/3] tests/main/interfaces-desktop-host-fonts: update fonts + cache test + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + tests/main/interfaces-desktop-host-fonts/task.yaml | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/tests/main/interfaces-desktop-host-fonts/task.yaml b/tests/main/interfaces-desktop-host-fonts/task.yaml +index c61dbf83b37331537a8d2c36cff2c844330540f0..02f2aa120b80c71c80ed20c4ceb772e8df63cb9a 100644 +--- a/tests/main/interfaces-desktop-host-fonts/task.yaml ++++ b/tests/main/interfaces-desktop-host-fonts/task.yaml +@@ -49,7 +49,16 @@ execute: | + test-snapd-desktop.check-files /usr/local/share/fonts/local-font.txt | MATCH "Local font" + + echo "Checking access to host $cache_dir" +- test-snapd-desktop.check-files "$cache_dir"/cache.txt | MATCH "Cache file" ++ case "$SPREAD_SYSTEM" in ++ fedora-*|centos-*|amazon-linux-*|arch-linux-*) ++ # system fonts cache is inaccessible due to ++ # https://bugs.launchpad.net/snapd/+bug/1877109 ++ test-snapd-desktop.sh -c "test ! -e $cache_dir/cache.txt" ++ ;; ++ *) ++ test-snapd-desktop.check-files "$cache_dir"/cache.txt | MATCH "Cache file" ++ ;; ++ esac + + echo "Checking access to host ~/.fonts" + test-snapd-desktop.check-files "$HOME"/.fonts/user-font1.txt | MATCH "User font 1" +-- +2.26.2 + diff --git a/0002-zsh-completion.patch b/0002-zsh-completion.patch new file mode 100644 index 000000000000..035784e5870c --- /dev/null +++ b/0002-zsh-completion.patch @@ -0,0 +1,409 @@ +From 2eee3a3a05dc9246bc9ade54ef853ab1428c5f90 Mon Sep 17 00:00:00 2001 +Message-Id: <2eee3a3a05dc9246bc9ade54ef853ab1428c5f90.1589807334.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Wed, 29 Apr 2020 21:04:40 +0200 +Subject: [PATCH 1/4] data/completion: add completion for zsh + +Add completion function for snap command for zsh. Most of heavy lifting is done +by go-flags and our completion helpers, this just glues everything together. + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + data/completion/_snap | 59 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 59 insertions(+) + create mode 100644 data/completion/_snap + +diff --git a/data/completion/_snap b/data/completion/_snap +new file mode 100644 +index 0000000000000000000000000000000000000000..682ee0f089e0c0e2df02843029a6bcb1f5353946 +--- /dev/null ++++ b/data/completion/_snap +@@ -0,0 +1,59 @@ ++#compdef snap ++# ++# Copyright (C) 2020 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 <http://www.gnu.org/licenses/>. ++ ++# group --style options and arguments separately, so that users can customize ++# the presentation of available completion matches ++_description options optexpl option ++_description arguments argexpl argument ++ ++if [[ ${#words[@]} -ge 2 ]]; then ++ # keep track of the command for later reference ++ local command="${words[2]}" ++fi ++ ++# get completion options with what we have so far ++local matches=($(GO_FLAGS_COMPLETION=1 "${words[@]}")) ++ ++local match ++# we don't have a command yet, try to complete one first ++if [[ "$command" == "" ]]; then ++ for match in $matches; do compadd $optexpl[@] "$match"; done ++ return 0 ++fi ++ ++for match in $matches; do ++ case "$match" in ++ -*) compadd $optexpl[@] -- $match ;; ++ *) compadd $argexpl[@] $match ;; ++ esac ++done ++ ++# some commands take files/directories too ++case "$command" in ++ install) ++ # include *.snap files ++ _path_files -g "*.snap" ++ ;; ++ try) ++ # limit matches to directories ++ # TODO: only match directories with meta/snap.yaml inside ++ _path_files -/ ++ ;; ++ ack) ++ # there are no rules about assertion file names ++ _files ++ ;; ++esac +-- +2.26.2 + +From 0b47c2d040ac99ddd8e2912090a63ad57e9a1658 Mon Sep 17 00:00:00 2001 +Message-Id: <0b47c2d040ac99ddd8e2912090a63ad57e9a1658.1589807334.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Wed, 29 Apr 2020 21:06:04 +0200 +Subject: [PATCH 2/4] packaging: install zsh completion files + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + packaging/arch/PKGBUILD | 3 +++ + packaging/debian-sid/snapd.install | 2 ++ + packaging/fedora/snapd.spec | 7 +++++++ + packaging/opensuse/snapd.spec | 7 +++++++ + packaging/ubuntu-14.04/snapd.install | 2 ++ + packaging/ubuntu-16.04/snapd.install | 2 ++ + 6 files changed, 23 insertions(+) + +diff --git a/packaging/arch/PKGBUILD b/packaging/arch/PKGBUILD +index e37ec70eb2b00b618219eb1efadd63b0e12ea322..4e2de2b33870412233bfa997f234cdf29e95ff79 100644 +--- a/packaging/arch/PKGBUILD ++++ b/packaging/arch/PKGBUILD +@@ -125,6 +125,9 @@ package() { + "$pkgdir/usr/lib/snapd/complete.sh" + install -Dm644 data/completion/etelpmoc.sh \ + "$pkgdir/usr/lib/snapd/etelpmoc.sh" ++ # Install zsh completion ++ install -Dm644 data/completion/_snap \ ++ "$pkgdir/usr/share/zsh/site-functions/_snap" + + # Install systemd units, dbus services and a script for environment variables + make -C data/ install \ +diff --git a/packaging/debian-sid/snapd.install b/packaging/debian-sid/snapd.install +index 2ec10a240424cded2606dbafb474d3adceda1cd7..1d79725212498dbf38a46a7fc9bc01d7c237d4d7 100644 +--- a/packaging/debian-sid/snapd.install ++++ b/packaging/debian-sid/snapd.install +@@ -10,6 +10,8 @@ usr/bin/snap-seccomp /usr/lib/snapd/ + data/completion/snap /usr/share/bash-completion/completions + data/completion/complete.sh /usr/lib/snapd/ + data/completion/etelpmoc.sh /usr/lib/snapd/ ++# zsh completion ++data/completion/_snap /usr/share/zsh/vendor-completions + # snap/snapd version information + data/info /usr/lib/snapd/ + # polkit actions +diff --git a/packaging/fedora/snapd.spec b/packaging/fedora/snapd.spec +index afbfaf9d36c2e187f780fecca9351ff8f61bd90a..5fe6dd0ff5b373e89200b9a76a018ae7a4e533bd 100644 +--- a/packaging/fedora/snapd.spec ++++ b/packaging/fedora/snapd.spec +@@ -605,6 +605,9 @@ install -m 644 -D data/info %{buildroot}%{_libexecdir}/snapd/info + install -m 644 -D data/completion/snap %{buildroot}%{_datadir}/bash-completion/completions/snap + install -m 644 -D data/completion/complete.sh %{buildroot}%{_libexecdir}/snapd + install -m 644 -D data/completion/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd ++# Install zsh completion for "snap" ++install -d -p %{buildroot}%{_datadir}/zsh/site-functions ++install -m 644 -D data/completion/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap + + # Install snap-confine + pushd ./cmd +@@ -740,6 +743,7 @@ popd + %{_datadir}/bash-completion/completions/snap + %{_libexecdir}/snapd/complete.sh + %{_libexecdir}/snapd/etelpmoc.sh ++%{_datadir}/zsh/site-functions/_snap + %{_libexecdir}/snapd/snapd.run-from-snap + %{_sysconfdir}/profile.d/snapd.sh + %{_sysconfdir}/sudoers.d/99-snapd.conf +@@ -782,6 +786,9 @@ popd + %if %{with snap_symlink} + /snap + %endif ++# this is typically owned by zsh, but we do not want to explicitly require zsh ++%dir %{_datadir}/zsh ++%dir %{_datadir}/zsh/site-functions + + %files -n snap-confine + %doc cmd/snap-confine/PORTING +diff --git a/packaging/opensuse/snapd.spec b/packaging/opensuse/snapd.spec +index b4b87e72f4798c660003d5727bdd4d3ab5a7a364..30e4db867e10817f5e89ac4938340038985fcd88 100644 +--- a/packaging/opensuse/snapd.spec ++++ b/packaging/opensuse/snapd.spec +@@ -297,6 +297,9 @@ install -m 644 -D %{indigo_srcdir}/data/info %{buildroot}%{_libexecdir}/snapd/in + install -m 644 -D %{indigo_srcdir}/data/completion/snap %{buildroot}%{_datadir}/bash-completion/completions/snap + install -m 644 -D %{indigo_srcdir}/data/completion/complete.sh %{buildroot}%{_libexecdir}/snapd + install -m 644 -D %{indigo_srcdir}/data/completion/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd ++# Install zsh completion for "snap" ++install -d -p %{buildroot}%{_datadir}/zsh/site-functions ++install -m 644 -D %{indigo_srcdir}/data/completion/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap + + %verifyscript + %verify_permissions -e %{_libexecdir}/snapd/snap-confine +@@ -374,6 +377,9 @@ fi + %dir %{_userunitdir} + %dir %{snap_mount_dir} + %dir %{snap_mount_dir}/bin ++# this is typically owned by zsh, but we do not want to explicitly require zsh ++%dir %{_datadir}/zsh ++%dir %{_datadir}/zsh/site-functions + + # Ghost entries for things created at runtime + %ghost %dir %{_localstatedir}/snap +@@ -389,6 +395,7 @@ fi + %{_bindir}/snapctl + %{_datadir}/applications/snap-handle-link.desktop + %{_datadir}/bash-completion/completions/snap ++%{_datadir}/zsh/site-functions/_snap + %{_datadir}/dbus-1/services/io.snapcraft.Launcher.service + %{_datadir}/dbus-1/services/io.snapcraft.Settings.service + %{_datadir}/polkit-1/actions/io.snapcraft.snapd.policy +diff --git a/packaging/ubuntu-14.04/snapd.install b/packaging/ubuntu-14.04/snapd.install +index a8e78dd8945411858e074327f692f9113f547562..dafd61b3478bad48da266fd88ab3f942f401aaee 100644 +--- a/packaging/ubuntu-14.04/snapd.install ++++ b/packaging/ubuntu-14.04/snapd.install +@@ -13,6 +13,8 @@ usr/bin/snap-preseed /usr/lib/snapd/ + data/completion/snap /usr/share/bash-completion/completions + data/completion/complete.sh /usr/lib/snapd/ + data/completion/etelpmoc.sh /usr/lib/snapd/ ++# zsh completion ++data/completion/_snap /usr/share/zsh/vendor-completions + # udev, must be installed before 80-udisks + data/udev/rules.d/66-snapd-autoimport.rules /lib/udev/rules.d + # snap/snapd version information +diff --git a/packaging/ubuntu-16.04/snapd.install b/packaging/ubuntu-16.04/snapd.install +index 98f9343f089a4a0865de7087d95e2cb1af792f91..20815f31b20f1c8e811bccbd9dfc99d3f7ad0d2f 100644 +--- a/packaging/ubuntu-16.04/snapd.install ++++ b/packaging/ubuntu-16.04/snapd.install +@@ -15,6 +15,8 @@ usr/bin/snap-recovery-chooser /usr/lib/snapd/ + data/completion/snap /usr/share/bash-completion/completions + data/completion/complete.sh /usr/lib/snapd/ + data/completion/etelpmoc.sh /usr/lib/snapd/ ++# zsh completion ++data/completion/_snap /usr/share/zsh/vendor-completions + # udev, must be installed before 80-udisks + data/udev/rules.d/66-snapd-autoimport.rules /lib/udev/rules.d + # snap/snapd version information +-- +2.26.2 + +From 204b3ecc6d2c040c236399a222b393641572ce44 Mon Sep 17 00:00:00 2001 +Message-Id: <204b3ecc6d2c040c236399a222b393641572ce44.1589807334.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Tue, 5 May 2020 09:45:46 +0200 +Subject: [PATCH 3/4] data: move bash/zsh completion support to separate + directories + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + data/completion/{ => bash}/complete.sh | 0 + data/completion/{ => bash}/etelpmoc.sh | 0 + data/completion/{ => bash}/snap | 0 + data/completion/{ => zsh}/_snap | 0 + 4 files changed, 0 insertions(+), 0 deletions(-) + rename data/completion/{ => bash}/complete.sh (100%) + rename data/completion/{ => bash}/etelpmoc.sh (100%) + rename data/completion/{ => bash}/snap (100%) + rename data/completion/{ => zsh}/_snap (100%) + +diff --git a/data/completion/complete.sh b/data/completion/bash/complete.sh +similarity index 100% +rename from data/completion/complete.sh +rename to data/completion/bash/complete.sh +diff --git a/data/completion/etelpmoc.sh b/data/completion/bash/etelpmoc.sh +similarity index 100% +rename from data/completion/etelpmoc.sh +rename to data/completion/bash/etelpmoc.sh +diff --git a/data/completion/snap b/data/completion/bash/snap +similarity index 100% +rename from data/completion/snap +rename to data/completion/bash/snap +diff --git a/data/completion/_snap b/data/completion/zsh/_snap +similarity index 100% +rename from data/completion/_snap +rename to data/completion/zsh/_snap +-- +2.26.2 + +From 5545181ef2b0aa0cce1bfeeb6c8d327a01cd83f1 Mon Sep 17 00:00:00 2001 +Message-Id: <5545181ef2b0aa0cce1bfeeb6c8d327a01cd83f1.1589807334.git.maciej.zenon.borzecki@canonical.com> +In-Reply-To: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +References: <cover.1589807334.git.maciej.zenon.borzecki@canonical.com> +From: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +Date: Tue, 5 May 2020 09:46:08 +0200 +Subject: [PATCH 4/4] packaging: update completion support locations + +Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> +--- + packaging/arch/PKGBUILD | 8 ++++---- + packaging/debian-sid/snapd.install | 8 ++++---- + packaging/fedora/snapd.spec | 8 ++++---- + packaging/opensuse/snapd.spec | 8 ++++---- + packaging/ubuntu-14.04/snapd.install | 8 ++++---- + packaging/ubuntu-16.04/snapd.install | 8 ++++---- + 6 files changed, 24 insertions(+), 24 deletions(-) + +diff --git a/packaging/arch/PKGBUILD b/packaging/arch/PKGBUILD +index 4e2de2b33870412233bfa997f234cdf29e95ff79..91c7067942c4259be498996b99d9a7b77e568a12 100644 +--- a/packaging/arch/PKGBUILD ++++ b/packaging/arch/PKGBUILD +@@ -119,14 +119,14 @@ package() { + export GOPATH="$srcdir/go" + + # Install bash completion +- install -Dm644 data/completion/snap \ ++ install -Dm644 data/completion/bash/snap \ + "$pkgdir/usr/share/bash-completion/completions/snap" +- install -Dm644 data/completion/complete.sh \ ++ install -Dm644 data/completion/bash/complete.sh \ + "$pkgdir/usr/lib/snapd/complete.sh" +- install -Dm644 data/completion/etelpmoc.sh \ ++ install -Dm644 data/completion/bash/etelpmoc.sh \ + "$pkgdir/usr/lib/snapd/etelpmoc.sh" + # Install zsh completion +- install -Dm644 data/completion/_snap \ ++ install -Dm644 data/completion/zsh/_snap \ + "$pkgdir/usr/share/zsh/site-functions/_snap" + + # Install systemd units, dbus services and a script for environment variables +diff --git a/packaging/debian-sid/snapd.install b/packaging/debian-sid/snapd.install +index 1d79725212498dbf38a46a7fc9bc01d7c237d4d7..3afdd39fec57ebc9cc7ba8616e4fa2e2e3c3cf35 100644 +--- a/packaging/debian-sid/snapd.install ++++ b/packaging/debian-sid/snapd.install +@@ -7,11 +7,11 @@ usr/bin/snapd /usr/lib/snapd/ + usr/bin/snap-seccomp /usr/lib/snapd/ + + # bash completion +-data/completion/snap /usr/share/bash-completion/completions +-data/completion/complete.sh /usr/lib/snapd/ +-data/completion/etelpmoc.sh /usr/lib/snapd/ ++data/completion/bash/snap /usr/share/bash-completion/completions ++data/completion/bash/complete.sh /usr/lib/snapd/ ++data/completion/bash/etelpmoc.sh /usr/lib/snapd/ + # zsh completion +-data/completion/_snap /usr/share/zsh/vendor-completions ++data/completion/zsh/_snap /usr/share/zsh/vendor-completions + # snap/snapd version information + data/info /usr/lib/snapd/ + # polkit actions +diff --git a/packaging/fedora/snapd.spec b/packaging/fedora/snapd.spec +index 5fe6dd0ff5b373e89200b9a76a018ae7a4e533bd..190c8da62bf8786b147c0c48617c259c97c72845 100644 +--- a/packaging/fedora/snapd.spec ++++ b/packaging/fedora/snapd.spec +@@ -602,12 +602,12 @@ bin/snap help --man > %{buildroot}%{_mandir}/man8/snap.8 + install -m 644 -D data/info %{buildroot}%{_libexecdir}/snapd/info + + # Install bash completion for "snap" +-install -m 644 -D data/completion/snap %{buildroot}%{_datadir}/bash-completion/completions/snap +-install -m 644 -D data/completion/complete.sh %{buildroot}%{_libexecdir}/snapd +-install -m 644 -D data/completion/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd ++install -m 644 -D data/completion/bash/snap %{buildroot}%{_datadir}/bash-completion/completions/snap ++install -m 644 -D data/completion/bash/complete.sh %{buildroot}%{_libexecdir}/snapd ++install -m 644 -D data/completion/bash/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd + # Install zsh completion for "snap" + install -d -p %{buildroot}%{_datadir}/zsh/site-functions +-install -m 644 -D data/completion/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap ++install -m 644 -D data/completion/zsh/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap + + # Install snap-confine + pushd ./cmd +diff --git a/packaging/opensuse/snapd.spec b/packaging/opensuse/snapd.spec +index 30e4db867e10817f5e89ac4938340038985fcd88..7cf2ea76b43e3755349fbc74a75aa461d9f94c96 100644 +--- a/packaging/opensuse/snapd.spec ++++ b/packaging/opensuse/snapd.spec +@@ -294,12 +294,12 @@ install -m 644 -D %{indigo_srcdir}/data/info %{buildroot}%{_libexecdir}/snapd/in + + # Install bash completion for "snap" + # TODO: This should be handled by data makefile. +-install -m 644 -D %{indigo_srcdir}/data/completion/snap %{buildroot}%{_datadir}/bash-completion/completions/snap +-install -m 644 -D %{indigo_srcdir}/data/completion/complete.sh %{buildroot}%{_libexecdir}/snapd +-install -m 644 -D %{indigo_srcdir}/data/completion/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd ++install -m 644 -D %{indigo_srcdir}/data/completion/bash/snap %{buildroot}%{_datadir}/bash-completion/completions/snap ++install -m 644 -D %{indigo_srcdir}/data/completion/bash/complete.sh %{buildroot}%{_libexecdir}/snapd ++install -m 644 -D %{indigo_srcdir}/data/completion/bash/etelpmoc.sh %{buildroot}%{_libexecdir}/snapd + # Install zsh completion for "snap" + install -d -p %{buildroot}%{_datadir}/zsh/site-functions +-install -m 644 -D %{indigo_srcdir}/data/completion/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap ++install -m 644 -D %{indigo_srcdir}/data/completion/zsh/_snap %{buildroot}%{_datadir}/zsh/site-functions/_snap + + %verifyscript + %verify_permissions -e %{_libexecdir}/snapd/snap-confine +diff --git a/packaging/ubuntu-14.04/snapd.install b/packaging/ubuntu-14.04/snapd.install +index dafd61b3478bad48da266fd88ab3f942f401aaee..855650c06354675a7253253010c4ced366eb51cb 100644 +--- a/packaging/ubuntu-14.04/snapd.install ++++ b/packaging/ubuntu-14.04/snapd.install +@@ -10,11 +10,11 @@ usr/bin/snap-seccomp /usr/lib/snapd/ + usr/bin/snap-preseed /usr/lib/snapd/ + + # bash completion +-data/completion/snap /usr/share/bash-completion/completions +-data/completion/complete.sh /usr/lib/snapd/ +-data/completion/etelpmoc.sh /usr/lib/snapd/ ++data/completion/bash/snap /usr/share/bash-completion/completions ++data/completion/bash/complete.sh /usr/lib/snapd/ ++data/completion/bash/etelpmoc.sh /usr/lib/snapd/ + # zsh completion +-data/completion/_snap /usr/share/zsh/vendor-completions ++data/completion/zsh/_snap /usr/share/zsh/vendor-completions + # udev, must be installed before 80-udisks + data/udev/rules.d/66-snapd-autoimport.rules /lib/udev/rules.d + # snap/snapd version information +diff --git a/packaging/ubuntu-16.04/snapd.install b/packaging/ubuntu-16.04/snapd.install +index 20815f31b20f1c8e811bccbd9dfc99d3f7ad0d2f..9c80c2da4d8af451514ad43b4112018f40662371 100644 +--- a/packaging/ubuntu-16.04/snapd.install ++++ b/packaging/ubuntu-16.04/snapd.install +@@ -12,11 +12,11 @@ usr/bin/snap-preseed /usr/lib/snapd/ + usr/bin/snap-recovery-chooser /usr/lib/snapd/ + + # bash completion +-data/completion/snap /usr/share/bash-completion/completions +-data/completion/complete.sh /usr/lib/snapd/ +-data/completion/etelpmoc.sh /usr/lib/snapd/ ++data/completion/bash/snap /usr/share/bash-completion/completions ++data/completion/bash/complete.sh /usr/lib/snapd/ ++data/completion/bash/etelpmoc.sh /usr/lib/snapd/ + # zsh completion +-data/completion/_snap /usr/share/zsh/vendor-completions ++data/completion/zsh/_snap /usr/share/zsh/vendor-completions + # udev, must be installed before 80-udisks + data/udev/rules.d/66-snapd-autoimport.rules /lib/udev/rules.d + # snap/snapd version information +-- +2.26.2 + @@ -8,8 +8,8 @@ pkgdesc="Service and tools for management of snap packages." depends=('squashfs-tools' 'libseccomp' 'libsystemd' 'apparmor') optdepends=('bash-completion: bash completion support' 'xdg-desktop-portal: desktop integration') -pkgver=2.44.3 -pkgrel=2 +pkgver=2.45 +pkgrel=1 arch=('x86_64' 'i686' 'armv7h' 'aarch64') url="https://github.com/snapcore/snapd" license=('GPL3') @@ -17,8 +17,14 @@ makedepends=('git' 'go' 'go-tools' 'libseccomp' 'libcap' 'systemd' 'xfsprogs' 'p conflicts=('snap-confine') options=('!strip' 'emptydirs') install=snapd.install -source=("$pkgname-$pkgver.tar.xz::https://github.com/snapcore/${pkgname}/releases/download/${pkgver}/${pkgname}_${pkgver}.vendor.tar.xz") -sha256sums=('fbe7299bd09e91b7e5610f3c44a0d546856901f383dff2b57d11bb591ae8a22f') +# 0001-fontconfig-compat.patch: proposed upstream https://github.com/snapcore/snapd/pull/8604 +# 0002-zsh-completion.patch: cherry-pick from upstream master +source=("$pkgname-$pkgver.tar.xz::https://github.com/snapcore/${pkgname}/releases/download/${pkgver}/${pkgname}_${pkgver}.vendor.tar.xz" + "0001-fontconfig-compat.patch" + "0002-zsh-completion.patch") +sha256sums=('54399873d874d3797784ff685e2b21840751d77ccfada6292b34060d58ee4256' + 'ceb4592363a5b56a1fa118b96764fc24e477f8e2bf727331ce7d726bf36ab9e3' + 'c9f40bb1e1b9aa7f3cbf3431a910e0da38cdf467de160870f75ad03e4a3ebb17') _gourl=github.com/snapcore/snapd @@ -104,12 +110,15 @@ package() { unset GO111MODULE # Install bash completion - install -Dm644 data/completion/snap \ + install -Dm644 data/completion/bash/snap \ "$pkgdir/usr/share/bash-completion/completions/snap" - install -Dm644 data/completion/complete.sh \ + install -Dm644 data/completion/bash/complete.sh \ "$pkgdir/usr/lib/snapd/complete.sh" - install -Dm644 data/completion/etelpmoc.sh \ + install -Dm644 data/completion/bash/etelpmoc.sh \ "$pkgdir/usr/lib/snapd/etelpmoc.sh" + # Install zsh completion + install -Dm644 data/completion/zsh/_snap \ + "$pkgdir/usr/share/zsh/site-functions/_snap" # Install systemd units, dbus services and a script for environment variables make -C data/ install \ @@ -154,7 +163,7 @@ package() { install -dm755 "$pkgdir/var/lib/snapd/lib/vulkan" install -dm755 "$pkgdir/var/lib/snapd/lib/glvnd" # these dirs have special permissions - install -dm000 "$pkgdir/var/lib/snapd/void" + install -dm111 "$pkgdir/var/lib/snapd/void" install -dm700 "$pkgdir/var/lib/snapd/cookie" install -dm700 "$pkgdir/var/lib/snapd/cache" |