Index | Thread | Search

From:
Chris Billington <emulti@disroot.org>
Subject:
Re: New: audio/tuner: browse and play internet radio streams
To:
ports@openbsd.org
Date:
Thu, 25 Jun 2026 16:40:32 +0800

Download raw body.

Thread
Stuart Henderson wrote:
> On 2026/06/25 16:07, Chris Billington wrote:
>> Chris Billington wrote:
>>> Stuart Henderson wrote:
>>>> On 2026/06/16 14:38, Chris Billington wrote:
>>>>> Attached: audio/tuner internet radio browser/player that can
>>>>> also play video
>>>>> streams in mpv
>>>>>
>>>>> Upstream: https://github.com/tuner-labs/tuner
>>>>>
>>>>> Rationale:
>>>>> - existing port audio/gradio has not been maintained since 2019 and has
>>>>> unpleasant bugs switching streams that will presumably never be fixed.
>>>>>
>>>>> - existing port audio/curseradio (ncurses) currently fails to
>>>>> start with an
>>>>> OPML browsing error
>>>>>
>>>>> - Tuner upstream has 27 contributors and seems to be actively
>>>>> maintained.
>>>>>
>>>>> After patching a mutex lock/unlock issue the port tests fine on
>>>>> 7.9-stable.
>>>>> Patch submitted upstream.
>>>>>
>>>>> To play AAC streams gst-libav is an optional dependency. I
>>>>> wasn't sure how
>>>>> to best handle this.
>>>>>
>>>>> Testers on 7.9-current welcome, unfortunately I don't have a
>>>>> machine with
>>>>> -current handy.
>>>>>
>>>>> Looking for comments and OK's, am happy to take maintainer.
>>>>>
>>>>> Chris
>>>>
>>>> : GH_TAGNAME =    v2.1.0
>>>> : GH_ACCOUNT =    tuner-labs
>>>> : GH_PROJECT =    tuner
>>>> : DISTNAME =      ${GH_PROJECT:L}-${GH_TAGNAME:S/^v//}
>>>> : #EPOCH =         0
>>>> : #REVISION =      0
>>>>
>>>> the DISTNAME line is doing nothing, it just sets it to the same string
>>>> used by default, so drop it, along with #EPOCH/REVISION
>>>>
>>>> : # GPLv3
>>>>
>>>> files have "SPDX-License-Identifier: GPL-3.0-or-later" so please write
>>>> GPLv3+
>>>>
>>>> : WANTLIB += c execinfo gdk-3 gdk_pixbuf-2.0 gee-0.8
>>>> : WANTLIB += gio-2.0 glib-2.0 gobject-2.0 gstplayer-1.0 gstreamer-1.0
>>>> : WANTLIB += gtk-3 intl json-glib-1.0 pango-1.0
>>>> : WANTLIB += soup-3.0
>>>> :
>>>> : LIB_DEPENDS =           devel/json-glib \
>>>> :             devel/libgee \
>>>> :                         devel/libsoup3 \
>>>> :                         multimedia/gstreamer1/plugins-bad \
>>>> :                         x11/gtk+3
>>>>
>>>> just use tabs rather than a mix of tabs and spaces
>>>>
>>>> : LDFLAGS =        L${LOCALBASE}/lib
>>>> : LDFLAGS +=              -lexecinfo
>>>>
>>>> this is doing nothing, the LDFLAGS make variable is not passed in to
>>>> the build
>>>>
>>>> : -meson.add_install_script (
>>>> : -    glib_compile_schemas,
>>>> : -    schemas_dir,
>>>> : -    install_tag: 'schemas'
>>>> : -)
>>>> : +#meson.add_install_script (
>>>> : +#    glib_compile_schemas,
>>>> : +#    schemas_dir,
>>>> : +#    install_tag: 'schemas'
>>>> : +#)
>>>> this patch is a bit unclear and makes it looks like it's disabling
>>>> install of schemas (which is wrong), but actually it's disabling
>>>> a bogus schema compile job.
>>>>
>>>> updated tgz attached (so far I've only built, not run it).
>>>>
>>> Thanks Stuart for tidying my untidiness! I was too pleased having zapped
>>> the mutex bug (doesn't bother Linux, it seems) that I forgot to put
>>> things in good order.
>>> Works fine on 7.9-stable.
>>>
>>> Regards,
>>> Chris
>> I have given this a good test on 7.9-current amd64 including several of the
>> various TV channels in the radio-browser directory, which seem to decode
>> fine using Gstreamer.
>>
>> AAC audio playback (commonly used for Internet radio and video stations in
>> the directory) seems to work OK using the fdkaacdec decoder in
>> gst-plugins-bad, but that codec is only ranked 'marginal'. The primary AAC
>> decoder avdec_aac is ranked as 'primary'.
>>
>> To handle this I am wondering if a dependency (or optional dependency) on
>> gst-libav would be sensible, or if it should be handled as a note in a
>> pkg-readme.
> 
> ports/packages don't have an "optional dep" mechanism, the only way is
> to either mention it somewhere, or add the dep.
> 
> in this case, I think: just add the dep.
> 
> 
Agreed- updated version attached

Chris