Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Diff

Differences From Artifact [131ff637c3]:

To Artifact [25a3306342]:


1
2
3

4

5
6
7
8
9
10
11
12
13
14
15
16
17
18

19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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.



name: streamtuner2
version: 2.2.1+2020-05
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: strict

parts:

  # pull in python2 + libs
  python:
    plugin: python
    python-version: python2
    python-packages: [requests,pyquery,lxml,six,urllib3,pillow]
    after: [desktop-gtk2]
    stage-packages:
      - python-gtk2

  # use prepared pyz in zip
  st2:
    plugin: dump


|
>

>

|












>
|


<




|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

25
26
27
28
29
30
31
32
33
34
35
36
# 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73












74
75
76
77
78
79
80
81
82
83



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101




    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













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




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











|









|




>
>
>
>
>
>
>
>
>
>
>
>










>
>
>


















>
>
>
>
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
    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