
Экосистема
Sunshine продолжает активно развиваться. Новое обновление, подводящее итоги нескольких месяцев работы, не приносит одной "громкой" фичи, но представляет собой комплексную работу над качеством, стабильностью и расширением поддержки платформ. Это тот фундамент, который позволит легко внедрять крупные нововведения в будущем.
Мощный апдейт систем сборки и упаковки
Огромный пласт работы ушёл на то, чтобы сделать процесс сборки Sunshine современнее, гибче и надёжнее. Эти изменения в первую очередь важны для мейнтейнеров пакетов и продвинутых пользователей, собирающих Sunshine из исходников.
- Рефакторинг Docker и скриптов: Система сборки для Linux полностью переработана с использованием многоэтапных Docker-образов, что делает её чище и эффективнее.
- Расширение поддержки дистрибутивов: Добавлена или улучшена сборка для Fedora 43+, Ubuntu 25.10, Arch Linux (с переходом на CMake) и даже FreeBSD. Теперь собрать Sunshine можно практически везде.
- Улучшение пакетов: Значительные правки в спецификациях для RPM (Fedora/openSUSE), PKGBUILD для Arch, Homebrew-формуле и Flatpak-манифестах. Починено автоопределение зависимостей для CPack.
- Централизация зависимостей: Критически важные сторонние библиотеки, такие как libevdev, теперь загружаются с зеркала проекта, повышая надёжность и скорость сборки.
Ключевые исправления для пользователей
Под капотом исправлены десятки багов, которые могли мешать комфортной работе. Вот самые заметные:
- Стабильность запуска игр: Исправлены несколько сценариев, приводящих к падению Sunshine при запуске игровых процессов.
- Война с утечками памяти: Устранена утечка памяти в Windows при работе с DXGI-адаптерами и в модуле обработки видео для Wayland (протокол wlr-dmabuf).
- Проблемы с курсором и вводом: На Windows решена проблема с исчезающим курсором после использования KVM-переключателей. На macOS исправлена обработка прокрутки колёсиком мыши.
- Звук и конфигурация: Исправлен краш при наличии специальных символов в имени аудиоустройства. Устранена проблема с созданием и записью файла конфигурации приложений (
apps.json).
- Системный трей (Linux): Переработана работа трея для снижения энергопотребления в фоновом режиме.
Новые возможности и улучшения
Помимо исправлений, в Sunshine просочились и новые полезные функции.
- Продвинутый контроль над сетью: Появилась возможность привязки сервера Sunshine к конкретному сетевому интерфейсу, что полезно в сложных сетевых конфигурациях.
- Гибкая настройка аудио: Добавлена поддержка непрерывной передачи аудио, что может улучшить стабильность звукового потока.
- Эксперименты с частотой кадров: В код добавлена экспериментальная поддержка запроса дробных частот обновления (например, для точного соответствия NTSC-стандарту 59.94 Гц).
- Улучшения для Wayland: Добавлена поддержка логического размера экрана через протокол
zxdg_output_v1, что улучшает работу в некоторых композиторах.
- Обновление ядра цветокоррекции: Видеомодуль получил улучшенный, унифицированный генератор матриц для конвертации цвета.
Инфраструктура и обслуживание кода
Масштабная работа проведена "за кулисами":
- Массовое обновление зависимостей: Обновлены ключевые библиотеки: Boost до 1.89, Vue.js и связанные фронтенд-инструменты, множество внутренних подмодулей (moonlight-common-c, wayland-protocols и др.).
- Автоматизация на высоте: Полностью переработаны GitHub Actions workflows: улучшены процессы сборки для Arch Linux и Homebrew, добавлен анализ покрытия кода тестами, усилена безопасность.
- Локализация: Регулярно обновляются переводы интерфейса, делая Sunshine доступнее для неанглоязычных пользователей.
Это обновление — яркий пример "невидимой" работы, которая закладывает основу для будущего. Sunshine становится не просто удобным инструментом, но и образцово-показательным open-source проектом с отлаженными процессами. Ждём новых крупных фич на этом обновлённом фундаменте!