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

โŒˆโŒ‹ โŽ‡ branch:  streamtuner2


Artifact [4883c4bdc9]

Artifact 4883c4bdc9b64182c4d235d967721cf67ec16cd8:


     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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    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
   102
   103
   104
   105
   106
   107
   108
   109
   110
   111
   112
   113
   114
   115
   116
   117
   118
   119
   120
   121
   122
   123
   124
   125
   126
   127
   128
   129
   130
   131
   132
   133
   134
   135
   136
   137
   138
   139
   140
   141
   142
   143
   144
   145
   146
   147
   148
   149
   150
   151
   152
   153
   154
   155
   156
   157
   158
   159
   160
   161
   162
   163
   164
   165
   166
   167
# pack: PACKAGING=

This is a short summary for distribution package maintainers.
For regular end-user documentation please see the README and
help/ pages.


Structural changes from 2.1.5 onwards (2015-04-xx)
--------------------------------------------------

 โ†’ There's a new `bin` script. It's a lightweight invocation
   wrapper, intended to be installed as /usr/bin/streamtuner2
   now.
   Which hopefully avoids lengthy patches in the future.

 โ†’ The previous `st2.py` still exists, but is now supposed to
   reside in `/usr/share/streamtuner2/st2.py` along with all
   other modules.

 โ†’ Theoretically it's now possible to change the target path
   even (just edit `bin`).

I'd still advise to use /usr/share/streamtuner2/ as main target
directory though. It's not yet practical to extract into Python
site-package directories.

The channel PNG files have been soaked into the .py includes.
Though one could still package any static *.png alongside.
(Both will remain supported, for simplicity.)


Renames
-------

 ยท bookmarks, configdialog, streamedit were extracted into
   channels/ - which is why the main module got lighter.

 ยท uikit.py is the new mygtk

 ยท contrib/ contains more add-on modules, which could just
   be packaged into channels/ - selectively.

   (Alternatively users can download and activate those
   themselves later.)
 

Aux files
---------

 โ†’ Help files still need to go to share/docs/streamtuner2/help/
   unless you patch the source.

 โ†’ *.desktop as usual

 โ†’ and `icon.png` is the /share/pixmaps/ icon


Removed
-------

Most plugin PNGs may have been removed already. (Embedded
binary data may violate some distro guidelines(?), but hey,
fewer files are fewer files!)

And the streamtuner2.png logo is now source-embedded instead;
the `logo.py` module provides a `logo.png` base64-string.

The old `gtk2.xml` file is gone. It probably became obsolete
a long while back. The gtk3.xml is instead runtime-patched
to work with PyGTK/gtk2.


Dependencies
------------

If possible, make ST2 dependend on Python2 -or- Python3.
It's not yet practical, and probably against distro standards,
and only APT could so anyway. But if feasible...

Also, hard dependencies are meanwhile:

  - gtk (>= 2.16)
  - pygtk                           [or python-gi for python3]
  - python-requests (>= 2.0.0)
  - python-pyquery    [though most plugins would work without]
  - and its implied python-lxml

Optional dependencies (just affects a single plugin, which
semi-gracefully disables itself):

  - python-keybinder   [for global_key]
  - python-dbus        [for radiotray]

Very optional dependencies (everything should work without):

  - python-xdg

Strongly suggest:

  - streamripper       [or ficy/fpls etc.]
  - any audio player of course

Suggest:

  - youtube-dl   [technically not required, as VLC works without]


Lazy installation
-----------------

The new .PYZ archive bundles everything into a ZIP file. Which,
given the right shebang, could just be "installed" as literal
/usr/bin/streamtuner2 even.

I'm sure nobody is going to do so. But you know, it's at least
a theoretical option now..

And this PYZ-packaging scheme is the main reason for the
restructuring, and embedded PNGs for example. (Albeit that
wasn't strictly necessary.)


FPM/XPM packaging
-----------------

You may have noticed (and scoffed at ;) the newer packaging
method. It's now using http://fossil.include-once.org/xpm/
with the `-s src` filter. (That's what the meta comment blocks
in the source modules were always meant for.)

Simplifies DEB and RPM packaging, as well as PYZ generation.
(They're all workable, but decidedly rather crude packages.
So yes, proper distro packages are very much still needed.)


Fossil Repo
-----------

The source code is hosted in a Fossil repo.
A few special pages of interest:

 ยท DETAILED CHANGELOG 
   http://fossil.include-once.org/streamtuner2/changelog

 ยท Raw tarball/zip, by version or tip/trunk
   http://fossil.include-once.org/streamtuner2/tar/2.1.5/st.tgz
   http://fossil.include-once.org/streamtuner2/zip/trunk/st.zip

 ยท Literal file download
   http://fossil.include-once.org/streamtuner2/cat/config.py

 ยท Doc browsing/download
   http://fossil.include-once.org/streamtuner2/doc/trunk/help/html/index.html

 ยท Trunk filerefs
   http://fossil.include-once.org/streamtuner2/uri-list

 ยท DIRECT GIT EXPORT
   http://fossil.include-once.org/streamtuner2/git-fast-export
   (Git may or may not choke on its own export format though..)


Fin
---

Thanks guys!