|
| 1 | +%define debug_package %nil |
| 2 | + |
| 3 | + |
| 4 | +# macro shorthand for calling pnpm |
| 5 | +%global pnpm npx pnpm@%{pnpm_version} |
| 6 | + |
| 7 | +Name: youtube-music |
| 8 | +Version: 3.5.1 |
| 9 | +Release: 1%{?dist} |
| 10 | +Summary: YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader) |
| 11 | +Source1: youtube-music.desktop |
| 12 | +License: MIT |
| 13 | +URL: https://github.com/th-ch/youtube-music |
| 14 | +Packager: Cappy Ishihara <[email protected]> |
| 15 | + |
| 16 | +# For some unknown reason, PNPM is not working with Node.js 22 on Aarch64 devices. |
| 17 | +# todo: investigate why |
| 18 | +#ExclusiveArch: x86_64 |
| 19 | + |
| 20 | +BuildRequires: git-core gcc make |
| 21 | +# Required for usocket native module built with node-gyp |
| 22 | +BuildRequires: python3 gcc-c++ |
| 23 | + |
| 24 | +%description |
| 25 | +YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader) |
| 26 | + |
| 27 | + |
| 28 | +%prep |
| 29 | +rm -rf ./* |
| 30 | +git clone --recursive %{url} . |
| 31 | +git checkout v%{version} |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +%build |
| 36 | +# Vendor PNPM directly instead of installing from packages, because we need to somehow force PNPM to use Node.js 20 |
| 37 | +# We are not using Fedora's PNPM because we need to use `pnpm env`, which PNPM does not support when not vendored directly from upstream |
| 38 | +curl -fsSL https://get.pnpm.io/install.sh | sh - |
| 39 | +source /builddir/.bashrc |
| 40 | +pnpm env use --global 20 |
| 41 | +pnpm install |
| 42 | +pnpm build |
| 43 | +pnpm electron-builder --linux --dir |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | +%install |
| 48 | + |
| 49 | +# Install assets |
| 50 | +install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/1024x1024/apps |
| 51 | +install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/scalable/apps |
| 52 | + |
| 53 | +# Copy icon files |
| 54 | +ls -laR pack |
| 55 | +%ifarch aarch64 |
| 56 | +pushd pack/linux-arm64-unpacked/resources/app.asar.unpacked/assets |
| 57 | +%else |
| 58 | +pushd pack/linux-unpacked/resources/app.asar.unpacked/assets |
| 59 | +%endif |
| 60 | +install -m 0644 youtube-music.png %{buildroot}%{_datadir}/icons/hicolor/1024x1024/apps/youtube-music.png |
| 61 | +install -m 0644 youtube-music.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/youtube-music.svg |
| 62 | +install -m 0644 youtube-music-tray-paused.png %{buildroot}%{_datadir}/icons/hicolor/1024x1024/apps/youtube-music-tray-paused.png |
| 63 | +install -m 0644 youtube-music-tray.png %{buildroot}%{_datadir}/icons/hicolor/1024x1024/apps/youtube-music-tray.png |
| 64 | +popd |
| 65 | + |
| 66 | +# Actually install the app |
| 67 | + |
| 68 | +install -d -m 0755 %{buildroot}%{_datadir}/youtube-music |
| 69 | +# Delete unpacked asar files before copying |
| 70 | +rm -rfv pack/linux*-unpacked/resources/app.asar.unpacked |
| 71 | +cp -rv pack/linux*-unpacked/* %{buildroot}%{_datadir}/youtube-music |
| 72 | +install -d -m 0755 %{buildroot}%{_bindir} |
| 73 | +ln -svf %{_datadir}/youtube-music/youtube-music %{buildroot}%{_bindir}/youtube-music |
| 74 | + |
| 75 | +# Install desktop file |
| 76 | +install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/youtube-music.desktop |
| 77 | + |
| 78 | +%files |
| 79 | +%license license |
| 80 | +%doc README.md |
| 81 | +%doc docs |
| 82 | +%{_bindir}/youtube-music |
| 83 | +%{_datadir}/youtube-music |
| 84 | +%{_datadir}/icons/hicolor/*/apps/youtube-music* |
| 85 | +%{_datadir}/applications/youtube-music.desktop |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | +%changelog |
| 90 | +* Sat Aug 03 2024 Cappy Ishihara <[email protected]> |
| 91 | +- Initial Release |
0 commit comments