📻 Radiotray-ng Gentoo ebuild
Ebuild для Gentoo Linux интернет-радиоплеера Radiotray-ng
🖼 ️ Скриншот
📋 Доступные версии
| Ebuild | Описание |
|---|---|
radiotray-ng-0.2.10.1.ebuild |
Оригинальный ebuild (r0) |
radiotray-ng-0.2.10.1-r1.ebuild |
Первая ревизия |
radiotray-ng-0.2.10.1-r3.ebuild |
Рефакторинг: cmake+xdg, ncurses, PATCHES |
radiotray-ng-0.2.10.1-r4.ebuild |
L10N, GCC 15/glibmm-2.88 совместимость |
radiotray-ng-0.2.10.1-r5.ebuild |
+дефолтные закладки Jungle |
radiotray-ng-0.2.10.1-r6.ebuild |
playbin fallback (playbin → playbin3) |
radiotray-ng-0.2.10.1-r7.ebuild |
|
radiotray-ng-9999.ebuild |
Live-сборка из git (dev-образ) |
🚀 Установка
# С локализацией (рекомендуется)
echo 'L10N="ru"' >> /etc/portage/make.conf
USE="appindicator ncurses l10n_ru" emerge media-sound/radiotray-ng
# Без локализации
USE="appindicator" emerge media-sound/radiotray-ng
# Только ncurses (без трея)
USE="ncurses" emerge media-sound/radiotray-ng
# Live-версия из git
USE="appindicator ncurses l10n_ru" emerge media-sound/radiotray-ng::p01ymer-tank
⚙ ️ USE-флаги (r7/9999)
| Флаг | По умолч. | Описание |
|---|---|---|
appindicator |
|
Трей через libayatana-appindicator |
ncurses |
|
Консольный интерфейс (без трея) |
test |
|
Модульные тесты (gtest) |
l10n_ru |
|
|
Требуется хотя бы один из
appindicator/ncurses.
🌐 Русская локализация (r5)
- gettext — основной интерфейс (GTK appindicator + ncurses)
- wxLocale — редактор закладок (wxWidgets)
- po/ru.po — 87 строк, полный перевод
- Переведены: .desktop, .appdata.xml
Включение:
echo 'L10N="ru"' >> /etc/portage/make.conf # если не указано
echo 'media-sound/radiotray-ng l10n_ru' >> /etc/portage/package.use
🔧 Исправления QA (r5)
| Проблема | Решение |
|---|---|
Pre-stripped binaries (-s флаг) |
Убран из CMAKE_CXX_FLAGS_RELEASE
|
| Неправильный doc-path | Убран install из package/CMakeLists.txt
|
| Debian changelog | Убран из установки |
📻 Исправления livestream (r7)
Два патча, решающие проблему зависания и перезапуска интернет-радио:
buffering-fix.patch
Оригинальный radiotray-ng при GST_MESSAGE_BUFFERING < 100% ставит pipeline
на PAUSE и ждёт 100%. Livestream редко достигает 100% буферизации → пайплайн
зависает в PAUSE → 10-секундный таймер срабатывает → перезапуск → цикл.
Исправление: на первом BUFFERING pipeline сразу переводится в
GST_STATE_PLAYING. Любой висящий таймер перезапуска отменяется.
iradio-mode.patch
Встроенный souphttpsrc GStreamer имеет timeout=15 секунд для блокирующего I/O.
Когда стрим живёт дольше 15 секунд, элемент пытается переподключиться, отправляя
Range HTTP-заголовок. Серверы радиостанций (DNBRadio, drumbase.space) его
не поддерживают → GST_RESOURCE_ERROR_SEEK → dropped connection.
Исправление: через сигнал source-setup на playbin выставляется
timeout=0 на внутреннем souphttpsrc, отключая I/O-таймаут.
Проверено: DNBRadio и drumbase.space играют без ошибок 2+ минут.
🛠 ️ Совместимость с GCC 15 и glibmm-2.68/2.88
Начиная с GCC 15 и glibmm-2.68/giomm-2.88 исходный код radiotray-ng требует исправлений:
| Проблема | Причина | Решение |
|---|---|---|
error: 'bind2nd' is not a member of 'std' |
bind2nd/not1 удалены в C++17 |
Патч: C++14 → C++17 |
| Новые предупреждения становятся ошибками | GCC 15 строже | Патч: убран -Werror
|
#include <glibmm.h> не найден |
glibmm 2.68 требует модульные инклюды | Патч: заменён на <glibmm/…>
|
BUS_TYPE_SESSION is not a member of BusType |
giomm 2.68 переименовал enum values |
sed в src_prepare() |
📦 Зависимости (r7/9999)
appindicator? ( dev-libs/libayatana-appindicator )
!appindicator? ( sys-libs/ncurses:0= )
RDEPEND:
dev-cpp/glibmm
dev-libs/boost
dev-libs/jsoncpp:=
dev-libs/libbsd
dev-libs/libxdg-basedir
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
net-misc/curl
sys-apps/dbus
x11-libs/gtk+:3
x11-libs/libnotify
x11-libs/wxGTK:3.2-gtk3[X]
DEPEND:
virtual/libintl
test? ( dev-cpp/gtest )
BDEPEND:
dev-build/cmake
virtual/pkgconfig
sys-devel/gettext
📜 История изменений
Полный changelog: CHANGELOG.md
| Версия | Дата | Изменения |
|---|---|---|
| r7 | 2026-07-15 |
|
| r6 | 2026-07-15 | playbin fallback (playbin3 → playbin) |
| r5 | 2026-07-14 | +дефолтные закладки Jungle |
| r4 | 2026-07-14 | L10N, GCC 15/glibmm-2.88 совместимость |
| r3 | — | Рефакторинг, ncurses, PATCHES |
| r1 | — | Первая ревизия |
| r0 | — | Оригинальный ebuild |
