diff --git a/files/0001-Fix-references-to-yt-dlp.patch b/files/0001-Fix-references-to-yt-dlp.patch new file mode 100644 --- /dev/null +++ b/files/0001-Fix-references-to-yt-dlp.patch @@ -0,0 +1,847 @@ +From 84d80ba58b9cc1deb272029ab6dc9b325d65c2db Mon Sep 17 00:00:00 2001 +From: Joshua Strobl Modified by Thomas Staudinger +Date: Tue, 27 Oct 2020 21:44:16 +0200 +Subject: [PATCH 1/1] Fix references to yt-dlp + +--- + data/SettingsWeb.ui | 2 +- + data/org.gnome.Lollypop.gschema.xml | 4 +- + lollypop/application.py | 6 +- + lollypop/helper_web_youtube.py | 10 +- + lollypop/menu_similars.py | 4 +- + lollypop/utils_file.py | 18 +- + lollypop/view_albums_box.py | 8 +- + lollypop/widgets_settings_appearance.py | 2 +- + lollypop/widgets_settings_web.py | 10 +- + org.gnome.Lollypop.json | 585 +++++++++++++----------- + 10 files changed, 346 insertions(+), 303 deletions(-) + +diff --git a/data/SettingsWeb.ui b/data/SettingsWeb.ui +index ed57cbb2..fd8f392d 100644 +--- a/data/SettingsWeb.ui ++++ b/data/SettingsWeb.ui +@@ -910,7 +910,7 @@ Lollypop needs this to search for artwork.</small> + 10 + 10 + True +- Use a recent version of youtube-dl ++ Use a recent version of yt-dlp + <span size="small" alpha='40000'>Activate this if Web playback does not work</span> + True + True +diff --git a/data/org.gnome.Lollypop.gschema.xml b/data/org.gnome.Lollypop.gschema.xml +index df41c961..0b1a1db4 100644 +--- a/data/org.gnome.Lollypop.gschema.xml ++++ b/data/org.gnome.Lollypop.gschema.xml +@@ -115,9 +115,9 @@ + If set, Lollypop will use this server instead of YouTube. See https://github.com/omarroth/invidious + + +- ++ + false +- If true, Lollypop will not use system youtube-dl ++ If true, Lollypop will not use system yt-dlp + + + +diff --git a/lollypop/application.py b/lollypop/application.py +index 125c7e4f..f6e58e0d 100644 +--- a/lollypop/application.py ++++ b/lollypop/application.py +@@ -26,7 +26,7 @@ from urllib.parse import urlparse + + from lollypop.utils import init_proxy_from_gnome, emit_signal + from lollypop.application_actions import ApplicationActions +-from lollypop.utils_file import get_file_type, install_youtube_dl ++from lollypop.utils_file import get_file_type, install_yt_dlp + from lollypop.define import LOLLYPOP_DATA_PATH, ScanType, StorageType, FileType + from lollypop.database import Database + from lollypop.player import Player +@@ -196,8 +196,8 @@ class Application(Gtk.Application, ApplicationActions): + monitor = Gio.NetworkMonitor.get_default() + if monitor.get_network_available() and\ + not monitor.get_network_metered() and\ +- self.settings.get_value("recent-youtube-dl"): +- self.task_helper.run(install_youtube_dl) ++ self.settings.get_value("recent-yt-dlp"): ++ self.task_helper.run(install_yt_dlp) + + def do_startup(self): + """ +diff --git a/lollypop/helper_web_youtube.py b/lollypop/helper_web_youtube.py +index 02967d37..f3b3274c 100644 +--- a/lollypop/helper_web_youtube.py ++++ b/lollypop/helper_web_youtube.py +@@ -16,7 +16,7 @@ from re import sub + + from lollypop.helper_web_base import BaseWebHelper + from lollypop.utils import emit_signal +-from lollypop.utils_file import get_youtube_dl ++from lollypop.utils_file import get_yt_dlp + from lollypop.logger import Logger + + +@@ -45,7 +45,7 @@ class YouTubeWebHelper(BaseWebHelper): + proxy = GLib.environ_getenv(GLib.get_environ(), "all_proxy") + if proxy is not None and proxy.startswith("socks://"): + proxy = proxy.replace("socks://", "socks4://") +- (path, env) = get_youtube_dl() ++ (path, env) = get_yt_dlp() + # Remove playlist args + uri = sub("list=.*", "", uri) + argv = [path, "--no-cache-dir", "-g", "-f", "bestaudio", uri] +@@ -54,14 +54,14 @@ class YouTubeWebHelper(BaseWebHelper): + else: + argv.append(None) + process = Gio.Subprocess.new(argv, Gio.SubprocessFlags.STDOUT_PIPE) +- process.wait_async(cancellable, self.__on_youtube_dl, cancellable) ++ process.wait_async(cancellable, self.__on_yt_dlp, cancellable) + except Exception as e: + Logger.error("YouTubeWebHelper::get_uri_content(): %s", e) + + ####################### + # PRIVATE # + ####################### +- def __on_youtube_dl(self, process, result, cancellable): ++ def __on_yt_dlp(self, process, result, cancellable): + """ + Emit signal for content + @param process as Gio.Subprocess. +@@ -81,5 +81,5 @@ class YouTubeWebHelper(BaseWebHelper): + stream.close() + content = bytes.decode("utf-8") + except Exception as e: +- Logger.warning("YouTubeWebHelper::__on_youtube_dl(): %s", e) ++ Logger.warning("YouTubeWebHelper::__on_yt_dlp(): %s", e) + emit_signal(self, "uri-content-loaded", content) +diff --git a/lollypop/menu_similars.py b/lollypop/menu_similars.py +index 9d614aac..06bca95c 100644 +--- a/lollypop/menu_similars.py ++++ b/lollypop/menu_similars.py +@@ -17,7 +17,7 @@ from gettext import gettext as _ + from lollypop.define import App, ArtSize, ArtBehaviour, Type, StorageType + from lollypop.logger import Logger + from lollypop.utils import sql_escape +-from lollypop.utils_file import get_youtube_dl ++from lollypop.utils_file import get_yt_dlp + + + class ArtistRow(Gtk.ListBoxRow): +@@ -143,7 +143,7 @@ class SimilarsMenu(Gtk.Bin): + @param artist_id as int + """ + Gtk.Bin.__init__(self) +- (path, env) = get_youtube_dl() ++ (path, env) = get_yt_dlp() + self.__show_all = path is not None + self.__added = [] + self.__artist_id = artist_id +diff --git a/lollypop/utils_file.py b/lollypop/utils_file.py +index 8c93f530..232c92f5 100644 +--- a/lollypop/utils_file.py ++++ b/lollypop/utils_file.py +@@ -152,29 +152,29 @@ def create_dir(path): + Logger.info("Can't create %s" % path) + + +-def install_youtube_dl(): ++def install_yt_dlp(): + try: + path = GLib.get_user_data_dir() + "/lollypop/python" +- argv = ["pip3", "install", "-t", path, "-U", "youtube-dl"] ++ argv = ["pip3", "install", "-t", path, "-U", "yt-dlp"] + GLib.spawn_sync(None, argv, [], GLib.SpawnFlags.SEARCH_PATH, None) + except Exception as e: +- Logger.error("install_youtube_dl: %s" % e) ++ Logger.error("install_yt_dlp: %s" % e) + + +-def get_youtube_dl(): ++def get_yt_dlp(): + """ +- Get youtube-dl path and env ++ Get yt-dlp path and env + @return (str, []) + """ +- if App().settings.get_value("recent-youtube-dl"): ++ if App().settings.get_value("recent-yt-dlp"): + python_path = GLib.get_user_data_dir() + "/lollypop/python" +- path = "%s/bin/youtube-dl" % python_path ++ path = "%s/bin/yt-dlp" % python_path + env = ["PYTHONPATH=%s" % python_path] + f = Gio.File.new_for_path(path) + if f.query_exists(): + return (path, env) +- if GLib.find_program_in_path("youtube-dl"): +- return ("youtube-dl", []) ++ if GLib.find_program_in_path("yt-dlp"): ++ return ("yt-dlp", []) + else: + return (None, []) + +diff --git a/lollypop/view_albums_box.py b/lollypop/view_albums_box.py +index 5e1bf96f..2e0280d7 100644 +--- a/lollypop/view_albums_box.py ++++ b/lollypop/view_albums_box.py +@@ -23,7 +23,7 @@ from lollypop.objects_album import Album + from lollypop.utils import get_icon_name, get_network_available, popup_widget + from lollypop.utils import get_title_for_genres_artists + from lollypop.utils import remove_static +-from lollypop.utils_file import get_youtube_dl ++from lollypop.utils_file import get_yt_dlp + from lollypop.utils_album import get_album_ids_for + from lollypop.helper_signals import SignalsHelper, signals_map + +@@ -49,9 +49,9 @@ class AlbumsBoxView(FlowBoxView, SignalsHelper): + self.__populate_wanted = True + if genre_ids and genre_ids[0] < 0: + if genre_ids[0] == Type.WEB: +- (youtube_dl, env) = get_youtube_dl() +- if youtube_dl is None: +- self._empty_message = _("Missing youtube-dl command") ++ (yt_dlp, env) = get_yt_dlp() ++ if yt_dlp is None: ++ self._empty_message = _("Missing yt-dlp command") + self.show_placeholder(True) + self.__populate_wanted = False + elif not get_network_available("YOUTUBE"): +diff --git a/lollypop/widgets_settings_appearance.py b/lollypop/widgets_settings_appearance.py +index 3a66a96c..554d2f59 100644 +--- a/lollypop/widgets_settings_appearance.py ++++ b/lollypop/widgets_settings_appearance.py +@@ -93,7 +93,7 @@ class AppearanceSettingsWidget(Gtk.Bin): + + def _on_switch_artwork_state_set(self, widget, state): + """ +- Update recent-youtube-dl setting ++ Update recent-yt-dlp setting + @param widget as Gtk.Switch + @param state as bool + """ +diff --git a/lollypop/widgets_settings_web.py b/lollypop/widgets_settings_web.py +index c608daa0..428e81f3 100644 +--- a/lollypop/widgets_settings_web.py ++++ b/lollypop/widgets_settings_web.py +@@ -67,9 +67,9 @@ class WebSettingsWidget(Gtk.Bin, SignalsHelper): + self.__cs_entry = builder.get_object("cs-entry") + self.__cs_entry.set_text(key) + uri = App().settings.get_value("invidious-server").get_string() +- recent_youtube_dl = App().settings.get_value("recent-youtube-dl") ++ recent_yt_dlp = App().settings.get_value("recent-yt-dlp") + self.__switch_youtube = builder.get_object("switch_youtube") +- self.__switch_youtube.set_state(recent_youtube_dl) ++ self.__switch_youtube.set_state(recent_yt_dlp) + entry_invidious = builder.get_object("entry_invidious") + entry_invidious.set_text(uri) + if uri: +@@ -155,11 +155,11 @@ class WebSettingsWidget(Gtk.Bin, SignalsHelper): + @param widget as Gtk.Switch + @param state as bool + """ +- App().settings.set_value("recent-youtube-dl", ++ App().settings.set_value("recent-yt-dlp", + GLib.Variant("b", state)) + if Gio.NetworkMonitor.get_default().get_network_available() and state: +- from lollypop.utils_file import install_youtube_dl +- App().task_helper.run(install_youtube_dl) ++ from lollypop.utils_file import install_yt_dlp ++ App().task_helper.run(install_yt_dlp) + + def _on_entry_invidious_changed(self, entry): + """ +diff --git a/org.gnome.Lollypop.json b/org.gnome.Lollypop.json +index 2abdd0b7..edd2042a 100644 +--- a/org.gnome.Lollypop.json ++++ b/org.gnome.Lollypop.json +@@ -1,272 +1,315 @@ + { +- "app-id": "org.gnome.Lollypop", +- "runtime": "org.gnome.Platform", +- "runtime-version": "master", +- "sdk": "org.gnome.Sdk", +- "command": "lollypop", +- "tags": ["devel", "development", "nightly"], +- "desktop-file-name-prefix": "(Development) ", +- "finish-args": [ +- "--share=ipc", +- "--share=network", +- "--socket=x11", +- "--socket=wayland", +- "--socket=pulseaudio", +- "--device=dri", +- "--filesystem=host", +- "--filesystem=xdg-run/dconf", +- "--filesystem=~/.config/dconf:rw", +- "--talk-name=org.gtk.vfs", +- "--talk-name=org.gtk.vfs.*", +- "--talk-name=org.freedesktop.Notifications", +- "--talk-name=org.freedesktop.secrets", +- "--talk-name=org.freedesktop.Flatpak", +- "--talk-name=org.gnome.OnlineAccounts", +- "--talk-name=ca.desrt.dconf", +- "--own-name=org.mpris.MediaPlayer2.Lollypop", +- "--env=DCONF_USER_CONFIG_DIR=.config/dconf" +- ], +- "modules": [{ +- "name": "six", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://github.com/benjaminp/six/archive/1.12.0.tar.gz", +- "sha256": "0ce7aef70d066b8dda6425c670d00c25579c3daad8108b3e3d41bef26003c852" +- }] +- }, +- { +- "name": "pylast", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app" +- ], +- "ensure-writable": [ +- "/lib/python*/site-packages/easy-install.pth", +- "/lib/python*/site-packages/setuptools.pth", +- "/app/lib/python*/site-packages/easy-install.pth", +- "/app/lib/python*/site-packages/setuptools.pth" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://github.com/pylast/pylast/archive/3.1.0.tar.gz", +- "sha256": "2b3584be8ae97a98814395025c07c9f54fad6f4afd640b37ae6ff8308409e59c" +- }] +- }, +- { +- "name": "python-pillow", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app --root=/" +- ], +- "build-options": { +- "arch": { +- "i386": { +- "env": { +- "MAX_CONCURRENCY": "1" +- } +- }, +- "arm": { +- "env": { +- "MAX_CONCURRENCY": "1" +- } +- } +- } +- }, +- "ensure-writable": [ +- "/lib/python*/site-packages/easy-install.pth", +- "/lib/python*/site-packages/setuptools.pth", +- "/app/lib/python*/site-packages/easy-install.pth", +- "/app/lib/python*/site-packages/setuptools.pth" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://files.pythonhosted.org/packages/5b/bb/cdc8086db1f15d0664dd22a62c69613cdc00f1dd430b5b19df1bea83f2a3/Pillow-6.2.1.tar.gz", +- "sha256": "bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1" +- }] +- }, +- { +- "name": "python-idna", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app idna-2.8-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl", +- "sha256": "ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" +- }] +- }, +- { +- "name": "python-urllib3", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app urllib3-1.25.6-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/e0/da/55f51ea951e1b7c63a579c09dd7db825bb730ec1fe9c0180fc77bfb31448/urllib3-1.25.6-py2.py3-none-any.whl", +- "sha256": "3de946ffbed6e6746608990594d08faac602528ac7015ac28d33cee6a45b7398" +- }] +- }, +- { +- "name": "python-certifi", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app certifi-2019.9.11-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl", +- "sha256": "fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef" +- }] +- }, +- { +- "name": "python-chardet", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app chardet-3.0.4-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://pypi.python.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#md5=0004b00caff7bb543a1d0d0bd0185a03", +- "sha256": "fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" +- }] +- }, +- { +- "name": "python-requests", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app requests-2.22.0-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl", +- "sha256": "9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" +- }] +- }, +- { +- "name": "python-beautifulsoup4", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app beautifulsoup4-4.8.1-py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/3b/c8/a55eb6ea11cd7e5ac4bacdf92bac4693b90d3ba79268be16527555e186f0/beautifulsoup4-4.8.1-py3-none-any.whl", +- "sha256": "dcdef580e18a76d54002088602eba453eec38ebbcafafeaabd8cab12b6155d57" +- }], +- "modules": [{ +- "name": "soupsieve", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app soupsieve-1.9.4-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/5d/42/d821581cf568e9b7dfc5b415aa61952b0f5e3dede4f3cbd650e3a1082992/soupsieve-1.9.4-py2.py3-none-any.whl", +- "sha256": "b91d676b330a0ebd5b21719cb6e9b57c57d433671f65b9c28dd3461d9a1ed0b6" +- }] +- }] +- }, +- { +- "name": "python-socks", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app --root=/" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", +- "sha256": "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" +- }] +- }, +- { +- "name": "python-textblob", +- "buildsystem": "simple", +- "build-commands": [ +- "pip3 install --prefix=/app textblob-0.15.3-py2.py3-none-any.whl" +- ], +- "sources": [{ +- "type": "file", +- "url": "https://files.pythonhosted.org/packages/60/f0/1d9bfcc8ee6b83472ec571406bd0dd51c0e6330ff1a51b2d29861d389e85/textblob-0.15.3-py2.py3-none-any.whl", +- "sha256": "b0eafd8b129c9b196c8128056caed891d64b7fa20ba570e1fcde438f4f7dd312" +- }], +- "modules": [{ +- "name": "nltk", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app" +- ], +- "ensure-writable": [ +- "/lib/python*/site-packages/easy-install.pth", +- "/lib/python*/site-packages/setuptools.pth", +- "/app/lib/python*/site-packages/easy-install.pth", +- "/app/lib/python*/site-packages/setuptools.pth" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://files.pythonhosted.org/packages/f6/1d/d925cfb4f324ede997f6d47bea4d9babba51b49e87a767c170b77005889d/nltk-3.4.5.zip", +- "sha256": "bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94" +- }] +- }] +- }, +- { +- "name": "gmime", +- "config-opts": [ +- "--disable-gtk-doc" +- ], +- "cleanup": [ +- "*.la", +- "/share/gtk-doc" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://download.gnome.org/sources/gmime/3.2/gmime-3.2.3.tar.xz", +- "sha256": "6a0875eeb552ab447dd54853a68ced62217d863631048737dd97eaa2713e7311" +- }] +- }, +- { +- "name": "totem-pl-parser", +- "buildsystem": "meson", +- "sources": [{ +- "type": "archive", +- "url": "https://download.gnome.org/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.3.tar.xz", +- "sha256": "0efd01b8a0a9770d52fe7354d298874ed845449b88f3f78f49290729fc2d448d" +- }], +- "cleanup": [ +- "/include", +- "/share/gtk-doc" +- ] +- }, +- { +- "name": "youtube-dl", +- "buildsystem": "simple", +- "build-commands": [ +- "python3 setup.py install --prefix=/app" +- ], +- "ensure-writable": [ +- "/lib/python*/site-packages/easy-install.pth", +- "/lib/python*/site-packages/setuptools.pth", +- "/app/lib/python*/site-packages/easy-install.pth", +- "/app/lib/python*/site-packages/setuptools.pth" +- ], +- "sources": [{ +- "type": "archive", +- "url": "https://github.com/ytdl-org/youtube-dl/archive/2019.11.28.tar.gz", +- "sha256": "372cbf0cdf1a3abbd6634f0a8a366622be19d7c03eab59cb3c8014a7a084d7a5" +- }] +- }, +- { +- "name": "lollypop", +- "buildsystem": "meson", +- "sources": [{ +- "type": "git", +- "url": "https://gitlab.gnome.org/World/lollypop.git" +- }] +- } +- ] +-} ++ "app-id": "org.gnome.Lollypop", ++ "runtime": "org.gnome.Platform", ++ "runtime-version": "master", ++ "sdk": "org.gnome.Sdk", ++ "command": "lollypop", ++ "tags": [ ++ "devel", ++ "development", ++ "nightly" ++ ], ++ "desktop-file-name-prefix": "(Development) ", ++ "finish-args": [ ++ "--share=ipc", ++ "--share=network", ++ "--socket=x11", ++ "--socket=wayland", ++ "--socket=pulseaudio", ++ "--device=dri", ++ "--filesystem=host", ++ "--filesystem=xdg-run/dconf", ++ "--filesystem=~/.config/dconf:rw", ++ "--talk-name=org.gtk.vfs", ++ "--talk-name=org.gtk.vfs.*", ++ "--talk-name=org.freedesktop.Notifications", ++ "--talk-name=org.freedesktop.secrets", ++ "--talk-name=org.freedesktop.Flatpak", ++ "--talk-name=org.gnome.OnlineAccounts", ++ "--talk-name=ca.desrt.dconf", ++ "--own-name=org.mpris.MediaPlayer2.Lollypop", ++ "--env=DCONF_USER_CONFIG_DIR=.config/dconf" ++ ], ++ "modules": [ ++ { ++ "name": "six", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://github.com/benjaminp/six/archive/1.12.0.tar.gz", ++ "sha256": "0ce7aef70d066b8dda6425c670d00c25579c3daad8108b3e3d41bef26003c852" ++ } ++ ] ++ }, ++ { ++ "name": "pylast", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app" ++ ], ++ "ensure-writable": [ ++ "/lib/python*/site-packages/easy-install.pth", ++ "/lib/python*/site-packages/setuptools.pth", ++ "/app/lib/python*/site-packages/easy-install.pth", ++ "/app/lib/python*/site-packages/setuptools.pth" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://github.com/pylast/pylast/archive/3.1.0.tar.gz", ++ "sha256": "2b3584be8ae97a98814395025c07c9f54fad6f4afd640b37ae6ff8308409e59c" ++ } ++ ] ++ }, ++ { ++ "name": "python-pillow", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app --root=/" ++ ], ++ "build-options": { ++ "arch": { ++ "i386": { ++ "env": { ++ "MAX_CONCURRENCY": "1" ++ } ++ }, ++ "arm": { ++ "env": { ++ "MAX_CONCURRENCY": "1" ++ } ++ } ++ } ++ }, ++ "ensure-writable": [ ++ "/lib/python*/site-packages/easy-install.pth", ++ "/lib/python*/site-packages/setuptools.pth", ++ "/app/lib/python*/site-packages/easy-install.pth", ++ "/app/lib/python*/site-packages/setuptools.pth" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://files.pythonhosted.org/packages/5b/bb/cdc8086db1f15d0664dd22a62c69613cdc00f1dd430b5b19df1bea83f2a3/Pillow-6.2.1.tar.gz", ++ "sha256": "bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1" ++ } ++ ] ++ }, ++ { ++ "name": "python-idna", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app idna-2.8-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl", ++ "sha256": "ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" ++ } ++ ] ++ }, ++ { ++ "name": "python-urllib3", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app urllib3-1.25.6-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/e0/da/55f51ea951e1b7c63a579c09dd7db825bb730ec1fe9c0180fc77bfb31448/urllib3-1.25.6-py2.py3-none-any.whl", ++ "sha256": "3de946ffbed6e6746608990594d08faac602528ac7015ac28d33cee6a45b7398" ++ } ++ ] ++ }, ++ { ++ "name": "python-certifi", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app certifi-2019.9.11-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl", ++ "sha256": "fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef" ++ } ++ ] ++ }, ++ { ++ "name": "python-chardet", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app chardet-3.0.4-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://pypi.python.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#md5=0004b00caff7bb543a1d0d0bd0185a03", ++ "sha256": "fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" ++ } ++ ] ++ }, ++ { ++ "name": "python-requests", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app requests-2.22.0-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl", ++ "sha256": "9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" ++ } ++ ] ++ }, ++ { ++ "name": "python-beautifulsoup4", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app beautifulsoup4-4.8.1-py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/3b/c8/a55eb6ea11cd7e5ac4bacdf92bac4693b90d3ba79268be16527555e186f0/beautifulsoup4-4.8.1-py3-none-any.whl", ++ "sha256": "dcdef580e18a76d54002088602eba453eec38ebbcafafeaabd8cab12b6155d57" ++ } ++ ], ++ "modules": [ ++ { ++ "name": "soupsieve", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app soupsieve-1.9.4-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/5d/42/d821581cf568e9b7dfc5b415aa61952b0f5e3dede4f3cbd650e3a1082992/soupsieve-1.9.4-py2.py3-none-any.whl", ++ "sha256": "b91d676b330a0ebd5b21719cb6e9b57c57d433671f65b9c28dd3461d9a1ed0b6" ++ } ++ ] ++ } ++ ] ++ }, ++ { ++ "name": "python-socks", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app --root=/" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", ++ "sha256": "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" ++ } ++ ] ++ }, ++ { ++ "name": "python-textblob", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "pip3 install --prefix=/app textblob-0.15.3-py2.py3-none-any.whl" ++ ], ++ "sources": [ ++ { ++ "type": "file", ++ "url": "https://files.pythonhosted.org/packages/60/f0/1d9bfcc8ee6b83472ec571406bd0dd51c0e6330ff1a51b2d29861d389e85/textblob-0.15.3-py2.py3-none-any.whl", ++ "sha256": "b0eafd8b129c9b196c8128056caed891d64b7fa20ba570e1fcde438f4f7dd312" ++ } ++ ], ++ "modules": [ ++ { ++ "name": "nltk", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app" ++ ], ++ "ensure-writable": [ ++ "/lib/python*/site-packages/easy-install.pth", ++ "/lib/python*/site-packages/setuptools.pth", ++ "/app/lib/python*/site-packages/easy-install.pth", ++ "/app/lib/python*/site-packages/setuptools.pth" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://files.pythonhosted.org/packages/f6/1d/d925cfb4f324ede997f6d47bea4d9babba51b49e87a767c170b77005889d/nltk-3.4.5.zip", ++ "sha256": "bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94" ++ } ++ ] ++ } ++ ] ++ }, ++ { ++ "name": "gmime", ++ "config-opts": [ ++ "--disable-gtk-doc" ++ ], ++ "cleanup": [ ++ "*.la", ++ "/share/gtk-doc" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://download.gnome.org/sources/gmime/3.2/gmime-3.2.3.tar.xz", ++ "sha256": "6a0875eeb552ab447dd54853a68ced62217d863631048737dd97eaa2713e7311" ++ } ++ ] ++ }, ++ { ++ "name": "totem-pl-parser", ++ "buildsystem": "meson", ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://download.gnome.org/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.3.tar.xz", ++ "sha256": "0efd01b8a0a9770d52fe7354d298874ed845449b88f3f78f49290729fc2d448d" ++ } ++ ], ++ "cleanup": [ ++ "/include", ++ "/share/gtk-doc" ++ ] ++ }, ++ { ++ "name": "yt-dlp", ++ "buildsystem": "simple", ++ "build-commands": [ ++ "python3 setup.py install --prefix=/app" ++ ], ++ "ensure-writable": [ ++ "/lib/python*/site-packages/easy-install.pth", ++ "/lib/python*/site-packages/setuptools.pth", ++ "/app/lib/python*/site-packages/easy-install.pth", ++ "/app/lib/python*/site-packages/setuptools.pth" ++ ], ++ "sources": [ ++ { ++ "type": "archive", ++ "url": "https://github.com/yt-dlp/yt-dlp/archive/refs/tags/2021.10.22.tar.gz", ++ "sha256": "63f267cb0f2e9d18afc8e51267be2a13ce60030eab7c04b25b94d6b90d2ba6d3" ++ } ++ ] ++ }, ++ { ++ "name": "lollypop", ++ "buildsystem": "meson", ++ "sources": [ ++ { ++ "type": "git", ++ "url": "https://gitlab.gnome.org/World/lollypop.git" ++ } ++ ] ++ } ++ ] ++} +\ No newline at end of file +-- +2.29.1 + diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,6 +1,6 @@ name : lollypop version : 1.3.6 -release : 149 +release : 150 source : - git|https://gitlab.gnome.org/World/lollypop.git : 1.3.6 license : @@ -28,8 +28,9 @@ - python-requests - python-six - totem-pl-parser - - youtube-dl + - yt-dlp setup : | + %patch -p1 < $pkgfiles/0001-Fix-references-to-yt-dlp.patch %meson_configure build : | %ninja_build diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -2,8 +2,8 @@ lollypop - Joey Riches - josephriches@gmail.com + Thomas Staudinger + Staudi.Kaos@gmail.com CC0-1.0 GPL-3.0-or-later @@ -301,12 +301,12 @@ - - 2021-07-29 + + 2021-11-05 1.3.6 Packaging update - Joey Riches - josephriches@gmail.com + Thomas Staudinger + Staudi.Kaos@gmail.com \ No newline at end of file