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