Skip to content

Commit ebef13f

Browse files
add: youtube-music (#1827)
* add: youtube-music * fix buildrequires line? * oops * use NodeJS 22 for build? * use pnpm 9 * use pnpm package from fedora and normal nodejs to see if it would still faikl * try node 18 * attempt to conflict node 22 on build * wtf * forgot to add changelog * try vendoring pnpm with nodejs18 * Revert "try vendoring pnpm with nodejs18" This reverts commit fdc705e. * vendor pnpm and node on buildtime * add packager line * debug dir tree * arch-specific directories fix --------- Co-authored-by: madonuko <[email protected]>
1 parent 4302efd commit ebef13f

File tree

4 files changed

+107
-0
lines changed

4 files changed

+107
-0
lines changed

anda/apps/youtube-music/anda.hcl

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
project pkg {
2+
rpm {
3+
spec = "youtube-music.spec"
4+
}
5+
}

anda/apps/youtube-music/update.rhai

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rpm.version(gh("th-ch/youtube-music"));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[Desktop Entry]
2+
Name=YouTube Music
3+
Exec=/usr/bin/youtube-music --no-sandbox %U
4+
TryExec=/usr/bin/youtube-music
5+
Icon=youtube-music
6+
Terminal=false
7+
Type=Application
8+
StartupWMClass=YouTube Music
9+
Comment=YouTube Music Desktop App - including custom plugins
10+
Categories=AudioVideo;
+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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

Comments
 (0)