Snap packaging improvements (#207)

* fixup! snap: Support official config paths via *-files confinement interfaces (#197)

* FIXME no longer applied
* Obsoleted HOME environment variable assignment

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>

* snap: Migrate to selective-checkout

The selective-pull stage snap is superseded by selective-checkout, prefer the new one.

Refer-to: Selective-checkout: Check out the tagged release revision if it isn't promoted to the stable channel <https://forum.snapcraft.io/t/the-selective-pull-scriptlet-stage-snap-workaround/10389>
Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>

* snap: Support bash completion

Refer-to: Scriptlets <https://docs.snapcraft.io/scriptlets/4892>
Refer-to: Tab completion for snaps <https://docs.snapcraft.io/tab-completion-for-snaps/2261>
Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>

* snap: Implement interface connection warning in the launcher

This patch ensures that the user will be acknowledge the missing
connection to the `removable-media` interface.

Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
master
林博仁(Buo-ren Lin) 2019-03-29 16:55:43 +08:00 committed by Mike Fährmann
parent c689bc2971
commit 81d4d49234
2 changed files with 31 additions and 7 deletions

View File

@ -8,12 +8,25 @@ set \
-o pipefail
# Use user's real home directory for canonical configuration path access
# FIXME: Waiting for Snap Store assertion
declare REALHOME="$(
getent passwd "${USER}" \
| cut --delimiter=: --fields=6
)"
HOME="${REALHOME}"
if ! test -f "${SNAP_USER_COMMON}"/marker_disable_interface_warning; then
# Warn if the `removable-media` interface isn't connected
if ! ls /media &>/dev/null; then
printf -- \
"It seems that this snap isn't connected to the \`removable-media\` security confinement interface. If you want to save the files under \`/media\`, \`/run/media\`, or \`/mnt\` directories you need to connect this snap to the \`removable-media\` interface by running the following command in a terminal:\\n\\n sudo snap connect %s:removable-media\\n\\n" \
"${SNAP_NAME}" \
>&2
printf -- \
"To disable this warning create an empty file at the following path:\\n\\n %s/marker_disable_interface_warning\\n\\n" \
"${SNAP_USER_COMMON}" \
>&2
fi
fi
# Finally run the next part of the command chain
exec "${@}"

View File

@ -55,22 +55,34 @@ parts:
organize:
'*': bin/
selective-pull:
# Check out the tagged release revision if it isnt promoted to the stable channel
# https://forum.snapcraft.io/t/selective-checkout-check-out-the-tagged-release-revision-if-it-isnt-promoted-to-the-stable-channel/10617
selective-checkout:
plugin: nil
build-packages:
- git
stage-snaps:
- selective-pull
- selective-checkout
gallery-dl:
after:
- selective-pull
- selective-checkout
source: .
override-pull: $SNAPCRAFT_STAGE/scriptlets/selective-pull
override-pull: |
snapcraftctl pull
$SNAPCRAFT_STAGE/scriptlets/selective-checkout
plugin: python
build-packages:
- make
python-packages:
- youtube_dl
override-build: |
# build manpages and bash completion
make
snapcraftctl build
ffmpeg:
plugin: nil
@ -94,11 +106,10 @@ apps:
command-chain:
- bin/gallery-dl-launch
command: bin/gallery-dl
completer: etc/bash_completion.d/gallery-dl.bash_completion
environment:
LANG: C.UTF-8
LC_ALL: C.UTF-8
# Satisfy FFmpeg's libpulsecommon dependency
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
HOME: $SNAP_USER_COMMON