diff options
Diffstat (limited to 'audio/tauonmb')
-rw-r--r-- | audio/tauonmb/README | 8 | ||||
-rw-r--r-- | audio/tauonmb/config/fix-tauon-options.patch | 111 | ||||
-rw-r--r-- | audio/tauonmb/config/flatpak-rpc.diff (renamed from audio/tauonmb/flatpak-rpc.diff) | 0 | ||||
-rw-r--r-- | audio/tauonmb/config/obsolete-libgme.patch | 156 | ||||
-rw-r--r-- | audio/tauonmb/config/python39.diff | 134 | ||||
-rw-r--r-- | audio/tauonmb/doinst.sh | 4 | ||||
-rw-r--r-- | audio/tauonmb/slack-desc | 4 | ||||
-rw-r--r-- | audio/tauonmb/tauonmb.SlackBuild | 39 | ||||
-rw-r--r-- | audio/tauonmb/tauonmb.info | 12 |
9 files changed, 451 insertions, 17 deletions
diff --git a/audio/tauonmb/README b/audio/tauonmb/README index 661ec34b37..f0fce99803 100644 --- a/audio/tauonmb/README +++ b/audio/tauonmb/README @@ -1,11 +1,17 @@ Tauon music box is a modern streamlined music player with a minimal interface that's packed with features! An emphasis on playlists and direct file importing puts you in control of your music collection. -Uses Phazor and GStreamer for playback. +Uses Phazor for playback. Optional dependencies: python3-pypresence #Discord RPC python3-tekore #Spotify API picard #Internal tagger + libgme #Nintendo music emulation + +To use GME, install the "libgme" first. +If desired, do: + + LIBGME="yes" ./tauonmb.SlackBuild By !red diff --git a/audio/tauonmb/config/fix-tauon-options.patch b/audio/tauonmb/config/fix-tauon-options.patch new file mode 100644 index 0000000000..6556886904 --- /dev/null +++ b/audio/tauonmb/config/fix-tauon-options.patch @@ -0,0 +1,111 @@ +diff --git a/t_modules/t_lyrics.py b/t_modules/t_lyrics.py +index 8e5d197a..19b91bd8 100644 +--- a/t_modules/t_lyrics.py ++++ b/t_modules/t_lyrics.py +@@ -18,7 +18,7 @@ + # along with Tauon Music Box. If not, see <http://www.gnu.org/licenses/>. + + +-from isounidecode import unidecode ++from unidecode import unidecode + from bs4 import BeautifulSoup + import urllib.parse + import requests +@@ -81,7 +81,7 @@ def genius(artist, title, return_url=False): + line = line.replace("/", "-") + line = line.replace("-&-", "-and-") + line = line.replace("&", "-and-") +- line = unidecode(line).decode() ++ line = unidecode(line) + line = urllib.parse.quote(line) + line = f"https://genius.com/{line}-lyrics" + +diff --git a/t_modules/t_main.py b/t_modules/t_main.py +index c2f2ebab..4848b7b2 100644 +--- a/t_modules/t_main.py ++++ b/t_modules/t_main.py +@@ -591,7 +591,7 @@ from pathlib import Path + from xml.sax.saxutils import escape, unescape + from ctypes import * + from send2trash import send2trash +-from isounidecode import unidecode ++from unidecode import unidecode + from collections import OrderedDict + + musicbrainzngs.set_useragent("TauonMusicBox", n_version, "https://github.com/Taiko2k/Tauon") +@@ -25663,14 +25663,14 @@ def worker2(): + s_text = s_cn + + if dia_mode: +- title = unidecode(title).decode() ++ title = unidecode(title) + +- artist = unidecode(artist).decode() +- album_artist = unidecode(album_artist).decode() +- composer = unidecode(composer).decode() +- album = unidecode(album).decode() +- filename = unidecode(filename).decode() +- sartist = unidecode(sartist).decode() ++ artist = unidecode(artist) ++ album_artist = unidecode(album_artist) ++ composer = unidecode(composer) ++ album = unidecode(album) ++ filename = unidecode(filename) ++ sartist = unidecode(sartist) + + if cache_string is None: + search_dia_string_cache[ +@@ -30054,9 +30054,9 @@ class Over: + click=self.click, replace="github") + + y += spacing +- ddt.text((x, y), "isounidecode", colours.box_sub_text, font) +- ddt.text((xx, y), "New BSD License", colours.box_text_label, font) +- draw_linked_text2(xxx, y, "https://github.com/redvasily/isounidecode", colours.box_sub_text, font, ++ ddt.text((x, y), "unidecode", colours.box_sub_text, font) ++ ddt.text((xx, y), "GPL-2.0+", colours.box_text_label, font) ++ draw_linked_text2(xxx, y, "https://github.com/avian2/unidecode", colours.box_sub_text, font, + click=self.click, replace="github") + + y += spacing +diff --git a/t_modules/t_main.py b/t_modules/t_main.py +index 4848b7b2..cc662a74 100644 +--- a/t_modules/t_main.py ++++ b/t_modules/t_main.py +@@ -4550,7 +4550,7 @@ try: + gme.gme_open_file.restype = ctypes.c_char_p + + except: +- print("Cannont find libgme") ++ pass + + def use_id3(tags, nt): + def natural_get(tag, track, frame, attr): +diff --git a/t_modules/t_main.py b/t_modules/t_main.py +index 41916fc7..ca5f7c9a 100644 +--- a/t_modules/t_main.py ++++ b/t_modules/t_main.py +@@ -30667,6 +30667,10 @@ class Over: + tab_bg = colours.sys_tab_bg + tab_hl = colours.sys_tab_hl + tab_text = rgb_add_hls(tab_bg, 0, 0.3, -0.15) ++ if is_light(tab_bg): ++ h, l, s = rgb_to_hls(tab_bg[0], tab_bg[1], tab_bg[2]) ++ l = 0.1 ++ tab_text = hls_to_rgb(h, l, s) + tab_over = alpha_mod(rgb_add_hls(tab_bg, 0, 0.5, 0), 13) + + if top_mode: +diff --git a/input.txt b/input.txt +index d3a9268..996727f 100644 +--- a/input.txt ++++ b/input.txt +@@ -58,7 +58,7 @@ pagedown PageDown + delete-playlist W Ctrl + delete-playlist-force W Shift Ctrl + rename-playlist R Ctrl +-rename-playlist F2 ++cycle-theme F2 + new-playlist T Ctrl + + new-generator-playlist E Ctrl Shift diff --git a/audio/tauonmb/flatpak-rpc.diff b/audio/tauonmb/config/flatpak-rpc.diff index fbe8501364..fbe8501364 100644 --- a/audio/tauonmb/flatpak-rpc.diff +++ b/audio/tauonmb/config/flatpak-rpc.diff diff --git a/audio/tauonmb/config/obsolete-libgme.patch b/audio/tauonmb/config/obsolete-libgme.patch new file mode 100644 index 0000000000..e6f6466f88 --- /dev/null +++ b/audio/tauonmb/config/obsolete-libgme.patch @@ -0,0 +1,156 @@ +diff --git a/compile-phazor.sh b/compile-phazor.sh +index 090c318b..2313338d 100755 +--- a/compile-phazor.sh ++++ b/compile-phazor.sh +@@ -3,7 +3,7 @@ + set -e + + gcc src/phazor/kissfft/kiss_fftr.c src/phazor/kissfft/kiss_fft.c src/phazor/phazor.c \ +- `pkg-config --cflags --libs samplerate wavpack opusfile vorbisfile libmpg123 flac libopenmpt libgme` \ ++ `pkg-config --cflags --libs samplerate wavpack opusfile vorbisfile libmpg123 flac libopenmpt` \ + -shared -o libphazor.so -fPIC -Wall -O3 -g #-Wextra + mkdir -p lib + mv libphazor.so lib/libphazor.so +diff --git a/src/phazor/phazor.c b/src/phazor/phazor.c +index e89edaf6..ecb84259 100644 +--- a/src/phazor/phazor.c ++++ b/src/phazor/phazor.c +@@ -55,7 +55,6 @@ + #include <libopenmpt/libopenmpt_stream_callbacks_file.h> + #include "kissfft/kiss_fftr.h" + #include "wavpack/wavpack.h" +-#include "gme/gme.h" + + #define BUFF_SIZE 240000 // Decoded data buffer size + #define BUFF_SAFE 100000 // Ensure there is this much space free in the buffer +@@ -209,7 +208,6 @@ enum decoder_types { + MPT, + FEED, + WAVPACK, +- GME, + }; + + enum result_status_enum { +@@ -318,11 +316,6 @@ char parse_buffer[2048 * 2]; + FILE* mod_file = 0; + openmpt_module* mod = 0; + +- +-// GME related ------------------- +- +-Music_Emu* emu; +- + // FFMPEG related ----------------------------------------------------- + + FILE *ffm; +@@ -893,9 +886,6 @@ void stop_decoder() { + case MPT: + openmpt_module_destroy(mod); + break; +- case GME: +- gme_delete(emu); +- break; + } + //src_reset(src); + decoder_allocated = 0; +@@ -1132,9 +1122,6 @@ void decode_seek(int abs_ms, int sample_rate) { + case MPT: + openmpt_module_set_position_seconds(mod, abs_ms / 1000.0); + break; +- case GME: +- gme_seek(emu, (long) abs_ms); +- break; + } + } + +@@ -1281,7 +1268,6 @@ int load_next() { + long rate; + int e = 0; + int old_sample_rate = sample_rate_src; +- src_channels = 2; + + char *ext; + ext = strrchr(loaded_target_file, '.'); +@@ -1424,21 +1410,6 @@ int load_next() { + ) + ) codec = MPT; + +- if (codec == UNKNOWN && ext != NULL && ( +- strcmp(ext, ".spc") == 0 || strcmp(ext, ".SPC") == 0 || +- strcmp(ext, ".ay") == 0 || strcmp(ext, ".AY") == 0 || +- strcmp(ext, ".gbs") == 0 || strcmp(ext, ".GBS") == 0 || +- strcmp(ext, ".gym") == 0 || strcmp(ext, ".GYM") == 0 || +- strcmp(ext, ".hes") == 0 || strcmp(ext, ".HES") == 0 || +- strcmp(ext, ".kss") == 0 || strcmp(ext, ".KSS") == 0 || +- strcmp(ext, ".nsf") == 0 || strcmp(ext, ".NSF") == 0 || +- strcmp(ext, ".nsfe") == 0 || strcmp(ext, ".NSFE") == 0 || +- strcmp(ext, ".sap") == 0 || strcmp(ext, ".SAP") == 0 || +- strcmp(ext, ".vgm") == 0 || strcmp(ext, ".VGM") == 0 || +- strcmp(ext, ".vgz") == 0 || strcmp(ext, ".VGZ") == 0 +- ) +- ) codec = GME; +- + if (codec == UNKNOWN && ext != NULL) { + if (strcmp(ext, ".flac") == 0 || strcmp(ext, ".FLAC") == 0) { + codec = FLAC; +@@ -1476,25 +1447,6 @@ int load_next() { + return 0; + } + +- if (codec == GME){ +- +- sample_rate_src = 48000; +- gme_open_file(loaded_target_file, &emu, (long) sample_rate_src); +- gme_start_track(emu, subtrack); +- +- if (load_target_seek > 0) gme_seek(emu, (long) load_target_seek); +- +- if (old_sample_rate != sample_rate_src) { +- src_reset(src); +- } +- +- pthread_mutex_unlock(&buffer_mutex); +- decoder_allocated = 1; +- +- return 0; +- +- } +- + if (codec == MPT){ + + mod_file = uni_fopen(loaded_target_file); +@@ -1811,20 +1763,6 @@ void pump_decode() { + pthread_mutex_unlock(&buffer_mutex); + } + +- } else if (codec == GME) { +- +- gme_play(emu, 1024, temp16l); +- +- pthread_mutex_lock(&buffer_mutex); +- read_to_buffer_s16int(temp16l, 1024); +- samples_decoded += 1024; +- pthread_mutex_unlock(&buffer_mutex); +- +- if (gme_track_ended(emu)){ +- decoder_eos(); +- } +- +- + } else if (codec == FLAC) { + // FLAC decoding + +@@ -1853,12 +1791,7 @@ void pump_decode() { + + unsigned int done; + +- if(src_channels == 1){ +- done = op_read(opus_dec, opus_buffer, 4096, NULL); +- } +- else{ +- done = op_read_stereo(opus_dec, opus_buffer, 1024 * 2) * 2; +- } ++ done = op_read_stereo(opus_dec, opus_buffer, 1024 * 2) * 2; + + pthread_mutex_lock(&buffer_mutex); + read_to_buffer_s16int(opus_buffer, done); diff --git a/audio/tauonmb/config/python39.diff b/audio/tauonmb/config/python39.diff new file mode 100644 index 0000000000..734a40fe11 --- /dev/null +++ b/audio/tauonmb/config/python39.diff @@ -0,0 +1,134 @@ +diff --git a/t_modules/t_main.py b/t_modules/t_main.py +index 0d0626e..2348b31 100644 +--- a/t_modules/t_main.py ++++ b/t_modules/t_main.py +@@ -25220,75 +25220,65 @@ class SearchOverlay: + go = True + clear = True + +- if extend: +- match n: +- case 0: +- default_playlist.extend(self.click_artist(item[1], get_list=True)) +- case 1: +- for k, pl in enumerate(pctl.multi_playlist): +- if item[2] in pl[2]: +- default_playlist.extend( +- get_album_from_first_track(pl[2].index(item[2]), item[2], k)) +- break +- case 2: +- default_playlist.append(item[2]) +- case 3: +- default_playlist.extend(self.click_genre(item[1], get_list=True)) +- case 5: +- default_playlist.extend(self.click_meta(item[1], get_list=True)) +- case 6: +- default_playlist.extend(self.click_composer(item[1], get_list=True)) +- case 7: +- default_playlist.extend(self.click_year(item[1], get_list=True)) +- case 8: +- default_playlist.extend(pctl.multi_playlist[pl][2]) +- case 12: +- spot_ctl.append_track(item[2]) +- reload_albums() ++ extend_actions = { ++ 0: lambda: default_playlist.extend(self.click_artist(item[1], get_list=True)), ++ 1: lambda: [ ++ default_playlist.extend(get_album_from_first_track(pl[2].index(item[2]), item[2], k)) ++ for k, pl in enumerate(pctl.multi_playlist) ++ if item[2] in pl[2] ++ ][0], ++ 2: lambda: default_playlist.append(item[2]), ++ 3: lambda: default_playlist.extend(self.click_genre(item[1], get_list=True)), ++ 5: lambda: default_playlist.extend(self.click_meta(item[1], get_list=True)), ++ 6: lambda: default_playlist.extend(self.click_composer(item[1], get_list=True)), ++ 7: lambda: default_playlist.extend(self.click_year(item[1], get_list=True)), ++ 8: lambda: default_playlist.extend(pctl.multi_playlist[pl][2]), ++ 12: lambda: [spot_ctl.append_track(item[2]), reload_albums()], ++ } + ++ show_actions = { ++ 0: lambda: pctl.show_current(index=item[2], playing=False), ++ 1: lambda: pctl.show_current(index=item[2], playing=False), ++ 2: lambda: pctl.show_current(index=item[2], playing=False), ++ 3: lambda: pctl.show_current(index=item[2], playing=False), ++ 5: lambda: pctl.show_current(index=item[2], playing=False), ++ 6: lambda: pctl.show_current(index=item[2], playing=False), ++ 7: lambda: pctl.show_current(index=item[2], playing=False), ++ 10: lambda: pctl.show_current(index=item[2], playing=False), ++ 8: lambda: switch_playlist(id_to_pl(item[3])), ++ } ++ ++ go_actions = { ++ 0: lambda: self.click_artist(item[1]), ++ 10: lambda: [ ++ show_message(_("Searching for albums by artist: ") + item[1], _("This may take a moment")), ++ threading.Thread(target=spot_ctl.artist_playlist, args=([item[2]])).start() ++ ], ++ 1: lambda: [self.click_album(item[2]), pctl.show_current(index=item[2]), setattr(pctl, 'playlist_view_position', pctl.selected_in_playlist)], ++ 2: lambda: [self.click_album(item[2]), pctl.show_current(index=item[2]), setattr(pctl, 'playlist_view_position', pctl.selected_in_playlist)], ++ 3: lambda: self.click_genre(item[1]), ++ 5: lambda: self.click_meta(item[1]), ++ 6: lambda: self.click_composer(item[1]), ++ 7: lambda: self.click_year(item[1]), ++ 8: lambda: switch_playlist(id_to_pl(item[3])), ++ 11: lambda: [spot_ctl.album_playlist(item[2]), reload_albums()], ++ 12: lambda: [spot_ctl.append_track(item[2]), reload_albums()], ++ } ++ if extend: ++ if n in extend_actions: ++ extend_actions[n]() + gui.pl_update += 1 ++ + elif show: +- match n: +- case 0 | 1 | 2 | 3 | 5 | 6 | 7 | 10: +- pctl.show_current(index=item[2], playing=False) +- if album_mode: +- show_in_gal(0) +- case 8: +- pl = id_to_pl(item[3]) +- if pl: +- switch_playlist(pl) ++ if n in show_actions: ++ show_actions[n]() ++ if n != 8 and album_mode: ++ show_in_gal(0) + + elif go: +- match n: +- case 0: +- self.click_artist(item[1]) +- case 10: +- show_message(_("Searching for albums by artist: ") + item[1], _("This may take a moment")) +- shoot = threading.Thread(target=spot_ctl.artist_playlist, args=([item[2]])) +- shoot.daemon = True +- shoot.start() +- case 1 | 2: +- self.click_album(item[2]) +- pctl.show_current(index=item[2]) +- pctl.playlist_view_position = pctl.selected_in_playlist +- case 3: +- self.click_genre(item[1]) +- case 5: +- self.click_meta(item[1]) +- case 6: +- self.click_composer(item[1]) +- case 7: +- self.click_year(item[1]) +- case 8: +- pl = id_to_pl(item[3]) +- if pl: +- switch_playlist(pl) +- case 11: +- spot_ctl.album_playlist(item[2]) +- reload_albums() +- case 12: +- spot_ctl.append_track(item[2]) +- reload_albums() ++ if n in go_actions: ++ go_actions[n]() ++ reload_albums() + + if n in (2,) and keymaps.test("add-to-queue") and fade == 1: + queue_object = queue_item_gen(item[2], diff --git a/audio/tauonmb/doinst.sh b/audio/tauonmb/doinst.sh index 1ed122d2fb..f76a4cc462 100644 --- a/audio/tauonmb/doinst.sh +++ b/audio/tauonmb/doinst.sh @@ -7,10 +7,6 @@ if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 fi -if [ -x /usr/bin/update-mime-database ]; then - /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 -fi - if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1 diff --git a/audio/tauonmb/slack-desc b/audio/tauonmb/slack-desc index 235e09d7a1..c04eab2c36 100644 --- a/audio/tauonmb/slack-desc +++ b/audio/tauonmb/slack-desc @@ -11,9 +11,9 @@ tauonmb: tauonmb: Tauon Music Box is a modern streamlined music player with a minimal tauonmb: interface that's packed with features! An emphasis on playlists and tauonmb: direct file importing puts you in control of your music collection. -tauonmb: Uses Phazor and GStreamer for playback. +tauonmb: Uses Phazor for playback. tauonmb: tauonmb: tauonmb: Project URL: https://tauonmusicbox.rocks/ -tauonmb: GitHub URL: https://github.com/Taiko2k/TauonMusicBox/ +tauonmb: GitHub URL: https://github.com/Taiko2k/Tauon/ tauonmb: diff --git a/audio/tauonmb/tauonmb.SlackBuild b/audio/tauonmb/tauonmb.SlackBuild index 4c242a3a58..2044008b1c 100644 --- a/audio/tauonmb/tauonmb.SlackBuild +++ b/audio/tauonmb/tauonmb.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for Tauon Music Box -# Copyright 2019-2022 Pouria Rezaei <Pouria.rz@outlook.com> +# Copyright 2019-2024 Pouria Rezaei <Pouria.rz@outlook.com> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -27,11 +27,12 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=tauonmb -VERSION=${VERSION:-7.2.1} -SRCNAM=TauonMusicBox -BUILD=${BUILD:-1} +VERSION=${VERSION:-7.8.0} +SRCNAM=Tauon +BUILD=${BUILD:-4} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} +SLACKVER=$(awk 'NR {print $2}' "/etc/slackware-version" | sed 's/[^+]//g') if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -49,6 +50,8 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi +KFVER=${KFVER:-131.1.0} +MATAG=${MATAG:-4a5b74bef029b3592c54b6048650ee5f972c1a48} TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -61,7 +64,25 @@ mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $SRCNAM-$VERSION tar xvf $CWD/$SRCNAM-$VERSION.tar.gz + cd $SRCNAM-$VERSION + +# - Replaced my own isounidecode with Unidecode. +# - Pass libgme. +# - Fixed custom theme bug. +# - Reverted old days theme changer! +patch -p1 < $CWD/config/fix-tauon-options.patch + +# Make libgme optional, isn't this messy already? +if [ ! "${LIBGME:-no}" = "yes" ]; then + patch -p1 < "$CWD/config/obsolete-libgme.patch" +fi + +# PHAZOR dependencies (Do not modify this part) +mkdir -p src/phazor/{kissfft,miniaudio} +tar xvf $CWD/kissfft-$KFVER.tar.gz --strip-components=1 -C src/phazor/kissfft +tar xvf $CWD/miniaudio-$MATAG.tar.gz --strip-components=1 -C src/phazor/miniaudio + chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -69,7 +90,7 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Compile PHAZOR (Do not modify this part.) +# Compile PHAZOR (Do not modify this part) sh compile-phazor.sh # Compile translator @@ -78,7 +99,7 @@ rm -f locale/*/*/*.po case "$RPC" in [yY][eE][sS]) - patch -p1 < "$CWD/flatpak-rpc.diff" + patch -p1 < "$CWD/config/flatpak-rpc.diff" ;; esac @@ -88,6 +109,12 @@ mv assets extra lib locale t_modules templates theme CHANGELOG input.txt \ cd $PKG/opt/tauon-music-box +# Patch by Reza Talebi <reza.talebi.73@outlook.com> +# - Compatiblity for python3.9 on Slackware 15 +if [[ ! "$SLACKVER" == "+" ]]; then + patch -p1 < "$CWD/config/python39.diff" +fi + mkdir -p $PKG/usr/bin install -m 0755 extra/$PRGNAM.sh $PRGNAM.sh ln -sf /opt/tauon-music-box/$PRGNAM.sh $PKG/usr/bin/tauon diff --git a/audio/tauonmb/tauonmb.info b/audio/tauonmb/tauonmb.info index 8b5e9ccb1f..a3311b4fd4 100644 --- a/audio/tauonmb/tauonmb.info +++ b/audio/tauonmb/tauonmb.info @@ -1,10 +1,14 @@ PRGNAM="tauonmb" -VERSION="7.2.1" +VERSION="7.8.0" HOMEPAGE="https://tauonmusicbox.rocks/" -DOWNLOAD="https://github.com/Taiko2k/TauonMusicBox/archive/v7.2.1/TauonMusicBox-7.2.1.tar.gz" -MD5SUM="66441bb1faa5475e246a9bb66c2c835e" +DOWNLOAD="https://github.com/Taiko2k/Tauon/archive/v7.8.0/Tauon-7.8.0.tar.gz \ + https://github.com/mborgerding/kissfft/archive/131.1.0/kissfft-131.1.0.tar.gz \ + https://github.com/mackron/miniaudio/archive/4a5b74bef029b3592c54b6048650ee5f972c1a48/miniaudio-4a5b74bef029b3592c54b6048650ee5f972c1a48.tar.gz" +MD5SUM="1e056ebbc649db767ff64e9275df60c1 \ + 981ad3e496fbd8edb99704fc0e2aa939 \ + 01b821de48cdba3838239b6cbd5e13e5" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="libopenmpt musicbrainzngs mutagen pylast python3-isounidecode python3-natsort python3-plexapi python3-pulsectl python3-pylyrics python3-pysdl2 send2trash setproctitle websocket-client" +REQUIRES="libopenmpt musicbrainzngs mutagen pylast Unidecode python3-natsort python3-plexapi python3-pulsectl python3-pylyrics python3-pysdl2 send2trash setproctitle python3-websocket-client" MAINTAINER="Pouria Rezaei" EMAIL="Pouria.rz@outlook.com" |