From: Chris Billington Subject: Re: New: audio/tuner: browse and play internet radio streams To: ports@openbsd.org Date: Thu, 25 Jun 2026 17:28:31 +0800 Chris Billington wrote: > 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 It turns out that the AAC decoders faad and fdkaac are in fact disabled in our port of gst-plugins-bad, so gst-libav is definitely needed to play back AAC streams Chris