packaging/arch: pre-create snapd directories when packaging #4296

Merged
merged 1 commit into from Nov 24, 2017

Conversation

Projects
None yet
5 participants
Contributor

bboozzoo commented Nov 24, 2017

Although snapd will create these directories at runtime it's more convenient to create them during packaging. Especially when some tests may assume that some of these already exist.

Also, it's now possible to do pacman -Qo /var/cache/snapd and get snapd in the output.

packaging/arch: pre-create snapd directories when packaging
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
+ install -d -m 755 "$pkgdir/var/lib/snapd/mount"
+ install -d -m 755 "$pkgdir/var/lib/snapd/seccomp/bpf"
+ install -d -m 755 "$pkgdir/var/lib/snapd/snap/bin"
+ install -d -m 755 "$pkgdir/var/lib/snapd/snaps"
@stolowski

stolowski Nov 24, 2017

Contributor

This list is not complete, e.g. /var/lib/snapd/cache, /var/lib/snapd/cookie, /var/lib/snapd/firstboot are missing - I'm not sure how important it is for the list to be complete here. Note that some of these dirs have more strict permissions.

@zyga

zyga Nov 24, 2017

Contributor

Yeah, +1 on the patch but add more directories please.

@bboozzoo

bboozzoo Nov 27, 2017

Contributor

Some confusion here, need advice. The list in here: https://github.com/snapcore/snapd/blob/master/packaging/ubuntu-16.04/snapd.dirs is slightly different from https://github.com/snapcore/snapd/blob/master/packaging/opensuse-42.2/snapd.spec#L268 and https://github.com/snapcore/snapd/blob/master/packaging/fedora/snapd.spec#L602.

I've captured this in a list:

snap                                # classic snaps
var/cache/snapd                     # all 
usr/lib/snapd                       # all
var/lib/snapd/apparmor/snap-confine # apparmor only
var/lib/snapd/auto-import           # only ubuntu?
var/lib/snapd/desktop               # all?
var/lib/snapd/environment           # only ubuntu?
var/lib/snapd/firstboot             # only ubuntu?
var/lib/snapd/lib/gl                # all?
var/lib/snapd/snaps/partial         # all?
var/lib/snapd/void                  # all, perms 000
var/snap                            # global data, all? 

# fedora
%dir %{_sharedstatedir}/snapd
%dir %{_sharedstatedir}/snapd/assertions
%dir %{_sharedstatedir}/snapd/desktop
%dir %{_sharedstatedir}/snapd/desktop/applications
%dir %{_sharedstatedir}/snapd/device
%dir %{_sharedstatedir}/snapd/hostfs
%dir %{_sharedstatedir}/snapd/mount
%dir %{_sharedstatedir}/snapd/seccomp
%dir %{_sharedstatedir}/snapd/seccomp/bpf
%dir %{_sharedstatedir}/snapd/snaps
%dir %{_sharedstatedir}/snapd/snap
%ghost %dir %{_sharedstatedir}/snapd/snap/bin
%dir %{_localstatedir}/cache/snapd
%dir %{_localstatedir}/snap
%attr(0000,root,root) %{_sharedstatedir}/snapd/void
# missing (all?)
# -  /var/lib/snapd/lib/gl?


# openSUSE
%dir %attr(0000,root,root) /var/lib/snapd/void
%dir /snap
%dir /snap/bin
%dir %{_libexecdir}/snapd
%dir /var/lib/snapd
%dir /var/lib/snapd/apparmor
%dir /var/lib/snapd/apparmor/profiles
%dir /var/lib/snapd/apparmor/snap-confine
%dir /var/lib/snapd/assertions
%dir /var/lib/snapd/desktop
%dir /var/lib/snapd/desktop/applications
%dir /var/lib/snapd/device
%dir /var/lib/snapd/hostfs
%dir /var/lib/snapd/mount
%dir /var/lib/snapd/seccomp
%dir /var/lib/snapd/seccomp/bpf
%dir /var/lib/snapd/snaps
%dir /var/cache/snapd
# missing (all?)
# - /var/snap?
# - /var/lib/snapd/lib/gl?

codecov-io commented Nov 24, 2017

Codecov Report

Merging #4296 into master will decrease coverage by <.01%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #4296      +/-   ##
==========================================
- Coverage   76.19%   76.18%   -0.01%     
==========================================
  Files         443      443              
  Lines       38599    38599              
