commit 12bf5890166c690541599073c363372564501295 Author: Christian Schendel Date: Mon Sep 1 09:09:05 2025 +0200 Initial commit diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..452cb5f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,34 @@ +pkgbase = euphonica + pkgdesc = Libadwaita MPD client with visualiser, wikis and synced lyrics + pkgver = 0.96.3_beta + pkgrel = 1 + url = https://github.com/htkhiem/euphonica + arch = x86_64 + license = GPL-3.0-or-later + makedepends = git + makedepends = meson + makedepends = cargo + makedepends = clang + depends = cairo + depends = dbus + depends = dconf + depends = gcc-libs + depends = gdk-pixbuf2 + depends = glib2 + depends = glibc + depends = graphene + depends = gtk4 + depends = hicolor-icon-theme + depends = libadwaita + depends = libpipewire + depends = openssl + depends = pango + depends = sqlite + depends = xdg-desktop-portal-gtk + options = !lto + source = euphonica-0.96.3_beta::git+https://github.com/htkhiem/euphonica.git#tag=v0.96.3-beta + source = rust-mpd::git+https://github.com/htkhiem/rust-mpd.git + b2sums = bcf2c916b74021af3b943f181aefeeb0d2cde0c5b6b80a8a556f727b00cec82082a883290b5651090ea4ed8a6374c1ad067ff5af3f88b063baf05358aba96415 + b2sums = SKIP + +pkgname = euphonica diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e8eb508 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Ignore everything +* + +# But not these files... +!.gitignore +!PKGBUILD +!.SRCINFO +!LICENSE +!chroot-build +!.nvchecker.toml +!/keys +!/keys/pgp +!/keys/pgp/*.asc +!/LICENSES +!LICENSES/*.txt +!REUSE.toml +!*.patch diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..fc3387c --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,6 @@ +[euphonica] +source = "git" +git = "https://github.com/htkhiem/euphonica.git" +prefix = "v" +from_pattern = '(\d+).(\d+).(\d+)-(\D+)' +to_pattern = '\1.\2.\3_\4' diff --git a/3fb892b20144e0fb3a705e77e3de9b64480b5086.patch b/3fb892b20144e0fb3a705e77e3de9b64480b5086.patch new file mode 100644 index 0000000..4c46421 --- /dev/null +++ b/3fb892b20144e0fb3a705e77e3de9b64480b5086.patch @@ -0,0 +1,46 @@ +From 3fb892b20144e0fb3a705e77e3de9b64480b5086 Mon Sep 17 00:00:00 2001 +From: htkhiem <42716602+htkhiem@users.noreply.github.com> +Date: Sat, 23 Aug 2025 09:42:42 +0700 +Subject: [PATCH] Replace submodule with git crate dependency + +--- + .gitmodules | 3 --- + Cargo.lock | 1 + + Cargo.toml | 2 +- + rust-mpd | 1 - + 4 files changed, 2 insertions(+), 5 deletions(-) + delete mode 160000 rust-mpd + +diff --git a/.gitmodules b/.gitmodules +index 8ede99a..e69de29 100644 +--- a/.gitmodules ++++ b/.gitmodules +@@ -1,3 +0,0 @@ +-[submodule "rust-mpd"] +- path = rust-mpd +- url = https://github.com/htkhiem/rust-mpd.git +diff --git a/Cargo.lock b/Cargo.lock +index 0dbb023..c4cdb1e 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -2716,6 +2716,7 @@ dependencies = [ + [[package]] + name = "mpd" + version = "0.1.0" ++source = "git+https://github.com/htkhiem/rust-mpd.git#037d9a213b4a8dc2ead74b3f44d53351ddff67a2" + dependencies = [ + "bufstream", + "fxhash", +diff --git a/Cargo.toml b/Cargo.toml +index f91295a..baaf056 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -15,7 +15,7 @@ futures = "0.3.30" + gettext-rs = { version = "0.7", features = ["gettext-system"] } + image = "0.25.1" + librsvg = "2.58.1" +-mpd = { path = "./rust-mpd" } ++mpd = { git = "https://github.com/htkhiem/rust-mpd.git" } + once_cell = "1.19.0" + time = { version = "0.3.36", features = ["formatting"] } + reqwest = { version = "0.12.5", features = ["blocking", "json"] } diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b87c5e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Copyright Arch Linux Contributors + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/LICENSES/0BSD.txt @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..fb437f5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,66 @@ +# Maintainer: Christian Schendel +# Contributor: Huynh Thien Khiem +pkgname=euphonica +pkgver=0.96.3_beta +pkgrel=1 +pkgdesc="Libadwaita MPD client with visualiser, wikis and synced lyrics" +arch=( + x86_64 +) +url="https://github.com/htkhiem/euphonica" +license=( + GPL-3.0-or-later +) +depends=( + cairo + dbus + dconf + gcc-libs + gdk-pixbuf2 + glib2 + glibc + graphene + gtk4 + hicolor-icon-theme + libadwaita + libpipewire + openssl + pango + sqlite + xdg-desktop-portal-gtk +) +makedepends=( + git + meson + cargo + clang +) +options=(!lto) +source=( + "$pkgname-$pkgver::git+$url.git#tag=v${pkgver//_/-}" + "3fb892b20144e0fb3a705e77e3de9b64480b5086.patch" +) +b2sums=('bcf2c916b74021af3b943f181aefeeb0d2cde0c5b6b80a8a556f727b00cec82082a883290b5651090ea4ed8a6374c1ad067ff5af3f88b063baf05358aba96415' + 'SKIP') + +prepare() { + export RUSTUP_TOOLCHAIN=stable + cd "$pkgname-$pkgver" + patch -Np1 -i ../3fb892b20144e0fb3a705e77e3de9b64480b5086.patch +} + +build() { + export RUSTUP_TOOLCHAIN=stable + arch-meson "$pkgname-$pkgver" build + meson compile -C build +} + +check() { + meson test -C build --print-errorlogs +} + +package() { + meson install -C build --no-rebuild --destdir "$pkgdir" +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..e45b4ff --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,23 @@ +version = 1 + +[[annotations]] +path = [ + "PKGBUILD", + "README.md", + "keys/**", + ".SRCINFO", + ".nvchecker.toml", + ".gitignore", + "*.install", + "*.sysusers", + "*.tmpfiles", + "*.logrotate", + "*.pam", + "*.service", + "*.socket", + "*.timer", + "*.desktop", + "*.hook", +] +SPDX-FileCopyrightText = "Arch Linux contributors" +SPDX-License-Identifier = "0BSD" diff --git a/chroot-build b/chroot-build new file mode 100755 index 0000000..f69cac8 --- /dev/null +++ b/chroot-build @@ -0,0 +1,65 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: Christian Schendel +# SPDX-License-Identifier: 0BSD + +set -euo pipefail +use_tmpfs=true +CHROOT="/tmp/mkarchroot" + +check_available_ram() { + if [ "$(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo)" -lt 50000 ]; then + use_tmpfs=false + fi +} + +create_chroot_directory() { + if [ $use_tmpfs ]; then + sudo mount --mkdir -t tmpfs -o defaults,size=20G tmpfs $CHROOT + else + sudo mkdir -p "$CHROOT" + fi +} + +create_chroot_environment() { + if [[ ! -d "$CHROOT/root" ]]; then + mkarchroot -M ~/.config/pacman/makepkg.conf "$CHROOT/root" base-devel + fi +} + +build_package(){ + arch-nspawn "$CHROOT/root" pacman -Syu + if makechrootpkg -c -r "$CHROOT" -- -Asf . ; then + makepkg --printsrcinfo >.SRCINFO + else + delete_chroot_environment && echo -e "\n\e[1;31m==> BUILD FAILED: \e[1;37m$CHROOT removed\e[0m " && exit 1 + fi +} + +sign_package(){ + PACKAGE="$(makepkg --packagelist)" + gpg --use-agent --output "$PACKAGE.sig" --detach-sign "$PACKAGE" +} + +delete_chroot_environment() { + if [ "$(stat -f --format=%T "$CHROOT")" == "btrfs" ]; then + { + sudo btrfs subvolume delete "$CHROOT/root/var/lib/portables" + sudo btrfs subvolume delete "$CHROOT/root/var/lib/machines" + sudo btrfs subvolume delete "$CHROOT/root" + sudo rm -Rf $CHROOT + } >>/dev/null 2>&1 + elif [ "$(stat -f --format=%T "$CHROOT")" == "tmpfs" ]; then + sudo umount -f $CHROOT + fi + sudo rm -Rf $CHROOT +} + +check_available_ram +create_chroot_directory +create_chroot_environment +build_package +sign_package +delete_chroot_environment + +# vim: set ts=4 sw=4 et: