# ── Hyper Online Video(Linux Qt6 桌面端)Fedora RPM spec ───────────────────── # 说明:本仓库是**单仓库多平台**(Android/macOS/Linux-Qt6)✓ # 桌面端源码在 desktop 子目录 → 用 cmake 的 -S 参数指过去(不用打补丁 ✗) # 手册的**唯一真相**是 desktop/packaging/man/hov-qt.1(deb/rpm 共用 ✓ 防漂移 ✗) Name: hov-qt Version: 1.3.0 Release: 1%{?dist} Summary: 聚合视频 —— YouTube/哔哩哔哩/网易云音乐/QQ音乐 聚合客户端(Qt6 桌面端) License: GPL-3.0-only URL: https://github.com/HougeLangley/HyperOnlineVideo Source0: %{name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: ninja-build BuildRequires: clang BuildRequires: lld BuildRequires: libstdc++-devel BuildRequires: pkgconf-pkg-config BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtdeclarative-devel BuildRequires: qt6-qtwebengine-devel BuildRequires: mpv-devel BuildRequires: desktop-file-utils # 用**文件路径**而不是包名(Fedora 规范 ✓): # `Requires: ffmpeg` 会挑 RPM Fusion 的 ffmpeg ✗ 与系统自带的 ffmpeg-free **冲突** ✗(实测踩到 ✓) # 路径依赖则不挑提供者 ✓ ffmpeg-free 或 ffmpeg 都能满足 ✓ Requires: /usr/bin/yt-dlp Requires: /usr/bin/ffmpeg %description Hyper Online Video 把 YouTube、哔哩哔哩、网易云音乐与 QQ 音乐聚合到同一个客户端, 提供搜索聚合、本地媒体库、离线下载与无广告播放。 播放使用 libmpv(可选 gpu-next/libplacebo,带渲染校验与失败回退); 在线地址解析与下载使用 yt-dlp 与 ffmpeg;需要账号的平台可用内嵌 QtWebEngine 登录窗口完成登录。 (说明:ffmpeg 在 Fedora 上可由 ffmpeg-free 提供 ✓ 无需启用第三方源 ✓) %prep %autosetup -n %{name}-%{version} %build cd desktop %cmake -DCMAKE_BUILD_TYPE=Release -DHOV_WEBENGINE=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld %cmake_build %install cd desktop %cmake_install # man 手册:唯一真相一份 ✓ 两个可执行文件各要一个名字 → 生成第二个(软链 ✓) install -Dpm 0644 %{_builddir}/%{name}-%{version}/desktop/packaging/man/hov-qt.1 \ %{buildroot}%{_mandir}/man1/hov-qt.1 ln -sf hov-qt.1 %{buildroot}%{_mandir}/man1/hov-qt-bin.1 %check desktop-file-validate %{buildroot}%{_datadir}/applications/hov-qt.desktop %files %license LICENSE %{_bindir}/hov-qt %{_bindir}/hov-qt-bin %{_datadir}/applications/hov-qt.desktop %{_datadir}/icons/hicolor/256x256/apps/hov-qt.png %{_datadir}/icons/hicolor/512x512/apps/hov-qt.png %{_mandir}/man1/hov-qt.1* %{_mandir}/man1/hov-qt-bin.1* %changelog * Fri Oct 3 2026 Houge Langley - 1.3.0-1 - Integrate fork contributions: YtRangeProxy chunked-range relay, web_embedded player client, DASH audio via mpv NODE array - CLI --help/--version; adaptive playback fixes; hwdec audit fix * Thu Oct 2 2026 Houge Langley - 1.2.5-1 - YouTube direct-link playability preflight (4MB Range probe) + exit guidance - Log time prefixes (HH:MM:SS) on all stderr/qInfo lines * Wed Oct 1 2026 Houge Langley - 1.2.4-1 - Remove dead field lyricLabel_ and unused lambda captures (clang -Wextra clean) - Fix QQ Music lyrics (anonymous-first + capped Cookie retry) * Mon Sep 28 2026 Houge Langley - 1.2.3-2 - Rebuild with Clang/LLVM (clang + lld) instead of GCC * Mon Sep 28 2026 Houge Langley - 1.2.3-1 - Bilibili: search upgraded to wbi signing on all three platforms (auto-fallback to legacy) - Android: robust end-of-playback detection + diagnostics for auto-advance - Maintenance: yt-dlp version check; four-platform API audit * Fri Sep 25 2026 Houge Langley - 1.2.2-2 - Music: QQ search true pagination (Desktop protocol + grp + numeric params) and infinite scroll - Music: pagination covers for NetEase/QQ; embedded cover art on downloads (ffprobe-verified) - Music: CDN node probing (NetEase m70x 403 workaround) and mpv event/log pump - Subtitles: auto-track selection fixes (bare-language fallback, Bilibili direct route) - Lyrics: adaptive font shrink on all three platforms; macOS music-mode fix - Quality: video max-height setting now applied on Linux/Android - Stability: macOS thread-safety fix (main-thread-only caches); keep-open race hardening * Thu Sep 24 2026 Houge Langley - 1.2.1-2 - Fix license tag: GPL-3.0-only (LICENSE grants version 3 only; the earlier "or-later" statement was an over-declaration) * Thu Sep 24 2026 Houge Langley - 1.2.1-1 - Update to 1.2.1: download progress/cancel/retry + favorites panel, window geometry persistence, PiP and subtitle fixes * Mon Sep 21 2026 Houge Langley - 1.2.0-1 - Initial RPM packaging for Fedora (libmpv playback / yt-dlp downloads / QtWebEngine login)