==========================================
- Hits        29409    29407       -2     
- Misses       7172     7174       +2     
  Partials     2018     2018
Impacted Files Coverage Δ
overlord/ifacestate/helpers.go 59.6% <0%> (-0.67%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cacc86b...c47aa1e. Read the comment docs.

zyga approved these changes Nov 24, 2017

+ install -d -m 755 "$pkgdir/var/lib/snapd/mount"
+ install -d -m 755 "$pkgdir/var/lib/snapd/seccomp/bpf"
+ install -d -m 755 "$pkgdir/var/lib/snapd/snap/bin"
+ install -d -m 755 "$pkgdir/var/lib/snapd/snaps"
@stolowski

stolowski Nov 24, 2017

Contributor

This list is not complete, e.g. /var/lib/snapd/cache, /var/lib/snapd/cookie, /var/lib/snapd/firstboot are missing - I'm not sure how important it is for the list to be complete here. Note that some of these dirs have more strict permissions.

@zyga

zyga Nov 24, 2017

Contributor

Yeah, +1 on the patch but add more directories please.

@bboozzoo

bboozzoo Nov 27, 2017

Contributor

Some confusion here, need advice. The list in here: https://github.com/snapcore/snapd/blob/master/packaging/ubuntu-16.04/snapd.dirs is slightly different from https://github.com/snapcore/snapd/blob/master/packaging/opensuse-42.2/snapd.spec#L268 and https://github.com/snapcore/snapd/blob/master/packaging/fedora/snapd.spec#L602.

I've captured this in a list:

snap                                # classic snaps
var/cache/snapd                     # all 
usr/lib/snapd                       # all
var/lib/snapd/apparmor/snap-confine # apparmor only
var/lib/snapd/auto-import           # only ubuntu?
var/lib/snapd/desktop               # all?
var/lib/snapd/environment           # only ubuntu?
var/lib/snapd/firstboot             # only ubuntu?
var/lib/snapd/lib/gl                # all?
var/lib/snapd/snaps/partial         # all?
var/lib/snapd/void                  # all, perms 000
var/snap                            # global data, all? 

# fedora
%dir %{_sharedstatedir}/snapd
%dir %{_sharedstatedir}/snapd/assertions
%dir %{_sharedstatedir}/snapd/desktop
%dir %{_sharedstatedir}/snapd/desktop/applications
%dir %{_sharedstatedir}/snapd/device
%dir %{_sharedstatedir}/snapd/hostfs
%dir %{_sharedstatedir}/snapd/mount
%dir %{_sharedstatedir}/snapd/seccomp
%dir %{_sharedstatedir}/snapd/seccomp/bpf
%dir %{_sharedstatedir}/snapd/snaps
%dir %{_sharedstatedir}/snapd/snap
%ghost %dir %{_sharedstatedir}/snapd/snap/bin
%dir %{_localstatedir}/cache/snapd
%dir %{_localstatedir}/snap
%attr(0000,root,root) %{_sharedstatedir}/snapd/void
# missing (all?)
# -  /var/lib/snapd/lib/gl?


# openSUSE
%dir %attr(0000,root,root) /var/lib/snapd/void
%dir /snap
%dir /snap/bin
%dir %{_libexecdir}/snapd
%dir /var/lib/snapd
%dir /var/lib/snapd/apparmor
%dir /var/lib/snapd/apparmor/profiles
%dir /var/lib/snapd/apparmor/snap-confine
%dir /var/lib/snapd/assertions
%dir /var/lib/snapd/desktop
%dir /var/lib/snapd/desktop/applications
%dir /var/lib/snapd/device
%dir /var/lib/snapd/hostfs
%dir /var/lib/snapd/mount
%dir /var/lib/snapd/seccomp
%dir /var/lib/snapd/seccomp/bpf
%dir /var/lib/snapd/snaps
%dir /var/cache/snapd
# missing (all?)
# - /var/snap?
# - /var/lib/snapd/lib/gl?

@mvo5 mvo5 merged commit bfe93bc into snapcore:master Nov 24, 2017

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
Collaborator

mvo5 commented Nov 24, 2017

I merged this now as it improves things, but please @bboozzoo see the comment from @stolowski about that some more dirs should be added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment