# Terrible idea. Snap isn't very fit to harbour python desktop apps.
# Bloats up the whole package to 65MB (from 450K). The pyz→zip roundtrip
# is also fairly redundant. (But the pyz is more relocatable than using
# the plain deb / make install setup.)
name: streamtuner2
version: 2.2.2-rc1
summary: Directory browser for internet radio, audio and video streams
description: |
Streamtuner2 is a GUI for browsing internet radio directories,
music collections, and video services - grouped by genres or
categories. It runs your preferred audio player or streamripper
for recording.
|
This SNAP package is just for testing. The DEB or PYZ are significantly
smaller and faster to install.
icon: ./icon.png
grade: stable
base: core18
confinement: classic # `strict` wouldn't allow exec of audacious/vlc/etc., which kinda defeats the purpose of st2
parts:
# pull in python2 + libs
python:
plugin: python
python-version: python2
python-packages: [requests,pyquery,lxml,six,"urllib3[secure]",pillow]
after: [desktop-gtk2]
stage-packages:
- python-gtk2
# use prepared pyz in zip
st2:
plugin: dump
source: snapcraft.zip
source-type: zip
# https://forum.snapcraft.io/t/gtk2-applications/13508
#
# This part installs the `desktop-launch` script which initialises desktop
# features such as fonts, themes and the XDG environment. It also installs
# the GTK2 runtime libraries.
#
# It is copied straight from the snapcraft desktop helpers project. Please
# periodically check the source for updates and copy the changes.
# https://github.com/ubuntu/snapcraft-desktop-helpers/blob/master/snapcraft.yaml
#
desktop-gtk2:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: gtk
plugin: make
make-parameters: ["FLAVOR=gtk2"]
build-packages:
- build-essential
- libgtk2.0-dev
stage-packages:
- libxkbcommon0 # XKB_CONFIG_ROOT
- ttf-ubuntu-font-family
#- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libgtk2.0-0
- libgdk-pixbuf2.0-0
- libglib2.0-bin
- libgtk2.0-bin
- unity-gtk2-module
#- locales-all
- libappindicator1
- xdg-user-dirs
- ibus-gtk
- libibus-1.0-5
# https://forum.snapcraft.io/t/simple-trick-to-reduce-size-and-startup-time-of-gnome-based-snaps/12006
cleanup:
after: [ python, st2, desktop-gtk2 ]
plugin: nil
build-snaps: [ gnome-3-28-1804 ]
override-prime: |
set -eux
#cd /snap/gnome-3-28-1804/current
#find . -type f,l -exec rm -f $SNAPCRAFT_PRIME/{} \;
#cd $SNAPCRAFT_PRIME/usr/lib/locale
#find . -type f,l -exec rm -f $SNAPCRAFT_PRIME/{} \;
apps:
pyz:
command: desktop-launch $SNAP/streamtuner2.pyz
plugs:
- x11
- home
- network
- desktop # needed for a lot of gtk3 and glib interaction with the host system
- desktop-legacy # needed for accessibility tools IIRC
- gtk-2-engines
- gtk-2-themes
#- gnome-3-28-1804
plugs:
gtk-2-engines:
interface: content
target: $SNAP/lib/gtk-2.0
default-provider: gtk2-common-themes
gtk-2-themes:
interface: content
target: $SNAP/data-dir/themes
default-provider: gtk-common-themes
icon-themes:
interface: content
target: $SNAP/data-dir/icons
default-provider: gtk-common-themes
sound-themes:
interface: content
target: $SNAP/data-dir/sounds
default-provider: gtk-common-themes
# gnome-3-28-1804:
# interface: content
# target: $SNAP/gnome-platform
# default-provider: gnome-3-28-1804