diff --git a/README.md b/README.md index 48bd976..59f1f7c 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ source in the `PKGBUILD` (and drop the `-bin` suffix), or don't package it. | `concat-git` | [jub0t/Concat](https://github.com/jub0t/Concat) — `main` branch of `concat` | *built from source* | [concat-git](https://aur.archlinux.org/packages/concat-git) | | `faugus-launcher-bin` | [Faugus/faugus-launcher](https://github.com/Faugus/faugus-launcher) — launcher for Windows games via UMU-Launcher | `.deb` (`all`) | [faugus-launcher-bin](https://aur.archlinux.org/packages/faugus-launcher-bin) | | `fluxer-bin` | [fluxer.app](https://fluxer.app) — Fluxer desktop client (Electron) | tarball | [fluxer-bin](https://aur.archlinux.org/packages/fluxer-bin) | +| `kitty-tune-bin` | [alan7383/KittyTuneDesktop](https://github.com/alan7383/KittyTuneDesktop) — SoundCloud and YouTube music player (Kotlin/Compose Multiplatform) | `.deb` | [kitty-tune-bin](https://aur.archlinux.org/packages/kitty-tune-bin) | | `lunar-client-bin` | [lunarclient.com](https://lunarclient.com) — Minecraft PvP modpack launcher | AppImage | [lunar-client-bin](https://aur.archlinux.org/packages/lunar-client-bin) | | `middleclick-autoscroll` | [Felitendo/middleclick-autoscroll](https://github.com/Felitendo/middleclick-autoscroll) — enables middle-click autoscroll in every application that supports it | *built from source* | [middleclick-autoscroll](https://aur.archlinux.org/packages/middleclick-autoscroll) | | `modrinth-app-bin` | [modrinth/code](https://github.com/modrinth/code) — Minecraft mod manager/launcher | `.deb` | [modrinth-app-bin](https://aur.archlinux.org/packages/modrinth-app-bin) | diff --git a/kitty-tune-bin/.SRCINFO b/kitty-tune-bin/.SRCINFO new file mode 100644 index 0000000..df6cd6c --- /dev/null +++ b/kitty-tune-bin/.SRCINFO @@ -0,0 +1,46 @@ +pkgbase = kitty-tune-bin + pkgdesc = SoundCloud and YouTube music player (upstream binary) + pkgver = 1.3.3 + pkgrel = 1 + url = https://github.com/alan7383/KittyTuneDesktop + arch = x86_64 + arch = aarch64 + license = MIT + depends = alsa-lib + depends = brotli + depends = bzip2 + depends = expat + depends = fontconfig + depends = freetype2 + depends = gcc-libs + depends = glibc + depends = gtk3 + depends = hicolor-icon-theme + depends = libbsd + depends = libglvnd + depends = libmd + depends = libpng + depends = libx11 + depends = libxau + depends = libxcb + depends = libxdmcp + depends = libxext + depends = libxi + depends = libxrender + depends = libxtst + depends = xdg-utils + depends = zlib + provides = kitty-tune=1.3.3 + conflicts = kitty-tune + noextract = kitty-tune-bin-1.3.3-x86_64.deb + noextract = kitty-tune-bin-1.3.3-aarch64.deb + options = !strip + options = !debug + source = kitty-tune-bin-1.3.3-README.md::https://raw.githubusercontent.com/alan7383/KittyTuneDesktop/v1.3.3/README.md + sha256sums = 5681c64cc1c1b1ce285f70b4f9b9f0a72db34162e87e73d3966fec2a9adb5817 + source_x86_64 = kitty-tune-bin-1.3.3-x86_64.deb::https://github.com/alan7383/KittyTuneDesktop/releases/download/v1.3.3/kitty-tune_1.3.3_amd64.deb + sha256sums_x86_64 = 0440f01aa89371770da625ba4ce159422e903c0dc3867d7d45e8ed2b984ccbe3 + source_aarch64 = kitty-tune-bin-1.3.3-aarch64.deb::https://github.com/alan7383/KittyTuneDesktop/releases/download/v1.3.3/kitty-tune_1.3.3_arm64.deb + sha256sums_aarch64 = a08244b65fb2a7e3944f8456e24fed09515f7cc9fddd74691896d67f2d6f91bd + +pkgname = kitty-tune-bin diff --git a/kitty-tune-bin/PKGBUILD b/kitty-tune-bin/PKGBUILD new file mode 100644 index 0000000..286d8fc --- /dev/null +++ b/kitty-tune-bin/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Felitendo +# This PKGBUILD is updated automatically: +# https://github.com/Felitendo/PKGBUILDS + +pkgname=kitty-tune-bin +pkgver=1.3.3 +pkgrel=1 +pkgdesc="SoundCloud and YouTube music player (upstream binary)" +arch=('x86_64' 'aarch64') +url="https://github.com/alan7383/KittyTuneDesktop" +license=('MIT') +# jpackage bundles Java and FFmpeg. These are the system libraries declared +# by both upstream .debs, plus GTK for the bundled JRE's desktop integration. +depends=('alsa-lib' 'brotli' 'bzip2' 'expat' 'fontconfig' 'freetype2' + 'gcc-libs' 'glibc' 'gtk3' 'hicolor-icon-theme' 'libbsd' 'libglvnd' + 'libmd' 'libpng' 'libx11' 'libxau' 'libxcb' 'libxdmcp' 'libxext' + 'libxi' 'libxrender' 'libxtst' 'xdg-utils' 'zlib') +provides=("kitty-tune=${pkgver}") +conflicts=('kitty-tune') +options=('!strip' '!debug') +# Upstream declares MIT in the README but ships no standalone license text. +source=("${pkgname}-${pkgver}-README.md::https://raw.githubusercontent.com/alan7383/KittyTuneDesktop/v${pkgver}/README.md") +source_x86_64=("${pkgname}-${pkgver}-x86_64.deb::https://github.com/alan7383/KittyTuneDesktop/releases/download/v${pkgver}/kitty-tune_${pkgver}_amd64.deb") +source_aarch64=("${pkgname}-${pkgver}-aarch64.deb::https://github.com/alan7383/KittyTuneDesktop/releases/download/v${pkgver}/kitty-tune_${pkgver}_arm64.deb") +noextract=("${pkgname}-${pkgver}-x86_64.deb" "${pkgname}-${pkgver}-aarch64.deb") +sha256sums=('5681c64cc1c1b1ce285f70b4f9b9f0a72db34162e87e73d3966fec2a9adb5817') +sha256sums_x86_64=('0440f01aa89371770da625ba4ce159422e903c0dc3867d7d45e8ed2b984ccbe3') +sha256sums_aarch64=('a08244b65fb2a7e3944f8456e24fed09515f7cc9fddd74691896d67f2d6f91bd') + +package() { + bsdtar -xOf "$srcdir/${pkgname}-${pkgver}-${CARCH}.deb" 'data.tar.*' \ + | bsdtar -xpf - -C "$pkgdir" ./opt + + install -d "$pkgdir/usr/bin" + ln -s /opt/kitty-tune/bin/KittyTune "$pkgdir/usr/bin/kitty-tune" + + # The .deb registers this through postinst, which pacman never executes. + install -Dm644 "$pkgdir/opt/kitty-tune/lib/kitty-tune-KittyTune.desktop" \ + "$pkgdir/usr/share/applications/kitty-tune.desktop" + sed -i \ + -e 's|^Exec=.*|Exec=kitty-tune|' \ + -e 's|^Icon=.*|Icon=kittytune|' \ + -e 's|^Categories=.*|Categories=AudioVideo;Audio;Player;|' \ + -e '/^MimeType=$/d' \ + "$pkgdir/usr/share/applications/kitty-tune.desktop" + install -Dm644 "$pkgdir/opt/kitty-tune/lib/KittyTune.png" \ + "$pkgdir/usr/share/icons/hicolor/512x512/apps/kittytune.png" + + install -Dm644 "$srcdir/${pkgname}-${pkgver}-README.md" \ + "$pkgdir/usr/share/licenses/$pkgname/README.md" + install -Dm644 "$pkgdir/opt/kitty-tune/share/doc/copyright" \ + "$pkgdir/usr/share/licenses/$pkgname/copyright" + + # The in-app updater installs upstream's differently named kitty-tune + # package. The conflict above prevents an unattended replacement; use an + # AUR helper to update kitty-tune-bin instead. +} diff --git a/kitty-tune-bin/pkg.sh b/kitty-tune-bin/pkg.sh new file mode 100644 index 0000000..0730b11 --- /dev/null +++ b/kitty-tune-bin/pkg.sh @@ -0,0 +1,28 @@ +# kitty-tune-bin - KittyTune Desktop, a Kotlin/Compose music player. +# Repackage upstream's .debs for x86_64 and aarch64, including their JRE. + +UPSTREAM_REPO="alan7383/KittyTuneDesktop" + +latest_version() { + gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//' +} + +# refresh_checksums +refresh_checksums() { + local ver="$1" pkgbuild="$2" + local base sha_readme sha_x64 sha_arm64 + + base="https://github.com/$UPSTREAM_REPO/releases/download/v$ver" + sha_readme="$(set -o pipefail; curl -fsSL "https://raw.githubusercontent.com/$UPSTREAM_REPO/v$ver/README.md" \ + | sha256sum | cut -d' ' -f1)" || return 1 + sha_x64="$(set -o pipefail; curl -fsSL "$base/kitty-tune_${ver}_amd64.deb" \ + | sha256sum | cut -d' ' -f1)" || return 1 + sha_arm64="$(set -o pipefail; curl -fsSL "$base/kitty-tune_${ver}_arm64.deb" \ + | sha256sum | cut -d' ' -f1)" || return 1 + + sed -i \ + -e "s|^sha256sums=.*|sha256sums=('$sha_readme')|" \ + -e "s|^sha256sums_x86_64=.*|sha256sums_x86_64=('$sha_x64')|" \ + -e "s|^sha256sums_aarch64=.*|sha256sums_aarch64=('$sha_arm64')|" \ + "$pkgbuild" +}