From 609e472c4e9ce113c739e84b65dc945a5242f17e Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Wed, 27 Dec 2023 08:24:57 +0000 Subject: [PATCH] audio/sublime-music: New port: GTK3 desktop client for Subsonic-compatible music streaming servers --- audio/Makefile | 1 + audio/sublime-music/Makefile | 35 +++++++++++++++++++ audio/sublime-music/distinfo | 3 ++ .../files/patch-sublime__music_ui_util.py | 22 ++++++++++++ audio/sublime-music/pkg-descr | 5 +++ 5 files changed, 66 insertions(+) create mode 100644 audio/sublime-music/Makefile create mode 100644 audio/sublime-music/distinfo create mode 100644 audio/sublime-music/files/patch-sublime__music_ui_util.py create mode 100644 audio/sublime-music/pkg-descr diff --git a/audio/Makefile b/audio/Makefile index 005714b7567f..2e2f5ec8db6d 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -785,6 +785,7 @@ SUBDIR += streamtranscoder SUBDIR += string-machine-lv2 SUBDIR += stymulator + SUBDIR += sublime-music SUBDIR += suil SUBDIR += supercollider SUBDIR += surge-synthesizer-lv2 diff --git a/audio/sublime-music/Makefile b/audio/sublime-music/Makefile new file mode 100644 index 000000000000..7810370f63fc --- /dev/null +++ b/audio/sublime-music/Makefile @@ -0,0 +1,35 @@ +PORTNAME= sublime-music +DISTVERSION= 0.12.0 +CATEGORIES= audio + +MAINTAINER= lexi.freebsd@le-fay.org +COMMENT= GTK3 desktop client for Subsonic-compatible music streaming servers +WWW= https://sublimemusic.app/ +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USE_GITHUB= yes +GH_ACCOUNT= sublime-music +GH_PROJECT= sublime-music +GH_TAGNAME= v${DISTVERSION} + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>0:devel/py-flit-core@${PY_FLAVOR} + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gobject3>0:devel/py-gobject3@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dataclasses-json>0:devel/py-dataclasses-json@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}deepdiff>0:devel/py-deepdiff@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Levenshtein>0:devel/py-Levenshtein@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}peewee>0:databases/py-peewee@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}semver>0:devel/py-semver@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}bleach>0:www/py-bleach@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}bottle>0:www/py-bottle@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}thefuzz>0:devel/py-thefuzz@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}PyChromecast>0:net/py-pychromecast@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-mpv>0:multimedia/py-python-mpv@${PY_FLAVOR} + +USES= python:3.10+ +USE_PYTHON= autoplist pep517 + +.include diff --git a/audio/sublime-music/distinfo b/audio/sublime-music/distinfo new file mode 100644 index 000000000000..99f6196e2b45 --- /dev/null +++ b/audio/sublime-music/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1703579989 +SHA256 (sublime-music-sublime-music-0.12.0-v0.12.0_GH0.tar.gz) = faaf102fd790ecea3d966c9d6e305567c734a1df30eaa6bbdedf93d863bc7435 +SIZE (sublime-music-sublime-music-0.12.0-v0.12.0_GH0.tar.gz) = 21041534 diff --git a/audio/sublime-music/files/patch-sublime__music_ui_util.py b/audio/sublime-music/files/patch-sublime__music_ui_util.py new file mode 100644 index 000000000000..bd00bcd163d1 --- /dev/null +++ b/audio/sublime-music/files/patch-sublime__music_ui_util.py @@ -0,0 +1,22 @@ +commit f3bb5ca3383c5adb3ff666f2bb241926fd113b4a +Author: Lexi Winter +Date: Wed Dec 27 07:53:38 2023 +0000 + + diff_model_store: improve exclude regexp + + this fixes RecursionError when diffing GObjects, since root[N].g_type_instance + is a recursive type. + +diff --git a/sublime_music/ui/util.py b/sublime_music/ui/util.py +index 4c6b697..0a55502 100644 +--- sublime_music/ui/util.py.orig ++++ sublime_music/ui/util.py +@@ -10,7 +10,7 @@ from ..adapters import AdapterManager, CacheMissError, Result, SongCacheStatus + from ..adapters.api_objects import Playlist, Song + from ..config import AppConfiguration + +-deep_diff_exclude_regexp = re.compile(r"root\[\d+\]\.props") ++deep_diff_exclude_regexp = [re.compile(path) for path in [r"root\[\d+\]\.props", r"root\[\d+\]\.g_type_instance"]] + + + def format_song_duration(duration_secs: Union[int, timedelta, None]) -> str: diff --git a/audio/sublime-music/pkg-descr b/audio/sublime-music/pkg-descr new file mode 100644 index 000000000000..6b391a7edf30 --- /dev/null +++ b/audio/sublime-music/pkg-descr @@ -0,0 +1,5 @@ +Sublime Music is a feature-packed native GTK client for Subsonic-compatible +music streaming servers, including Subsonic, Navidrome, Airsonic and Gonic. + +In addition to streaming, it allows music to be downloaded for offline +playback. -- 2.43.0