git: 4c5902886dab - main - audio/radiotrope: Add new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 29 Mar 2026 17:19:00 UTC
The branch main has been updated by nivit:
URL: https://cgit.FreeBSD.org/ports/commit/?id=4c5902886dab47114a9c96b1f7d5e148ed02bb88
commit 4c5902886dab47114a9c96b1f7d5e148ed02bb88
Author: Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2026-03-29 17:16:19 +0000
Commit: Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2026-03-29 17:17:46 +0000
audio/radiotrope: Add new port
Radiotrope is a GUI and CLI internet radio player. It’s an AI agent-enabled
player built with Rust, Slint, and MCP.
Features
- MCP server - AI agents (Claude, etc.) can play stations, control volume,
and query status through natural language
- 10-band equalizer - 14 presets, per-band gain control, preamp
- Desktop GUI - built with Slint, dark/light themes, user-selectable accent
color, real-time spectrum visualization, stream statistics
- Terminal player - lightweight TUI with ratatui for headless/SSH use
- Resilient streaming - automatic reconnection with exponential backoff,
stall detection, health monitoring
- Wide format support - MP3, AAC, HE-AAC, Vorbis, Opus, FLAC over ICY, HLS,
and HTTP
https://github.com/goten002/radiotrope
---
audio/Makefile | 1 +
audio/radiotrope/Makefile | 43 ++
audio/radiotrope/Makefile.crates | 781 +++++++++++++++++++
audio/radiotrope/distinfo | 1565 ++++++++++++++++++++++++++++++++++++++
audio/radiotrope/pkg-descr | 15 +
audio/radiotrope/pkg-plist | 8 +
6 files changed, 2413 insertions(+)
diff --git a/audio/Makefile b/audio/Makefile
index fd22dea1aaf8..9ab6270e69c7 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -687,6 +687,7 @@
SUBDIR += qtractor
SUBDIR += quimup
SUBDIR += qxgedit
+ SUBDIR += radiotrope
SUBDIR += ratatouille-lv2
SUBDIR += raul
SUBDIR += rawrec
diff --git a/audio/radiotrope/Makefile b/audio/radiotrope/Makefile
new file mode 100644
index 000000000000..e1e37ecf3d12
--- /dev/null
+++ b/audio/radiotrope/Makefile
@@ -0,0 +1,43 @@
+PORTNAME= radiotrope
+DISTVERSION= g20260316
+CATEGORIES= audio
+
+MAINTAINER= nivit@FreeBSD.org
+COMMENT= AI agent-enabled internet radio player
+WWW= https://github.com/goten002/radiotrope
+
+LICENSE= APACHE20 BSD0CLAUSE BSD2CLAUSE BSD3CLAUSE BSL FDK-AAC GPLv3 \
+ ISCL MIT MPL20 UNICODE UNLICENSE WTFPL ZLIB
+LICENSE_COMB= multi
+LICENSE_NAME_FDK-AAC= Fraunhofer FDK AAC Codec Library
+LICENSE_NAME_UNICODE= UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+LICENSE_TEXT_FDK-AAC= See https://spdx.org/licenses/FDK-AAC.html
+LICENSE_TEXT_UNICODE= See https://www.unicode.org/copyright.html
+LICENSE_PERMS_FDK-AAC= dist-mirror pkg-mirror auto-accept
+LICENSE_PERMS_UNICODE= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+LIB_DEPENDS= libasound.so:audio/alsa-lib
+
+USES= cargo ssl
+USE_GITHUB= yes
+GH_ACCOUNT= goten002
+GH_TAGNAME= aab2334
+
+CARGO_INSTALL_PATH= crates/radiotrope-app crates/radiotrope-cli
+
+DESKTOP_ENTRIES= "${PORTNAME}" \
+ "${COMMENT}" \
+ "${PORTNAME}" \
+ "${PORTNAME}" \
+ "Audio;AudioVideo;" \
+ false
+
+post-install:
+.for size in 16 32 48 64 128 256
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${size}x${size}/apps
+ cd ${WRKSRC}/assets/icons && \
+ ${INSTALL_DATA} icon-${size}.png \
+ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${size}x${size}/apps/${PORTNAME}.png
+.endfor
+
+.include <bsd.port.mk>
diff --git a/audio/radiotrope/Makefile.crates b/audio/radiotrope/Makefile.crates
new file mode 100644
index 000000000000..7d6a9ac29402
--- /dev/null
+++ b/audio/radiotrope/Makefile.crates
@@ -0,0 +1,781 @@
+CARGO_CRATES= ab_glyph-0.2.32 \
+ ab_glyph_rasterizer-0.1.10 \
+ accesskit-0.22.0 \
+ accesskit_atspi_common-0.15.0 \
+ accesskit_consumer-0.32.0 \
+ accesskit_macos-0.23.0 \
+ accesskit_unix-0.18.0 \
+ accesskit_windows-0.30.0 \
+ accesskit_winit-0.30.0 \
+ adler2-2.0.1 \
+ ahash-0.8.12 \
+ aho-corasick-1.1.4 \
+ aligned-0.4.3 \
+ aligned-vec-0.6.4 \
+ allocator-api2-0.2.21 \
+ alsa-0.11.0 \
+ alsa-sys-0.4.0 \
+ android-activity-0.6.0 \
+ android-properties-0.2.2 \
+ android_system_properties-0.1.5 \
+ annotate-snippets-0.12.11 \
+ anstream-0.6.21 \
+ anstyle-1.0.13 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.5 \
+ anstyle-wincon-3.0.11 \
+ anyhow-1.0.100 \
+ arbitrary-1.4.2 \
+ arg_enum_proc_macro-0.3.4 \
+ arrayref-0.3.9 \
+ arrayvec-0.7.6 \
+ as-raw-xcb-connection-1.0.1 \
+ as-slice-0.2.1 \
+ async-broadcast-0.7.2 \
+ async-channel-2.5.0 \
+ async-executor-1.13.3 \
+ async-io-2.6.0 \
+ async-lock-3.4.2 \
+ async-process-2.5.0 \
+ async-recursion-1.1.1 \
+ async-signal-0.2.13 \
+ async-task-4.7.1 \
+ async-trait-0.1.89 \
+ atomic-0.6.1 \
+ atomic-waker-1.1.2 \
+ atspi-0.29.0 \
+ atspi-common-0.13.0 \
+ atspi-proxies-0.13.0 \
+ auto_enums-0.8.7 \
+ autocfg-1.5.0 \
+ av-scenechange-0.14.1 \
+ av1-grain-0.2.5 \
+ avif-serialize-0.8.8 \
+ base64-0.22.1 \
+ bincode-2.0.1 \
+ bindgen-0.72.1 \
+ biquad-0.5.0 \
+ bit-set-0.5.3 \
+ bit-vec-0.6.3 \
+ bit_field-0.10.3 \
+ bitflags-1.3.2 \
+ bitflags-2.10.0 \
+ bitstream-io-4.9.0 \
+ block-buffer-0.10.4 \
+ block2-0.5.1 \
+ block2-0.6.2 \
+ blocking-1.6.2 \
+ borsh-1.6.0 \
+ built-0.8.0 \
+ bumpalo-3.19.1 \
+ by_address-1.2.1 \
+ bytemuck-1.25.0 \
+ bytemuck_derive-1.10.2 \
+ byteorder-1.5.0 \
+ byteorder-lite-0.1.0 \
+ bytes-1.11.1 \
+ calloop-0.13.0 \
+ calloop-0.14.3 \
+ calloop-wayland-source-0.3.0 \
+ calloop-wayland-source-0.4.1 \
+ castaway-0.2.4 \
+ cc-1.2.55 \
+ cesu8-1.1.0 \
+ cexpr-0.6.0 \
+ cfg-if-1.0.4 \
+ cfg_aliases-0.2.1 \
+ cgl-0.3.2 \
+ chrono-0.4.43 \
+ clang-sys-1.8.1 \
+ clap-4.5.58 \
+ clap_builder-4.5.58 \
+ clap_derive-4.5.55 \
+ clap_lex-1.0.0 \
+ clipboard-win-5.4.1 \
+ clru-0.6.2 \
+ cmake-0.1.57 \
+ color_quant-1.1.0 \
+ colorchoice-1.0.4 \
+ combine-4.6.7 \
+ compact_str-0.9.0 \
+ concurrent-queue-2.5.0 \
+ const-field-offset-0.1.5 \
+ const-field-offset-macro-0.1.5 \
+ convert_case-0.10.0 \
+ copypasta-0.10.2 \
+ core-foundation-0.9.4 \
+ core-foundation-sys-0.8.7 \
+ core-graphics-0.23.2 \
+ core-graphics-types-0.1.3 \
+ core2-0.4.0 \
+ core_maths-0.1.1 \
+ coreaudio-rs-0.14.0 \
+ countme-3.0.1 \
+ cpal-0.17.3 \
+ cpp-0.5.10 \
+ cpp_build-0.5.10 \
+ cpp_common-0.5.10 \
+ cpp_macros-0.5.10 \
+ cpufeatures-0.2.17 \
+ crc32fast-1.5.0 \
+ critical-section-1.2.0 \
+ crossbeam-channel-0.5.15 \
+ crossbeam-deque-0.8.6 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-utils-0.8.21 \
+ crossterm-0.29.0 \
+ crossterm_winapi-0.9.1 \
+ crunchy-0.2.4 \
+ crypto-common-0.1.7 \
+ csscolorparser-0.6.2 \
+ ctor-lite-0.1.2 \
+ cursor-icon-1.2.0 \
+ darling-0.23.0 \
+ darling_core-0.23.0 \
+ darling_macro-0.23.0 \
+ dasp_sample-0.11.0 \
+ data-url-0.3.2 \
+ deltae-0.3.2 \
+ deranged-0.5.5 \
+ derive_more-2.1.1 \
+ derive_more-impl-2.1.1 \
+ derive_utils-0.15.0 \
+ digest-0.10.7 \
+ dirs-6.0.0 \
+ dirs-sys-0.5.0 \
+ dispatch-0.2.0 \
+ dispatch2-0.3.0 \
+ displaydoc-0.2.5 \
+ dlib-0.5.2 \
+ document-features-0.2.12 \
+ downcast-rs-1.2.1 \
+ dpi-0.1.2 \
+ drm-0.14.1 \
+ drm-ffi-0.9.0 \
+ drm-fourcc-2.2.0 \
+ drm-sys-0.8.0 \
+ either-1.15.0 \
+ encoding_rs-0.8.35 \
+ endi-1.1.1 \
+ enumflags2-0.7.12 \
+ enumflags2_derive-0.7.12 \
+ equator-0.4.2 \
+ equator-macro-0.4.2 \
+ equivalent-1.0.2 \
+ errno-0.3.14 \
+ error-code-3.3.2 \
+ euclid-0.22.13 \
+ event-listener-5.4.1 \
+ event-listener-strategy-0.5.4 \
+ exr-1.74.0 \
+ extended-0.1.0 \
+ fancy-regex-0.11.0 \
+ fastrand-2.3.0 \
+ fax-0.2.6 \
+ fax_derive-0.2.0 \
+ fdeflate-0.3.7 \
+ fdk-aac-0.8.0 \
+ fdk-aac-sys-0.5.0 \
+ femtovg-0.20.3 \
+ field-offset-0.3.6 \
+ filedescriptor-0.8.3 \
+ filetime-0.2.27 \
+ find-msvc-tools-0.1.9 \
+ finl_unicode-1.4.0 \
+ fixedbitset-0.4.2 \
+ flate2-1.1.9 \
+ float-cmp-0.9.0 \
+ fnv-1.0.7 \
+ foldhash-0.1.5 \
+ foldhash-0.2.0 \
+ font-types-0.10.1 \
+ fontdb-0.23.0 \
+ fontdue-0.9.3 \
+ fontique-0.7.0 \
+ foreign-types-0.3.2 \
+ foreign-types-0.5.0 \
+ foreign-types-macros-0.2.3 \
+ foreign-types-shared-0.1.1 \
+ foreign-types-shared-0.3.1 \
+ form_urlencoded-1.2.2 \
+ futures-0.3.31 \
+ futures-channel-0.3.31 \
+ futures-core-0.3.31 \
+ futures-executor-0.3.31 \
+ futures-io-0.3.31 \
+ futures-lite-2.6.1 \
+ futures-macro-0.3.31 \
+ futures-sink-0.3.31 \
+ futures-task-0.3.31 \
+ futures-util-0.3.31 \
+ gbm-0.18.0 \
+ gbm-sys-0.4.0 \
+ generic-array-0.14.7 \
+ gethostname-1.1.0 \
+ getopts-0.2.24 \
+ getrandom-0.2.17 \
+ getrandom-0.3.4 \
+ gif-0.14.1 \
+ gl_generator-0.14.0 \
+ glob-0.3.3 \
+ glow-0.16.0 \
+ glutin-0.32.3 \
+ glutin-winit-0.5.0 \
+ glutin_egl_sys-0.7.1 \
+ glutin_glx_sys-0.6.1 \
+ glutin_wgl_sys-0.6.1 \
+ h2-0.4.13 \
+ half-2.7.1 \
+ harfrust-0.3.2 \
+ hashbrown-0.14.5 \
+ hashbrown-0.15.5 \
+ hashbrown-0.16.1 \
+ heck-0.5.0 \
+ hermit-abi-0.3.9 \
+ hermit-abi-0.5.2 \
+ hex-0.4.3 \
+ htmlparser-0.2.1 \
+ http-1.4.0 \
+ http-body-1.0.1 \
+ http-body-util-0.1.3 \
+ httparse-1.10.1 \
+ hyper-1.8.1 \
+ hyper-rustls-0.27.7 \
+ hyper-tls-0.6.0 \
+ hyper-util-0.1.20 \
+ i-slint-backend-linuxkms-1.15.1 \
+ i-slint-backend-qt-1.15.1 \
+ i-slint-backend-selector-1.15.1 \
+ i-slint-backend-winit-1.15.1 \
+ i-slint-common-1.15.1 \
+ i-slint-compiler-1.15.1 \
+ i-slint-core-1.15.1 \
+ i-slint-core-macros-1.15.1 \
+ i-slint-renderer-femtovg-1.15.1 \
+ i-slint-renderer-skia-1.15.1 \
+ i-slint-renderer-software-1.15.1 \
+ iana-time-zone-0.1.65 \
+ iana-time-zone-haiku-0.1.2 \
+ icu_collections-2.1.1 \
+ icu_locale_core-2.1.1 \
+ icu_normalizer-2.1.1 \
+ icu_normalizer_data-2.1.1 \
+ icu_properties-2.1.2 \
+ icu_properties_data-2.1.2 \
+ icu_provider-2.1.1 \
+ ident_case-1.0.1 \
+ idna-1.1.0 \
+ idna_adapter-1.2.1 \
+ image-0.25.9 \
+ image-webp-0.2.4 \
+ imagesize-0.14.0 \
+ imgref-1.12.0 \
+ indexmap-2.13.0 \
+ indoc-2.0.7 \
+ input-0.9.1 \
+ input-sys-1.18.0 \
+ instability-0.3.11 \
+ integer-sqrt-0.1.5 \
+ interpolate_name-0.2.4 \
+ io-lifetimes-1.0.11 \
+ ipnet-2.11.0 \
+ iri-string-0.7.10 \
+ is_terminal_polyfill-1.70.2 \
+ itertools-0.13.0 \
+ itertools-0.14.0 \
+ itoa-1.0.17 \
+ jni-0.21.1 \
+ jni-sys-0.3.0 \
+ jobserver-0.1.34 \
+ js-sys-0.3.85 \
+ kasuari-0.4.11 \
+ keyboard-types-0.7.0 \
+ khronos_api-3.1.0 \
+ kurbo-0.12.0 \
+ kurbo-0.13.0 \
+ lab-0.11.0 \
+ lazy_static-1.5.0 \
+ lebe-0.5.3 \
+ libc-0.2.180 \
+ libfuzzer-sys-0.4.12 \
+ libloading-0.8.9 \
+ libm-0.2.16 \
+ libredox-0.1.12 \
+ libudev-sys-0.1.4 \
+ line-clipping-0.3.5 \
+ linebender_resource_handle-0.1.1 \
+ linked-hash-map-0.5.6 \
+ linked_hash_set-0.1.6 \
+ linux-raw-sys-0.4.15 \
+ linux-raw-sys-0.6.5 \
+ linux-raw-sys-0.11.0 \
+ litemap-0.8.1 \
+ litrs-1.0.0 \
+ lock_api-0.4.14 \
+ log-0.4.29 \
+ loop9-0.1.5 \
+ lru-0.16.3 \
+ lyon_algorithms-1.0.16 \
+ lyon_extra-1.0.3 \
+ lyon_geom-1.0.18 \
+ lyon_path-1.0.16 \
+ m3u8-rs-6.0.0 \
+ mac_address-1.1.8 \
+ mach2-0.5.0 \
+ maybe-rayon-0.1.1 \
+ memchr-2.7.6 \
+ memmap2-0.9.9 \
+ memmem-0.1.1 \
+ memoffset-0.9.1 \
+ minimal-lexical-0.2.1 \
+ miniz_oxide-0.8.9 \
+ mio-1.1.1 \
+ moxcms-0.7.11 \
+ mpeg2ts-0.6.0 \
+ muda-0.17.1 \
+ native-tls-0.2.14 \
+ natord-1.0.9 \
+ ndk-0.9.0 \
+ ndk-context-0.1.1 \
+ ndk-sys-0.6.0+11769913 \
+ new_debug_unreachable-1.0.6 \
+ nix-0.29.0 \
+ nix-0.30.1 \
+ nom-7.1.3 \
+ nom-8.0.0 \
+ noop_proc_macro-0.3.0 \
+ num-bigint-0.4.6 \
+ num-complex-0.4.6 \
+ num-conv-0.2.0 \
+ num-derive-0.4.2 \
+ num-integer-0.1.46 \
+ num-rational-0.4.2 \
+ num-traits-0.2.19 \
+ num_enum-0.7.5 \
+ num_enum_derive-0.7.5 \
+ num_threads-0.1.7 \
+ objc-sys-0.3.5 \
+ objc2-0.5.2 \
+ objc2-0.6.3 \
+ objc2-app-kit-0.2.2 \
+ objc2-app-kit-0.3.2 \
+ objc2-audio-toolbox-0.3.2 \
+ objc2-avf-audio-0.3.2 \
+ objc2-cloud-kit-0.2.2 \
+ objc2-cloud-kit-0.3.2 \
+ objc2-contacts-0.2.2 \
+ objc2-core-audio-0.3.2 \
+ objc2-core-audio-types-0.3.2 \
+ objc2-core-data-0.2.2 \
+ objc2-core-data-0.3.2 \
+ objc2-core-foundation-0.3.2 \
+ objc2-core-graphics-0.3.2 \
+ objc2-core-image-0.2.2 \
+ objc2-core-image-0.3.2 \
+ objc2-core-location-0.2.2 \
+ objc2-core-text-0.3.2 \
+ objc2-core-video-0.3.2 \
+ objc2-encode-4.1.0 \
+ objc2-foundation-0.2.2 \
+ objc2-foundation-0.3.2 \
+ objc2-io-surface-0.3.2 \
+ objc2-link-presentation-0.2.2 \
+ objc2-metal-0.2.2 \
+ objc2-metal-0.3.2 \
+ objc2-quartz-core-0.2.2 \
+ objc2-quartz-core-0.3.2 \
+ objc2-symbols-0.2.2 \
+ objc2-ui-kit-0.2.2 \
+ objc2-ui-kit-0.3.2 \
+ objc2-uniform-type-identifiers-0.2.2 \
+ objc2-user-notifications-0.2.2 \
+ once_cell-1.21.3 \
+ once_cell_polyfill-1.70.2 \
+ openssl-0.10.75 \
+ openssl-macros-0.1.1 \
+ openssl-probe-0.1.6 \
+ openssl-sys-0.9.111 \
+ option-ext-0.2.0 \
+ opusic-sys-0.5.8 \
+ orbclient-0.3.50 \
+ ordered-float-4.6.0 \
+ ordered-stream-0.2.0 \
+ owned_ttf_parser-0.25.1 \
+ parking-2.2.1 \
+ parking_lot-0.12.5 \
+ parking_lot_core-0.9.12 \
+ parley-0.7.0 \
+ paste-1.0.15 \
+ pastey-0.1.1 \
+ percent-encoding-2.3.2 \
+ pest-2.8.6 \
+ pest_derive-2.8.6 \
+ pest_generator-2.8.6 \
+ pest_meta-2.8.6 \
+ phf-0.11.3 \
+ phf_codegen-0.11.3 \
+ phf_generator-0.11.3 \
+ phf_macros-0.11.3 \
+ phf_shared-0.11.3 \
+ pico-args-0.5.0 \
+ pin-project-1.1.10 \
+ pin-project-internal-1.1.10 \
+ pin-project-lite-0.2.16 \
+ pin-utils-0.1.0 \
+ pin-weak-1.1.0 \
+ piper-0.2.4 \
+ pkg-config-0.3.32 \
+ png-0.17.16 \
+ png-0.18.0 \
+ polling-3.11.0 \
+ portable-atomic-1.13.1 \
+ potential_utf-0.1.4 \
+ powerfmt-0.2.0 \
+ ppv-lite86-0.2.21 \
+ prettyplease-0.2.37 \
+ primal-check-0.3.4 \
+ proc-macro-crate-3.4.0 \
+ proc-macro2-1.0.106 \
+ profiling-1.0.17 \
+ profiling-procmacros-1.0.17 \
+ pulldown-cmark-0.13.0 \
+ pulldown-cmark-escape-0.11.0 \
+ pxfm-0.1.27 \
+ qoi-0.4.1 \
+ qttypes-0.2.12 \
+ quick-error-2.0.1 \
+ quick-xml-0.38.4 \
+ quote-1.0.44 \
+ r-efi-5.3.0 \
+ rand-0.8.5 \
+ rand-0.9.2 \
+ rand_chacha-0.9.0 \
+ rand_core-0.6.4 \
+ rand_core-0.9.5 \
+ ratatui-0.30.0 \
+ ratatui-core-0.1.0 \
+ ratatui-crossterm-0.1.0 \
+ ratatui-macros-0.7.0 \
+ ratatui-termwiz-0.1.0 \
+ ratatui-widgets-0.3.0 \
+ rav1e-0.8.1 \
+ ravif-0.12.0 \
+ raw-window-handle-0.6.2 \
+ raw-window-metal-1.1.0 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
+ read-fonts-0.35.0 \
+ redox_syscall-0.4.1 \
+ redox_syscall-0.5.18 \
+ redox_syscall-0.7.1 \
+ redox_users-0.5.2 \
+ regex-1.12.3 \
+ regex-automata-0.4.14 \
+ regex-syntax-0.8.9 \
+ reqwest-0.13.1 \
+ resvg-0.46.0 \
+ rgb-0.8.52 \
+ ring-0.17.14 \
+ rodio-0.22.0 \
+ rowan-0.16.1 \
+ roxmltree-0.21.1 \
+ rspolib-0.1.2 \
+ rustc-hash-1.1.0 \
+ rustc-hash-2.1.1 \
+ rustc_version-0.4.1 \
+ rustfft-6.4.1 \
+ rustix-0.38.44 \
+ rustix-1.1.3 \
+ rustls-0.23.36 \
+ rustls-pki-types-1.14.0 \
+ rustls-webpki-0.103.9 \
+ rustversion-1.0.22 \
+ rustybuzz-0.20.1 \
+ ryu-1.0.22 \
+ same-file-1.0.6 \
+ schannel-0.1.28 \
+ scoped-tls-1.0.1 \
+ scoped-tls-hkt-0.1.5 \
+ scopeguard-1.2.0 \
+ sctk-adwaita-0.10.1 \
+ security-framework-2.11.1 \
+ security-framework-sys-2.15.0 \
+ semver-1.0.27 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.149 \
+ serde_repr-0.1.20 \
+ serde_spanned-1.0.4 \
+ serde_urlencoded-0.7.1 \
+ sha2-0.10.9 \
+ shlex-1.3.0 \
+ signal-hook-0.3.18 \
+ signal-hook-mio-0.2.5 \
+ signal-hook-registry-1.4.8 \
+ simd-adler32-0.3.8 \
+ simd_helpers-0.1.0 \
+ simplecss-0.2.2 \
+ siphasher-1.0.2 \
+ skia-bindings-0.90.0 \
+ skia-safe-0.90.0 \
+ skrifa-0.37.0 \
+ slab-0.4.12 \
+ slint-1.15.1 \
+ slint-build-1.15.1 \
+ slint-macros-1.15.1 \
+ slotmap-1.1.1 \
+ smallvec-1.15.1 \
+ smithay-client-toolkit-0.19.2 \
+ smithay-client-toolkit-0.20.0 \
+ smithay-clipboard-0.7.3 \
+ smol_str-0.2.2 \
+ smol_str-0.3.5 \
+ snafu-0.8.9 \
+ snafu-derive-0.8.9 \
+ socket2-0.6.2 \
+ softbuffer-0.4.8 \
+ spin_on-0.1.1 \
+ stable_deref_trait-1.2.1 \
+ static_assertions-1.1.0 \
+ strength_reduce-0.2.4 \
+ strict-num-0.1.1 \
+ strsim-0.11.1 \
+ strum-0.27.2 \
+ strum_macros-0.27.2 \
+ subtle-2.6.1 \
+ svgtypes-0.16.1 \
+ swash-0.2.6 \
+ symphonia-0.5.5 \
+ symphonia-adapter-fdk-aac-0.1.3 \
+ symphonia-adapter-libopus-0.2.6 \
+ symphonia-bundle-flac-0.5.5 \
+ symphonia-bundle-mp3-0.5.5 \
+ symphonia-codec-aac-0.5.5 \
+ symphonia-codec-pcm-0.5.5 \
+ symphonia-codec-vorbis-0.5.5 \
+ symphonia-core-0.5.5 \
+ symphonia-format-isomp4-0.5.5 \
+ symphonia-format-ogg-0.5.5 \
+ symphonia-format-riff-0.5.5 \
+ symphonia-metadata-0.5.5 \
+ symphonia-utils-xiph-0.5.5 \
+ syn-1.0.109 \
+ syn-2.0.114 \
+ sync_wrapper-1.0.2 \
+ synstructure-0.13.2 \
+ sys-locale-0.3.2 \
+ tar-0.4.44 \
+ tempfile-3.24.0 \
+ terminfo-0.9.0 \
+ termios-0.3.3 \
+ termwiz-0.23.3 \
+ text-size-1.1.1 \
+ thiserror-1.0.69 \
+ thiserror-2.0.18 \
+ thiserror-impl-1.0.69 \
+ thiserror-impl-2.0.18 \
+ tiff-0.10.3 \
+ time-0.3.47 \
+ time-core-0.1.8 \
+ tiny-skia-0.11.4 \
+ tiny-skia-path-0.11.4 \
+ tiny-xlib-0.2.4 \
+ tinystr-0.8.2 \
+ tinyvec-1.10.0 \
+ tinyvec_macros-0.1.1 \
+ tokio-1.49.0 \
+ tokio-native-tls-0.3.1 \
+ tokio-rustls-0.26.4 \
+ tokio-util-0.7.18 \
+ toml-0.9.12+spec-1.1.0 \
+ toml_datetime-0.7.5+spec-1.1.0 \
+ toml_edit-0.23.10+spec-1.0.0 \
+ toml_edit-0.24.1+spec-1.1.0 \
+ toml_parser-1.0.8+spec-1.1.0 \
+ toml_writer-1.0.6+spec-1.1.0 \
+ tower-0.5.3 \
+ tower-http-0.6.8 \
+ tower-layer-0.3.3 \
+ tower-service-0.3.3 \
+ tracing-0.1.44 \
+ tracing-attributes-0.1.31 \
+ tracing-core-0.1.36 \
+ transpose-0.2.3 \
+ try-lock-0.2.5 \
+ ttf-parser-0.21.1 \
+ ttf-parser-0.25.1 \
+ typed-index-collections-3.5.0 \
+ typenum-1.19.0 \
+ ucd-trie-0.1.7 \
+ udev-0.9.3 \
+ uds_windows-1.1.0 \
+ unicase-2.9.0 \
+ unicode-bidi-0.3.18 \
+ unicode-bidi-mirroring-0.4.0 \
+ unicode-ccc-0.4.0 \
+ unicode-ident-1.0.22 \
+ unicode-linebreak-0.1.5 \
+ unicode-properties-0.1.4 \
+ unicode-script-0.5.8 \
+ unicode-segmentation-1.12.0 \
+ unicode-truncate-2.0.1 \
+ unicode-vo-0.1.0 \
+ unicode-width-0.2.2 \
+ unicode-xid-0.2.6 \
+ untrusted-0.9.0 \
+ unty-0.0.4 \
+ url-2.5.8 \
+ usvg-0.46.0 \
+ utf8_iter-1.0.4 \
+ utf8parse-0.2.2 \
+ uuid-1.20.0 \
+ v_frame-0.3.9 \
+ vcpkg-0.2.15 \
+ version_check-0.9.5 \
+ vtable-0.3.0 \
+ vtable-macro-0.3.0 \
+ vtparse-0.6.2 \
+ walkdir-2.5.0 \
+ want-0.3.1 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasip2-1.0.2+wasi-0.2.9 \
+ wasm-bindgen-0.2.108 \
+ wasm-bindgen-futures-0.4.58 \
+ wasm-bindgen-macro-0.2.108 \
+ wasm-bindgen-macro-support-0.2.108 \
+ wasm-bindgen-shared-0.2.108 \
+ wayland-backend-0.3.12 \
+ wayland-client-0.31.12 \
+ wayland-csd-frame-0.3.0 \
+ wayland-cursor-0.31.12 \
+ wayland-protocols-0.32.10 \
+ wayland-protocols-experimental-20250721.0.1 \
+ wayland-protocols-misc-0.3.10 \
+ wayland-protocols-plasma-0.3.10 \
+ wayland-protocols-wlr-0.3.10 \
+ wayland-scanner-0.31.8 \
+ wayland-sys-0.31.8 \
+ web-sys-0.3.85 \
+ web-time-1.1.0 \
+ weezl-0.1.12 \
+ wezterm-bidi-0.2.3 \
+ wezterm-blob-leases-0.1.1 \
+ wezterm-color-types-0.3.0 \
+ wezterm-dynamic-0.2.1 \
+ wezterm-dynamic-derive-0.1.1 \
+ wezterm-input-types-0.1.0 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-util-0.1.11 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-0.58.0 \
+ windows-0.61.3 \
+ windows-0.62.2 \
+ windows-collections-0.2.0 \
+ windows-collections-0.3.2 \
+ windows-core-0.58.0 \
+ windows-core-0.61.2 \
+ windows-core-0.62.2 \
+ windows-future-0.2.1 \
+ windows-future-0.3.2 \
+ windows-implement-0.58.0 \
+ windows-implement-0.60.2 \
+ windows-interface-0.58.0 \
+ windows-interface-0.59.3 \
+ windows-link-0.1.3 \
+ windows-link-0.2.1 \
+ windows-numerics-0.2.0 \
+ windows-numerics-0.3.1 \
+ windows-result-0.2.0 \
+ windows-result-0.3.4 \
+ windows-result-0.4.1 \
+ windows-strings-0.1.0 \
+ windows-strings-0.4.2 \
+ windows-strings-0.5.1 \
+ windows-sys-0.45.0 \
+ windows-sys-0.48.0 \
+ windows-sys-0.52.0 \
+ windows-sys-0.60.2 \
+ windows-sys-0.61.2 \
+ windows-targets-0.42.2 \
+ windows-targets-0.48.5 \
+ windows-targets-0.52.6 \
+ windows-targets-0.53.5 \
+ windows-threading-0.1.0 \
+ windows-threading-0.2.1 \
+ windows_aarch64_gnullvm-0.42.2 \
+ windows_aarch64_gnullvm-0.48.5 \
+ windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_gnullvm-0.53.1 \
+ windows_aarch64_msvc-0.42.2 \
+ windows_aarch64_msvc-0.48.5 \
+ windows_aarch64_msvc-0.52.6 \
+ windows_aarch64_msvc-0.53.1 \
+ windows_i686_gnu-0.42.2 \
+ windows_i686_gnu-0.48.5 \
+ windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.1 \
+ windows_i686_gnullvm-0.52.6 \
+ windows_i686_gnullvm-0.53.1 \
+ windows_i686_msvc-0.42.2 \
+ windows_i686_msvc-0.48.5 \
+ windows_i686_msvc-0.52.6 \
+ windows_i686_msvc-0.53.1 \
+ windows_x86_64_gnu-0.42.2 \
+ windows_x86_64_gnu-0.48.5 \
+ windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnu-0.53.1 \
+ windows_x86_64_gnullvm-0.42.2 \
+ windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_gnullvm-0.53.1 \
+ windows_x86_64_msvc-0.42.2 \
+ windows_x86_64_msvc-0.48.5 \
+ windows_x86_64_msvc-0.52.6 \
+ windows_x86_64_msvc-0.53.1 \
+ winit-0.30.12 \
+ winnow-0.7.14 \
+ wit-bindgen-0.51.0 \
+ write-fonts-0.43.0 \
+ writeable-0.6.2 \
+ x11-clipboard-0.9.3 \
+ x11-dl-2.21.0 \
+ x11rb-0.13.2 \
+ x11rb-protocol-0.13.2 \
+ xattr-1.6.1 \
+ xcursor-0.3.10 \
+ xkbcommon-0.9.0 \
+ xkbcommon-dl-0.4.2 \
+ xkeysym-0.2.1 \
+ xml-rs-0.8.28 \
+ xmlwriter-0.1.0 \
+ y4m-0.8.0 \
+ yazi-0.2.1 \
+ yeslogic-fontconfig-sys-6.0.0 \
+ yoke-0.8.1 \
+ yoke-derive-0.8.1 \
+ zbus-5.13.2 \
+ zbus-lockstep-0.5.2 \
+ zbus-lockstep-macros-0.5.2 \
+ zbus_macros-5.13.2 \
+ zbus_names-4.3.1 \
+ zbus_xml-5.1.0 \
+ zeno-0.3.3 \
+ zerocopy-0.8.39 \
+ zerocopy-derive-0.8.39 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
+ zeroize-1.8.2 \
+ zerotrie-0.2.3 \
+ zerovec-0.11.5 \
+ zerovec-derive-0.11.2 \
+ zmij-1.0.21 \
+ zune-core-0.4.12 \
+ zune-core-0.5.1 \
+ zune-inflate-0.2.54 \
+ zune-jpeg-0.4.21 \
+ zune-jpeg-0.5.12 \
+ zvariant-5.9.2 \
+ zvariant_derive-5.9.2 \
+ zvariant_utils-3.3.0
diff --git a/audio/radiotrope/distinfo b/audio/radiotrope/distinfo
new file mode 100644
index 000000000000..9b8218bc8714
--- /dev/null
+++ b/audio/radiotrope/distinfo
@@ -0,0 +1,1565 @@
+TIMESTAMP = 1774786221
+SHA256 (rust/crates/ab_glyph-0.2.32.crate) = 01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2
+SIZE (rust/crates/ab_glyph-0.2.32.crate) = 20967
+SHA256 (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618
+SIZE (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 11206
+SHA256 (rust/crates/accesskit-0.22.0.crate) = 3eca13c82f9a5cd813120b2e9b6a5d10532c6e4cd140c295cebd1f770095c8a5
+SIZE (rust/crates/accesskit-0.22.0.crate) = 35698
+SHA256 (rust/crates/accesskit_atspi_common-0.15.0.crate) = 3eb9cc46b7fb6987c4f891f0301b230b29d9e69b4854f060a0cf41fbc407ab77
+SIZE (rust/crates/accesskit_atspi_common-0.15.0.crate) = 26666
+SHA256 (rust/crates/accesskit_consumer-0.32.0.crate) = 69d880a613f29621c90e801feec40f5dd61d837d7e20bf9b67676d45e7364a36
+SIZE (rust/crates/accesskit_consumer-0.32.0.crate) = 37839
+SHA256 (rust/crates/accesskit_macos-0.23.0.crate) = 5b0ddfc3fe3d457d11cc1c4989105986a03583a1d54d0c25053118944b62e100
+SIZE (rust/crates/accesskit_macos-0.23.0.crate) = 25694
+SHA256 (rust/crates/accesskit_unix-0.18.0.crate) = d5d552169ef018149966ed139bb0311c6947b3343e9140d1b9f88d69da9528fd
+SIZE (rust/crates/accesskit_unix-0.18.0.crate) = 26170
+SHA256 (rust/crates/accesskit_windows-0.30.0.crate) = d277279d0a3b0c0021dd110b55aa1fe326b09ee2cbc338df28f847c7daf94e25
+SIZE (rust/crates/accesskit_windows-0.30.0.crate) = 56127
+SHA256 (rust/crates/accesskit_winit-0.30.0.crate) = db08dff285306264a1de127ea07bb9e7a1ed71bd8593c168d0731caa782516c9
+SIZE (rust/crates/accesskit_winit-0.30.0.crate) = 33812
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
+SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (rust/crates/aligned-0.4.3.crate) = ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685
+SIZE (rust/crates/aligned-0.4.3.crate) = 10452
+SHA256 (rust/crates/aligned-vec-0.6.4.crate) = dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b
+SIZE (rust/crates/aligned-vec-0.6.4.crate) = 12609
+SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
+SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622
+SHA256 (rust/crates/alsa-0.11.0.crate) = 812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d
+SIZE (rust/crates/alsa-0.11.0.crate) = 76094
+SHA256 (rust/crates/alsa-sys-0.4.0.crate) = ad7569085a265dd3f607ebecce7458eaab2132a84393534c95b18dcbc3f31e04
+SIZE (rust/crates/alsa-sys-0.4.0.crate) = 35672
+SHA256 (rust/crates/android-activity-0.6.0.crate) = ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046
+SIZE (rust/crates/android-activity-0.6.0.crate) = 258597
+SHA256 (rust/crates/android-properties-0.2.2.crate) = fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04
+SIZE (rust/crates/android-properties-0.2.2.crate) = 4563
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/annotate-snippets-0.12.11.crate) = 16e4850548ff4a25a77ce3bda7241874e17fb702ea551f0cc62a2dbe052f1272
+SIZE (rust/crates/annotate-snippets-0.12.11.crate) = 57601
+SHA256 (rust/crates/anstream-0.6.21.crate) = 43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a
+SIZE (rust/crates/anstream-0.6.21.crate) = 29516
+SHA256 (rust/crates/anstyle-1.0.13.crate) = 5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78
+SIZE (rust/crates/anstyle-1.0.13.crate) = 17651
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.5.crate) = 40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc
+SIZE (rust/crates/anstyle-query-1.1.5.crate) = 10264
+SHA256 (rust/crates/anstyle-wincon-3.0.11.crate) = 291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d
+SIZE (rust/crates/anstyle-wincon-3.0.11.crate) = 12638
+SHA256 (rust/crates/anyhow-1.0.100.crate) = a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61
+SIZE (rust/crates/anyhow-1.0.100.crate) = 54059
+SHA256 (rust/crates/arbitrary-1.4.2.crate) = c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1
+SIZE (rust/crates/arbitrary-1.4.2.crate) = 38307
+SHA256 (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea
+SIZE (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 5102
+SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb
+SIZE (rust/crates/arrayref-0.3.9.crate) = 9186
+SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (rust/crates/as-raw-xcb-connection-1.0.1.crate) = 175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b
+SIZE (rust/crates/as-raw-xcb-connection-1.0.1.crate) = 6460
+SHA256 (rust/crates/as-slice-0.2.1.crate) = 516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516
+SIZE (rust/crates/as-slice-0.2.1.crate) = 6942
+SHA256 (rust/crates/async-broadcast-0.7.2.crate) = 435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532
+SIZE (rust/crates/async-broadcast-0.7.2.crate) = 22746
+SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2
+SIZE (rust/crates/async-channel-2.5.0.crate) = 18624
+SHA256 (rust/crates/async-executor-1.13.3.crate) = 497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8
+SIZE (rust/crates/async-executor-1.13.3.crate) = 29126
+SHA256 (rust/crates/async-io-2.6.0.crate) = 456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc
+SIZE (rust/crates/async-io-2.6.0.crate) = 51062
+SHA256 (rust/crates/async-lock-3.4.2.crate) = 290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311
+SIZE (rust/crates/async-lock-3.4.2.crate) = 39826
+SHA256 (rust/crates/async-process-2.5.0.crate) = fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75
+SIZE (rust/crates/async-process-2.5.0.crate) = 27552
+SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11
+SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874
+SHA256 (rust/crates/async-signal-0.2.13.crate) = 43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c
+SIZE (rust/crates/async-signal-0.2.13.crate) = 17015
+SHA256 (rust/crates/async-task-4.7.1.crate) = 8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de
+SIZE (rust/crates/async-task-4.7.1.crate) = 38077
+SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb
+SIZE (rust/crates/async-trait-0.1.89.crate) = 32171
+SHA256 (rust/crates/atomic-0.6.1.crate) = a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340
+SIZE (rust/crates/atomic-0.6.1.crate) = 15243
+SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
+SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
+SHA256 (rust/crates/atspi-0.29.0.crate) = c77886257be21c9cd89a4ae7e64860c6f0eefca799bb79127913052bd0eefb3d
+SIZE (rust/crates/atspi-0.29.0.crate) = 20051
+SHA256 (rust/crates/atspi-common-0.13.0.crate) = 20c5617155740c98003016429ad13fe43ce7a77b007479350a9f8bf95a29f63d
+SIZE (rust/crates/atspi-common-0.13.0.crate) = 129527
*** 1505 LINES SKIPPED ***